예제 #1
0
        public bool Compile(EditForm editForm)
        {
            this.editForm = editForm;

            ResetScriptEvent                = new AutoResetEvent(false);
            ResetScriptWatcher              = new Thread(new ThreadStart(ResetScriptWatch));
            ResetScriptWatcher.Name         = "ResetScriptWatch";
            ResetScriptWatcher.IsBackground = true;
            ResetScriptWatcher.Start();

            string lsl = editForm.SourceCode;

            // If not hidden and not readonly
            if (!editForm.IsHidden && !this.mainForm.IsReadOnly(editForm))
            {
                if (LSLIPathHelper.IsLSLI(editForm.ScriptName)) // Expand LSLI to LSL
                {
                    lsl = ConvertLSLI();
                }
            }
            else
            {
                this.editForm.StopCompiler();
                return(false);
            }

            CSharpCode = MakeSharp(editForm.ConfLSL, lsl);

            return(GetNewHost());
        }
예제 #2
0
        public bool SyntaxCheck()
        {
            bool blnResult = false;

            //if (this.disableCompilesyntaxCheckToolStripMenuItem.Checked)
            //	return false;

            if (this.IsScript)
            {
                string lsl = SourceCode;

                // If it is LSLI, it needs to import scripts first, before it recognizes imported functions
                if (LSLIPathHelper.IsLSLI(this.FullPathName))
                {
                    LSLIConverter converter = new LSLIConverter();
                    lsl = converter.ExpandToLSL(this);
                }

                LSL2CSharp translator = new LSL2CSharp(ConfLSL);
                string     strCSharp  = translator.Parse(lsl);

                if (System.Diagnostics.Debugger.IsAttached)
                {
                    for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--)
                    {
                        this.tabControl1.TabPages.RemoveAt(intI);
                    }

                    // TODO
                    TabPage tabPage = new TabPage("C#");
                    NumberedTextBox.NumberedTextBoxUC numberedTextBoxUC1 = new NumberedTextBox.NumberedTextBoxUC();
                    numberedTextBoxUC1.TextBox.Init(null, this.ConfCSharp);
                    numberedTextBoxUC1.TextBox.Text     = strCSharp;
                    numberedTextBoxUC1.TextBox.ReadOnly = true;
                    numberedTextBoxUC1.Dock             = DockStyle.Fill;
                    tabPage.Controls.Add(numberedTextBoxUC1);
                    this.tabControl.TabPages.Add(tabPage);
                }
                blnResult = (null != CompilerHelper.CompileCSharp(this, strCSharp));
            }
            return(blnResult);
        }