File: Main.cs

package info (click to toggle)
antlr 2.7.7%2Bdfsg-9.2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 9,964 kB
  • sloc: java: 54,649; cs: 12,537; makefile: 8,847; cpp: 7,359; pascal: 5,273; sh: 4,333; python: 4,299; lisp: 1,969; xml: 220; lex: 192; ansic: 127
file content (36 lines) | stat: -rwxr-xr-x 897 bytes parent folder | download | duplicates (11)
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);
		}
	}
}