예제 #1
0
        public void executeOneStep(Statement s)
        {
            IExeStack <Statement>      exeStack    = new ExeStack <Statement>();
            ISymbolTable <string, int> symbolTable = new SymbolTable <string, int>();
            IOutput <int> messages        = new Output <int>();
            IFileTable <int, FileData> fd = new FileTable <int, FileData>();
            PrgState       state          = new PrgState(symbolTable, exeStack, messages, fd);
            IPrgRepository repo           = new PrgRepository(state);
            Controller     ctrl           = new Controller(repo);

            ctrl.executeOneStep();
        }
예제 #2
0
        static void Main(string[] args)
        {
            //IExeStack<Statement> exeStack = new ExeStack<Statement>();
            //Model.ADT.IDictionary<string, int> symbolTable = new DictionaryC<string, int>();
            //IOutput<int> messages = new Output<int>();
            //IFileTable<int, FileData> fd = new FileTable<int, FileData>();

            //Statement s = new CompoundStatement(new AssignStatement("v", new ConstantExpression(2)), new PrintStatement(new VariableExpression("v")));
            //exeStack.Push(s);
            //PrgState state = new PrgState(symbolTable, exeStack, messages, fd);
            //IPrgRepository repo = new PrgRepository(state);
            //Controller.Controller ctrl = new Controller.Controller(repo);

            IExeStack <Statement> exeStack1 = new ExeStack <Statement>();

            Model.ADT.IDictionary <string, int> symbolTable1 = new DictionaryC <string, int>();
            IOutput <int> messages1        = new Output <int>();
            IFileTable <int, FileData> fd1 = new FileTable <int, FileData>();

            Statement s1 = new CompoundStatement(
                new CompoundStatement(
                    new CompoundStatement(
                        new OpenFileStatement("var_f", "D:\\Semestrul3\\map\\Lab7\\Lab7\\test.in"),

                        new ReadFileStatement(new VariableExpression("var_f"), "var_c")
                        ),
                    new CompoundStatement(
                        new PrintStatement(new VariableExpression("var_c")),
                        new IfStatement(
                            new VariableExpression("var_c"),
                            new PrintStatement(new ConstantExpression(0))
                            , new CompoundStatement(
                                new ReadFileStatement(new VariableExpression("var_f"), "var_c"),
                                new PrintStatement(new VariableExpression("var_c")))))), new CloseFileStatement(new VariableExpression("var_f")));

            //exeStack1.Push(s1);
            PrgState       state1 = new PrgState(symbolTable1, exeStack1, messages1, fd1, s1);
            IPrgRepository repo1  = new PrgRepository(state1);

            Controller.Controller ctrl1 = new Controller.Controller(repo1);

            TextMenu menu = new TextMenu();

            menu.addCommand(new ExitCommand("0", "exit"));
            //menu.addCommand(new RunExample("1", s.ToString(), ctrl));
            menu.addCommand(new RunExample("2", s1.ToString(), ctrl1));
            menu.show();
        }