diff options
author | Tom Willemse | 2021-03-17 22:52:35 -0700 |
---|---|---|
committer | Tom Willemse | 2021-03-17 22:52:35 -0700 |
commit | 580a5acb580a858c8ffa705f5f64f095cb0b4b37 (patch) | |
tree | e0ac4b327ad2993b21304b1e5ba84819cad64034 /src/com/craftinginterpreters/lox/Resolver.java | |
parent | b04b6bcf2f31526f6cfa593c342165a65cb9e7ac (diff) | |
download | crafting-interpreters-580a5acb580a858c8ffa705f5f64f095cb0b4b37.tar.gz crafting-interpreters-580a5acb580a858c8ffa705f5f64f095cb0b4b37.zip |
Chapter 12, Sections 1, 2, and 3
Diffstat (limited to 'src/com/craftinginterpreters/lox/Resolver.java')
-rw-r--r-- | src/com/craftinginterpreters/lox/Resolver.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/craftinginterpreters/lox/Resolver.java b/src/com/craftinginterpreters/lox/Resolver.java index 2a870ab..a7c9911 100644 --- a/src/com/craftinginterpreters/lox/Resolver.java +++ b/src/com/craftinginterpreters/lox/Resolver.java @@ -33,6 +33,13 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> { } @Override + public Void visitClassStmt(Stmt.Class stmt) { + declare(stmt.name); + define(stmt.name); + return null; + } + + @Override public Void visitExpressionStmt(Stmt.Expression stmt) { resolve(stmt.expression); return null; @@ -118,6 +125,12 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> { } @Override + public Void visitGetExpr(Expr.Get expr) { + resolve(expr.object); + return null; + } + + @Override public Void visitGroupingExpr(Expr.Grouping expr) { resolve(expr.expression); return null; @@ -129,6 +142,13 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> { } @Override + public Void visitSetExpr(Expr.Set expr) { + resolve(expr.value); + resolve(expr.object); + return null; + } + + @Override public Void visitLogicalExpr(Expr.Logical expr) { resolve(expr.left); resolve(expr.right); |