Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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);
        }