mirror of
https://github.com/hanzoai/expr.git
synced 2026-09-24 16:58:58 +00:00
39 lines
534 B
Go
39 lines
534 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/antonmedv/expr"
|
|
"github.com/chzyer/readline"
|
|
)
|
|
|
|
func main() {
|
|
rl, err := readline.New("> ")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer rl.Close()
|
|
|
|
for {
|
|
line, err := rl.Readline()
|
|
if err != nil { // io.EOF when Ctrl-D is pressed
|
|
break
|
|
}
|
|
|
|
if line == "exit" {
|
|
break
|
|
}
|
|
|
|
result := evaluate(line)
|
|
fmt.Println(result)
|
|
}
|
|
}
|
|
|
|
func evaluate(input string) string {
|
|
result, err := expr.Eval(input, nil)
|
|
if err != nil {
|
|
return err.Error()
|
|
}
|
|
return fmt.Sprintf("%v", result)
|
|
}
|