summaryrefslogtreecommitdiffstats
path: root/src/com/craftinginterpreters/tool
diff options
context:
space:
mode:
authorGravatar Tom Willemse2021-01-14 23:53:47 -0800
committerGravatar Tom Willemse2021-01-14 23:53:47 -0800
commitc62b73a2477b9fa625285e9c2ca1e51c2bcb8024 (patch)
treed8ea9b22fcdc28d34a1aec9f40a87ddd2dfd9660 /src/com/craftinginterpreters/tool
parentca9fd3ae3a1ef5ca1fbe33a83abb12e656a2556f (diff)
downloadcrafting-interpreters-c62b73a2477b9fa625285e9c2ca1e51c2bcb8024.tar.gz
crafting-interpreters-c62b73a2477b9fa625285e9c2ca1e51c2bcb8024.zip
Add branching primitives
Diffstat (limited to 'src/com/craftinginterpreters/tool')
-rw-r--r--src/com/craftinginterpreters/tool/GenerateAst.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/com/craftinginterpreters/tool/GenerateAst.java b/src/com/craftinginterpreters/tool/GenerateAst.java
index c9f1398..a3935e1 100644
--- a/src/com/craftinginterpreters/tool/GenerateAst.java
+++ b/src/com/craftinginterpreters/tool/GenerateAst.java
@@ -16,10 +16,13 @@ public class GenerateAst {
defineAst(outputDir, "Expr",
Arrays.asList("Assign : Token name, Expr value", "Binary : Expr left, Token operator, Expr right",
- "Grouping : Expr expression", "Literal : Object value", "Unary : Token operator, Expr right",
+ "Grouping : Expr expression", "Literal : Object value",
+ "Logical : Expr left, Token operator, Expr right", "Unary : Token operator, Expr right",
"Variable : Token name"));
- defineAst(outputDir, "Stmt", Arrays.asList("Block : List<Stmt> statements", "Expression : Expr expression",
- "Print : Expr expression", "Var : Token name, Expr initializer"));
+ 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"));
}
private static void defineAst(String outputDir, String baseName, List<String> types) throws IOException {