public void setInput(AS3TLexer lexer, ICharStream cs) { this.lexer = lexer; this.cs = cs; }
static void Main(string[] args) { List <string> names = new List <string>(); int _errorCount = 0; string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); var options = new Options(); ICommandLineParser clp = new CommandLineParser(new CommandLineParserSettings(true, Console.Error)); if (!clp.ParseArguments(args, options)) { Environment.Exit(1); } #if !ANTLR #if REV4 Parser4 p = new Parser4(); #else Parser3 p = new Parser3(); #endif p.OutputPath = options.OutputDir; #endif Console.WriteLine("Initializing..."); TemplateGroupFile loader = new TemplateGroupFile(path, null); loader.Load(); // TemplateGroupString templates = loader.Compile() ;//"cpp2");//, typeof(TemplateLexer), null); // templates.Listener = new ErrorListener(); if (options.Recurse) { string rootpath = options.InputFile; if (!rootpath.EndsWith("\\")) { rootpath += @"\"; } Console.WriteLine("Processing..."); AS3TParser parser; string[] files = Directory.GetFiles(options.InputFile, "*.as", SearchOption.AllDirectories); foreach (string f in files) { #if ANTLR AS3TLexer lex = new AS3TLexer(new ANTLRFileStream(f)); //CommonTokenStream tokens = new CommonTokenStream(lex); TokenRewriteStream tokens = new TokenRewriteStream(lex); //CommonTokenStream tokens = new CommonTokenStream(lex); parser = new AS3TParser(tokens); parser.TemplateGroup = templates; parser.OutputPath = options.OutputDir; try { parser.program(); if (options.VerboseLevel > 2) { Console.WriteLine("calling generateSource {0}", parser.Classname); } generateSource(options, tokens, parser.Classname); if (options.VerboseLevel > 2) { Console.WriteLine("calling generateHeader {0}", parser.Classname); } generateHeader(options, tokens, parser.Classname, parser.Basetype, parser.SymTable); parser.Reset(); } catch (NoViableAltException e) { Console.WriteLine("{0} {1}", e.Line, e.Message); _errorCount += 1; } catch (RewriteEmptyStreamException e) { if (options.VerboseLevel > 2) { Console.WriteLine(e.Message); } _errorCount += 1; } catch (ArgumentException e) { Console.WriteLine("{0} {1}", e.Source, e.Message); _errorCount += 1; } catch (NullReferenceException e) { Console.WriteLine("{0} {1}", e.Source, e.Message); _errorCount += 1; } #else Console.WriteLine("{0}", f); p.Parse(f); #endif } Console.WriteLine("xas done. {0} file(s) processed, {1} Error(s)", files.Length, _errorCount); #if DEBUG Console.ReadKey(); #endif } else { #if ANTLR AS3TLexer lex = new AS3TLexer(new ANTLRFileStream(options.InputFile)); TokenRewriteStream tokens = new TokenRewriteStream(lex); AS3TParser parser = new AS3TParser(tokens); parser.TemplateGroup = templates; parser.OutputPath = options.OutputDir; //parser.TemplateGroup = templates. try { parser.program(); generateSource(options, tokens, parser.Classname); generateHeader(options, tokens, parser.Classname, parser.Basetype, parser.SymTable); parser.Reset(); } catch (NoViableAltException e) { if (options.VerboseLevel > 2) { Console.WriteLine(e.Message); } } catch (RewriteEmptyStreamException e) { if (options.VerboseLevel > 2) { Console.WriteLine(e.Message); } } catch (ArgumentException e) { if (options.VerboseLevel > 2) { Console.WriteLine(e.Message); } } catch (NullReferenceException e) { if (options.VerboseLevel > 2) { Console.WriteLine(e.Message); } } Console.WriteLine("xas done. {0} file(s) processed, {1} Error(s)", 1, _errorCount); #if DEBUG Console.ReadKey(); #endif #else p.Parse(options.InputFile); #endif } }