Example #1
0
    public static void Main(string[] args)
    {
        try
        {
            CalcLexer lexer = new CalcLexer(new CharBuffer(Console.In));
            lexer.setFilename("<stdin>");
            CalcParser parser = new CalcParser(lexer);
            parser.setFilename("<stdin>");

            // Parse the input expression
            parser.expr();
            CommonAST t = (CommonAST)parser.getAST();

            // Print the resulting tree out in LISP notation
            Console.Out.WriteLine(t.ToStringTree());
            CalcTreeWalker walker = new CalcTreeWalker();

            // Traverse the tree created by the parser
            float r = walker.expr(t);
            Console.Out.WriteLine("value is " + r);
        }
        catch (TokenStreamException e)
        {
            Console.Error.WriteLine("exception: " + e);
        }
        catch (RecognitionException e)
        {
            Console.Error.WriteLine("exception: " + e);
        }
    }