math_eval.gno
0.60 Kb ยท 30 lines
1// eval realm is capable of evaluating 32-bit integer
2// expressions as they would appear in Go. For example:
3// /r/demo/math_eval:(4+12)/2-1+11*15
4package eval
5
6import (
7 evalint32 "gno.land/p/demo/math_eval/int32"
8 "gno.land/p/demo/ufmt"
9)
10
11func Render(p string) string {
12 if len(p) == 0 {
13 return `
14evaluates 32-bit integer expressions. for example:
15
16[(4+12)/2-1+11*15](/r/demo/math_eval:(4+12)/2-1+11*15)
17
18`
19 }
20 expr, err := evalint32.Parse(p)
21 if err != nil {
22 return err.Error()
23 }
24 res, err := evalint32.Eval(expr, nil)
25 if err != nil {
26 return err.Error()
27 }
28
29 return ufmt.Sprintf("%s = %d", p, res)
30}