diff options
Diffstat (limited to 'interpreter/repl.go')
| -rw-r--r-- | interpreter/repl.go | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/interpreter/repl.go b/interpreter/repl.go deleted file mode 100644 index 73af8a7..0000000 --- a/interpreter/repl.go +++ /dev/null @@ -1,35 +0,0 @@ -package interpreter - -import ( - "bufio" - "errors" - "fmt" - "io" - - "github.com/mvertes/parscan/scanner" -) - -// Repl executes an interactive line oriented Read Eval Print Loop (REPL). -func (i *Interp) Repl(in io.Reader) (err error) { - liner := bufio.NewScanner(in) - text, prompt := "", "> " - fmt.Print(prompt) - for liner.Scan() { - text += liner.Text() - res, err := i.Eval(text + "\n") - switch { - case err == nil: - if res.IsValid() { - fmt.Println(": ", res) - } - text, prompt = "", "> " - case errors.Is(err, scanner.ErrBlock): - prompt = ">> " - default: - fmt.Println("Error:", err) - text, prompt = "", "> " - } - fmt.Print(prompt) - } - return err -} |
