1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package main
import (
"flag"
"fmt"
"os"
"github.com/dexon-foundation/dexon/core/vm/sqlvm/ast"
"github.com/dexon-foundation/dexon/core/vm/sqlvm/parser"
)
func main() {
var detail bool
flag.BoolVar(&detail, "detail", false, "print struct detail")
flag.Parse()
fmt.Fprintf(os.Stderr, "detail: %t\n", detail)
s := []byte(flag.Arg(0))
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)
}
}
|