diff options
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); |