-
Notifications
You must be signed in to change notification settings - Fork 1
/
example.go
57 lines (54 loc) · 1.9 KB
/
example.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package main
import (
"fmt"
"github.com/pk-rawat/gostr/src"
)
func main() {
values := make(map[string]interface{})
values["a"] = 5
values["b"] = 3
values["c"] = 2
values["e"] = ""
values["f"] = 1203.62
values["g"] = "Hello World!"
fmt.Printf("%v\n", values)
query := "a * 2"
result := gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "a + b * c"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "(a + b) * c"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n\n", query, result)
query = "a < b"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "a =< (b * c)"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "a <> b"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "(a + 1) = (b * c)"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "(a > b) AND (b < c)"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "(a > b) OR (b < c)"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "ISBLANK(d)"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "NOT(ISBLANK(e))"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "ROUND(f)"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
query = "LENGTH(g) * 2"
result = gostr.Evaluate(query, values)
fmt.Printf("Query: %s Result: %v\n", query, result)
}