public void CreateBackend_ForCompiler() { var backendFactory = new BackendFactory(Mock.Of <IMessageHandler>(), Mock.Of <ITimeProvider>()); var backend = backendFactory.CreateBackend("compile"); backend.Should().BeOfType(typeof(CodeGenerator)); }
public void CreateBackend_ForExecute() { var backendFactory = new BackendFactory(Mock.Of <IMessageHandler>(), Mock.Of <ITimeProvider>()); var backend = backendFactory.CreateBackend("execute"); backend.Should().BeOfType(typeof(Executor)); }
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); } }); }
public void CreateBackend_ThrowsExceptionForUnknownOperation() { var backendFactory = new BackendFactory(Mock.Of <IMessageHandler>(), Mock.Of <ITimeProvider>()); backendFactory.CreateBackend("unknown"); }