From 551613765c9e60e2221ac920d2756b949e68f373 Mon Sep 17 00:00:00 2001 From: Charlie Stanton Date: Fri, 12 May 2023 11:37:44 +0100 Subject: Move reading and writing of tokens into a separate package to prepare for other input and output formats --- main/main.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'main/main.go') 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) } } -- cgit v1.2.3