From 055b5257fb6df2a0893c43ed342befd83d20af94 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 18 Nov 2020 17:10:21 -0800 Subject: Chapter 8: Add statement AST generator --- src/com/craftinginterpreters/lox/CMakeLists.txt | 9 ++++++--- src/com/craftinginterpreters/tool/GenerateAst.java | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/craftinginterpreters/lox/CMakeLists.txt b/src/com/craftinginterpreters/lox/CMakeLists.txt index ca2ee27..e635245 100644 --- a/src/com/craftinginterpreters/lox/CMakeLists.txt +++ b/src/com/craftinginterpreters/lox/CMakeLists.txt @@ -1,8 +1,11 @@ get_target_property(GENERATE_AST_JAR GenerateAst JAR_FILE) -set(EXPR_JAVA_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/Expr.java CACHE INTERNAL "") +set(GENERATED_JAVA_FILENAMES + ${CMAKE_CURRENT_BINARY_DIR}/Expr.java + ${CMAKE_CURRENT_BINARY_DIR}/Stmt.java + CACHE INTERNAL "") -add_custom_command(OUTPUT ${EXPR_JAVA_FILENAME} +add_custom_command(OUTPUT ${GENERATED_JAVA_FILENAMES} COMMAND java -jar ${GENERATE_AST_JAR} ${CMAKE_CURRENT_BINARY_DIR} DEPENDS GenerateAst) @@ -11,7 +14,7 @@ add_jar(Lox TokenType.java Token.java Scanner.java - ${EXPR_JAVA_FILENAME} + ${GENERATED_JAVA_FILENAMES} AstPrinter.java Parser.java Interpreter.java diff --git a/src/com/craftinginterpreters/tool/GenerateAst.java b/src/com/craftinginterpreters/tool/GenerateAst.java index 5e79d2f..86d6942 100644 --- a/src/com/craftinginterpreters/tool/GenerateAst.java +++ b/src/com/craftinginterpreters/tool/GenerateAst.java @@ -16,6 +16,7 @@ public class GenerateAst { defineAst(outputDir, "Expr", Arrays.asList("Binary : Expr left, Token operator, Expr right", "Grouping : Expr expression", "Literal : Object value", "Unary : Token operator, Expr right")); + defineAst(outputDir, "Stmt", Arrays.asList("Expression : Expr expression", "Print : Expr expression")); } private static void defineAst(String outputDir, String baseName, List types) throws IOException { -- cgit v1.2.3-54-g00ecf