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}"); }
public IResult <string> Execute() => tryTo(() => { var orange = new Library.Orange(ToString(), console: this); orange.Execute(); return($"{orange.LastValue} | {orange.LastType}"); });
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; } }