Exemple #1
0
        private static object ParseNumber(
            IRuleNode number,
            int factor)
        {
            var tokenType = GetSingleChildTokenType(number);
            if (tokenType == EsperEPL2GrammarLexer.IntegerLiteral)
            {
                return ParseIntLongByte(number.GetText(), factor);
            }

            if (tokenType == EsperEPL2GrammarLexer.FloatingPointLiteral)
            {
                var numberText = number.GetText();
                if (numberText.EndsWith("f") || numberText.EndsWith("F")) {
                    numberText = numberText.Substring(0, numberText.Length - 1);
                    return Single.Parse(numberText) * factor;
                } else if (numberText.EndsWith("m")) {
                    numberText = numberText.Substring(0, numberText.Length - 1);
                    return Decimal.Parse(numberText) * factor;
                } else if (numberText.EndsWith("d") || numberText.EndsWith("D")) {
                    numberText = numberText.Substring(0, numberText.Length - 1);
                }

                return Double.Parse(numberText) * factor;
            }

            throw ASTWalkException.From("Encountered unrecognized constant", number.GetText());
        }
            public virtual string Walk(IParseTreeListener listener, IParseTree t)
            {
                counter++;
                if (t is IErrorNode)
                {
                    listener.VisitErrorNode((IErrorNode)t);
                    txt = txt + t.ToString();
                    return(txt);
                }
                else
                {
                    if (t is ITerminalNode)
                    {
                        listener.VisitTerminal((ITerminalNode)t);
                        return(txt);
                    }
                }
                IRuleNode r          = (IRuleNode)t;
                string    parentname = r.GetText();

                //Console.WriteLine("##### PARENT " + counter + "####" + parentname + "#####");
                EnterRule(listener, r);
                int n = r.ChildCount;

                for (int i = 0; i < n; i++)
                {
                    Walk(listener, r.GetChild(i));

                    Console.WriteLine("##### CHILD " + i + " of " + parentname + "####" + r.GetChild(i).GetText() + "#####");
                }

                ExitRule(listener, r);
                return(txt);
            }
Exemple #3
0
     private static Object ParseNumber(IRuleNode number, int factor) {
         var tokenType = GetSingleChildTokenType(number);
         if (tokenType == EsperEPL2GrammarLexer.IntegerLiteral) {
             return ParseIntLongByte(number.GetText(), factor);
         }
 
         else if (tokenType == EsperEPL2GrammarLexer.FloatingPointLiteral) {
             var numberText = number.GetText();
             if (numberText.EndsWith("f") || numberText.EndsWith("F")) {
                 return FloatValue.ParseString(number.GetText()) * factor;
             }
             else {
                 return DoubleValue.ParseString(number.GetText()) * factor;
             }
         }
         throw ASTWalkException.From("Encountered unrecognized constant", number.GetText());
     }
Exemple #4
0
 public override long VisitChildren(IRuleNode node)
 {
     throw new ValidationParseException($"Unexpected node: {node.GetText()}");
 }
Exemple #5
0
        public override Expression VisitChildren(IRuleNode node)
        {
            writer($"{System.Reflection.MethodBase.GetCurrentMethod().Name} | Childs: {node.ChildCount} |{node.SourceInterval} | {node.GetText()}");
            Expression expression = base.VisitChildren(node);

            return(expression);
        }