浏览代码

Add option --print to CLI

dependabot/maven/junit-junit-4.13.1
Malte Schmitz 9 年前
父节点
当前提交
271a93f6df
共有 1 个文件被更改,包括 23 次插入3 次删除
  1. +23
    -3
      src/main/java/Main.java

+ 23
- 3
src/main/java/Main.java 查看文件

@@ -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);


正在加载...
取消
保存