Esempio n. 1
0
        public IExpression GetMultiplyExpression()
        {
            IExpression left;
            IExpression right;

            left = GetUnaryExpression();
            while (true)
            {
                switch ((mcc_ntk == -1)?mcc_mntk():mcc_ntk)
                {
                case 39:
                case 40:
                case 41:
                    ;
                    break;

                default:
                    goto label_8;
                }
                switch ((mcc_ntk == -1)?mcc_mntk():mcc_ntk)
                {
                case 39:
                    mcc_consume_token(39);
                    right = GetUnaryExpression();
                    left  = ArithmeticExpression.CreateMultiply(left, right);
                    break;

                case 40:
                    mcc_consume_token(40);
                    right = GetUnaryExpression();
                    left  = ArithmeticExpression.CreateDivide(left, right);
                    break;

                case 41:
                    mcc_consume_token(41);
                    right = GetUnaryExpression();
                    left  = ArithmeticExpression.CreateMod(left, right);
                    break;

                default:
                    mcc_consume_token(-1);
                    throw new ParseException();
                }
            }
            label_8 :;

            { return(left); }
            throw new Exception("Missing return statement in function");
        }
Esempio n. 2
0
        public IExpression GetAddExpression()
        {
            IExpression left;
            IExpression right;

            left = GetMultiplyExpression();
            while (true)
            {
                if (mcc_2_5(2147483647))
                {
                    ;
                }
                else
                {
                    goto label_7;
                }
                switch ((mcc_ntk == -1)?mcc_mntk():mcc_ntk)
                {
                case 37:
                    mcc_consume_token(37);
                    right = GetMultiplyExpression();
                    left  = ArithmeticExpression.CreatePlus(left, right);
                    break;

                case 38:
                    mcc_consume_token(38);
                    right = GetMultiplyExpression();
                    left  = ArithmeticExpression.CreateMinus(left, right);
                    break;

                default:
                    mcc_consume_token(-1);
                    throw new ParseException();
                }
            }
            label_7 :;

            { return(left); }
            throw new Exception("Missing return statement in function");
        }