diff options
Diffstat (limited to 'cer.go')
-rw-r--r-- | cer.go | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -14,7 +14,7 @@ import ( ) func main() { - errs := make(chan error, 1024) + errs := make(chan error, 1) toks := make(chan token, 1024) go lex(os.Stdin, toks, errs) @@ -23,7 +23,7 @@ func main() { // fmt.Println(token) // } - root := make(chan *rootExpr, 1) + root := make(chan *rootExpr) go parse(&tokens{ src: toks, toks: make([]token, 0, len(toks)), @@ -31,7 +31,10 @@ func main() { // fmt.Printf("%+v\n", <-expr) - go generate(<-root, os.Stdout, errs) + ast, ok := <-root + if ok { + go generate(ast, os.Stdout, errs) + } err := <-errs if err != nil { |