Quellcode durchsuchen

Add option --print to CLI

dependabot/maven/junit-junit-4.13.1
Malte Schmitz vor 9 Jahren
Ursprung
Commit
271a93f6df
1 geänderte Dateien mit 23 neuen und 3 gelöschten Zeilen
  1. +23
    -3
      src/main/java/Main.java

+ 23
- 3
src/main/java/Main.java Datei anzeigen

@@ -3,6 +3,7 @@ import interpreter.InterpreterException;
import parser.Parser;
import parser.SyntaxException;
import program.Program;
import printer.ProgramPrinter;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -14,12 +15,20 @@ public class Main {
public static void main(String[] args) {
if (args.length == 0) {
System.err.println("No file given");
} else if (args.length > 1) {
System.err.println("Too many arguments");
} else {
try {
String code = readFile(args[0]);
run(code);
if (args.length == 2) {
if ("--print".equals(args[1])) {
print(code);
} else {
System.err.println("Invalid argument " + args[1]);
}
} else if (args.length == 1) {
run(code);
} else {
System.err.println("Too many arguments");
}
} catch (IOException e) {
e.printStackTrace();
}
@@ -31,6 +40,17 @@ public class Main {
return new String(encoded, StandardCharsets.UTF_8);
}

private static void print(String code) {
try {
Parser parser = new Parser(code);
Program program = parser.parse();
ProgramPrinter printer = new ProgramPrinter();
System.out.println(printer.print(program));
} catch (SyntaxException se) {
System.err.println(se);
}
}

private static void run(String code) {
try {
Parser parser = new Parser(code);


Laden…
Abbrechen
Speichern