static void Main(string[] args) { Console.WriteLine("We are starting"); // if (args.Length < 1) { // Console.WriteLine("You need a path"); // return; // } // string path = @"F:\vb6\TestProj\Class1.cls"; string path = @"F:\vb6\TestProj\Form1.frm"; string text = null; using (var reader = new StreamReader(File.Open(path, FileMode.Open))) { text = reader.ReadToEnd(); } var stream = new AntlrInputStream(text); var lexer = new VisualBasic6Lexer(stream); var tokenStream = new CommonTokenStream(lexer); var parser = new VisualBasic6Parser(tokenStream); var ctx = parser.startRule(); var treeWalker = new ParseTreeWalker(); if (!parser.BuildParseTree) { throw new Exception("We are not built"); } treeWalker.Walk(new VB6Listener(), ctx); Console.ReadKey(); }
private void parseBtn_Click(object sender, EventArgs e) { #if DEBUG && HELLO String input = editor.Text; ICharStream stream = CharStreams.fromstring(input); ITokenSource lexer = new HelloLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); HelloParser parser = new HelloParser(tokens); HelloCustomListener helloListener = new HelloCustomListener(); parser.r().EnterRule(helloListener); #elif DEBUG && ADVANCED String input = editor.Text; ICharStream stream = CharStreams.fromstring(input); ITokenSource lexer = new VisualBasic6Lexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); VisualBasic6Parser parser = new VisualBasic6Parser(tokens); IParseTree tree = parser.startRule(); ParseTreeWalker walker = new ParseTreeWalker(); VisualBasic6CustomListener listener = new VisualBasic6CustomListener(); walker.Walk(listener, tree); //parser.startRule().EnterRule(listener); #endif }
private bool ConvertCodeFile(Stream inputStream, string outputPath, string name, CompilationUnit compilationUnit) { var input = new AntlrInputStream(inputStream); var lexer = new VisualBasic6Lexer(input); var tokens = new CommonTokenStream(lexer); var parser = new VisualBasic6Parser(tokens); var tree = parser.startRule(); var visitor = new ESCVisitor(name, compilationUnit); foreach (var node in visitor.Visit(tree)) { // Just enumerate it all } var result = compilationUnit.Generate(name); File.WriteAllText(outputPath, result); return(true); }