github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/examples/gno.land/r/demo/math_eval/math_eval.gno (about) 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 4 package eval 5 6 import ( 7 evalint32 "gno.land/p/demo/math_eval/int32" 8 "gno.land/p/demo/ufmt" 9 ) 10 11 func Render(p string) string { 12 if len(p) == 0 { 13 return ` 14 evaluates 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 }