Beispiel #1
0
        static void Main(string[] args)
        {
            Statement statement = new CompStmt(
                new AssignStmt("v", new ConstExpr(2)),
                new PrintStmt(new VarExpr("v")));

            Statement st2 = new CompStmt(
                new AssignStmt(
                    "a",
                    new ArithExpr('+',
                                  new ConstExpr(2),
                                  new ArithExpr('*',
                                                new ConstExpr(3),
                                                new ConstExpr(5)
                                                )
                                  )),
                new CompStmt(
                    new AssignStmt(
                        "b",
                        new ArithExpr('+',
                                      new VarExpr("a"),
                                      new ConstExpr(1)
                                      )),
                    new PrintStmt(new VarExpr("b"))));

            Statement st3 = new CompStmt(
                new AssignStmt("v", new ArithExpr('/',
                                                  new VarExpr("2"),
                                                  new ConstExpr(0)
                                                  )),
                new PrintStmt(new VarExpr("v")));

            Statement st4 = new CompStmt(
                new OpenFileStmt("var_f", "test.in"),
                new CompStmt(
                    new ReadFileStmt(new VarExpr("var_f"), "var_c"),
                    new CompStmt(
                        new PrintStmt(new VarExpr("var_c")),
                        new CompStmt(
                            new IfStmt(
                                new VarExpr("var_c"),
                                new CompStmt(
                                    new ReadFileStmt(new VarExpr("var_f"), "var_c"),
                                    new PrintStmt(new VarExpr("var_c"))
                                    ),
                                new PrintStmt(new ConstExpr(0))
                                ),
                            new CloseFileStmt(new VarExpr("var_f")))
                        )
                    )
                );

            ProgState   prg8  = new ProgState(new SymbolTable <String, int>(), new ExeStack <Statement>(), new Output <int>(), new FileTable <int, FileData>(), statement);
            IRepository repo8 = new Repository(prg8, "file88.txt");
            Controller  ctr8  = new Controller(repo8);

            ProgState   prg2  = new ProgState(new SymbolTable <String, int>(), new ExeStack <Statement>(), new Output <int>(), new FileTable <int, FileData>(), st2);
            IRepository repo2 = new Repository(prg2, "file1.txt");
            Controller  ctr2  = new Controller(repo2);

            ProgState   prg3  = new ProgState(new SymbolTable <String, int>(), new ExeStack <Statement>(), new Output <int>(), new FileTable <int, FileData>(), st3);
            IRepository repo3 = new Repository(prg3, "file2.txt");
            Controller  ctr3  = new Controller(repo3);

            ProgState   prg4  = new ProgState(new SymbolTable <String, int>(), new ExeStack <Statement>(), new Output <int>(), new FileTable <int, FileData>(), st4);
            IRepository repo4 = new Repository(prg4, "file3.txt");
            Controller  ctr4  = new Controller(repo4);

            TextMenu menu = new TextMenu();

            menu.addCommand(new ExitCommand("0", "exit"));
            menu.addCommand(new AllStepCommand("10", statement.toString(), ctr8));
            menu.addCommand(new AllStepCommand("2", st2.toString(), ctr2));
            menu.addCommand(new AllStepCommand("3", st3.toString(), ctr3));
            menu.addCommand(new AllStepCommand("4", st4.toString(), ctr4));
            menu.show();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            IStmt ex1 = new CompStmt(
                new OpenRFile("var_f", "file1.txt"),
                new CompStmt(
                    new ReadFile(new VarExp("var_f"), "var_c"),
                    new CompStmt(
                        new PrintStmt(new VarExp("var_c")),
                        new CompStmt(
                            new IfStmt(new VarExp("var_c"), new CompStmt(new ReadFile(new VarExp("var_f"), "var_c"), new PrintStmt(new VarExp("var_c"))),
                                       new PrintStmt(new ConstExp(0))),
                            new CloseRFile(new VarExp("var_f")))
                        )));


            IStmt ex2 = new CompStmt(new OpenRFile("var_f", "file1.txt"),
                                     new CompStmt(new ReadFile(new VarExp("var_f"), "var_c"),
                                                  new IfStmt(new VarExp("var_f"), new CompStmt(new ReadFile(new VarExp("var_f"), "var_c"),
                                                                                               new PrintStmt(new VarExp("var_c"))),
                                                             new PrintStmt(new ConstExp(0)))));


            IStmt ex3 = new CompStmt(
                new AssignStmt("a",
                               new ArithExp('-',
                                            new ConstExp(2),
                                            new BooleanExp(
                                                new ConstExp(2),
                                                new ConstExp(3),
                                                "<"
                                                ))),
                new CompStmt(
                    new IfStmt(
                        new BooleanExp(
                            new VarExp("a"),
                            new ConstExp(1),
                            ">"
                            ),
                        new AssignStmt("v",
                                       new ConstExp(2)),
                        new AssignStmt("v",
                                       new ConstExp(3))),
                    new PrintStmt(new VarExp("v"))));



            TextMenu menu = new TextMenu(new Dictionary <string, Command>(new Dictionary <string, Command>()));

            menu.AddCommand(new ExitCommand("0", "exit"));
            menu.AddCommand(new RunCommand("1", ex1.toString(),
                                           CreateController(ex1,
                                                            "D:\\Labs\\Sem III\\MAP\\Lab9\\Lab9\\Lab9\\log.txt")));
            menu.AddCommand(new RunCommand("2", ex2.toString(),
                                           CreateController(ex2,
                                                            "D:\\Labs\\Sem III\\MAP\\Lab9\\Lab9\\Lab9\\log.txt")));
            menu.AddCommand(new RunCommand("3", ex3.toString(),
                                           CreateController(ex3,
                                                            "D:\\Labs\\Sem III\\MAP\\Lab9\\Lab9\\Lab9\\log.txt")));
//			menu.AddCommand(new RunCommand("4", ex4.ToString(),
//				CreateController(ex4,
//					"D:\\Labs\\Sem III\\MAP\\Lab9\\Lab9\\Lab9\\log.txt")));

            menu.show();
        }