コード例 #1
0
        public MofSpecificationSet(MofSpecification[] specifications)
        {
            this.ClassDeclarations = new Dictionary <string, ClassDeclaration>(StringComparer.OrdinalIgnoreCase);
            if (specifications != null)
            {
                this.m_specifications = specifications;
                MofSpecification[] mofSpecificationArray = specifications;
                for (int i = 0; i < (int)mofSpecificationArray.Length; i++)
                {
                    MofSpecification mofSpecification = mofSpecificationArray[i];
                    MofProduction[]  productions      = mofSpecification.Productions;
                    int num = 0;
                    while (num < (int)productions.Length)
                    {
                        MofProduction mofProduction       = productions[num];
                        MofProduction.ProductionType type = mofProduction.Type;
                        switch (type)
                        {
                        case MofProduction.ProductionType.ClassDeclaration:
                        {
                            ClassDeclaration classDeclaration = (ClassDeclaration)mofProduction;
                            try
                            {
                                this.ClassDeclarations.Add(classDeclaration.Name.FullName, classDeclaration);
                                num++;
                                continue;
                            }
                            catch (ArgumentException argumentException1)
                            {
                                ArgumentException argumentException = argumentException1;
                                argumentException.ToString();
                                throw new ParseFailureException(string.Concat("class ", classDeclaration.Name.FullName, " is already defined"), classDeclaration.Location);
                            }
                        }

                        case MofProduction.ProductionType.CompilerDirective:
                        case MofProduction.ProductionType.InstanceDeclaration:
                        {
                            num++;
                            continue;
                        }
                        }
                        throw new InvalidOperationException();
                    }
                }
                return;
            }
            else
            {
                throw new ArgumentException();
            }
        }
コード例 #2
0
ファイル: MofSpecificationSet.cs プロジェクト: nickchal/pash
		public MofSpecificationSet(MofSpecification[] specifications)
		{
			this.ClassDeclarations = new Dictionary<string, ClassDeclaration>(StringComparer.OrdinalIgnoreCase);
			if (specifications != null)
			{
				this.m_specifications = specifications;
				MofSpecification[] mofSpecificationArray = specifications;
				for (int i = 0; i < (int)mofSpecificationArray.Length; i++)
				{
					MofSpecification mofSpecification = mofSpecificationArray[i];
					MofProduction[] productions = mofSpecification.Productions;
					int num = 0;
					while (num < (int)productions.Length)
					{
						MofProduction mofProduction = productions[num];
						MofProduction.ProductionType type = mofProduction.Type;
						switch (type)
						{
							case MofProduction.ProductionType.ClassDeclaration:
							{
								ClassDeclaration classDeclaration = (ClassDeclaration)mofProduction;
								try
								{
									this.ClassDeclarations.Add(classDeclaration.Name.FullName, classDeclaration);
									num++;
									continue;
								}
								catch (ArgumentException argumentException1)
								{
									ArgumentException argumentException = argumentException1;
									argumentException.ToString();
									throw new ParseFailureException(string.Concat("class ", classDeclaration.Name.FullName, " is already defined"), classDeclaration.Location);
								}
							}
							case MofProduction.ProductionType.CompilerDirective:
							case MofProduction.ProductionType.InstanceDeclaration:
							{
								num++;
								continue;
							}
						}
						throw new InvalidOperationException();
					}
				}
				return;
			}
			else
			{
				throw new ArgumentException();
			}
		}