Amélioration de la gestion des lignes de continuation dans BakefileParser pour conserver le contenu entier et ajuster l'ajout d'espaces après certains opérateurs.

This commit is contained in:
Yanis HAMOUDI 2025-03-14 20:30:33 +01:00
parent 384bef24cc
commit b22376c5fb

@ -87,26 +87,37 @@ public class BakefileParser {
* @return La ligne combinée
*/
private String handleContinuationLines(List<String> lines, int startIndex) {
StringBuilder combinedLine = new StringBuilder();
int i = startIndex;
while (i < lines.size()) {
String line = lines.get(i);
Matcher contMatcher = CONTINUATION_PATTERN.matcher(line);
if (contMatcher.matches()) {
// Ajouter la ligne sans le backslash
combinedLine.append(contMatcher.group(1).trim()).append(" ");
i++;
} else {
// Ajouter la dernière ligne et sortir
combinedLine.append(line.trim());
break;
}
}
return combinedLine.toString();
}
StringBuilder combinedLine = new StringBuilder();
int i = startIndex;
while (i < lines.size()) {
String line = lines.get(i);
Matcher contMatcher = CONTINUATION_PATTERN.matcher(line);
if (contMatcher.matches()) {
// Ajouter la ligne sans le backslash mais conserver le contenu entier
// Ne pas ajouter d'espace après certains opérateurs comme &&
String content = contMatcher.group(1);
combinedLine.append(content);
// Si la ligne ne se termine pas déjà par un opérateur tel que &&, ajouter un espace
if (!content.trim().endsWith("&&") && !content.trim().endsWith("|") &&
!content.trim().endsWith(";")) {
combinedLine.append(" ");
} else {
// Si elle se termine par &&, |, ou ;, ajouter juste un espace après
combinedLine.append(" ");
}
i++;
} else {
// Ajouter la dernière ligne et sortir
combinedLine.append(line.trim());
break;
}
}
return combinedLine.toString();
}
/**
* Remplacer les variables dans une chaîne.