0 *ast.File { 1 . Package: main.go:1:1 2 . Name: *ast.Ident { 3 . . NamePos: main.go:1:9 4 . . Name: "main" 5 . } 6 . Decls: []ast.Decl (len = 5) { 7 . . 0: *ast.GenDecl { 8 . . . TokPos: main.go:3:1 9 . . . Tok: import 10 . . . Lparen: - 11 . . . Specs: []ast.Spec (len = 1) { 12 . . . . 0: *ast.ImportSpec { 13 . . . . . Path: *ast.BasicLit { 14 . . . . . . ValuePos: main.go:3:8 15 . . . . . . Kind: STRING 16 . . . . . . Value: "\"fmt\"" 17 . . . . . } 18 . . . . . EndPos: - 19 . . . . } 20 . . . } 21 . . . Rparen: - 22 . . } 23 . . 1: *ast.GenDecl { 24 . . . TokPos: main.go:5:1 25 . . . Tok: var 26 . . . Lparen: - 27 . . . Specs: []ast.Spec (len = 1) { 28 . . . . 0: *ast.ValueSpec { 29 . . . . . Names: []*ast.Ident (len = 1) { 30 . . . . . . 0: *ast.Ident { 31 . . . . . . . NamePos: main.go:5:5 32 . . . . . . . Name: "vector" 33 . . . . . . . Obj: *ast.Object { 34 . . . . . . . . Kind: var 35 . . . . . . . . Name: "vector" 36 . . . . . . . . Decl: *(obj @ 28) 37 . . . . . . . . Data: 0 38 . . . . . . . } 39 . . . . . . } 40 . . . . . } 41 . . . . . Type: *ast.ArrayType { 42 . . . . . . Lbrack: main.go:5:12 43 . . . . . . Elt: *ast.StarExpr { 44 . . . . . . . Star: main.go:5:14 45 . . . . . . . X: *ast.Ident { 46 . . . . . . . . NamePos: main.go:5:15 47 . . . . . . . . Name: "string" 48 . . . . . . . } 49 . . . . . . } 50 . . . . . } 51 . . . . } 52 . . . } 53 . . . Rparen: - 54 . . } 55 . . 2: *ast.FuncDecl { 56 . . . Name: *ast.Ident { 57 . . . . NamePos: main.go:7:6 58 . . . . Name: "appendVector" 59 . . . . Obj: *ast.Object { 60 . . . . . Kind: func 61 . . . . . Name: "appendVector" 62 . . . . . Decl: *(obj @ 55) 63 . . . . } 64 . . . } 65 . . . Type: *ast.FuncType { 66 . . . . Func: main.go:7:1 67 . . . . Params: *ast.FieldList { 68 . . . . . Opening: main.go:7:18 69 . . . . . List: []*ast.Field (len = 1) { 70 . . . . . . 0: *ast.Field { 71 . . . . . . . Names: []*ast.Ident (len = 1) { 72 . . . . . . . . 0: *ast.Ident { 73 . . . . . . . . . NamePos: main.go:7:19 74 . . . . . . . . . Name: "s" 75 . . . . . . . . . Obj: *ast.Object { 76 . . . . . . . . . . Kind: var 77 . . . . . . . . . . Name: "s" 78 . . . . . . . . . . Decl: *(obj @ 70) 79 . . . . . . . . . } 80 . . . . . . . . } 81 . . . . . . . } 82 . . . . . . . Type: *ast.StarExpr { 83 . . . . . . . . Star: main.go:7:21 84 . . . . . . . . X: *ast.Ident { 85 . . . . . . . . . NamePos: main.go:7:22 86 . . . . . . . . . Name: "string" 87 . . . . . . . . } 88 . . . . . . . } 89 . . . . . . } 90 . . . . . } 91 . . . . . Closing: main.go:7:28 92 . . . . } 93 . . . } 94 . . . Body: *ast.BlockStmt { 95 . . . . Lbrace: main.go:7:30 96 . . . . List: []ast.Stmt (len = 1) { 97 . . . . . 0: *ast.AssignStmt { 98 . . . . . . Lhs: []ast.Expr (len = 1) { 99 . . . . . . . 0: *ast.Ident { 100 . . . . . . . . NamePos: main.go:8:2 101 . . . . . . . . Name: "vector" 102 . . . . . . . . Obj: *(obj @ 33) 103 . . . . . . . } 104 . . . . . . } 105 . . . . . . TokPos: main.go:8:9 106 . . . . . . Tok: = 107 . . . . . . Rhs: []ast.Expr (len = 1) { 108 . . . . . . . 0: *ast.CallExpr { 109 . . . . . . . . Fun: *ast.Ident { 110 . . . . . . . . . NamePos: main.go:8:11 111 . . . . . . . . . Name: "append" 112 . . . . . . . . } 113 . . . . . . . . Lparen: main.go:8:17 114 . . . . . . . . Args: []ast.Expr (len = 2) { 115 . . . . . . . . . 0: *ast.Ident { 116 . . . . . . . . . . NamePos: main.go:8:18 117 . . . . . . . . . . Name: "vector" 118 . . . . . . . . . . Obj: *(obj @ 33) 119 . . . . . . . . . } 120 . . . . . . . . . 1: *ast.Ident { 121 . . . . . . . . . . NamePos: main.go:8:26 122 . . . . . . . . . . Name: "s" 123 . . . . . . . . . . Obj: *(obj @ 75) 124 . . . . . . . . . } 125 . . . . . . . . } 126 . . . . . . . . Ellipsis: - 127 . . . . . . . . Rparen: main.go:8:27 128 . . . . . . . } 129 . . . . . . } 130 . . . . . } 131 . . . . } 132 . . . . Rbrace: main.go:9:1 133 . . . } 134 . . } 135 . . 3: *ast.FuncDecl { 136 . . . Name: *ast.Ident { 137 . . . . NamePos: main.go:11:6 138 . . . . Name: "printVector" 139 . . . . Obj: *ast.Object { 140 . . . . . Kind: func 141 . . . . . Name: "printVector" 142 . . . . . Decl: *(obj @ 135) 143 . . . . } 144 . . . } 145 . . . Type: *ast.FuncType { 146 . . . . Func: main.go:11:1 147 . . . . Params: *ast.FieldList { 148 . . . . . Opening: main.go:11:17 149 . . . . . Closing: main.go:11:18 150 . . . . } 151 . . . } 152 . . . Body: *ast.BlockStmt { 153 . . . . Lbrace: main.go:11:20 154 . . . . List: []ast.Stmt (len = 2) { 155 . . . . . 0: *ast.RangeStmt { 156 . . . . . . For: main.go:12:2 157 . . . . . . Key: *ast.Ident { 158 . . . . . . . NamePos: main.go:12:6 159 . . . . . . . Name: "_" 160 . . . . . . . Obj: *ast.Object { 161 . . . . . . . . Kind: var 162 . . . . . . . . Name: "_" 163 . . . . . . . . Decl: *ast.AssignStmt { 164 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 165 . . . . . . . . . . 0: *(obj @ 157) 166 . . . . . . . . . . 1: *ast.Ident { 167 . . . . . . . . . . . NamePos: main.go:12:9 168 . . . . . . . . . . . Name: "item" 169 . . . . . . . . . . . Obj: *ast.Object { 170 . . . . . . . . . . . . Kind: var 171 . . . . . . . . . . . . Name: "item" 172 . . . . . . . . . . . . Decl: *(obj @ 163) 173 . . . . . . . . . . . } 174 . . . . . . . . . . } 175 . . . . . . . . . } 176 . . . . . . . . . TokPos: main.go:12:14 177 . . . . . . . . . Tok: := 178 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 179 . . . . . . . . . . 0: *ast.UnaryExpr { 180 . . . . . . . . . . . OpPos: main.go:12:17 181 . . . . . . . . . . . Op: range 182 . . . . . . . . . . . X: *ast.Ident { 183 . . . . . . . . . . . . NamePos: main.go:12:23 184 . . . . . . . . . . . . Name: "vector" 185 . . . . . . . . . . . . Obj: *(obj @ 33) 186 . . . . . . . . . . . } 187 . . . . . . . . . . } 188 . . . . . . . . . } 189 . . . . . . . . } 190 . . . . . . . } 191 . . . . . . } 192 . . . . . . Value: *(obj @ 166) 193 . . . . . . TokPos: main.go:12:14 194 . . . . . . Tok: := 195 . . . . . . X: *(obj @ 182) 196 . . . . . . Body: *ast.BlockStmt { 197 . . . . . . . Lbrace: main.go:12:30 198 . . . . . . . List: []ast.Stmt (len = 1) { 199 . . . . . . . . 0: *ast.ExprStmt { 200 . . . . . . . . . X: *ast.CallExpr { 201 . . . . . . . . . . Fun: *ast.SelectorExpr { 202 . . . . . . . . . . . X: *ast.Ident { 203 . . . . . . . . . . . . NamePos: main.go:13:3 204 . . . . . . . . . . . . Name: "fmt" 205 . . . . . . . . . . . } 206 . . . . . . . . . . . Sel: *ast.Ident { 207 . . . . . . . . . . . . NamePos: main.go:13:7 208 . . . . . . . . . . . . Name: "Printf" 209 . . . . . . . . . . . } 210 . . . . . . . . . . } 211 . . . . . . . . . . Lparen: main.go:13:13 212 . . . . . . . . . . Args: []ast.Expr (len = 2) { 213 . . . . . . . . . . . 0: *ast.BasicLit { 214 . . . . . . . . . . . . ValuePos: main.go:13:14 215 . . . . . . . . . . . . Kind: STRING 216 . . . . . . . . . . . . Value: "\"%s\"" 217 . . . . . . . . . . . } 218 . . . . . . . . . . . 1: *ast.StarExpr { 219 . . . . . . . . . . . . Star: main.go:13:20 220 . . . . . . . . . . . . X: *ast.Ident { 221 . . . . . . . . . . . . . NamePos: main.go:13:21 222 . . . . . . . . . . . . . Name: "item" 223 . . . . . . . . . . . . . Obj: *(obj @ 169) 224 . . . . . . . . . . . . } 225 . . . . . . . . . . . } 226 . . . . . . . . . . } 227 . . . . . . . . . . Ellipsis: - 228 . . . . . . . . . . Rparen: main.go:13:25 229 . . . . . . . . . } 230 . . . . . . . . } 231 . . . . . . . } 232 . . . . . . . Rbrace: main.go:14:2 233 . . . . . . } 234 . . . . . } 235 . . . . . 1: *ast.ExprStmt { 236 . . . . . . X: *ast.CallExpr { 237 . . . . . . . Fun: *ast.SelectorExpr { 238 . . . . . . . . X: *ast.Ident { 239 . . . . . . . . . NamePos: main.go:15:2 240 . . . . . . . . . Name: "fmt" 241 . . . . . . . . } 242 . . . . . . . . Sel: *ast.Ident { 243 . . . . . . . . . NamePos: main.go:15:6 244 . . . . . . . . . Name: "Println" 245 . . . . . . . . } 246 . . . . . . . } 247 . . . . . . . Lparen: main.go:15:13 248 . . . . . . . Ellipsis: - 249 . . . . . . . Rparen: main.go:15:14 250 . . . . . . } 251 . . . . . } 252 . . . . } 253 . . . . Rbrace: main.go:16:1 254 . . . } 255 . . } 256 . . 4: *ast.FuncDecl { 257 . . . Name: *ast.Ident { 258 . . . . NamePos: main.go:18:6 259 . . . . Name: "main" 260 . . . . Obj: *ast.Object { 261 . . . . . Kind: func 262 . . . . . Name: "main" 263 . . . . . Decl: *(obj @ 256) 264 . . . . } 265 . . . } 266 . . . Type: *ast.FuncType { 267 . . . . Func: main.go:18:1 268 . . . . Params: *ast.FieldList { 269 . . . . . Opening: main.go:18:10 270 . . . . . Closing: main.go:18:11 271 . . . . } 272 . . . } 273 . . . Body: *ast.BlockStmt { 274 . . . . Lbrace: main.go:18:13 275 . . . . List: []ast.Stmt (len = 2) { 276 . . . . . 0: *ast.RangeStmt { 277 . . . . . . For: main.go:19:2 278 . . . . . . Key: *ast.Ident { 279 . . . . . . . NamePos: main.go:19:6 280 . . . . . . . Name: "_" 281 . . . . . . . Obj: *ast.Object { 282 . . . . . . . . Kind: var 283 . . . . . . . . Name: "_" 284 . . . . . . . . Decl: *ast.AssignStmt { 285 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 286 . . . . . . . . . . 0: *(obj @ 278) 287 . . . . . . . . . . 1: *ast.Ident { 288 . . . . . . . . . . . NamePos: main.go:19:9 289 . . . . . . . . . . . Name: "item" 290 . . . . . . . . . . . Obj: *ast.Object { 291 . . . . . . . . . . . . Kind: var 292 . . . . . . . . . . . . Name: "item" 293 . . . . . . . . . . . . Decl: *(obj @ 284) 294 . . . . . . . . . . . } 295 . . . . . . . . . . } 296 . . . . . . . . . } 297 . . . . . . . . . TokPos: main.go:19:14 298 . . . . . . . . . Tok: := 299 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 300 . . . . . . . . . . 0: *ast.UnaryExpr { 301 . . . . . . . . . . . OpPos: main.go:19:17 302 . . . . . . . . . . . Op: range 303 . . . . . . . . . . . X: *ast.CompositeLit { 304 . . . . . . . . . . . . Type: *ast.ArrayType { 305 . . . . . . . . . . . . . Lbrack: main.go:19:23 306 . . . . . . . . . . . . . Elt: *ast.Ident { 307 . . . . . . . . . . . . . . NamePos: main.go:19:25 308 . . . . . . . . . . . . . . Name: "string" 309 . . . . . . . . . . . . . } 310 . . . . . . . . . . . . } 311 . . . . . . . . . . . . Lbrace: main.go:19:31 312 . . . . . . . . . . . . Elts: []ast.Expr (len = 3) { 313 . . . . . . . . . . . . . 0: *ast.BasicLit { 314 . . . . . . . . . . . . . . ValuePos: main.go:19:32 315 . . . . . . . . . . . . . . Kind: STRING 316 . . . . . . . . . . . . . . Value: "\"A\"" 317 . . . . . . . . . . . . . } 318 . . . . . . . . . . . . . 1: *ast.BasicLit { 319 . . . . . . . . . . . . . . ValuePos: main.go:19:37 320 . . . . . . . . . . . . . . Kind: STRING 321 . . . . . . . . . . . . . . Value: "\"B\"" 322 . . . . . . . . . . . . . } 323 . . . . . . . . . . . . . 2: *ast.BasicLit { 324 . . . . . . . . . . . . . . ValuePos: main.go:19:42 325 . . . . . . . . . . . . . . Kind: STRING 326 . . . . . . . . . . . . . . Value: "\"C\"" 327 . . . . . . . . . . . . . } 328 . . . . . . . . . . . . } 329 . . . . . . . . . . . . Rbrace: main.go:19:45 330 . . . . . . . . . . . . Incomplete: false 331 . . . . . . . . . . . } 332 . . . . . . . . . . } 333 . . . . . . . . . } 334 . . . . . . . . } 335 . . . . . . . } 336 . . . . . . } 337 . . . . . . Value: *(obj @ 287) 338 . . . . . . TokPos: main.go:19:14 339 . . . . . . Tok: := 340 . . . . . . X: *(obj @ 303) 341 . . . . . . Body: *ast.BlockStmt { 342 . . . . . . . Lbrace: main.go:19:47 343 . . . . . . . List: []ast.Stmt (len = 2) { 344 . . . . . . . . 0: *ast.ExprStmt { 345 . . . . . . . . . X: *ast.CallExpr { 346 . . . . . . . . . . Fun: *ast.SelectorExpr { 347 . . . . . . . . . . . X: *ast.Ident { 348 . . . . . . . . . . . . NamePos: main.go:20:3 349 . . . . . . . . . . . . Name: "fmt" 350 . . . . . . . . . . . } 351 . . . . . . . . . . . Sel: *ast.Ident { 352 . . . . . . . . . . . . NamePos: main.go:20:7 353 . . . . . . . . . . . . Name: "Printf" 354 . . . . . . . . . . . } 355 . . . . . . . . . . } 356 . . . . . . . . . . Lparen: main.go:20:13 357 . . . . . . . . . . Args: []ast.Expr (len = 2) { 358 . . . . . . . . . . . 0: *ast.BasicLit { 359 . . . . . . . . . . . . ValuePos: main.go:20:14 360 . . . . . . . . . . . . Kind: STRING 361 . . . . . . . . . . . . Value: "\"%p\\n\"" 362 . . . . . . . . . . . } 363 . . . . . . . . . . . 1: *ast.UnaryExpr { 364 . . . . . . . . . . . . OpPos: main.go:20:22 365 . . . . . . . . . . . . Op: & 366 . . . . . . . . . . . . X: *ast.Ident { 367 . . . . . . . . . . . . . NamePos: main.go:20:23 368 . . . . . . . . . . . . . Name: "item" 369 . . . . . . . . . . . . . Obj: *(obj @ 290) 370 . . . . . . . . . . . . } 371 . . . . . . . . . . . } 372 . . . . . . . . . . } 373 . . . . . . . . . . Ellipsis: - 374 . . . . . . . . . . Rparen: main.go:20:27 375 . . . . . . . . . } 376 . . . . . . . . } 377 . . . . . . . . 1: *ast.ExprStmt { 378 . . . . . . . . . X: *ast.CallExpr { 379 . . . . . . . . . . Fun: *ast.Ident { 380 . . . . . . . . . . . NamePos: main.go:21:3 381 . . . . . . . . . . . Name: "appendVector" 382 . . . . . . . . . . . Obj: *(obj @ 59) 383 . . . . . . . . . . } 384 . . . . . . . . . . Lparen: main.go:21:15 385 . . . . . . . . . . Args: []ast.Expr (len = 1) { 386 . . . . . . . . . . . 0: *ast.UnaryExpr { 387 . . . . . . . . . . . . OpPos: main.go:21:16 388 . . . . . . . . . . . . Op: & 389 . . . . . . . . . . . . X: *ast.Ident { 390 . . . . . . . . . . . . . NamePos: main.go:21:17 391 . . . . . . . . . . . . . Name: "item" 392 . . . . . . . . . . . . . Obj: *(obj @ 290) 393 . . . . . . . . . . . . } 394 . . . . . . . . . . . } 395 . . . . . . . . . . } 396 . . . . . . . . . . Ellipsis: - 397 . . . . . . . . . . Rparen: main.go:21:21 398 . . . . . . . . . } 399 . . . . . . . . } 400 . . . . . . . } 401 . . . . . . . Rbrace: main.go:22:2 402 . . . . . . } 403 . . . . . } 404 . . . . . 1: *ast.ExprStmt { 405 . . . . . . X: *ast.CallExpr { 406 . . . . . . . Fun: *ast.Ident { 407 . . . . . . . . NamePos: main.go:24:2 408 . . . . . . . . Name: "printVector" 409 . . . . . . . . Obj: *(obj @ 139) 410 . . . . . . . } 411 . . . . . . . Lparen: main.go:24:13 412 . . . . . . . Ellipsis: - 413 . . . . . . . Rparen: main.go:24:14 414 . . . . . . } 415 . . . . . } 416 . . . . } 417 . . . . Rbrace: main.go:25:1 418 . . . } 419 . . } 420 . } 421 . Scope: *ast.Scope { 422 . . Objects: map[string]*ast.Object (len = 4) { 423 . . . "vector": *(obj @ 33) 424 . . . "appendVector": *(obj @ 59) 425 . . . "printVector": *(obj @ 139) 426 . . . "main": *(obj @ 260) 427 . . } 428 . } 429 . Imports: []*ast.ImportSpec (len = 1) { 430 . . 0: *(obj @ 12) 431 . } 432 . Unresolved: []*ast.Ident (len = 7) { 433 . . 0: *(obj @ 45) 434 . . 1: *(obj @ 84) 435 . . 2: *(obj @ 109) 436 . . 3: *(obj @ 202) 437 . . 4: *(obj @ 238) 438 . . 5: *(obj @ 306) 439 . . 6: *(obj @ 347) 440 . } 441 }