1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
using System;
//import java.io.*;
//import ExprLexer;
//import ExprParser;
using AST = antlr.collections.AST;
using CharBuffer = antlr.CharBuffer;
// wh: bug(?) in DotGNU 0.6 - "using antlr" will workaround the problem.
#if __CSCC__
using antlr;
#endif
class AppMain {
public static void Main(string[] args)
{
try {
ExprLexer lexer = new ExprLexer(new CharBuffer(Console.In));
ExprParser parser = new ExprParser(lexer);
// set the type of tree node to create; this is default action
// so it is unnecessary to do it here, but demos capability.
parser.setASTNodeClass("antlr.CommonAST");
parser.expr();
antlr.CommonAST ast = (antlr.CommonAST)parser.getAST();
if (ast != null) {
Console.Out.WriteLine(ast.ToStringList());
} else {
Console.Out.WriteLine("null AST");
}
} catch(Exception e) {
Console.Error.WriteLine("exception: "+e);
}
}
}
|