Beispiel #1
0
        public void CreateBackend_ForCompiler()
        {
            var backendFactory = new BackendFactory(Mock.Of <IMessageHandler>(), Mock.Of <ITimeProvider>());
            var backend        = backendFactory.CreateBackend("compile");

            backend.Should().BeOfType(typeof(CodeGenerator));
        }
Beispiel #2
0
        public void CreateBackend_ForExecute()
        {
            var backendFactory = new BackendFactory(Mock.Of <IMessageHandler>(), Mock.Of <ITimeProvider>());
            var backend        = backendFactory.CreateBackend("execute");

            backend.Should().BeOfType(typeof(Executor));
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var result = Parser.Default.ParseArguments <Options>(args);

            result.WithParsed(o =>
            {
                try
                {
                    var source = new Source(new StreamReader(o.SourceFilePath));
                    source.AddMessageListener(new SourceMessageListener());

                    var parser = FrontendFactory.CreateParser("pascal", "top-down", source);
                    parser.AddMessageListener(new ParserMessageListener());

                    var backend = BackendFactory.CreateBackend(o.Operation);
                    backend.AddMessageListener(new BackendMessageListener());

                    parser.Parse();
                    source.Close();

                    var iCode  = parser.IntermediateCode;
                    var symTab = parser.SymbolTable;

                    backend.Process(iCode, symTab);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            });
        }
Beispiel #4
0
        public void CreateBackend_ThrowsExceptionForUnknownOperation()
        {
            var backendFactory = new BackendFactory(Mock.Of <IMessageHandler>(), Mock.Of <ITimeProvider>());

            backendFactory.CreateBackend("unknown");
        }