UnityScript.Parser.UnityScriptParser.switch_statement C# (CSharp) Méthode

switch_statement() public méthode

public switch_statement ( Block container ) : void
container Block
Résultat void
        public void switch_statement(Block container)
        {
            IToken token = null;
            IToken token2 = null;
            IToken token3 = null;
            IToken token4 = null;
            try
            {
                Block block;
                MacroStatement statement4;
                Block block2;
                token = this.LT(1);
                this.match(0x31);
                Expression expression = this.paren_expression();
                if (base.inputState.guessing == 0)
                {
                    MacroStatement statement;
                    MacroStatement statement1 = statement = new MacroStatement(ToLexicalInfo(token));
                    statement.set_Name(this.MacroName(token.getText()));
                    MacroStatement statement2 = statement;
                    statement2.get_Arguments().Add(expression);
                    block = statement2.get_Body();
                    container.Add(statement2);
                }
                this.match(0x3d);
            Label_0088:
                if (this.LA(1) == 50)
                {
                    token2 = this.LT(1);
                    this.match(50);
                    expression = this.expression();
                    this.match(0x42);
                    if (base.inputState.guessing == 0)
                    {
                        MacroStatement statement3;
                        MacroStatement statement6 = statement3 = new MacroStatement(ToLexicalInfo(token2));
                        statement3.set_Name(token2.getText());
                        statement4 = statement3;
                        statement4.get_Arguments().Add(expression);
                        block2 = statement4.get_Body();
                        block.Add(statement4);
                    }
                    while (this.LA(1) == 50)
                    {
                        token3 = this.LT(1);
                        this.match(50);
                        expression = this.expression();
                        this.match(0x42);
                        if (base.inputState.guessing == 0)
                        {
                            statement4.get_Arguments().Add(expression);
                        }
                    }
                    int num = 0;
                    while (true)
                    {
                        if (tokenSet_2_.member(this.LA(1)))
                        {
                            this.statement(block2);
                        }
                        else
                        {
                            if (num < 1)
                            {
                                throw new NoViableAltException(this.LT(1), this.getFilename());
                            }
                            goto Label_0088;
                        }
                        num++;
                    }
                }
                int num2 = this.LA(1);
                if (num2 == 0x33)
                {
                    token4 = this.LT(1);
                    this.match(0x33);
                    this.match(0x42);
                    if (base.inputState.guessing == 0)
                    {
                        MacroStatement statement5;
                        MacroStatement statement7 = statement5 = new MacroStatement(ToLexicalInfo(token4));
                        statement5.set_Name(token4.getText());
                        statement4 = statement5;
                        block2 = statement4.get_Body();
                        block.Add(statement4);
                    }
                    int num3 = 0;
                    while (true)
                    {
                        if (tokenSet_2_.member(this.LA(1)))
                        {
                            this.statement(block2);
                        }
                        else
                        {
                            if (num3 < 1)
                            {
                                throw new NoViableAltException(this.LT(1), this.getFilename());
                            }
                            goto Label_02C9;
                        }
                        num3++;
                    }
                }
                if (num2 != 0x3e)
                {
                    throw new NoViableAltException(this.LT(1), this.getFilename());
                }
            Label_02C9:
                this.match(0x3e);
                while ((this.LA(1) == 0x4d) && tokenSet_15_.member(this.LA(2)))
                {
                    this.match(0x4d);
                }
            }
            catch (RecognitionException exception)
            {
                if (base.inputState.guessing != 0)
                {
                    throw;
                }
                this.reportError(exception);
                this.recover(exception, tokenSet_15_);
            }
        }
UnityScriptParser