Amélioration de la gestion des dépendances circulaires

This commit is contained in:
2025-02-04 19:27:56 +01:00
parent 0af4eb8f1b
commit 0941b5e09e
19 changed files with 125 additions and 36 deletions

View File

@@ -8,6 +8,9 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BakefileParser {
/**
* Nom du fichier Bakefile à parser (donc Bakefile...).
*/
private String filename;
/**
@@ -22,8 +25,15 @@ public class BakefileParser {
*/
private static final Pattern COMMAND_PATTERN = Pattern.compile("^\\s+(.+)$");
/**
* Première cible trouvée dans le fichier Bakefile.
*/
private static String firstTarget;
public BakefileParser(String filename) {
this.filename = filename;
firstTarget = null;
}
public List<Rule> parse() {
@@ -46,6 +56,10 @@ public class BakefileParser {
Matcher commandMatcher = COMMAND_PATTERN.matcher(line);
if (targetMatcher.matches()) {
if (firstTarget == null) {
firstTarget = targetMatcher.group(1);
}
// Sauvegarde de la règle précédente si elle existe
if (currentTarget != null) {
rules.add(new Rule(currentTarget, dependencies, commands, phonyTargets.contains(currentTarget)));
@@ -71,4 +85,10 @@ public class BakefileParser {
}
return rules;
}
/**
* Permet de récupérer la première cible trouvée dans le fichier Bakefile.
* @return La première cible trouvée
*/
public static String getFirstTarget() { return firstTarget; }
}