public static void Main(string[] args) { if (args.Length == 1) { string fullpath; if ( Path.IsPathRooted(args[0]) ) fullpath = args[0]; else fullpath = Path.Combine(Environment.CurrentDirectory, args[0]); Console.Out.WriteLine("Processing file: {0}", fullpath); ICharStream input = new ANTLRFileStream(fullpath); LangLexer lex = new LangLexer(input); CommonTokenStream tokens = new CommonTokenStream(lex); LangParser parser = new LangParser(tokens); //LangParser.decl_return r = parser.decl(); LangParser.start_return r = parser.start(); Console.Out.WriteLine("tree: "+((ITree)r.Tree).ToStringTree()); CommonTree r0 = ((CommonTree)r.Tree); CommonTreeNodeStream nodes = new CommonTreeNodeStream(r0); nodes.TokenStream = tokens; LangDumpDecl walker = new LangDumpDecl(nodes); walker.decl(); } else Console.Error.WriteLine("Usage: TreeParser <input-file>"); }
public string fromString(string input) { input = new Stubs() + input; ICharStream stream = CharStreams.fromString(input); ITokenSource lexer = new LangLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new LangParser(tokens); parser.BuildParseTree = true; var tree = parser.prog(); var visitor = new Translator.Translator(tokens); var prog = visitor.VisitProg(tree); var env = new Environment(); prog.Validate(env); return(prog.ToString()); }
public static void Main(string[] args) { if (args.Length == 1) { string fullpath; if (Path.IsPathRooted(args[0])) { fullpath = args[0]; } else { fullpath = Path.Combine(Environment.CurrentDirectory, args[0]); } Console.Out.WriteLine("Processing file: {0}", fullpath); ICharStream input = new ANTLRFileStream(fullpath); LangLexer lex = new LangLexer(input); CommonTokenStream tokens = new CommonTokenStream(lex); LangParser parser = new LangParser(tokens); //LangParser.decl_return r = parser.decl(); LangParser.start_return r = parser.start(); Console.Out.WriteLine("tree: " + ((ITree)r.Tree).ToStringTree()); CommonTree r0 = ((CommonTree)r.Tree); CommonTreeNodeStream nodes = new CommonTreeNodeStream(r0); nodes.TokenStream = tokens; LangDumpDecl walker = new LangDumpDecl(nodes); walker.decl(); } else { Console.Error.WriteLine("Usage: TreeParser <input-file>"); } }
public static (LangParser, ITokenStream) GetTree(string code) { ICharStream stream = CharStreams.fromString(code); ITokenSource lexer = new LangLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new LangParser(tokens); parser.BuildParseTree = true; return(parser, tokens); }
static void Main(string[] args) { using (StreamReader fileStream = new StreamReader(@"C:\Users\superblaubeere27\Desktop\compilerTest\Compiler\Compiler\test.lang")) { AntlrInputStream inputStream = new AntlrInputStream(fileStream); LangLexer lexer = new LangLexer(inputStream); CommonTokenStream commonTokenStream = new CommonTokenStream(lexer); LangParser parser = new LangParser(commonTokenStream); new CompilerVisitor().VisitFile(parser.file()); } }
public static void Main(string[] args) { try { LangLexer lexer = new LangLexer(new CharBuffer(Console.In)); LangParser parser = new LangParser(lexer); parser.block(); CommonAST a = (CommonAST) parser.getAST(); Console.Out.WriteLine(a.ToStringList()); LangWalker walker = new LangWalker(); walker.block(a); // walk tree Console.Out.WriteLine("done walking"); } catch(Exception e) { Console.Error.WriteLine("exception: "+e); } }
public static void Main(string[] args) { try { LangLexer lexer = new LangLexer(new CharBuffer(Console.In)); LangParser parser = new LangParser(lexer); parser.block(); CommonAST a = (CommonAST)parser.getAST(); Console.Out.WriteLine(a.ToStringList()); LangWalker walker = new LangWalker(); walker.block(a); // walk tree Console.Out.WriteLine("done walking"); } catch (Exception e) { Console.Error.WriteLine("exception: " + e); } }