diff options
author | Tom Willemse | 2021-04-11 19:55:24 -0700 |
---|---|---|
committer | Tom Willemse | 2021-04-11 19:55:24 -0700 |
commit | 591caeb216128675ce6b8ddafccb09df7f522145 (patch) | |
tree | 1f4192ef8c820d6674e8a318fbfb82e993937aac /src/com/craftinginterpreters/lox/Resolver.java | |
parent | 580a5acb580a858c8ffa705f5f64f095cb0b4b37 (diff) | |
download | crafting-interpreters-591caeb216128675ce6b8ddafccb09df7f522145.tar.gz crafting-interpreters-591caeb216128675ce6b8ddafccb09df7f522145.zip |
12.4 Methods on Classes
Diffstat (limited to 'src/com/craftinginterpreters/lox/Resolver.java')
-rw-r--r-- | src/com/craftinginterpreters/lox/Resolver.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/com/craftinginterpreters/lox/Resolver.java b/src/com/craftinginterpreters/lox/Resolver.java index a7c9911..649235a 100644 --- a/src/com/craftinginterpreters/lox/Resolver.java +++ b/src/com/craftinginterpreters/lox/Resolver.java @@ -15,7 +15,7 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> { } private enum FunctionType { - NONE, FUNCTION + NONE, FUNCTION, METHOD } public void resolve(List<Stmt> statements) { @@ -36,6 +36,12 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> { public Void visitClassStmt(Stmt.Class stmt) { declare(stmt.name); define(stmt.name); + + for (Stmt.Function method : stmt.methods) { + FunctionType declaration = FunctionType.METHOD; + resolveFunction(method, declaration); + } + return null; } |