public void Run()
        {
            ScriptCollection modified = getModified();

            Result = new CompilerParser();
            if (modified.Count > 0)
            {
                if (!checkDuplicateEventHandlers(modified))
                {
                    return;
                }
                //
                createRegex();
                modified.SortByLevel();
                writeItems(modified);
                compileItems();
                //
                Result.Load();
                if (!Result.IsSuccess)
                {
                    return;
                }
                //
                ScriptItem   x_script;
                ScriptParser parser = new ScriptParser();
                parser.Load(output_filename);
                foreach (ScriptItem script in parser.Items)
                {
                    x_script = ScriptMgr.Get(script.Name);
                    if (x_script != null)
                    {
                        x_script.Source = script.Source;
                    }
                }
                //
                ScriptMgr.Header = parser.Header;
            }
            else
            {
                Result.IsSuccess = true;
            }
        }