From 3274f055838e0bbc499a24ac58e06a4604d0a322 Mon Sep 17 00:00:00 2001 From: Ting-Wei Lan Date: Sat, 23 Feb 2019 17:47:20 +0800 Subject: core: vm: sqlvm: ast: handle error in AST printer Catch the error reported by fmt.Fprintf and report it to the caller. --- core/vm/sqlvm/cmd/ast-printer/main.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'core/vm/sqlvm/cmd') diff --git a/core/vm/sqlvm/cmd/ast-printer/main.go b/core/vm/sqlvm/cmd/ast-printer/main.go index 33710f2b0..d62cb4fc8 100644 --- a/core/vm/sqlvm/cmd/ast-printer/main.go +++ b/core/vm/sqlvm/cmd/ast-printer/main.go @@ -15,12 +15,18 @@ func main() { flag.Parse() + fmt.Fprintf(os.Stderr, "detail: %t\n", detail) s := []byte(flag.Arg(0)) - n, err := parser.Parse(s) - fmt.Printf("detail: %t\n", detail) - if err != nil { - fmt.Fprintf(os.Stderr, "err:\n%+v\n", err) + n, parseErr := parser.Parse(s) + b, printErr := ast.PrintAST(os.Stdout, n, s, " ", detail) + if parseErr != nil { + fmt.Fprintf(os.Stderr, "Parse error:\n%+v\n", parseErr) + } + if printErr != nil { + fmt.Fprintf(os.Stderr, "Print error:\n%+v\n", printErr) + } + fmt.Fprintf(os.Stderr, "Output size: %d bytes\n", b) + if parseErr != nil || printErr != nil { os.Exit(1) } - ast.PrintAST(os.Stdout, n, s, " ", detail) } -- cgit v1.2.3