public void prints_ast() { var query = @"{ complicatedArgs { intArgField(intArg: 2) } }"; var builder = new AntlrDocumentBuilder(); var document = builder.Build(query); var result = _printer.Visit(document); result.ShouldNotBeNull(); }
public void prints_ast() { var query = @"{ complicatedArgs { intArgField(intArg: 2) } } "; var document = _builder.Build(query); var result = _printer.Visit(document); result.ShouldNotBeNull(); result.ToString().ShouldBe(MonetizeLineBreaks(query)); }
static void Main() { const string source = @" func main(argc: int, argv: **char): int { var x = 10 + (20 * 30 ^ 40 * 50); return x * 3 + 1; } "; Console.WriteLine("-- Source --"); Console.WriteLine(source); Console.WriteLine(); var lexer = new LoonyLexer(source); var parser = new LoonyParser(lexer); var document = parser.ParseAll(); Console.WriteLine("-- AST --"); var printer = new AstPrintVisitor(Console.Out); printer.Visit(document); Console.WriteLine(); Console.WriteLine(); /*var simplify = new AstSimplifyTransform(); * document = simplify.Visit(document); * * Console.WriteLine("-- Simplified AST --"); * printer.Visit(document); * Console.WriteLine(); * Console.WriteLine();*/ Console.WriteLine("-- Assembly --"); var assembler = new Assembler(); var compiler = new AstCompileVisitor(assembler); compiler.Visit(document); assembler.Compile(Console.Out); Console.ReadLine(); }
static void Main() { const string source = @" func main(argc: int, argv: **char): int { var x = 10 + (20 * 30 ^ 40 * 50); return x * 3 + 1; } "; Console.WriteLine("-- Source --"); Console.WriteLine(source); Console.WriteLine(); var lexer = new LoonyLexer(source); var parser = new LoonyParser(lexer); var document = parser.ParseAll(); Console.WriteLine("-- AST --"); var printer = new AstPrintVisitor(Console.Out); printer.Visit(document); Console.WriteLine(); Console.WriteLine(); /*var simplify = new AstSimplifyTransform(); document = simplify.Visit(document); Console.WriteLine("-- Simplified AST --"); printer.Visit(document); Console.WriteLine(); Console.WriteLine();*/ Console.WriteLine("-- Assembly --"); var assembler = new Assembler(); var compiler = new AstCompileVisitor(assembler); compiler.Visit(document); assembler.Compile(Console.Out); Console.ReadLine(); }
public static string Print(INode node) { var result = Visitor.Visit(node); return(result?.ToString() ?? string.Empty); }