Boo.Lang.Parser.BooParserBase.assignment_expression C# (CSharp) Method

assignment_expression() protected method

protected assignment_expression ( ) : Expression
return Expression
        protected Expression assignment_expression()
        {
            Expression e;

            IToken  op = null;
            IToken  ipbo = null;
            IToken  ipxo = null;
            IToken  ipba = null;
            IToken  ipsl = null;
            IToken  ipsr = null;

                e = null;
                Expression r=null;
                IToken token = null;
                BinaryOperatorType binaryOperator = BinaryOperatorType.None;

            try {      // for error handling
            e=conditional_expression();
            {
                switch ( LA(1) )
                {
                case ASSIGN:
                case INPLACE_BITWISE_OR:
                case INPLACE_EXCLUSIVE_OR:
                case INPLACE_BITWISE_AND:
                case INPLACE_SHIFT_LEFT:
                case INPLACE_SHIFT_RIGHT:
                {
                    {
                        switch ( LA(1) )
                        {
                        case ASSIGN:
                        {
                            {
                                op = LT(1);
                                match(ASSIGN);
                                if (0==inputState.guessing)
                                {

                                                        token = op;
                                                        binaryOperator = OperatorParser.ParseAssignment(op.getText());

                                }
                            }
                            break;
                        }
                        case INPLACE_BITWISE_OR:
                        {
                            {
                                ipbo = LT(1);
                                match(INPLACE_BITWISE_OR);
                                if (0==inputState.guessing)
                                {

                                                        token = ipbo;
                                                        binaryOperator = BinaryOperatorType.InPlaceBitwiseOr;

                                }
                            }
                            break;
                        }
                        case INPLACE_EXCLUSIVE_OR:
                        {
                            {
                                ipxo = LT(1);
                                match(INPLACE_EXCLUSIVE_OR);
                                if (0==inputState.guessing)
                                {

                                                        token = ipxo;
                                                        binaryOperator = BinaryOperatorType.InPlaceExclusiveOr;

                                }
                            }
                            break;
                        }
                        case INPLACE_BITWISE_AND:
                        {
                            {
                                ipba = LT(1);
                                match(INPLACE_BITWISE_AND);
                                if (0==inputState.guessing)
                                {

                                                        token = ipba;
                                                        binaryOperator = BinaryOperatorType.InPlaceBitwiseAnd;

                                }
                            }
                            break;
                        }
                        case INPLACE_SHIFT_LEFT:
                        {
                            {
                                ipsl = LT(1);
                                match(INPLACE_SHIFT_LEFT);
                                if (0==inputState.guessing)
                                {

                                                        token = ipsl;
                                                        binaryOperator = BinaryOperatorType.InPlaceShiftLeft;

                                }
                            }
                            break;
                        }
                        case INPLACE_SHIFT_RIGHT:
                        {
                            {
                                ipsr = LT(1);
                                match(INPLACE_SHIFT_RIGHT);
                                if (0==inputState.guessing)
                                {

                                                        token = ipsr;
                                                        binaryOperator = BinaryOperatorType.InPlaceShiftRight;

                                }
                            }
                            break;
                        }
                        default:
                        {
                            throw new NoViableAltException(LT(1), getFilename());
                        }
                         }
                    }
                    r=assignment_expression();
                    if (0==inputState.guessing)
                    {

                                    BinaryExpression be = new BinaryExpression(ToLexicalInfo(token));
                                    be.Operator = binaryOperator;
                                    be.Left = e;
                                    be.Right = r;
                                    e = be;

                    }
                    break;
                }
                case EOF:
                case DEDENT:
                case ESEPARATOR:
                case EOL:
                case ASSEMBLY_ATTRIBUTE_BEGIN:
                case MODULE_ATTRIBUTE_BEGIN:
                case ABSTRACT:
                case AND:
                case BREAK:
                case CONTINUE:
                case CALLABLE:
                case CAST:
                case CHAR:
                case CLASS:
                case DEF:
                case DO:
                case ELSE:
                case ENUM:
                case EVENT:
                case FINAL:
                case FOR:
                case FALSE:
                case GOTO:
                case INTERFACE:
                case INTERNAL:
                case IF:
                case NEW:
                case NULL:
                case OR:
                case OVERRIDE:
                case PARTIAL:
                case PUBLIC:
                case PROTECTED:
                case PRIVATE:
                case RAISE:
                case RETURN:
                case SELF:
                case SUPER:
                case STATIC:
                case STRUCT:
                case THEN:
                case TRY:
                case TRANSIENT:
                case TRUE:
                case TYPEOF:
                case UNLESS:
                case VIRTUAL:
                case WHILE:
                case YIELD:
                case TRIPLE_QUOTED_STRING:
                case EOS:
                case LPAREN:
                case RPAREN:
                case DOUBLE_QUOTED_STRING:
                case SINGLE_QUOTED_STRING:
                case ID:
                case MULTIPLY:
                case LBRACK:
                case RBRACK:
                case COMMA:
                case SPLICE_BEGIN:
                case DOT:
                case COLON:
                case LBRACE:
                case RBRACE:
                case QQ_BEGIN:
                case QQ_END:
                case SUBTRACT:
                case LONG:
                case INCREMENT:
                case DECREMENT:
                case ONES_COMPLEMENT:
                case INT:
                case BACKTICK_QUOTED_STRING:
                case RE_LITERAL:
                case DOUBLE:
                case FLOAT:
                case TIMESPAN:
                {
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "assignment_expression");
                recover(ex,tokenSet_105_);
            }
            else
            {
                throw ex;
            }
            }
            return e;
        }
BooParserBase