From 580a5acb580a858c8ffa705f5f64f095cb0b4b37 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 17 Mar 2021 22:52:35 -0700 Subject: Chapter 12, Sections 1, 2, and 3 --- src/com/craftinginterpreters/lox/Resolver.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/com/craftinginterpreters/lox/Resolver.java') 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 @@ -32,6 +32,13 @@ class Resolver implements Expr.Visitor, Stmt.Visitor { return null; } + @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); @@ -117,6 +124,12 @@ class Resolver implements Expr.Visitor, Stmt.Visitor { return null; } + @Override + public Void visitGetExpr(Expr.Get expr) { + resolve(expr.object); + return null; + } + @Override public Void visitGroupingExpr(Expr.Grouping expr) { resolve(expr.expression); @@ -128,6 +141,13 @@ class Resolver implements Expr.Visitor, Stmt.Visitor { return null; } + @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); -- cgit v1.2.3-54-g00ecf