diff options
author | Tom Willemse | 2020-11-18 23:30:46 -0800 |
---|---|---|
committer | Tom Willemse | 2020-11-18 23:30:46 -0800 |
commit | 899ecea236288b5ebc7795c204fdad59b3276002 (patch) | |
tree | 00d8cdfa98f265455060279e9c98c10279baf9a6 /src/com/craftinginterpreters/lox/Environment.java | |
parent | 8019f6aa414f5126ebbcd3afc44bcebc16855d5f (diff) | |
download | crafting-interpreters-899ecea236288b5ebc7795c204fdad59b3276002.tar.gz crafting-interpreters-899ecea236288b5ebc7795c204fdad59b3276002.zip |
Chapter 8: Add variable declarations
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); + } +} |