Amélioration du parser. On laisse les commentaires comme fait make

This commit is contained in:
Yanis HAMOUDI 2025-02-08 22:40:49 +01:00
parent 87662825fa
commit 2e51ca7491

@ -24,7 +24,7 @@ public class BakefileParser {
* Regex pour détecter les lignes de commande associées à une target.
* Format : " gcc -o program program.c" (ligne indentée)
*/
private static final Pattern COMMAND_PATTERN = Pattern.compile("^\\t(.+?)(?:#.*)?$");
private static final Pattern COMMAND_PATTERN = Pattern.compile("^\\t(.+)$");
/**
* Regex pour détecter les définitions de variables.
@ -124,7 +124,7 @@ public class BakefileParser {
commands = new ArrayList<>();
} else if (commandMatcher.matches()) {
commands.add(commandMatcher.group(1).trim());
commands.add(commandMatcher.group(1));
}
}
@ -152,7 +152,8 @@ public class BakefileParser {
for (Map.Entry<String, String> entry : variables.entrySet()) {
String key = "$(" + entry.getKey() + ")";
if (result.contains(key)) {
result = result.replace(key, entry.getValue().trim());
// Préserver les espaces dans les valeurs des variables
result = result.replace(key, entry.getValue());
replaced = true;
}
}