From e5ed6e13a4adbbe61317194af36c33c82b33c90f Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 25 Mar 2018 01:50:10 +0100 Subject: lost chapter --- repl/repl.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'repl') diff --git a/repl/repl.go b/repl/repl.go index 3d75f8a..e267e1d 100644 --- a/repl/repl.go +++ b/repl/repl.go @@ -16,6 +16,7 @@ const PROMPT = ">> " func Start(in io.Reader, out io.Writer) { scanner := bufio.NewScanner(in) env := object.NewEnvironment() + macroEnv := object.NewEnvironment() for { fmt.Print(PROMPT) @@ -34,7 +35,10 @@ func Start(in io.Reader, out io.Writer) { continue } - evaluated := evaluator.Eval(program, env) + evaluator.DefineMacros(program, macroEnv) + expanded := evaluator.ExpandMacros(program, macroEnv) + + evaluated := evaluator.Eval(expanded, env) if evaluated != nil { io.WriteString(out, evaluated.Inspect()) io.WriteString(out, "\n") -- cgit v1.2.3