Exemple #1
0
        /// <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;
        }