Amélioration de la gestion des dépendances circulaires
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
|
Reference in New Issue
Block a user