Пример #1
0
        public static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                string fullpath;
                if ( Path.IsPathRooted(args[0]) )
                    fullpath = args[0];
                else
                    fullpath = Path.Combine(Environment.CurrentDirectory, args[0]);

                Console.Out.WriteLine("Processing file: {0}", fullpath);
                ICharStream input = new ANTLRFileStream(fullpath);
                LangLexer lex = new LangLexer(input);
                CommonTokenStream tokens = new CommonTokenStream(lex);
                LangParser parser = new LangParser(tokens);

                //LangParser.decl_return r = parser.decl();
                LangParser.start_return r = parser.start();
                Console.Out.WriteLine("tree: "+((ITree)r.Tree).ToStringTree());
                CommonTree r0 = ((CommonTree)r.Tree);
                CommonTreeNodeStream nodes = new CommonTreeNodeStream(r0);
                nodes.TokenStream = tokens;
                LangDumpDecl walker = new LangDumpDecl(nodes);
                walker.decl();
            }
            else
                Console.Error.WriteLine("Usage: TreeParser <input-file>");
        }
Пример #2
0
        public string fromString(string input)
        {
            input = new Stubs() + input;

            ICharStream stream = CharStreams.fromString(input);

            ITokenSource lexer  = new LangLexer(stream);
            ITokenStream tokens = new CommonTokenStream(lexer);

            var parser = new LangParser(tokens);

            parser.BuildParseTree = true;

            var tree = parser.prog();

            var visitor = new Translator.Translator(tokens);

            var prog = visitor.VisitProg(tree);

            var env = new Environment();

            prog.Validate(env);

            return(prog.ToString());
        }
Пример #3
0
        public static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                string fullpath;
                if (Path.IsPathRooted(args[0]))
                {
                    fullpath = args[0];
                }
                else
                {
                    fullpath = Path.Combine(Environment.CurrentDirectory, args[0]);
                }

                Console.Out.WriteLine("Processing file: {0}", fullpath);
                ICharStream       input  = new ANTLRFileStream(fullpath);
                LangLexer         lex    = new LangLexer(input);
                CommonTokenStream tokens = new CommonTokenStream(lex);
                LangParser        parser = new LangParser(tokens);

                //LangParser.decl_return r = parser.decl();
                LangParser.start_return r = parser.start();
                Console.Out.WriteLine("tree: " + ((ITree)r.Tree).ToStringTree());
                CommonTree           r0    = ((CommonTree)r.Tree);
                CommonTreeNodeStream nodes = new CommonTreeNodeStream(r0);
                nodes.TokenStream = tokens;
                LangDumpDecl walker = new LangDumpDecl(nodes);
                walker.decl();
            }
            else
            {
                Console.Error.WriteLine("Usage: TreeParser <input-file>");
            }
        }
Пример #4
0
        public static (LangParser, ITokenStream) GetTree(string code)
        {
            ICharStream stream = CharStreams.fromString(code);

            ITokenSource lexer  = new LangLexer(stream);
            ITokenStream tokens = new CommonTokenStream(lexer);

            var parser = new LangParser(tokens);

            parser.BuildParseTree = true;
            return(parser, tokens);
        }
Пример #5
0
        static void Main(string[] args)
        {
            using (StreamReader fileStream = new StreamReader(@"C:\Users\superblaubeere27\Desktop\compilerTest\Compiler\Compiler\test.lang"))
            {
                AntlrInputStream inputStream = new AntlrInputStream(fileStream);

                LangLexer         lexer             = new LangLexer(inputStream);
                CommonTokenStream commonTokenStream = new CommonTokenStream(lexer);
                LangParser        parser            = new LangParser(commonTokenStream);

                new CompilerVisitor().VisitFile(parser.file());
            }
        }
Пример #6
0
		public static void Main(string[] args) {
			try {
				LangLexer lexer = new LangLexer(new CharBuffer(Console.In));
				LangParser parser = new LangParser(lexer);
				parser.block();
				CommonAST a = (CommonAST) parser.getAST();
				Console.Out.WriteLine(a.ToStringList());
				LangWalker walker = new LangWalker();
				walker.block(a);	// walk tree
				Console.Out.WriteLine("done walking");
			} catch(Exception e) {
				Console.Error.WriteLine("exception: "+e);
			}
		}
Пример #7
0
 public static void Main(string[] args)
 {
     try {
         LangLexer  lexer  = new LangLexer(new CharBuffer(Console.In));
         LangParser parser = new LangParser(lexer);
         parser.block();
         CommonAST a = (CommonAST)parser.getAST();
         Console.Out.WriteLine(a.ToStringList());
         LangWalker walker = new LangWalker();
         walker.block(a);                        // walk tree
         Console.Out.WriteLine("done walking");
     } catch (Exception e) {
         Console.Error.WriteLine("exception: " + e);
     }
 }