github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/ast/doc_test.go (about) 1 package ast_test 2 3 import ( 4 "fmt" 5 6 "github.com/madlambda/nash/ast" 7 "github.com/madlambda/nash/token" 8 ) 9 10 func Example_AssignmentNode() { 11 one := ast.NewNameNode(token.NewFileInfo(1, 0), "one", nil) 12 two := ast.NewNameNode(token.NewFileInfo(1, 4), "two", nil) 13 value1 := ast.NewStringExpr(token.NewFileInfo(1, 8), "1", true) 14 value2 := ast.NewStringExpr(token.NewFileInfo(1, 10), "2", true) 15 assign := ast.NewAssignNode(token.NewFileInfo(1, 0), 16 []*ast.NameNode{one, two}, 17 []ast.Expr{value1, value2}, 18 ) 19 20 fmt.Printf("%s", assign) 21 22 // Output: one, two = "1", "2" 23 } 24 25 func Example_AssignmentNode_Single() { 26 operatingSystems := ast.NewNameNode(token.NewFileInfo(1, 0), "operatingSystems", nil) 27 values := []ast.Expr{ 28 ast.NewStringExpr(token.NewFileInfo(1, 19), "plan9 from bell labs", true), 29 ast.NewStringExpr(token.NewFileInfo(2, 19), "unix", true), 30 ast.NewStringExpr(token.NewFileInfo(3, 19), "linux", true), 31 ast.NewStringExpr(token.NewFileInfo(4, 19), "oberon", true), 32 ast.NewStringExpr(token.NewFileInfo(5, 19), "windows", true), 33 } 34 35 list := ast.NewListExpr(token.NewFileInfo(0, 18), values) 36 assign := ast.NewSingleAssignNode(token.NewFileInfo(1, 0), 37 operatingSystems, 38 list, 39 ) 40 41 fmt.Printf("%s", assign) 42 43 // Output: operatingSystems = ( 44 // "plan9 from bell labs" 45 // "unix" 46 // "linux" 47 // "oberon" 48 // "windows" 49 // ) 50 }