示例#1
0
文件: ex15.go 项目: utahta/gopl
func main() {
	scanner := bufio.NewScanner(os.Stdin)
	for {
		fmt.Print("> ")
		if !scanner.Scan() {
			break
		}

		expr, err := eval.Parse(scanner.Text())
		if err != nil {
			fmt.Println(err)
			continue
		}

		if err = expr.Check(map[eval.Var]bool{}); err != nil {
			fmt.Println(err)
			continue
		}
		fmt.Println(expr.Eval(eval.Env{}))
	}
}
示例#2
0
文件: ex14.go 项目: utahta/gopl
func main() {
	expr, _ := eval.Parse("x ? y")
	fmt.Println(expr.Eval(eval.Env{"x": 10, "y": 20}))
}
示例#3
0
文件: ex13.go 项目: utahta/gopl
func main() {
	expr, _ := eval.Parse("pow(x + pow(y))")
	fmt.Println(expr.String())
}