예제 #1
0
        private string Generate(string file)
        {
            var f = GetTestFile(file);

            using (var stream = File.OpenRead(f))
            {
                var            lexer         = new GrammarLexer(new AntlrInputStream(stream));
                var            parser        = new GrammarParser(new CommonTokenStream(lexer));
                var            visitor       = new TarsGrammarVisitor(f);
                AdhocWorkspace cw            = new AdhocWorkspace();
                var            formattedNode = Formatter.Format(visitor.Visit(parser.tarsDefinition()), cw);
                return(formattedNode.ToFullString());
            }
        }
예제 #2
0
 public void Generate(string[] files, string dest)
 {
     foreach (var file in files)
     {
         using (var stream = File.OpenRead(file))
         {
             var lexer   = new GrammarLexer(new AntlrInputStream(stream));
             var parser  = new GrammarParser(new CommonTokenStream(lexer));
             var visitor = new TarsGrammarVisitor(file);
             var syntax  = Formatter.Format(visitor.Visit(parser.tarsDefinition()), workspace);
             File.WriteAllText(Path.Combine(dest, Path.GetFileNameWithoutExtension(file) + ".cs"), syntax.ToFullString());
         }
     }
 }