r - example_test.go
1 package r_test
2
3 import (
4 "fmt"
5
6 "vimagination.zapto.org/parser"
7 "vimagination.zapto.org/r"
8 )
9
10 func Example() {
11 src := `hello <- function(name) { message(sprintf("Hello, %s", name)) }; hello("Alice")`
12
13 tk := parser.NewStringTokeniser(src)
14
15 ast, err := r.Parse(&tk)
16 if err != nil {
17 fmt.Println(err)
18
19 return
20 }
21
22 r.UnwrapQuery(r.UnwrapQuery(r.UnwrapQuery(r.UnwrapQuery(ast.Statements[0].QueryExpression.AssignmentExpression.Expression.FunctionDefinition.Body.QueryExpression).(*r.CompoundExpression).Expressions[0].QueryExpression).(*r.IndexOrCallExpression).Call.Args[0].QueryExpression).(*r.IndexOrCallExpression).Call.Args[0].QueryExpression).(*r.SimpleExpression).Constant.Data = `"Hi, %s"`
23
24 fmt.Printf("%+s", ast)
25
26 // Output:
27 // hello <- function(name) {
28 // message(sprintf("Hi, %s", name))
29 // }
30 // hello("Alice")
31 }
32