python - example_test.go
1 package python_test
2
3 import (
4 "fmt"
5
6 "vimagination.zapto.org/parser"
7 "vimagination.zapto.org/python"
8 )
9
10 func Example() {
11 src := `for name in ["Alice", "Bob", "Charlie"]: print("Hello,", name)`
12
13 tk := parser.NewStringTokeniser(src)
14
15 ast, err := python.Parse(&tk)
16 if err != nil {
17 fmt.Println(err)
18
19 return
20 }
21
22 python.UnwrapConditional(python.UnwrapConditional(ast.Statements[0].CompoundStatement.For.Suite.StatementList.Statements[0].AssignmentStatement.StarredExpression.Expression.ConditionalExpression).(*python.PrimaryExpression).Call.ArgumentList.PositionalArguments[0].AssignmentExpression.Expression.ConditionalExpression).(*python.Atom).Literal.Data = `"Hi,"`
23
24 fmt.Printf("%+s", ast)
25
26 // Output:
27 // for name in ["Alice", "Bob", "Charlie"]: print("Hi,", name)
28 }
29