36 lines
1.1 KiB
Java
36 lines
1.1 KiB
Java
|
package fr.monlouyan.bakefile;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import java.nio.file.Files;
|
||
|
import java.nio.file.Paths;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.Arrays;
|
||
|
import java.util.List;
|
||
|
|
||
|
public class BakefileParser {
|
||
|
private String filename;
|
||
|
|
||
|
public BakefileParser(String filename) {
|
||
|
this.filename = filename;
|
||
|
}
|
||
|
|
||
|
public List<Target> parse() {
|
||
|
List<Target> targets = new ArrayList<>();
|
||
|
try {
|
||
|
List<String> lines = Files.readAllLines(Paths.get(filename));
|
||
|
for (String line : lines) {
|
||
|
if (line.contains(":")) {
|
||
|
String[] parts = line.split(":");
|
||
|
String name = parts[0].trim();
|
||
|
String[] deps = parts[1].trim().split(" ");
|
||
|
System.out.println("Target found: " + name + " with dependencies " + Arrays.toString(deps));
|
||
|
targets.add(new Target(name, Arrays.asList(deps), "gcc -o " + name + " " + name + ".c"));
|
||
|
}
|
||
|
}
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
return targets;
|
||
|
}
|
||
|
|
||
|
}
|