фикс бага с регулярным выражением при парсе сообщений от парсера. был сплит по оф без пробелов

v++
This commit is contained in:
2024-08-07 21:48:54 +03:00
parent 077bfe9676
commit de1d81ac33
4 changed files with 17 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ package ProjectData.Files;
import Common.Constants;
import Common.Current;
import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils;
import ProjectData.GCOV.GCOV_info;
import ProjectData.LanguageName;
@@ -18,10 +19,12 @@ import ProjectData.SapforData.Loops.Loop;
import Visual_DVM_2021.UI.Main.FileForm;
import com.sun.org.glassfish.gmbal.Description;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.file.Paths;
import java.util.LinkedHashMap;
import java.util.Vector;
@@ -62,6 +65,7 @@ public class DBProjectFile extends ProjectFile {
public Vector<ArrayDecl> array_decls = new Vector<>();
public LinkedHashMap<String, DBProjectFile> relativeHeaders = new LinkedHashMap<>();
public GCOV_info gcov_info = new GCOV_info();
private PrintStream Sys;
public DBProjectFile() {
}
public DBProjectFile(File file_, db_project_info father_) {
@@ -73,17 +77,18 @@ public class DBProjectFile extends ProjectFile {
public static Pair<Integer, String> decodeParserMessage(String S, String file_in) {
Integer line = 1;
String file = file_in;
String[] data = S.split("on line ");
String[] data = S.split("\\son\\sline\\s");
if (data.length > 1) {
String[] data1 = data[1].split(" ");
if (data1.length > 0)
line = Integer.parseInt(data1[0]);
}
data = S.split("of");
data = S.split("\\sof\\s");
if (data.length > 1) {
String[] data1 = data[1].split(":");
if (data1.length > 0) {
file = Utils.toW(data1[0].substring(1)); //первый символ тут всегда пробел. слеши всегда виндовые.
file = Utils.toW(data1[0]);//.substring(1));
//первый символ тут всегда пробел. слеши всегда виндовые.
}
}
return new Pair<>(line, file);
@@ -176,6 +181,7 @@ public class DBProjectFile extends ProjectFile {
String[] nw = text.split("\n");
for (String S : nw) {
Pair<Integer, String> p = decodeParserMessage(S, name);
//----
if (S.toLowerCase().startsWith("note")) {
father.db.files.Data.get(p.getValue()).CreateAndAddNewMessage(2, S, p.getKey(), Constants.parser_group);
} else if (S.toLowerCase().startsWith("warning")) {