コード例 #1
0
        public void ParsingTest()
        {
            var orange = new Library.Orange("'foo'.len");
            var result = orange.Execute();
            var value  = orange.LastValue;
            var type   = orange.LastType;

            WriteLine(result);
            WriteLine($"{value} | {type}");
        }
コード例 #2
0
ファイル: Code.cs プロジェクト: toddcoder/Orange2
 public IResult <string> Execute() => tryTo(() =>
 {
     var orange = new Library.Orange(ToString(), console: this);
     orange.Execute();
     return($"{orange.LastValue} | {orange.LastType}");
 });
コード例 #3
0
        void update(bool execute)
        {
            if (locked)
            {
                return;
            }

            locked = true;

            if (richCode.TextLength == 0)
            {
                locked = false;
                return;
            }

            try
            {
                if (document.FileName.IsNotEmpty() && document.IsDirty)
                {
                    document.Save();
                }

                if (manual)
                {
                    labelValue.Text = "running...";
                    Application.DoEvents();
                }
                stopwatch.Start();
                var orange = new Library.Orange(richCode.Text, new ColorParser(richCode), fileCache)
                {
                    Text = textText.Text,
                    Ask  = ask
                };
                var result = execute ? orange.Execute() : orange.ColorizeOnly();
                stopwatch.Stop();
                //if (!document.IsDirty)
                orange.Colorize();
                document.Clean();
                displayMode();
                if (verbose)
                {
                    result += "\r\n" + orange.VerboseText;
                }
                if (autoVariable)
                {
                    result += "\r\n" + orange.DumpAll();
                    result  = trailingSpaces(result);
                }
                if (tabConsole.SelectedTab.Text == "Console")
                {
                    fancy            = menuLanguageFancy.Checked;
                    richConsole.Text = result;
                    richConsole.SelectAll();
                    if (autoVariable)
                    {
                        richConsole.SelectionColor     = Color.White;
                        richConsole.SelectionBackColor = Color.Blue;
                        richConsole.SelectionFont      = fancy ? fancyFont : boldFont;
                    }
                    else
                    {
                        richConsole.SelectionColor     = Color.Yellow;
                        richConsole.SelectionBackColor = Color.Blue;
                        richConsole.SelectionFont      = fancy ? fancyFont : normalFont;
                    }
                    richConsole.Select(0, 0);
                }
                else
                {
                    webBrowser.DocumentText = result;
                }

                displayMessage(stopwatch.Elapsed.ToLongString(true), false);
                var lastValue = orange.LastValue;
                var lastType  = orange.LastType;
                labelValue.Text = lastValue.IsEmpty() ? "" : $"{lastValue} | {lastType}";
            }
            catch (Exception exception)
            {
                displayMessage($"{exception.GetType().Name}: {exception.Message}", true);
                if (Runtime.State != null)
                {
                    richConsole.Text = "Dumping print buffer:\r\n" + Runtime.State.PrintBuffer;
                }
            }
            finally
            {
                locked = false;
            }
        }