/// <summary> /// Compiles Ruby script to Abstract Syntax Tree /// </summary> private void Compile() { // Clear view lstErrors.Items.Clear(); tvAstNodes.Nodes.Clear(); txtSprintPs1.DocumentText = String.Empty; txtResourcesPsm1.DocumentText = String.Empty; Sprint sprint = new Sprint { Mode = cmbSprintMode.Text }; if (cmbSprintMode.Text == "Script") { sprint.RubyStack = txtRuby.Text; sprint.Compile(); } else { sprint.Build(); txtRuby.Text = sprint.RubyStack; } const string style = "<STYLE type=\"text/css\">body, div { background-color: #252526 !important; color: #CCC !important; font-size:16px;} </STYLE>"; if (sprint.SprintPs1Content != null) { string sprintPs1ContentHighlight = style + ReStyle(new CodeColorizer().Colorize(sprint.SprintPs1Content, Languages.PowerShell)); Application.DoEvents(); txtSprintPs1.DocumentText = sprintPs1ContentHighlight; } if (sprint.ResourcesPs1Content != null) { string resourcesPs1ContentHighlight = style + ReStyle(new CodeColorizer().Colorize(sprint.ResourcesPs1Content, Languages.PowerShell)); Application.DoEvents(); txtResourcesPsm1.DocumentText = resourcesPs1ContentHighlight; } if (sprint.SyntaxErrors.Count > 0) { foreach (SyntaxError err in sprint.SyntaxErrors) { lstErrors.Items.Add(err); } } ShowAstNodes(sprint.AstRootNode); tvAstNodes.ExpandAll(); jvCompiledJson.Json = sprint.CompiledJson; }