diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +package main + +import ( + "bufio" + "fmt" + "os" +) + +func main() { + var err error + f := os.Stdin + if len(os.Args) > 1 { + f, err = os.Open(os.Args[1]) + if err != nil { + panic(err) + } + defer f.Close() + } + sc := bufio.NewScanner(f) + for sc.Scan() { + s := sc.Bytes() + expr, err := Parse(s) + if err != nil { + fmt.Fprintln(os.Stderr, "Parse:", err) + continue + } + n := expr.Eval() + fmt.Println(n.String()) + } +} |