From 899ecea236288b5ebc7795c204fdad59b3276002 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 18 Nov 2020 23:30:46 -0800 Subject: Chapter 8: Add variable declarations --- src/com/craftinginterpreters/lox/Environment.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/com/craftinginterpreters/lox/Environment.java (limited to 'src/com/craftinginterpreters/lox/Environment.java') 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 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); + } +} -- cgit v1.2.3-54-g00ecf