Skip to content

Commit

Permalink
Resolve reports variable redeclaration errors
Browse files Browse the repository at this point in the history
  • Loading branch information
Hamled committed Oct 9, 2019
1 parent 1f30d2f commit 8466bd2
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
3 changes: 3 additions & 0 deletions jlox/src/dev/hamled/craftinginterpreters/lox/Lox.java
Expand Up @@ -64,6 +64,9 @@ private static void run(String source) {
Resolver resolver = new Resolver(interpeter);
resolver.resolve(statements);

// Stop if there was a resolution error.
if(hadError) return;

interpeter.interpret(statements);
}

Expand Down
4 changes: 4 additions & 0 deletions jlox/src/dev/hamled/craftinginterpreters/lox/Resolver.java
Expand Up @@ -175,6 +175,10 @@ private void declare(Token name) {
if(scopes.isEmpty()) return;

Map<String, Boolean> scope = scopes.peek();
if(scope.containsKey(name.lexeme)) {
Lox.error(name,
"Variable with this name already declared in this scope.");
}
scope.put(name.lexeme, false);
}

Expand Down

0 comments on commit 8466bd2

Please sign in to comment.