<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/main/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main/main.go')
-rw-r--r--main/main.go18
1 files changed, 10 insertions, 8 deletions
diff --git a/main/main.go b/main/main.go
index 55ed5b5..668253d 100644
--- a/main/main.go
+++ b/main/main.go
@@ -4,14 +4,15 @@ import (
"os"
"bufio"
"main/walk"
+ "main/json_tokens"
)
type Program []Command
type ProgramState struct {
path, value, xreg, yreg, zreg []walk.Atom
- in walk.JSONIn
- out walk.JSONOut
+ in walk.StredReader
+ out walk.StredWriter
program []Command
pc int
}
@@ -44,8 +45,8 @@ func main() {
stdout := bufio.NewWriter(os.Stdout)
state := ProgramState {
- in: walk.NewJSONIn(stdin),
- out: walk.NewJSONOut(stdout),
+ in: json_tokens.NewJSONIn(stdin),
+ out: json_tokens.NewJSONOut(stdout),
program: program,
}
@@ -61,12 +62,13 @@ func main() {
state.program[state.pc].exec(&state)
}
if !quiet {
- pathValues, err := walk.Compound(state.path)
+ err := state.out.Write(walk.WalkItem {
+ Path: state.path,
+ Value: state.value,
+ })
if err != nil {
- panic("Tried to convert invalid atoms to values")
+ panic("Error while outputting")
}
- path := walk.PathFromWalkValues(pathValues)
- state.out.Print(path, state.value)
}
}