Exemple #1
0
        void Literal(out OqlExpression expression)
        {
            OqlExpression result = null;

            switch (la.kind)
            {
            case 2: {
                Get();
                result = new NumberExpression(double.Parse(t.val, CultureInfo.InvariantCulture), t.line, t.col);
                break;
            }

            case 3: {
                Get();
                result = new NumberExpression(int.Parse(t.val), t.line, t.col);
                break;
            }

            case 4: {
                Get();
                result = new StringLiteralExpression(t.val, t.line, t.col);
                break;
            }

            case 13: {
                Get();
                result = new NamedConstantExpression("TRUE", t.line, t.col);
                break;
            }

            case 38: {
                Get();
                result = new NamedConstantExpression("FALSE", t.line, t.col);
                break;
            }

            case 12: {
                Get();
                result = new NamedConstantExpression("NULL", t.line, t.col);
                break;
            }

            default: SynErr(45); break;
            }
            expression = result.Simplify();
        }