Example #1
0
        public static void Main(string[] args)
        {
            string code = File.ReadAllText("/Volumes/exFat/Vectrex/hello2.asm");

            AntlrInputStream stream = new AntlrInputStream(code);
            AsmLexer         lexer  = new AsmLexer(stream);
            //lexer.AddErrorListener(new LexerErrorListener());
            CommonTokenStream tokens = new CommonTokenStream(lexer);

            AsmParser parser = new AsmParser(tokens);

            //parser.AddErrorListener(new ParserErrorListener());
            AsmParser.ProgContext tree;
            tree = parser.prog();

            AsmVisitor visitor = new AsmVisitor();

            visitor.Visit(tree);

            foreach (byte b in visitor.m_objectCode)
            {
                Console.Write("{0:X2} ", b);
            }

            File.WriteAllBytes("/Volumes/exFat/Vectrex/hello2.bin", visitor.m_objectCode.ToArray());
        }
Example #2
0
        public void Run(AntlrInputStream inputStream, Stream w)
        {
            var lexer             = new AsmLexer(inputStream);
            var commonTokenStream = new CommonTokenStream(lexer);
            var parser            = new AsmParser(commonTokenStream);
            var context           = parser.prog();

            ParseTreeWalker walker   = new ParseTreeWalker();
            AsmListener     listener = new AsmListener(parser, w);

            walker.Walk(listener, context);
        }
Example #3
0
        static void Main(string[] args)
        {
            var input  = new AntlrFileStream("Modl.Vm\\test.modl");
            var lexer  = new AsmLexer(input);
            var tokens = new CommonTokenStream(lexer);
            var parser = new AsmParser(tokens);
            var tree   = parser.program();
            var visit  = new AsmAstBuilder();

            visit.VisitProgram(tree);

            var vm = new VirtualMachine(visit.Program, visit.Functions);

            vm.Execute(true);
        }