Пример #1
0
        public void UpdateParser(System.Object obj)
        {
            string text = editor.doc.GetRawText();

            if (!Directory.Exists(Path.GetDirectoryName(tmpFileName)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(tmpFileName));
            }
            try {
                System.IO.StreamWriter fileStream = new System.IO.StreamWriter(tmpFileName);
                fileStream.Write(text);
                fileStream.Close();
            }
            catch (System.Exception) {
            }

            CompilationUnit project = new CompilationUnit("");

            project.AddFile(tmpFileName);

            try {
                project.Parse();
            }
            catch (System.Exception) {
            }

            errors = new List <ErrorDef>();

            foreach (Error error in project.Errors)
            {
                if (error.Code != "SYNERR")
                {
                    continue;
                }
                ErrorDef def = new ErrorDef();
                def.line        = error.Line - 1;
                def.column      = error.Column - 1;
                def.description = error.Description;
                def.type        = ErrorType.Error;
                errors.Add(def);

                if (def.description == "scolon expected")
                {
                    def.description = "';' expected.";
                }
                if (def.description == "lbrace expected")
                {
                    def.description = "'{' expected.";
                }
                if (def.description == "rbrace expected")
                {
                    def.description = "'}' expected.";
                }
            }

            wantsParserUpdate = false;
        }
        public void UpdateParser(System.Object obj)
        {
            string text = editor.doc.GetRawText();

            if (!Directory.Exists(Path.GetDirectoryName(tmpFileName))) {
                Directory.CreateDirectory(Path.GetDirectoryName(tmpFileName));
            }
            try {
                System.IO.StreamWriter fileStream = new System.IO.StreamWriter(tmpFileName);
                fileStream.Write(text);
                fileStream.Close();
            }
            catch (System.Exception) {

            }

            CompilationUnit project = new CompilationUnit("");

            project.AddFile(tmpFileName);

            try {
                project.Parse();
            }
            catch (System.Exception) {

            }

            errors = new List<ErrorDef>();

            foreach (Error error in project.Errors) {
                if(error.Code != "SYNERR") continue;
                ErrorDef def = new ErrorDef();
                def.line = error.Line-1;
                def.column = error.Column-1;
                def.description = error.Description;
                def.type = ErrorType.Error;
                errors.Add(def);

                if (def.description == "scolon expected") {
                    def.description = "';' expected.";
                }
                if (def.description == "lbrace expected") {
                    def.description = "'{' expected.";
                }
                if (def.description == "rbrace expected") {
                    def.description = "'}' expected.";
                }
            }

            wantsParserUpdate = false;
        }