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

unary_expression() public méthode

public unary_expression ( ) : Expression
Résultat Expression
        public Expression unary_expression()
        {
            Expression expression = null;
            IToken token = null;
            IToken token2 = null;
            try
            {
                TypeReference reference;
                int num = this.LA(1);
                switch (num)
                {
                    case 0x4f:
                    case 80:
                    case 0x52:
                    case 0x58:
                    case 0x67:
                        expression = this.prefix_unary_expression();
                        break;

                    default:
                        if (((((num != 12) && (num != 15)) && ((num != 0x13) && (num != 0x1b))) && (((num != 0x1d) && (num != 0x27)) && ((num != 40) && (num != 0x2a)))) && ((((num != 0x2c) && (num != 0x3b)) && ((num != 60) && (num != 0x3d))) && ((((num != 0x3f) && (num != 0x44)) && ((num != 0x69) && (num != 0x6a))) && (((num != 0x6b) && (num != 0x6c)) && (num != 0x6d)))))
                        {
                            throw new NoViableAltException(this.LT(1), this.getFilename());
                        }
                        expression = this.postfix_unary_expression();
                        break;
                }
                if ((this.LA(1) == 4) && ((this.LA(2) == 0x13) || (this.LA(2) == 0x3b)))
                {
                    token = this.LT(1);
                    this.match(4);
                    reference = this.type_reference();
                    if (base.inputState.guessing == 0)
                    {
                        TryCastExpression expression2;
                        TryCastExpression expression1 = expression2 = new TryCastExpression(ToLexicalInfo(token));
                        expression2.set_Target(expression);
                        expression2.set_Type(reference);
                        expression = expression2;
                    }
                    return expression;
                }
                if ((this.LA(1) == 6) && ((this.LA(2) == 0x13) || (this.LA(2) == 0x3b)))
                {
                    token2 = this.LT(1);
                    this.match(6);
                    reference = this.type_reference();
                    if (base.inputState.guessing == 0)
                    {
                        CastExpression expression3;
                        CastExpression expression6 = expression3 = new CastExpression(ToLexicalInfo(token2));
                        expression3.set_Target(expression);
                        expression3.set_Type(reference);
                        expression = expression3;
                    }
                    return expression;
                }
                if (!tokenSet_20_.member(this.LA(1)) || !tokenSet_28_.member(this.LA(2)))
                {
                    throw new NoViableAltException(this.LT(1), this.getFilename());
                }
                return expression;
            }
            catch (RecognitionException exception)
            {
                if (base.inputState.guessing != 0)
                {
                    throw;
                }
                this.reportError(exception);
                this.recover(exception, tokenSet_20_);
                return expression;
            }
            return expression;
        }
UnityScriptParser