Пример #1
0
        public void ShouldShowTrace()
        {
            var _interpreter = new Interpretator();
            var _writer      = new StringWriter();

            Console.SetOut(_writer);

            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("def test\n" +
                                     "    set a 4\n" +
                                     "set t 5\n" +
                                     "call test\n" +
                                     "sub a 3\n" +
                                     "call test\n" +
                                     "print a");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("add break 1");
            _interpreter.ExecuteLine("run");
            _interpreter.ExecuteLine("print trace");
            _interpreter.ExecuteLine("run");
            _interpreter.ExecuteLine("run");

            var output = _writer.ToString();

            Assert.That(output.Contains("3 test") && output.Contains("4"),
                        Is.EqualTo(true));
        }
Пример #2
0
        public void ShouldStepOverWork()
        {
            var _interpreter = new Interpretator();
            var _writer      = new StringWriter();

            Console.SetOut(_writer);

            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("def test\n" +
                                     "    set a 4\n" +
                                     "    set b 5\n" +
                                     "set t 5\n" +
                                     "call test\n" +
                                     "print a");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("add break 1");
            _interpreter.ExecuteLine("add break 4");
            _interpreter.ExecuteLine("run");
            _interpreter.ExecuteLine("step over");
            _interpreter.ExecuteLine("step");

            var output = Int32.Parse(_writer.ToString());

            Assert.That(output, Is.EqualTo(4));
        }
Пример #3
0
        static void Main(string[] args)
        {
            string        t     = "ArloopaScript  a,c:int; void update()  i:int; { i=3; if i < 4  { i=--7; write(i) } else ; } { write(\" update \"); update() }";
            Interpretator inter = new Interpretator(t + "@");

            inter.interpretation();
        }
Пример #4
0
        public void ShouldSubVariable()
        {
            var _interpreter = new Interpretator();

            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("set a 5\n" +
                                     "sub a 2\n" +
                                     "print a");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("run");
        }
Пример #5
0
        static void Main(string[] args)
        {
            System.Console.WriteLine(args[0]);
            Interpretator intrpr = new Interpretator(args[0], true);

            //wb = new WB(fileName.FileName);
            System.Windows.Forms.Application.DoEvents();
            try {
                intrpr.interpretation(null, (System.Windows.Forms.RichTextBox)null);
                System.Windows.Forms.Application.Run();
            }
            catch (Exception exc) {
                System.IO.File.WriteAllText("error.txt", "error: " + exc.Message);
            }
        }
 //---------------------------
 private void initialize_browser(string prog)
 {
     //wb = new WB(prog);
     intrpr = new Interpretator(prog);
     groupBox1.Controls.Add(intrpr.wb.webBrowser);
     intrpr.wb.webBrowser.Dock     = System.Windows.Forms.DockStyle.Fill;
     intrpr.wb.webBrowser.TabIndex = 1;
     if (intrpr.wb.webBrowser.Document == null)
     {
         intrpr.wb.go("about:blank");
     }
     intrpr.wb.webBrowser.Document.Click += new HtmlElementEventHandler(click_handle);
     intrpr.wb.webBrowser.Navigating     += new WebBrowserNavigatingEventHandler(webBrowser_navigating);
     protocol = new Protocol_of_user_operation(history_out, intrpr);
 }
Пример #7
0
        public void ShouldCallFunctionAndPrint()
        {
            var _interpreter = new Interpretator();
            var _writer      = new StringWriter();

            Console.SetOut(_writer);
            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("def test\n" +
                                     "    print a\n" +
                                     "set a 5\n" +
                                     "call test");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("run");
            var output = _writer.ToString();
            var a      = int.Parse(output);

            Assert.That(a, Is.EqualTo(5));
        }
Пример #8
0
        public void ShouldOverrideVariable()
        {
            var _interpreter = new Interpretator();
            var _writer      = new StringWriter();

            Console.SetOut(_writer);

            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("set a 5\n" +
                                     "set a 6\n" +
                                     "print a");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("run");

            var output = Int32.Parse(_writer.ToString());

            Assert.That(output, Is.EqualTo(6));
        }
Пример #9
0
        public void ShouldPostFuncDefinitionWorks()
        {
            var _interpreter = new Interpretator();
            var _writer      = new StringWriter();

            Console.SetOut(_writer);

            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("call test\n" +
                                     "print a\n" +
                                     "def test\n" +
                                     "    set a 5");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("run");

            var output = Int32.Parse(_writer.ToString());

            Assert.That(output, Is.EqualTo(5));
        }
Пример #10
0
        public void ShouldShowMemoryVars()
        {
            var _interpreter = new Interpretator();
            var _writer      = new StringWriter();

            Console.SetOut(_writer);

            _interpreter.ExecuteLine("set code");
            _interpreter.ExecuteLine("set a 5\n" +
                                     "set b 4\n" +
                                     "set c 3\n" +
                                     "set d 2\n" +
                                     "set e 1");
            _interpreter.ExecuteLine("end set code");
            _interpreter.ExecuteLine("add break 2");
            _interpreter.ExecuteLine("run");
            _interpreter.ExecuteLine("print mem");

            var output = _writer.ToString();

            Assert.That(output.Contains("a 5 0") && output.Contains("b 4 1"), Is.EqualTo(true));
        }
        public void Run()
        {
            NumberValidator checker = new NumberValidator(Number);

            if (!checker.IsNumber())
            {
                consoleViewer.ShowExpression("instruction");//todod
                return;
            }

            if (!checker.HasRightLength())
            {
                consoleViewer.ShowExpression("instruction");//todo
                return;
            }

            Context       destinationPhrase = new Context(Number);
            Interpretator transletor        = new Interpretator();

            transletor.Interpret(destinationPhrase);
            consoleViewer.ShowExpression(destinationPhrase.Output);
        }
Пример #12
0
 public MainForm(KompasObject kompas)
 {
     this.InitializeComponent();
     this.interpretator = new Interpretator(kompas);
 }
Пример #13
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="hist_output">Окно вывода</param>
 /// <param name="wb1">Брвузер</param>
 public Protocol_of_user_operation(RichTextBox hist_output, Interpretator intrpr1 = null)
 {
     intrpr  = intrpr1;
     history = new CommandHistory(hist_output);
     attr    = new Dictionary <string, string>();
 }