aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..ed75659
--- /dev/null
+++ b/main.go
@@ -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())
+ }
+}