diff options
Diffstat (limited to 'src/com/craftinginterpreters/lox/Environment.java')
-rw-r--r-- | src/com/craftinginterpreters/lox/Environment.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/craftinginterpreters/lox/Environment.java b/src/com/craftinginterpreters/lox/Environment.java new file mode 100644 index 0000000..634659b --- /dev/null +++ b/src/com/craftinginterpreters/lox/Environment.java @@ -0,0 +1,20 @@ +package com.craftinginterpreters.lox; + +import java.util.HashMap; +import java.util.Map; + +class Environment { + private final Map<String, Object> values = new HashMap<>(); + + Object get(Token name) { + if (values.containsKey(name.lexeme)) { + return values.get(name.lexeme); + } + + throw new RuntimeError(name, "Undefined variable '" + name.lexeme + "'."); + } + + void define(String name, Object value) { + values.put(name, value); + } +} |