Esempio n. 1
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);
                }
            });
        }
Esempio n. 2
0
        public void AddMessageListener_ShouldRegisterAMessageListener()
        {
            var mockMessageHandler = new Mock <IMessageHandler>();
            var source             = new Source(new StringReader("A"), mockMessageHandler.Object);

            var messageListener = Mock.Of <IMessageListener>();

            source.AddMessageListener(messageListener);

            mockMessageHandler.Verify(handler => handler.AddListener(messageListener));
        }