summaryrefslogtreecommitdiffstats
path: root/src/com/craftinginterpreters/lox/Environment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/craftinginterpreters/lox/Environment.java')
-rw-r--r--src/com/craftinginterpreters/lox/Environment.java20
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);
+ }
+}