diff options
Diffstat (limited to 'src/com/craftinginterpreters/tool/GenerateAst.java')
-rw-r--r-- | src/com/craftinginterpreters/tool/GenerateAst.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/com/craftinginterpreters/tool/GenerateAst.java b/src/com/craftinginterpreters/tool/GenerateAst.java index 8845c6e..51b4ce3 100644 --- a/src/com/craftinginterpreters/tool/GenerateAst.java +++ b/src/com/craftinginterpreters/tool/GenerateAst.java @@ -22,7 +22,7 @@ public class GenerateAst { defineAst(outputDir, "Stmt", Arrays.asList("Block : List<Stmt> statements", "Expression : Expr expression", "If : Expr condition, Stmt thenBranch, Stmt elseBranch", "Print : Expr expression", - "Var : Token name, Expr initializer", "While : Expr condition, Stmt body")); + "Var : Token name, Expr initializer", "While : Expr condition, Stmt body", "Break : ")); } private static void defineAst(String outputDir, String baseName, List<String> types) throws IOException { @@ -71,8 +71,10 @@ public class GenerateAst { // Store parameters in fields. String[] fields = fieldList.split(", "); for (String field : fields) { - String name = field.split(" ")[1]; - writer.println(" this." + name + " = " + name + ";"); + if (!field.isEmpty()) { + String name = field.split(" ")[1]; + writer.println(" this." + name + " = " + name + ";"); + } } writer.println(" }"); @@ -87,7 +89,9 @@ public class GenerateAst { // Fields writer.println(); for (String field : fields) { - writer.println(" final " + field + ";"); + if (!field.isEmpty()) { + writer.println(" final " + field + ";"); + } } writer.println(" }"); |