Amélioration de la javadoc
This commit is contained in:
@@ -8,6 +8,14 @@ import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Parseur de fichier Bakefile.
|
||||
* Cette classe est responsable de l'analyse syntaxique du fichier Bakefile
|
||||
* pour extraire les règles de build, les dépendances et les commandes associées.
|
||||
*
|
||||
* @author Moncef STITI, Yanis HAMOUDI, Louay DARDOURI
|
||||
* @version 1.0
|
||||
*/
|
||||
public class BakefileParser {
|
||||
|
||||
/**
|
||||
@@ -62,11 +70,21 @@ public class BakefileParser {
|
||||
*/
|
||||
private Map<String, String> variables = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Constructeur de la classe BakefileParser.
|
||||
* @param filename Nom du fichier Bakefile à parser
|
||||
*/
|
||||
public BakefileParser(String filename) {
|
||||
this.filename = filename;
|
||||
firstTarget = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gérer les lignes de continuation.
|
||||
* @param lines Liste des lignes du fichier Bakefile
|
||||
* @param startIndex Index de la première ligne de continuation
|
||||
* @return La ligne combinée
|
||||
*/
|
||||
private String handleContinuationLines(List<String> lines, int startIndex) {
|
||||
StringBuilder combinedLine = new StringBuilder();
|
||||
int i = startIndex;
|
||||
@@ -89,6 +107,11 @@ public class BakefileParser {
|
||||
return combinedLine.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remplacer les variables dans une chaîne.
|
||||
* @param input Chaîne à traiter
|
||||
* @return Chaîne avec les variables remplacées
|
||||
*/
|
||||
private String replaceVariables(String input) {
|
||||
if (input == null) return null;
|
||||
|
||||
@@ -126,12 +149,22 @@ public class BakefileParser {
|
||||
return result.trim();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remplacer les variables dans une liste de chaînes.
|
||||
* @param items Liste de chaînes à traiter
|
||||
* @return Liste de chaînes avec les variables remplacées
|
||||
*/
|
||||
private List<String> replaceVariablesInList(List<String> items) {
|
||||
return items.stream()
|
||||
.map(this::replaceVariables)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Découper les dépendances en une liste de chaînes.
|
||||
* @param depStr Chaîne de dépendances
|
||||
* @return Liste de dépendances
|
||||
*/
|
||||
private List<String> splitDependencies(String depStr) {
|
||||
if (depStr == null || depStr.trim().isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
@@ -144,6 +177,11 @@ public class BakefileParser {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Découper les cibles en une liste de chaînes.
|
||||
* @param targetStr Chaîne de cibles
|
||||
* @return Liste de cibles
|
||||
*/
|
||||
private List<String> splitTargets(String targetStr) {
|
||||
if (targetStr == null || targetStr.trim().isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
@@ -156,6 +194,10 @@ public class BakefileParser {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Analyser le fichier Bakefile pour extraire les règles de build.
|
||||
* @return Liste des règles extraites
|
||||
*/
|
||||
public List<Rule> parse() {
|
||||
List<Rule> rules = new ArrayList<>();
|
||||
Set<String> phonyTargets = new HashSet<>();
|
||||
|
Reference in New Issue
Block a user