(+0.000000e+000+0.000000e+000i) 0 ##################################### 0 *ast.File { 3 . Name: *ast.Ident { 5 . . Name: "main" 8 . Decls: []ast.Decl (len = 15) { 9 . . 0: *ast.GenDecl { 12 . . . Tok: import 14 . . . Specs: []ast.Spec (len = 1) { 15 . . . . 0: *ast.ImportSpec { 18 . . . . . Path: *ast.BasicLit { 20 . . . . . . Kind: STRING 21 . . . . . . Value: "\"flag\"" 28 . . 1: *ast.GenDecl { 31 . . . Tok: import 33 . . . Specs: []ast.Spec (len = 1) { 34 . . . . 0: *ast.ImportSpec { 37 . . . . . Path: *ast.BasicLit { 39 . . . . . . Kind: STRING 40 . . . . . . Value: "\"go/ast\"" 47 . . 2: *ast.GenDecl { 50 . . . Tok: import 52 . . . Specs: []ast.Spec (len = 1) { 53 . . . . 0: *ast.ImportSpec { 56 . . . . . Path: *ast.BasicLit { 58 . . . . . . Kind: STRING 59 . . . . . . Value: "\"go/parser\"" 66 . . 3: *ast.GenDecl { 69 . . . Tok: import 71 . . . Specs: []ast.Spec (len = 1) { 72 . . . . 0: *ast.ImportSpec { 74 . . . . . Name: *ast.Ident { 76 . . . . . . Name: "_" 79 . . . . . Path: *ast.BasicLit { 81 . . . . . . Kind: STRING 82 . . . . . . Value: "\"go/printer\"" 89 . . 4: *ast.GenDecl { 92 . . . Tok: import 94 . . . Specs: []ast.Spec (len = 1) { 95 . . . . 0: *ast.ImportSpec { 98 . . . . . Path: *ast.BasicLit { 100 . . . . . . Kind: STRING 101 . . . . . . Value: "\"go/token\"" 108 . . 5: *ast.GenDecl { 111 . . . Tok: import 113 . . . Specs: []ast.Spec (len = 1) { 114 . . . . 0: *ast.ImportSpec { 117 . . . . . Path: *ast.BasicLit { 119 . . . . . . Kind: STRING 120 . . . . . . Value: "\"go/types\"" 127 . . 6: *ast.GenDecl { 130 . . . Tok: import 132 . . . Specs: []ast.Spec (len = 1) { 133 . . . . 0: *ast.ImportSpec { 136 . . . . . Path: *ast.BasicLit { 138 . . . . . . Kind: STRING 139 . . . . . . Value: "\"os\"" 146 . . 7: *ast.GenDecl { 149 . . . Tok: const 151 . . . Specs: []ast.Spec (len = 1) { 152 . . . . 0: *ast.ValueSpec { 154 . . . . . Names: []*ast.Ident (len = 1) { 155 . . . . . . 0: *ast.Ident { 157 . . . . . . . Name: "FOO" 158 . . . . . . . Obj: *ast.Object { 159 . . . . . . . . Kind: const 160 . . . . . . . . Name: "FOO" 161 . . . . . . . . Decl: *(obj @ 152) 167 . . . . . Values: []ast.Expr (len = 1) { 168 . . . . . . 0: *ast.BasicLit { 170 . . . . . . . Kind: INT 171 . . . . . . . Value: "23" 179 . . 8: *ast.GenDecl { 182 . . . Tok: var 184 . . . Specs: []ast.Spec (len = 1) { 185 . . . . 0: *ast.ValueSpec { 187 . . . . . Names: []*ast.Ident (len = 1) { 188 . . . . . . 0: *ast.Ident { 190 . . . . . . . Name: "BAR" 191 . . . . . . . Obj: *ast.Object { 192 . . . . . . . . Kind: var 193 . . . . . . . . Name: "BAR" 194 . . . . . . . . Decl: *(obj @ 185) 199 . . . . . Type: *ast.Ident { 201 . . . . . . Name: "int" 202 . . . . . . Obj: *ast.Object { 203 . . . . . . . Kind: type 204 . . . . . . . Name: "int" 206 . . . . . . . Type: *types.Name { 207 . . . . . . . . ImplementsType: types.ImplementsType { 209 . . . . . . . . Underlying: *types.Basic { 210 . . . . . . . . . ImplementsType: types.ImplementsType { 213 . . . . . . . . Obj: *(obj @ 202) 217 . . . . . Values: []ast.Expr (len = 1) { 218 . . . . . . 0: *ast.Ident { 220 . . . . . . . Name: "FOO" 221 . . . . . . . Obj: *(obj @ 158) 229 . . 9: *ast.GenDecl { 232 . . . Tok: type 234 . . . Specs: []ast.Spec (len = 1) { 235 . . . . 0: *ast.TypeSpec { 237 . . . . . Name: *ast.Ident { 239 . . . . . . Name: "TYPE" 240 . . . . . . Obj: *ast.Object { 241 . . . . . . . Kind: type 242 . . . . . . . Name: "TYPE" 243 . . . . . . . Decl: *(obj @ 235) 247 . . . . . Type: *ast.Ident { 249 . . . . . . Name: "int" 250 . . . . . . Obj: *(obj @ 202) 257 . . 10: *ast.GenDecl { 260 . . . Tok: type 262 . . . Specs: []ast.Spec (len = 1) { 263 . . . . 0: *ast.TypeSpec { 265 . . . . . Name: *ast.Ident { 267 . . . . . . Name: "Worm" 268 . . . . . . Obj: *ast.Object { 269 . . . . . . . Kind: type 270 . . . . . . . Name: "Worm" 271 . . . . . . . Decl: *(obj @ 263) 275 . . . . . Type: *ast.StructType { 277 . . . . . . Fields: *ast.FieldList { 279 . . . . . . . List: []*ast.Field (len = 1) { 280 . . . . . . . . 0: *ast.Field { 282 . . . . . . . . . Names: []*ast.Ident (len = 1) { 283 . . . . . . . . . . 0: *ast.Ident { 285 . . . . . . . . . . . Name: "wormlen" 286 . . . . . . . . . . . Obj: *ast.Object { 287 . . . . . . . . . . . . Kind: var 288 . . . . . . . . . . . . Name: "wormlen" 289 . . . . . . . . . . . . Decl: *(obj @ 280) 294 . . . . . . . . . Type: *ast.Ident { 296 . . . . . . . . . . Name: "int64" 297 . . . . . . . . . . Obj: *ast.Object { 298 . . . . . . . . . . . Kind: type 299 . . . . . . . . . . . Name: "int64" 301 . . . . . . . . . . . Type: *types.Name { 302 . . . . . . . . . . . . ImplementsType: types.ImplementsType { 304 . . . . . . . . . . . . Underlying: *types.Basic { 305 . . . . . . . . . . . . . ImplementsType: types.ImplementsType { 308 . . . . . . . . . . . . Obj: *(obj @ 297) 318 . . . . . . Incomplete: false 325 . . 11: *ast.GenDecl { 328 . . . Tok: type 330 . . . Specs: []ast.Spec (len = 1) { 331 . . . . 0: *ast.TypeSpec { 333 . . . . . Name: *ast.Ident { 335 . . . . . . Name: "Apple" 336 . . . . . . Obj: *ast.Object { 337 . . . . . . . Kind: type 338 . . . . . . . Name: "Apple" 339 . . . . . . . Decl: *(obj @ 331) 343 . . . . . Type: *ast.StructType { 345 . . . . . . Fields: *ast.FieldList { 347 . . . . . . . List: []*ast.Field (len = 3) { 348 . . . . . . . . 0: *ast.Field { 351 . . . . . . . . . Type: *ast.Ident { 353 . . . . . . . . . . Name: "Worm" 354 . . . . . . . . . . Obj: *(obj @ 268) 359 . . . . . . . . 1: *ast.Field { 361 . . . . . . . . . Names: []*ast.Ident (len = 1) { 362 . . . . . . . . . . 0: *ast.Ident { 364 . . . . . . . . . . . Name: "color" 365 . . . . . . . . . . . Obj: *ast.Object { 366 . . . . . . . . . . . . Kind: var 367 . . . . . . . . . . . . Name: "color" 368 . . . . . . . . . . . . Decl: *(obj @ 359) 373 . . . . . . . . . Type: *ast.Ident { 375 . . . . . . . . . . Name: "string" 376 . . . . . . . . . . Obj: *ast.Object { 377 . . . . . . . . . . . Kind: type 378 . . . . . . . . . . . Name: "string" 380 . . . . . . . . . . . Type: *types.Name { 381 . . . . . . . . . . . . ImplementsType: types.ImplementsType { 383 . . . . . . . . . . . . Underlying: *types.Basic { 384 . . . . . . . . . . . . . ImplementsType: types.ImplementsType { 387 . . . . . . . . . . . . Obj: *(obj @ 376) 394 . . . . . . . . 2: *ast.Field { 396 . . . . . . . . . Names: []*ast.Ident (len = 1) { 397 . . . . . . . . . . 0: *ast.Ident { 399 . . . . . . . . . . . Name: "rotation" 400 . . . . . . . . . . . Obj: *ast.Object { 401 . . . . . . . . . . . . Kind: var 402 . . . . . . . . . . . . Name: "rotation" 403 . . . . . . . . . . . . Decl: *(obj @ 394) 408 . . . . . . . . . Type: *ast.Ident { 410 . . . . . . . . . . Name: "complex128" 411 . . . . . . . . . . Obj: *ast.Object { 412 . . . . . . . . . . . Kind: type 413 . . . . . . . . . . . Name: "complex128" 415 . . . . . . . . . . . Type: *types.Name { 416 . . . . . . . . . . . . ImplementsType: types.ImplementsType { 418 . . . . . . . . . . . . Underlying: *types.Basic { 419 . . . . . . . . . . . . . ImplementsType: types.ImplementsType { 422 . . . . . . . . . . . . Obj: *(obj @ 411) 432 . . . . . . Incomplete: false 439 . . 12: *ast.GenDecl { 442 . . . Tok: type 444 . . . Specs: []ast.Spec (len = 1) { 445 . . . . 0: *ast.TypeSpec { 447 . . . . . Name: *ast.Ident { 449 . . . . . . Name: "WormLener" 450 . . . . . . Obj: *ast.Object { 451 . . . . . . . Kind: type 452 . . . . . . . Name: "WormLener" 453 . . . . . . . Decl: *(obj @ 445) 457 . . . . . Type: *ast.InterfaceType { 459 . . . . . . Methods: *ast.FieldList { 461 . . . . . . . List: []*ast.Field (len = 1) { 462 . . . . . . . . 0: *ast.Field { 464 . . . . . . . . . Names: []*ast.Ident (len = 1) { 465 . . . . . . . . . . 0: *ast.Ident { 467 . . . . . . . . . . . Name: "WormLen" 468 . . . . . . . . . . . Obj: *ast.Object { 469 . . . . . . . . . . . . Kind: func 470 . . . . . . . . . . . . Name: "WormLen" 471 . . . . . . . . . . . . Decl: *(obj @ 462) 476 . . . . . . . . . Type: *ast.FuncType { 478 . . . . . . . . . . Params: *ast.FieldList { 483 . . . . . . . . . . Results: *ast.FieldList { 485 . . . . . . . . . . . List: []*ast.Field (len = 1) { 486 . . . . . . . . . . . . 0: *ast.Field { 489 . . . . . . . . . . . . . Type: *ast.Ident { 491 . . . . . . . . . . . . . . Name: "int64" 492 . . . . . . . . . . . . . . Obj: *(obj @ 297) 507 . . . . . . Incomplete: false 514 . . 13: *ast.FuncDecl { 516 . . . Recv: *ast.FieldList { 518 . . . . List: []*ast.Field (len = 1) { 519 . . . . . 0: *ast.Field { 521 . . . . . . Names: []*ast.Ident (len = 1) { 522 . . . . . . . 0: *ast.Ident { 524 . . . . . . . . Name: "p" 525 . . . . . . . . Obj: *ast.Object { 526 . . . . . . . . . Kind: var 527 . . . . . . . . . Name: "p" 528 . . . . . . . . . Decl: *(obj @ 519) 533 . . . . . . Type: *ast.StarExpr { 535 . . . . . . . X: *ast.Ident { 537 . . . . . . . . Name: "Worm" 538 . . . . . . . . Obj: *(obj @ 268) 547 . . . Name: *ast.Ident { 549 . . . . Name: "WormLen" 552 . . . Type: *ast.FuncType { 554 . . . . Params: *ast.FieldList { 559 . . . . Results: *ast.FieldList { 561 . . . . . List: []*ast.Field (len = 1) { 562 . . . . . . 0: *ast.Field { 565 . . . . . . . Type: *ast.Ident { 567 . . . . . . . . Name: "int64" 568 . . . . . . . . Obj: *(obj @ 297) 577 . . . Body: *ast.BlockStmt { 579 . . . . List: []ast.Stmt (len = 1) { 580 . . . . . 0: *ast.ReturnStmt { 582 . . . . . . Results: []ast.Expr (len = 1) { 583 . . . . . . . 0: *ast.SelectorExpr { 584 . . . . . . . . X: *ast.Ident { 586 . . . . . . . . . Name: "p" 587 . . . . . . . . . Obj: *(obj @ 525) 589 . . . . . . . . Sel: *ast.Ident { 591 . . . . . . . . . Name: "wormlen" 601 . . 14: *ast.FuncDecl { 604 . . . Name: *ast.Ident { 606 . . . . Name: "main" 607 . . . . Obj: *ast.Object { 608 . . . . . Kind: func 609 . . . . . Name: "main" 610 . . . . . Decl: *(obj @ 601) 614 . . . Type: *ast.FuncType { 616 . . . . Params: *ast.FieldList { 623 . . . Body: *ast.BlockStmt { 625 . . . . List: []ast.Stmt (len = 9) { 626 . . . . . 0: *ast.ExprStmt { 627 . . . . . . X: *ast.CallExpr { 628 . . . . . . . Fun: *ast.SelectorExpr { 629 . . . . . . . . X: *ast.Ident { 631 . . . . . . . . . Name: "flag" 632 . . . . . . . . . Obj: *ast.Object { 633 . . . . . . . . . . Kind: package 634 . . . . . . . . . . Name: "flag" 635 . . . . . . . . . . Decl: *(obj @ 15) 639 . . . . . . . . Sel: *ast.Ident { 641 . . . . . . . . . Name: "Parse" 651 . . . . . 1: *ast.AssignStmt { 652 . . . . . . Lhs: []ast.Expr (len = 1) { 653 . . . . . . . 0: *ast.Ident { 655 . . . . . . . . Name: "aaa" 656 . . . . . . . . Obj: *ast.Object { 657 . . . . . . . . . Kind: var 658 . . . . . . . . . Name: "aaa" 665 . . . . . . Tok: := 666 . . . . . . Rhs: []ast.Expr (len = 1) { 667 . . . . . . . 0: *ast.CallExpr { 668 . . . . . . . . Fun: *ast.Ident { 670 . . . . . . . . . Name: "new" 671 . . . . . . . . . Obj: *ast.Object { 672 . . . . . . . . . . Kind: func 673 . . . . . . . . . . Name: "new" 679 . . . . . . . . Args: []ast.Expr (len = 1) { 680 . . . . . . . . . 0: *ast.Ident { 682 . . . . . . . . . . Name: "Apple" 683 . . . . . . . . . . Obj: *(obj @ 336) 691 . . . . . 2: *ast.AssignStmt { 692 . . . . . . Lhs: []ast.Expr (len = 1) { 693 . . . . . . . 0: *ast.Ident { 695 . . . . . . . . Name: "xxx" 696 . . . . . . . . Obj: *ast.Object { 697 . . . . . . . . . Kind: var 698 . . . . . . . . . Name: "xxx" 705 . . . . . . Tok: := 706 . . . . . . Rhs: []ast.Expr (len = 1) { 707 . . . . . . . 0: *ast.CallExpr { 708 . . . . . . . . Fun: *ast.SelectorExpr { 709 . . . . . . . . . X: *ast.Ident { 711 . . . . . . . . . . Name: "aaa" 712 . . . . . . . . . . Obj: *(obj @ 656) 714 . . . . . . . . . Sel: *ast.Ident { 716 . . . . . . . . . . Name: "WormLen" 727 . . . . . 3: *ast.DeclStmt { 728 . . . . . . Decl: *ast.GenDecl { 731 . . . . . . . Tok: var 733 . . . . . . . Specs: []ast.Spec (len = 1) { 734 . . . . . . . . 0: *ast.ValueSpec { 736 . . . . . . . . . Names: []*ast.Ident (len = 1) { 737 . . . . . . . . . . 0: *ast.Ident { 739 . . . . . . . . . . . Name: "www" 740 . . . . . . . . . . . Obj: *ast.Object { 741 . . . . . . . . . . . . Kind: var 742 . . . . . . . . . . . . Name: "www" 743 . . . . . . . . . . . . Decl: *(obj @ 734) 748 . . . . . . . . . Type: *ast.Ident { 750 . . . . . . . . . . Name: "WormLener" 751 . . . . . . . . . . Obj: *(obj @ 450) 753 . . . . . . . . . Values: []ast.Expr (len = 1) { 754 . . . . . . . . . . 0: *ast.Ident { 756 . . . . . . . . . . . Name: "aaa" 757 . . . . . . . . . . . Obj: *(obj @ 656) 766 . . . . . 4: *ast.ExprStmt { 767 . . . . . . X: *ast.CallExpr { 768 . . . . . . . Fun: *ast.Ident { 770 . . . . . . . . Name: "println" 771 . . . . . . . . Obj: *ast.Object { 772 . . . . . . . . . Kind: func 773 . . . . . . . . . Name: "println" 779 . . . . . . . Args: []ast.Expr (len = 2) { 780 . . . . . . . . 0: *ast.SelectorExpr { 781 . . . . . . . . . X: *ast.TypeAssertExpr { 782 . . . . . . . . . . X: *ast.Ident { 784 . . . . . . . . . . . Name: "www" 785 . . . . . . . . . . . Obj: *(obj @ 740) 787 . . . . . . . . . . Type: *ast.StarExpr { 789 . . . . . . . . . . . X: *ast.Ident { 791 . . . . . . . . . . . . Name: "Apple" 792 . . . . . . . . . . . . Obj: *(obj @ 336) 796 . . . . . . . . . Sel: *ast.Ident { 798 . . . . . . . . . . Name: "rotation" 802 . . . . . . . . 1: *ast.Ident { 804 . . . . . . . . . Name: "xxx" 805 . . . . . . . . . Obj: *(obj @ 696) 812 . . . . . 5: *ast.AssignStmt { 813 . . . . . . Lhs: []ast.Expr (len = 1) { 814 . . . . . . . 0: *ast.Ident { 816 . . . . . . . . Name: "fset" 817 . . . . . . . . Obj: *ast.Object { 818 . . . . . . . . . Kind: var 819 . . . . . . . . . Name: "fset" 826 . . . . . . Tok: := 827 . . . . . . Rhs: []ast.Expr (len = 1) { 828 . . . . . . . 0: *ast.CallExpr { 829 . . . . . . . . Fun: *ast.SelectorExpr { 830 . . . . . . . . . X: *ast.Ident { 832 . . . . . . . . . . Name: "token" 833 . . . . . . . . . . Obj: *ast.Object { 834 . . . . . . . . . . . Kind: package 835 . . . . . . . . . . . Name: "token" 836 . . . . . . . . . . . Decl: *(obj @ 95) 840 . . . . . . . . . Sel: *ast.Ident { 842 . . . . . . . . . . Name: "NewFileSet" 853 . . . . . 6: *ast.AssignStmt { 854 . . . . . . Lhs: []ast.Expr (len = 1) { 855 . . . . . . . 0: *ast.Ident { 857 . . . . . . . . Name: "files" 858 . . . . . . . . Obj: *ast.Object { 859 . . . . . . . . . Kind: var 860 . . . . . . . . . Name: "files" 867 . . . . . . Tok: := 868 . . . . . . Rhs: []ast.Expr (len = 1) { 869 . . . . . . . 0: *ast.CallExpr { 870 . . . . . . . . Fun: *ast.Ident { 872 . . . . . . . . . Name: "make" 873 . . . . . . . . . Obj: *ast.Object { 874 . . . . . . . . . . Kind: func 875 . . . . . . . . . . Name: "make" 881 . . . . . . . . Args: []ast.Expr (len = 1) { 882 . . . . . . . . . 0: *ast.MapType { 884 . . . . . . . . . . Key: *ast.Ident { 886 . . . . . . . . . . . Name: "string" 887 . . . . . . . . . . . Obj: *(obj @ 376) 889 . . . . . . . . . . Value: *ast.StarExpr { 891 . . . . . . . . . . . X: *ast.SelectorExpr { 892 . . . . . . . . . . . . X: *ast.Ident { 894 . . . . . . . . . . . . . Name: "ast" 895 . . . . . . . . . . . . . Obj: *ast.Object { 896 . . . . . . . . . . . . . . Kind: package 897 . . . . . . . . . . . . . . Name: "ast" 898 . . . . . . . . . . . . . . Decl: *(obj @ 34) 902 . . . . . . . . . . . . Sel: *ast.Ident { 904 . . . . . . . . . . . . . Name: "File" 916 . . . . . 7: *ast.RangeStmt { 918 . . . . . . Key: *ast.Ident { 920 . . . . . . . Name: "_" 923 . . . . . . Value: *ast.Ident { 925 . . . . . . . Name: "filename" 926 . . . . . . . Obj: *ast.Object { 927 . . . . . . . . Kind: var 928 . . . . . . . . Name: "filename" 934 . . . . . . Tok: := 935 . . . . . . X: *ast.CallExpr { 936 . . . . . . . Fun: *ast.SelectorExpr { 937 . . . . . . . . X: *ast.Ident { 939 . . . . . . . . . Name: "flag" 940 . . . . . . . . . Obj: *(obj @ 632) 942 . . . . . . . . Sel: *ast.Ident { 944 . . . . . . . . . Name: "Args" 953 . . . . . . Body: *ast.BlockStmt { 955 . . . . . . . List: []ast.Stmt (len = 11) { 956 . . . . . . . . 0: *ast.AssignStmt { 957 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 958 . . . . . . . . . . 0: *ast.Ident { 960 . . . . . . . . . . . Name: "tree" 961 . . . . . . . . . . . Obj: *ast.Object { 962 . . . . . . . . . . . . Kind: var 963 . . . . . . . . . . . . Name: "tree" 968 . . . . . . . . . . 1: *ast.Ident { 970 . . . . . . . . . . . Name: "err" 971 . . . . . . . . . . . Obj: *ast.Object { 972 . . . . . . . . . . . . Kind: var 973 . . . . . . . . . . . . Name: "err" 980 . . . . . . . . . Tok: := 981 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 982 . . . . . . . . . . 0: *ast.CallExpr { 983 . . . . . . . . . . . Fun: *ast.SelectorExpr { 984 . . . . . . . . . . . . X: *ast.Ident { 986 . . . . . . . . . . . . . Name: "parser" 987 . . . . . . . . . . . . . Obj: *ast.Object { 988 . . . . . . . . . . . . . . Kind: package 989 . . . . . . . . . . . . . . Name: "parser" 990 . . . . . . . . . . . . . . Decl: *(obj @ 53) 994 . . . . . . . . . . . . Sel: *ast.Ident { 996 . . . . . . . . . . . . . Name: "ParseFile" 1001 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1002 . . . . . . . . . . . . 0: *ast.Ident { 1004 . . . . . . . . . . . . . Name: "fset" 1005 . . . . . . . . . . . . . Obj: *(obj @ 817) 1007 . . . . . . . . . . . . 1: *ast.Ident { 1009 . . . . . . . . . . . . . Name: "filename" 1010 . . . . . . . . . . . . . Obj: *(obj @ 926) 1012 . . . . . . . . . . . . 2: *ast.Ident { 1014 . . . . . . . . . . . . . Name: "nil" 1015 . . . . . . . . . . . . . Obj: *ast.Object { 1016 . . . . . . . . . . . . . . Kind: const 1017 . . . . . . . . . . . . . . Name: "nil" 1022 . . . . . . . . . . . . 3: *ast.BasicLit { 1024 . . . . . . . . . . . . . Kind: INT 1025 . . . . . . . . . . . . . Value: "0" 1033 . . . . . . . . 1: *ast.IfStmt { 1036 . . . . . . . . . Cond: *ast.BinaryExpr { 1037 . . . . . . . . . . X: *ast.Ident { 1039 . . . . . . . . . . . Name: "err" 1040 . . . . . . . . . . . Obj: *(obj @ 971) 1043 . . . . . . . . . . Op: != 1044 . . . . . . . . . . Y: *ast.Ident { 1046 . . . . . . . . . . . Name: "nil" 1047 . . . . . . . . . . . Obj: *(obj @ 1015) 1050 . . . . . . . . . Body: *ast.BlockStmt { 1052 . . . . . . . . . . List: []ast.Stmt (len = 1) { 1053 . . . . . . . . . . . 0: *ast.ExprStmt { 1054 . . . . . . . . . . . . X: *ast.CallExpr { 1055 . . . . . . . . . . . . . Fun: *ast.Ident { 1057 . . . . . . . . . . . . . . Name: "panic" 1058 . . . . . . . . . . . . . . Obj: *ast.Object { 1059 . . . . . . . . . . . . . . . Kind: func 1060 . . . . . . . . . . . . . . . Name: "panic" 1066 . . . . . . . . . . . . . Args: []ast.Expr (len = 1) { 1067 . . . . . . . . . . . . . . 0: *ast.Ident { 1069 . . . . . . . . . . . . . . . Name: "err" 1070 . . . . . . . . . . . . . . . Obj: *(obj @ 971) 1082 . . . . . . . . 2: *ast.ExprStmt { 1083 . . . . . . . . . X: *ast.CallExpr { 1084 . . . . . . . . . . Fun: *ast.Ident { 1086 . . . . . . . . . . . Name: "println" 1087 . . . . . . . . . . . Obj: *(obj @ 771) 1090 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1091 . . . . . . . . . . . 0: *ast.BasicLit { 1093 . . . . . . . . . . . . Kind: STRING 1094 . . . . . . . . . . . . Value: "\"#####################################\"" 1101 . . . . . . . . 3: *ast.AssignStmt { 1102 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1103 . . . . . . . . . . 0: *ast.Ident { 1105 . . . . . . . . . . . Name: "importer" 1106 . . . . . . . . . . . Obj: *ast.Object { 1107 . . . . . . . . . . . . Kind: var 1108 . . . . . . . . . . . . Name: "importer" 1115 . . . . . . . . . Tok: := 1116 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1117 . . . . . . . . . . 0: *ast.SelectorExpr { 1118 . . . . . . . . . . . X: *ast.Ident { 1120 . . . . . . . . . . . . Name: "types" 1121 . . . . . . . . . . . . Obj: *ast.Object { 1122 . . . . . . . . . . . . . Kind: package 1123 . . . . . . . . . . . . . Name: "types" 1124 . . . . . . . . . . . . . Decl: *(obj @ 114) 1128 . . . . . . . . . . . Sel: *ast.Ident { 1130 . . . . . . . . . . . . Name: "GcImporter" 1136 . . . . . . . . 4: *ast.AssignStmt { 1137 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1138 . . . . . . . . . . 0: *ast.Ident { 1140 . . . . . . . . . . . Name: "univ" 1141 . . . . . . . . . . . Obj: *ast.Object { 1142 . . . . . . . . . . . . Kind: var 1143 . . . . . . . . . . . . Name: "univ" 1150 . . . . . . . . . Tok: := 1151 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1152 . . . . . . . . . . 0: *ast.SelectorExpr { 1153 . . . . . . . . . . . X: *ast.Ident { 1155 . . . . . . . . . . . . Name: "types" 1156 . . . . . . . . . . . . Obj: *(obj @ 1121) 1158 . . . . . . . . . . . Sel: *ast.Ident { 1160 . . . . . . . . . . . . Name: "Universe" 1166 . . . . . . . . 5: *ast.AssignStmt { 1167 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1168 . . . . . . . . . . 0: *ast.IndexExpr { 1169 . . . . . . . . . . . X: *ast.Ident { 1171 . . . . . . . . . . . . Name: "files" 1172 . . . . . . . . . . . . Obj: *(obj @ 858) 1175 . . . . . . . . . . . Index: *ast.Ident { 1177 . . . . . . . . . . . . Name: "filename" 1178 . . . . . . . . . . . . Obj: *(obj @ 926) 1184 . . . . . . . . . Tok: = 1185 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1186 . . . . . . . . . . 0: *ast.Ident { 1188 . . . . . . . . . . . Name: "tree" 1189 . . . . . . . . . . . Obj: *(obj @ 961) 1193 . . . . . . . . 6: *ast.AssignStmt { 1194 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 1195 . . . . . . . . . . 0: *ast.Ident { 1197 . . . . . . . . . . . Name: "pkg" 1198 . . . . . . . . . . . Obj: *ast.Object { 1199 . . . . . . . . . . . . Kind: var 1200 . . . . . . . . . . . . Name: "pkg" 1205 . . . . . . . . . . 1: *ast.Ident { 1207 . . . . . . . . . . . Name: "err" 1208 . . . . . . . . . . . Obj: *(obj @ 971) 1212 . . . . . . . . . Tok: := 1213 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1214 . . . . . . . . . . 0: *ast.CallExpr { 1215 . . . . . . . . . . . Fun: *ast.SelectorExpr { 1216 . . . . . . . . . . . . X: *ast.Ident { 1218 . . . . . . . . . . . . . Name: "ast" 1219 . . . . . . . . . . . . . Obj: *(obj @ 895) 1221 . . . . . . . . . . . . Sel: *ast.Ident { 1223 . . . . . . . . . . . . . Name: "NewPackage" 1228 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1229 . . . . . . . . . . . . 0: *ast.Ident { 1231 . . . . . . . . . . . . . Name: "fset" 1232 . . . . . . . . . . . . . Obj: *(obj @ 817) 1234 . . . . . . . . . . . . 1: *ast.Ident { 1236 . . . . . . . . . . . . . Name: "files" 1237 . . . . . . . . . . . . . Obj: *(obj @ 858) 1239 . . . . . . . . . . . . 2: *ast.Ident { 1241 . . . . . . . . . . . . . Name: "importer" 1242 . . . . . . . . . . . . . Obj: *(obj @ 1106) 1244 . . . . . . . . . . . . 3: *ast.Ident { 1246 . . . . . . . . . . . . . Name: "univ" 1247 . . . . . . . . . . . . . Obj: *(obj @ 1141) 1255 . . . . . . . . 7: *ast.IfStmt { 1258 . . . . . . . . . Cond: *ast.BinaryExpr { 1259 . . . . . . . . . . X: *ast.Ident { 1261 . . . . . . . . . . . Name: "err" 1262 . . . . . . . . . . . Obj: *(obj @ 971) 1265 . . . . . . . . . . Op: != 1266 . . . . . . . . . . Y: *ast.Ident { 1268 . . . . . . . . . . . Name: "nil" 1269 . . . . . . . . . . . Obj: *(obj @ 1015) 1272 . . . . . . . . . Body: *ast.BlockStmt { 1274 . . . . . . . . . . List: []ast.Stmt (len = 1) { 1275 . . . . . . . . . . . 0: *ast.ExprStmt { 1276 . . . . . . . . . . . . X: *ast.CallExpr { 1277 . . . . . . . . . . . . . Fun: *ast.Ident { 1279 . . . . . . . . . . . . . . Name: "panic" 1280 . . . . . . . . . . . . . . Obj: *(obj @ 1058) 1283 . . . . . . . . . . . . . Args: []ast.Expr (len = 1) { 1284 . . . . . . . . . . . . . . 0: *ast.Ident { 1286 . . . . . . . . . . . . . . . Name: "err" 1287 . . . . . . . . . . . . . . . Obj: *(obj @ 971) 1299 . . . . . . . . 8: *ast.AssignStmt { 1300 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1301 . . . . . . . . . . 0: *ast.Ident { 1303 . . . . . . . . . . . Name: "_" 1308 . . . . . . . . . Tok: = 1309 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1310 . . . . . . . . . . 0: *ast.Ident { 1312 . . . . . . . . . . . Name: "pkg" 1313 . . . . . . . . . . . Obj: *(obj @ 1198) 1317 . . . . . . . . 9: *ast.AssignStmt { 1318 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 1319 . . . . . . . . . . 0: *ast.Ident { 1321 . . . . . . . . . . . Name: "n" 1322 . . . . . . . . . . . Obj: *ast.Object { 1323 . . . . . . . . . . . . Kind: var 1324 . . . . . . . . . . . . Name: "n" 1329 . . . . . . . . . . 1: *ast.Ident { 1331 . . . . . . . . . . . Name: "err" 1332 . . . . . . . . . . . Obj: *(obj @ 971) 1336 . . . . . . . . . Tok: := 1337 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1338 . . . . . . . . . . 0: *ast.CallExpr { 1339 . . . . . . . . . . . Fun: *ast.SelectorExpr { 1340 . . . . . . . . . . . . X: *ast.Ident { 1342 . . . . . . . . . . . . . Name: "ast" 1343 . . . . . . . . . . . . . Obj: *(obj @ 895) 1345 . . . . . . . . . . . . Sel: *ast.Ident { 1347 . . . . . . . . . . . . . Name: "Fprint" 1352 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1353 . . . . . . . . . . . . 0: *ast.SelectorExpr { 1354 . . . . . . . . . . . . . X: *ast.Ident { 1356 . . . . . . . . . . . . . . Name: "os" 1357 . . . . . . . . . . . . . . Obj: *ast.Object { 1358 . . . . . . . . . . . . . . . Kind: package 1359 . . . . . . . . . . . . . . . Name: "os" 1360 . . . . . . . . . . . . . . . Decl: *(obj @ 133) 1364 . . . . . . . . . . . . . Sel: *ast.Ident { 1366 . . . . . . . . . . . . . . Name: "Stdout" 1370 . . . . . . . . . . . . 1: *ast.Ident { 1372 . . . . . . . . . . . . . Name: "fset" 1373 . . . . . . . . . . . . . Obj: *(obj @ 817) 1375 . . . . . . . . . . . . 2: *ast.Ident { 1377 . . . . . . . . . . . . . Name: "tree" 1378 . . . . . . . . . . . . . Obj: *(obj @ 961) 1380 . . . . . . . . . . . . 3: *ast.Ident { 1382 . . . . . . . . . . . . . Name: "nil" 1383 . . . . . . . . . . . . . Obj: *(obj @ 1015) 1391 . . . . . . . . 10: *ast.ExprStmt { 1392 . . . . . . . . . X: *ast.CallExpr { 1393 . . . . . . . . . . Fun: *ast.Ident { 1395 . . . . . . . . . . . Name: "println" 1396 . . . . . . . . . . . Obj: *(obj @ 771) 1399 . . . . . . . . . . Args: []ast.Expr (len = 2) { 1400 . . . . . . . . . . . 0: *ast.BasicLit { 1402 . . . . . . . . . . . . Kind: STRING 1403 . . . . . . . . . . . . Value: "\"n=\"" 1405 . . . . . . . . . . . 1: *ast.Ident { 1407 . . . . . . . . . . . . Name: "n" 1408 . . . . . . . . . . . . Obj: *(obj @ 1322) 1419 . . . . . 8: *ast.RangeStmt { 1421 . . . . . . Key: *ast.Ident { 1423 . . . . . . . Name: "name" 1424 . . . . . . . Obj: *ast.Object { 1425 . . . . . . . . Kind: var 1426 . . . . . . . . Name: "name" 1431 . . . . . . Value: *ast.Ident { 1433 . . . . . . . Name: "tree" 1434 . . . . . . . Obj: *ast.Object { 1435 . . . . . . . . Kind: var 1436 . . . . . . . . Name: "tree" 1442 . . . . . . Tok: := 1443 . . . . . . X: *ast.Ident { 1445 . . . . . . . Name: "files" 1446 . . . . . . . Obj: *(obj @ 858) 1448 . . . . . . Body: *ast.BlockStmt { 1450 . . . . . . . List: []ast.Stmt (len = 8) { 1451 . . . . . . . . 0: *ast.ExprStmt { 1452 . . . . . . . . . X: *ast.CallExpr { 1453 . . . . . . . . . . Fun: *ast.Ident { 1455 . . . . . . . . . . . Name: "println" 1456 . . . . . . . . . . . Obj: *(obj @ 771) 1459 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1460 . . . . . . . . . . . 0: *ast.BasicLit { 1462 . . . . . . . . . . . . Kind: STRING 1463 . . . . . . . . . . . . Value: "\"#####################################\"" 1470 . . . . . . . . 1: *ast.ExprStmt { 1471 . . . . . . . . . X: *ast.CallExpr { 1472 . . . . . . . . . . Fun: *ast.Ident { 1474 . . . . . . . . . . . Name: "println" 1475 . . . . . . . . . . . Obj: *(obj @ 771) 1478 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1479 . . . . . . . . . . . 0: *ast.BasicLit { 1481 . . . . . . . . . . . . Kind: STRING 1482 . . . . . . . . . . . . Value: "\"#######################\"" 1489 . . . . . . . . 2: *ast.ExprStmt { 1490 . . . . . . . . . X: *ast.CallExpr { 1491 . . . . . . . . . . Fun: *ast.Ident { 1493 . . . . . . . . . . . Name: "println" 1494 . . . . . . . . . . . Obj: *(obj @ 771) 1497 . . . . . . . . . . Args: []ast.Expr (len = 2) { 1498 . . . . . . . . . . . 0: *ast.BasicLit { 1500 . . . . . . . . . . . . Kind: STRING 1501 . . . . . . . . . . . . Value: "\"####################### \"" 1503 . . . . . . . . . . . 1: *ast.Ident { 1505 . . . . . . . . . . . . Name: "name" 1506 . . . . . . . . . . . . Obj: *(obj @ 1424) 1513 . . . . . . . . 3: *ast.ExprStmt { 1514 . . . . . . . . . X: *ast.CallExpr { 1515 . . . . . . . . . . Fun: *ast.Ident { 1517 . . . . . . . . . . . Name: "println" 1518 . . . . . . . . . . . Obj: *(obj @ 771) 1521 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1522 . . . . . . . . . . . 0: *ast.BasicLit { 1524 . . . . . . . . . . . . Kind: STRING 1525 . . . . . . . . . . . . Value: "\"#######################\"" 1532 . . . . . . . . 4: *ast.AssignStmt { 1533 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 1534 . . . . . . . . . . 0: *ast.Ident { 1536 . . . . . . . . . . . Name: "n" 1537 . . . . . . . . . . . Obj: *ast.Object { 1538 . . . . . . . . . . . . Kind: var 1539 . . . . . . . . . . . . Name: "n" 1544 . . . . . . . . . . 1: *ast.Ident { 1546 . . . . . . . . . . . Name: "err" 1547 . . . . . . . . . . . Obj: *ast.Object { 1548 . . . . . . . . . . . . Kind: var 1549 . . . . . . . . . . . . Name: "err" 1556 . . . . . . . . . Tok: := 1557 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1558 . . . . . . . . . . 0: *ast.CallExpr { 1559 . . . . . . . . . . . Fun: *ast.SelectorExpr { 1560 . . . . . . . . . . . . X: *ast.Ident { 1562 . . . . . . . . . . . . . Name: "ast" 1563 . . . . . . . . . . . . . Obj: *(obj @ 895) 1565 . . . . . . . . . . . . Sel: *ast.Ident { 1567 . . . . . . . . . . . . . Name: "Fprint" 1572 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1573 . . . . . . . . . . . . 0: *ast.SelectorExpr { 1574 . . . . . . . . . . . . . X: *ast.Ident { 1576 . . . . . . . . . . . . . . Name: "os" 1577 . . . . . . . . . . . . . . Obj: *(obj @ 1357) 1579 . . . . . . . . . . . . . Sel: *ast.Ident { 1581 . . . . . . . . . . . . . . Name: "Stdout" 1585 . . . . . . . . . . . . 1: *ast.Ident { 1587 . . . . . . . . . . . . . Name: "fset" 1588 . . . . . . . . . . . . . Obj: *(obj @ 817) 1590 . . . . . . . . . . . . 2: *ast.Ident { 1592 . . . . . . . . . . . . . Name: "tree" 1593 . . . . . . . . . . . . . Obj: *(obj @ 1434) 1595 . . . . . . . . . . . . 3: *ast.Ident { 1597 . . . . . . . . . . . . . Name: "nil" 1598 . . . . . . . . . . . . . Obj: *(obj @ 1015) 1606 . . . . . . . . 5: *ast.IfStmt { 1609 . . . . . . . . . Cond: *ast.BinaryExpr { 1610 . . . . . . . . . . X: *ast.Ident { 1612 . . . . . . . . . . . Name: "err" 1613 . . . . . . . . . . . Obj: *(obj @ 1547) 1616 . . . . . . . . . . Op: != 1617 . . . . . . . . . . Y: *ast.Ident { 1619 . . . . . . . . . . . Name: "nil" 1620 . . . . . . . . . . . Obj: *(obj @ 1015) 1623 . . . . . . . . . Body: *ast.BlockStmt { 1625 . . . . . . . . . . List: []ast.Stmt (len = 1) { 1626 . . . . . . . . . . . 0: *ast.ExprStmt { 1627 . . . . . . . . . . . . X: *ast.CallExpr { 1628 . . . . . . . . . . . . . Fun: *ast.Ident { 1630 . . . . . . . . . . . . . . Name: "panic" 1631 . . . . . . . . . . . . . . Obj: *(obj @ 1058) 1634 . . . . . . . . . . . . . Args: []ast.Expr (len = 1) { 1635 . . . . . . . . . . . . . . 0: *ast.Ident { 1637 . . . . . . . . . . . . . . . Name: "err" 1638 . . . . . . . . . . . . . . . Obj: *(obj @ 1547) 1650 . . . . . . . . 6: *ast.ExprStmt { 1651 . . . . . . . . . X: *ast.CallExpr { 1652 . . . . . . . . . . Fun: *ast.Ident { 1654 . . . . . . . . . . . Name: "println" 1655 . . . . . . . . . . . Obj: *(obj @ 771) 1658 . . . . . . . . . . Args: []ast.Expr (len = 2) { 1659 . . . . . . . . . . . 0: *ast.BasicLit { 1661 . . . . . . . . . . . . Kind: STRING 1662 . . . . . . . . . . . . Value: "\"n=\"" 1664 . . . . . . . . . . . 1: *ast.Ident { 1666 . . . . . . . . . . . . Name: "n" 1667 . . . . . . . . . . . . Obj: *(obj @ 1537) 1674 . . . . . . . . 7: *ast.ExprStmt { 1675 . . . . . . . . . X: *ast.CallExpr { 1676 . . . . . . . . . . Fun: *ast.Ident { 1678 . . . . . . . . . . . Name: "println" 1679 . . . . . . . . . . . Obj: *(obj @ 771) 1682 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1683 . . . . . . . . . . . 0: *ast.BasicLit { 1685 . . . . . . . . . . . . Kind: STRING 1686 . . . . . . . . . . . . Value: "\"\"" 1702 . Scope: *ast.Scope { 1704 . . Objects: map[string] *ast.Object (len = 7) { 1705 . . . "BAR": *(obj @ 191) 1706 . . . "main": *(obj @ 607) 1707 . . . "Apple": *(obj @ 336) 1708 . . . "WormLener": *(obj @ 450) 1709 . . . "Worm": *(obj @ 268) 1710 . . . "TYPE": *(obj @ 240) 1711 . . . "FOO": *(obj @ 158) 1714 . Imports: []*ast.ImportSpec (len = 7) { 1715 . . 0: *(obj @ 15) 1716 . . 1: *(obj @ 34) 1717 . . 2: *(obj @ 53) 1718 . . 3: *(obj @ 72) 1719 . . 4: *(obj @ 95) 1720 . . 5: *(obj @ 114) 1721 . . 6: *(obj @ 133) 1723 . Unresolved: []*ast.Ident (len = 0) { n= 23554 ##################################### ####################### ####################### ast.go ####################### 0 *ast.File { 3 . Name: *ast.Ident { 5 . . Name: "main" 8 . Decls: []ast.Decl (len = 15) { 9 . . 0: *ast.GenDecl { 12 . . . Tok: import 14 . . . Specs: []ast.Spec (len = 1) { 15 . . . . 0: *ast.ImportSpec { 18 . . . . . Path: *ast.BasicLit { 20 . . . . . . Kind: STRING 21 . . . . . . Value: "\"flag\"" 28 . . 1: *ast.GenDecl { 31 . . . Tok: import 33 . . . Specs: []ast.Spec (len = 1) { 34 . . . . 0: *ast.ImportSpec { 37 . . . . . Path: *ast.BasicLit { 39 . . . . . . Kind: STRING 40 . . . . . . Value: "\"go/ast\"" 47 . . 2: *ast.GenDecl { 50 . . . Tok: import 52 . . . Specs: []ast.Spec (len = 1) { 53 . . . . 0: *ast.ImportSpec { 56 . . . . . Path: *ast.BasicLit { 58 . . . . . . Kind: STRING 59 . . . . . . Value: "\"go/parser\"" 66 . . 3: *ast.GenDecl { 69 . . . Tok: import 71 . . . Specs: []ast.Spec (len = 1) { 72 . . . . 0: *ast.ImportSpec { 74 . . . . . Name: *ast.Ident { 76 . . . . . . Name: "_" 79 . . . . . Path: *ast.BasicLit { 81 . . . . . . Kind: STRING 82 . . . . . . Value: "\"go/printer\"" 89 . . 4: *ast.GenDecl { 92 . . . Tok: import 94 . . . Specs: []ast.Spec (len = 1) { 95 . . . . 0: *ast.ImportSpec { 98 . . . . . Path: *ast.BasicLit { 100 . . . . . . Kind: STRING 101 . . . . . . Value: "\"go/token\"" 108 . . 5: *ast.GenDecl { 111 . . . Tok: import 113 . . . Specs: []ast.Spec (len = 1) { 114 . . . . 0: *ast.ImportSpec { 117 . . . . . Path: *ast.BasicLit { 119 . . . . . . Kind: STRING 120 . . . . . . Value: "\"go/types\"" 127 . . 6: *ast.GenDecl { 130 . . . Tok: import 132 . . . Specs: []ast.Spec (len = 1) { 133 . . . . 0: *ast.ImportSpec { 136 . . . . . Path: *ast.BasicLit { 138 . . . . . . Kind: STRING 139 . . . . . . Value: "\"os\"" 146 . . 7: *ast.GenDecl { 149 . . . Tok: const 151 . . . Specs: []ast.Spec (len = 1) { 152 . . . . 0: *ast.ValueSpec { 154 . . . . . Names: []*ast.Ident (len = 1) { 155 . . . . . . 0: *ast.Ident { 157 . . . . . . . Name: "FOO" 158 . . . . . . . Obj: *ast.Object { 159 . . . . . . . . Kind: const 160 . . . . . . . . Name: "FOO" 161 . . . . . . . . Decl: *(obj @ 152) 167 . . . . . Values: []ast.Expr (len = 1) { 168 . . . . . . 0: *ast.BasicLit { 170 . . . . . . . Kind: INT 171 . . . . . . . Value: "23" 179 . . 8: *ast.GenDecl { 182 . . . Tok: var 184 . . . Specs: []ast.Spec (len = 1) { 185 . . . . 0: *ast.ValueSpec { 187 . . . . . Names: []*ast.Ident (len = 1) { 188 . . . . . . 0: *ast.Ident { 190 . . . . . . . Name: "BAR" 191 . . . . . . . Obj: *ast.Object { 192 . . . . . . . . Kind: var 193 . . . . . . . . Name: "BAR" 194 . . . . . . . . Decl: *(obj @ 185) 199 . . . . . Type: *ast.Ident { 201 . . . . . . Name: "int" 202 . . . . . . Obj: *ast.Object { 203 . . . . . . . Kind: type 204 . . . . . . . Name: "int" 206 . . . . . . . Type: *types.Name { 207 . . . . . . . . ImplementsType: types.ImplementsType { 209 . . . . . . . . Underlying: *types.Basic { 210 . . . . . . . . . ImplementsType: types.ImplementsType { 213 . . . . . . . . Obj: *(obj @ 202) 217 . . . . . Values: []ast.Expr (len = 1) { 218 . . . . . . 0: *ast.Ident { 220 . . . . . . . Name: "FOO" 221 . . . . . . . Obj: *(obj @ 158) 229 . . 9: *ast.GenDecl { 232 . . . Tok: type 234 . . . Specs: []ast.Spec (len = 1) { 235 . . . . 0: *ast.TypeSpec { 237 . . . . . Name: *ast.Ident { 239 . . . . . . Name: "TYPE" 240 . . . . . . Obj: *ast.Object { 241 . . . . . . . Kind: type 242 . . . . . . . Name: "TYPE" 243 . . . . . . . Decl: *(obj @ 235) 247 . . . . . Type: *ast.Ident { 249 . . . . . . Name: "int" 250 . . . . . . Obj: *(obj @ 202) 257 . . 10: *ast.GenDecl { 260 . . . Tok: type 262 . . . Specs: []ast.Spec (len = 1) { 263 . . . . 0: *ast.TypeSpec { 265 . . . . . Name: *ast.Ident { 267 . . . . . . Name: "Worm" 268 . . . . . . Obj: *ast.Object { 269 . . . . . . . Kind: type 270 . . . . . . . Name: "Worm" 271 . . . . . . . Decl: *(obj @ 263) 275 . . . . . Type: *ast.StructType { 277 . . . . . . Fields: *ast.FieldList { 279 . . . . . . . List: []*ast.Field (len = 1) { 280 . . . . . . . . 0: *ast.Field { 282 . . . . . . . . . Names: []*ast.Ident (len = 1) { 283 . . . . . . . . . . 0: *ast.Ident { 285 . . . . . . . . . . . Name: "wormlen" 286 . . . . . . . . . . . Obj: *ast.Object { 287 . . . . . . . . . . . . Kind: var 288 . . . . . . . . . . . . Name: "wormlen" 289 . . . . . . . . . . . . Decl: *(obj @ 280) 294 . . . . . . . . . Type: *ast.Ident { 296 . . . . . . . . . . Name: "int64" 297 . . . . . . . . . . Obj: *ast.Object { 298 . . . . . . . . . . . Kind: type 299 . . . . . . . . . . . Name: "int64" 301 . . . . . . . . . . . Type: *types.Name { 302 . . . . . . . . . . . . ImplementsType: types.ImplementsType { 304 . . . . . . . . . . . . Underlying: *types.Basic { 305 . . . . . . . . . . . . . ImplementsType: types.ImplementsType { 308 . . . . . . . . . . . . Obj: *(obj @ 297) 318 . . . . . . Incomplete: false 325 . . 11: *ast.GenDecl { 328 . . . Tok: type 330 . . . Specs: []ast.Spec (len = 1) { 331 . . . . 0: *ast.TypeSpec { 333 . . . . . Name: *ast.Ident { 335 . . . . . . Name: "Apple" 336 . . . . . . Obj: *ast.Object { 337 . . . . . . . Kind: type 338 . . . . . . . Name: "Apple" 339 . . . . . . . Decl: *(obj @ 331) 343 . . . . . Type: *ast.StructType { 345 . . . . . . Fields: *ast.FieldList { 347 . . . . . . . List: []*ast.Field (len = 3) { 348 . . . . . . . . 0: *ast.Field { 351 . . . . . . . . . Type: *ast.Ident { 353 . . . . . . . . . . Name: "Worm" 354 . . . . . . . . . . Obj: *(obj @ 268) 359 . . . . . . . . 1: *ast.Field { 361 . . . . . . . . . Names: []*ast.Ident (len = 1) { 362 . . . . . . . . . . 0: *ast.Ident { 364 . . . . . . . . . . . Name: "color" 365 . . . . . . . . . . . Obj: *ast.Object { 366 . . . . . . . . . . . . Kind: var 367 . . . . . . . . . . . . Name: "color" 368 . . . . . . . . . . . . Decl: *(obj @ 359) 373 . . . . . . . . . Type: *ast.Ident { 375 . . . . . . . . . . Name: "string" 376 . . . . . . . . . . Obj: *ast.Object { 377 . . . . . . . . . . . Kind: type 378 . . . . . . . . . . . Name: "string" 380 . . . . . . . . . . . Type: *types.Name { 381 . . . . . . . . . . . . ImplementsType: types.ImplementsType { 383 . . . . . . . . . . . . Underlying: *types.Basic { 384 . . . . . . . . . . . . . ImplementsType: types.ImplementsType { 387 . . . . . . . . . . . . Obj: *(obj @ 376) 394 . . . . . . . . 2: *ast.Field { 396 . . . . . . . . . Names: []*ast.Ident (len = 1) { 397 . . . . . . . . . . 0: *ast.Ident { 399 . . . . . . . . . . . Name: "rotation" 400 . . . . . . . . . . . Obj: *ast.Object { 401 . . . . . . . . . . . . Kind: var 402 . . . . . . . . . . . . Name: "rotation" 403 . . . . . . . . . . . . Decl: *(obj @ 394) 408 . . . . . . . . . Type: *ast.Ident { 410 . . . . . . . . . . Name: "complex128" 411 . . . . . . . . . . Obj: *ast.Object { 412 . . . . . . . . . . . Kind: type 413 . . . . . . . . . . . Name: "complex128" 415 . . . . . . . . . . . Type: *types.Name { 416 . . . . . . . . . . . . ImplementsType: types.ImplementsType { 418 . . . . . . . . . . . . Underlying: *types.Basic { 419 . . . . . . . . . . . . . ImplementsType: types.ImplementsType { 422 . . . . . . . . . . . . Obj: *(obj @ 411) 432 . . . . . . Incomplete: false 439 . . 12: *ast.GenDecl { 442 . . . Tok: type 444 . . . Specs: []ast.Spec (len = 1) { 445 . . . . 0: *ast.TypeSpec { 447 . . . . . Name: *ast.Ident { 449 . . . . . . Name: "WormLener" 450 . . . . . . Obj: *ast.Object { 451 . . . . . . . Kind: type 452 . . . . . . . Name: "WormLener" 453 . . . . . . . Decl: *(obj @ 445) 457 . . . . . Type: *ast.InterfaceType { 459 . . . . . . Methods: *ast.FieldList { 461 . . . . . . . List: []*ast.Field (len = 1) { 462 . . . . . . . . 0: *ast.Field { 464 . . . . . . . . . Names: []*ast.Ident (len = 1) { 465 . . . . . . . . . . 0: *ast.Ident { 467 . . . . . . . . . . . Name: "WormLen" 468 . . . . . . . . . . . Obj: *ast.Object { 469 . . . . . . . . . . . . Kind: func 470 . . . . . . . . . . . . Name: "WormLen" 471 . . . . . . . . . . . . Decl: *(obj @ 462) 476 . . . . . . . . . Type: *ast.FuncType { 478 . . . . . . . . . . Params: *ast.FieldList { 483 . . . . . . . . . . Results: *ast.FieldList { 485 . . . . . . . . . . . List: []*ast.Field (len = 1) { 486 . . . . . . . . . . . . 0: *ast.Field { 489 . . . . . . . . . . . . . Type: *ast.Ident { 491 . . . . . . . . . . . . . . Name: "int64" 492 . . . . . . . . . . . . . . Obj: *(obj @ 297) 507 . . . . . . Incomplete: false 514 . . 13: *ast.FuncDecl { 516 . . . Recv: *ast.FieldList { 518 . . . . List: []*ast.Field (len = 1) { 519 . . . . . 0: *ast.Field { 521 . . . . . . Names: []*ast.Ident (len = 1) { 522 . . . . . . . 0: *ast.Ident { 524 . . . . . . . . Name: "p" 525 . . . . . . . . Obj: *ast.Object { 526 . . . . . . . . . Kind: var 527 . . . . . . . . . Name: "p" 528 . . . . . . . . . Decl: *(obj @ 519) 533 . . . . . . Type: *ast.StarExpr { 535 . . . . . . . X: *ast.Ident { 537 . . . . . . . . Name: "Worm" 538 . . . . . . . . Obj: *(obj @ 268) 547 . . . Name: *ast.Ident { 549 . . . . Name: "WormLen" 552 . . . Type: *ast.FuncType { 554 . . . . Params: *ast.FieldList { 559 . . . . Results: *ast.FieldList { 561 . . . . . List: []*ast.Field (len = 1) { 562 . . . . . . 0: *ast.Field { 565 . . . . . . . Type: *ast.Ident { 567 . . . . . . . . Name: "int64" 568 . . . . . . . . Obj: *(obj @ 297) 577 . . . Body: *ast.BlockStmt { 579 . . . . List: []ast.Stmt (len = 1) { 580 . . . . . 0: *ast.ReturnStmt { 582 . . . . . . Results: []ast.Expr (len = 1) { 583 . . . . . . . 0: *ast.SelectorExpr { 584 . . . . . . . . X: *ast.Ident { 586 . . . . . . . . . Name: "p" 587 . . . . . . . . . Obj: *(obj @ 525) 589 . . . . . . . . Sel: *ast.Ident { 591 . . . . . . . . . Name: "wormlen" 601 . . 14: *ast.FuncDecl { 604 . . . Name: *ast.Ident { 606 . . . . Name: "main" 607 . . . . Obj: *ast.Object { 608 . . . . . Kind: func 609 . . . . . Name: "main" 610 . . . . . Decl: *(obj @ 601) 614 . . . Type: *ast.FuncType { 616 . . . . Params: *ast.FieldList { 623 . . . Body: *ast.BlockStmt { 625 . . . . List: []ast.Stmt (len = 9) { 626 . . . . . 0: *ast.ExprStmt { 627 . . . . . . X: *ast.CallExpr { 628 . . . . . . . Fun: *ast.SelectorExpr { 629 . . . . . . . . X: *ast.Ident { 631 . . . . . . . . . Name: "flag" 632 . . . . . . . . . Obj: *ast.Object { 633 . . . . . . . . . . Kind: package 634 . . . . . . . . . . Name: "flag" 635 . . . . . . . . . . Decl: *(obj @ 15) 639 . . . . . . . . Sel: *ast.Ident { 641 . . . . . . . . . Name: "Parse" 651 . . . . . 1: *ast.AssignStmt { 652 . . . . . . Lhs: []ast.Expr (len = 1) { 653 . . . . . . . 0: *ast.Ident { 655 . . . . . . . . Name: "aaa" 656 . . . . . . . . Obj: *ast.Object { 657 . . . . . . . . . Kind: var 658 . . . . . . . . . Name: "aaa" 665 . . . . . . Tok: := 666 . . . . . . Rhs: []ast.Expr (len = 1) { 667 . . . . . . . 0: *ast.CallExpr { 668 . . . . . . . . Fun: *ast.Ident { 670 . . . . . . . . . Name: "new" 671 . . . . . . . . . Obj: *ast.Object { 672 . . . . . . . . . . Kind: func 673 . . . . . . . . . . Name: "new" 679 . . . . . . . . Args: []ast.Expr (len = 1) { 680 . . . . . . . . . 0: *ast.Ident { 682 . . . . . . . . . . Name: "Apple" 683 . . . . . . . . . . Obj: *(obj @ 336) 691 . . . . . 2: *ast.AssignStmt { 692 . . . . . . Lhs: []ast.Expr (len = 1) { 693 . . . . . . . 0: *ast.Ident { 695 . . . . . . . . Name: "xxx" 696 . . . . . . . . Obj: *ast.Object { 697 . . . . . . . . . Kind: var 698 . . . . . . . . . Name: "xxx" 705 . . . . . . Tok: := 706 . . . . . . Rhs: []ast.Expr (len = 1) { 707 . . . . . . . 0: *ast.CallExpr { 708 . . . . . . . . Fun: *ast.SelectorExpr { 709 . . . . . . . . . X: *ast.Ident { 711 . . . . . . . . . . Name: "aaa" 712 . . . . . . . . . . Obj: *(obj @ 656) 714 . . . . . . . . . Sel: *ast.Ident { 716 . . . . . . . . . . Name: "WormLen" 727 . . . . . 3: *ast.DeclStmt { 728 . . . . . . Decl: *ast.GenDecl { 731 . . . . . . . Tok: var 733 . . . . . . . Specs: []ast.Spec (len = 1) { 734 . . . . . . . . 0: *ast.ValueSpec { 736 . . . . . . . . . Names: []*ast.Ident (len = 1) { 737 . . . . . . . . . . 0: *ast.Ident { 739 . . . . . . . . . . . Name: "www" 740 . . . . . . . . . . . Obj: *ast.Object { 741 . . . . . . . . . . . . Kind: var 742 . . . . . . . . . . . . Name: "www" 743 . . . . . . . . . . . . Decl: *(obj @ 734) 748 . . . . . . . . . Type: *ast.Ident { 750 . . . . . . . . . . Name: "WormLener" 751 . . . . . . . . . . Obj: *(obj @ 450) 753 . . . . . . . . . Values: []ast.Expr (len = 1) { 754 . . . . . . . . . . 0: *ast.Ident { 756 . . . . . . . . . . . Name: "aaa" 757 . . . . . . . . . . . Obj: *(obj @ 656) 766 . . . . . 4: *ast.ExprStmt { 767 . . . . . . X: *ast.CallExpr { 768 . . . . . . . Fun: *ast.Ident { 770 . . . . . . . . Name: "println" 771 . . . . . . . . Obj: *ast.Object { 772 . . . . . . . . . Kind: func 773 . . . . . . . . . Name: "println" 779 . . . . . . . Args: []ast.Expr (len = 2) { 780 . . . . . . . . 0: *ast.SelectorExpr { 781 . . . . . . . . . X: *ast.TypeAssertExpr { 782 . . . . . . . . . . X: *ast.Ident { 784 . . . . . . . . . . . Name: "www" 785 . . . . . . . . . . . Obj: *(obj @ 740) 787 . . . . . . . . . . Type: *ast.StarExpr { 789 . . . . . . . . . . . X: *ast.Ident { 791 . . . . . . . . . . . . Name: "Apple" 792 . . . . . . . . . . . . Obj: *(obj @ 336) 796 . . . . . . . . . Sel: *ast.Ident { 798 . . . . . . . . . . Name: "rotation" 802 . . . . . . . . 1: *ast.Ident { 804 . . . . . . . . . Name: "xxx" 805 . . . . . . . . . Obj: *(obj @ 696) 812 . . . . . 5: *ast.AssignStmt { 813 . . . . . . Lhs: []ast.Expr (len = 1) { 814 . . . . . . . 0: *ast.Ident { 816 . . . . . . . . Name: "fset" 817 . . . . . . . . Obj: *ast.Object { 818 . . . . . . . . . Kind: var 819 . . . . . . . . . Name: "fset" 826 . . . . . . Tok: := 827 . . . . . . Rhs: []ast.Expr (len = 1) { 828 . . . . . . . 0: *ast.CallExpr { 829 . . . . . . . . Fun: *ast.SelectorExpr { 830 . . . . . . . . . X: *ast.Ident { 832 . . . . . . . . . . Name: "token" 833 . . . . . . . . . . Obj: *ast.Object { 834 . . . . . . . . . . . Kind: package 835 . . . . . . . . . . . Name: "token" 836 . . . . . . . . . . . Decl: *(obj @ 95) 840 . . . . . . . . . Sel: *ast.Ident { 842 . . . . . . . . . . Name: "NewFileSet" 853 . . . . . 6: *ast.AssignStmt { 854 . . . . . . Lhs: []ast.Expr (len = 1) { 855 . . . . . . . 0: *ast.Ident { 857 . . . . . . . . Name: "files" 858 . . . . . . . . Obj: *ast.Object { 859 . . . . . . . . . Kind: var 860 . . . . . . . . . Name: "files" 867 . . . . . . Tok: := 868 . . . . . . Rhs: []ast.Expr (len = 1) { 869 . . . . . . . 0: *ast.CallExpr { 870 . . . . . . . . Fun: *ast.Ident { 872 . . . . . . . . . Name: "make" 873 . . . . . . . . . Obj: *ast.Object { 874 . . . . . . . . . . Kind: func 875 . . . . . . . . . . Name: "make" 881 . . . . . . . . Args: []ast.Expr (len = 1) { 882 . . . . . . . . . 0: *ast.MapType { 884 . . . . . . . . . . Key: *ast.Ident { 886 . . . . . . . . . . . Name: "string" 887 . . . . . . . . . . . Obj: *(obj @ 376) 889 . . . . . . . . . . Value: *ast.StarExpr { 891 . . . . . . . . . . . X: *ast.SelectorExpr { 892 . . . . . . . . . . . . X: *ast.Ident { 894 . . . . . . . . . . . . . Name: "ast" 895 . . . . . . . . . . . . . Obj: *ast.Object { 896 . . . . . . . . . . . . . . Kind: package 897 . . . . . . . . . . . . . . Name: "ast" 898 . . . . . . . . . . . . . . Decl: *(obj @ 34) 902 . . . . . . . . . . . . Sel: *ast.Ident { 904 . . . . . . . . . . . . . Name: "File" 916 . . . . . 7: *ast.RangeStmt { 918 . . . . . . Key: *ast.Ident { 920 . . . . . . . Name: "_" 923 . . . . . . Value: *ast.Ident { 925 . . . . . . . Name: "filename" 926 . . . . . . . Obj: *ast.Object { 927 . . . . . . . . Kind: var 928 . . . . . . . . Name: "filename" 934 . . . . . . Tok: := 935 . . . . . . X: *ast.CallExpr { 936 . . . . . . . Fun: *ast.SelectorExpr { 937 . . . . . . . . X: *ast.Ident { 939 . . . . . . . . . Name: "flag" 940 . . . . . . . . . Obj: *(obj @ 632) 942 . . . . . . . . Sel: *ast.Ident { 944 . . . . . . . . . Name: "Args" 953 . . . . . . Body: *ast.BlockStmt { 955 . . . . . . . List: []ast.Stmt (len = 11) { 956 . . . . . . . . 0: *ast.AssignStmt { 957 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 958 . . . . . . . . . . 0: *ast.Ident { 960 . . . . . . . . . . . Name: "tree" 961 . . . . . . . . . . . Obj: *ast.Object { 962 . . . . . . . . . . . . Kind: var 963 . . . . . . . . . . . . Name: "tree" 968 . . . . . . . . . . 1: *ast.Ident { 970 . . . . . . . . . . . Name: "err" 971 . . . . . . . . . . . Obj: *ast.Object { 972 . . . . . . . . . . . . Kind: var 973 . . . . . . . . . . . . Name: "err" 980 . . . . . . . . . Tok: := 981 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 982 . . . . . . . . . . 0: *ast.CallExpr { 983 . . . . . . . . . . . Fun: *ast.SelectorExpr { 984 . . . . . . . . . . . . X: *ast.Ident { 986 . . . . . . . . . . . . . Name: "parser" 987 . . . . . . . . . . . . . Obj: *ast.Object { 988 . . . . . . . . . . . . . . Kind: package 989 . . . . . . . . . . . . . . Name: "parser" 990 . . . . . . . . . . . . . . Decl: *(obj @ 53) 994 . . . . . . . . . . . . Sel: *ast.Ident { 996 . . . . . . . . . . . . . Name: "ParseFile" 1001 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1002 . . . . . . . . . . . . 0: *ast.Ident { 1004 . . . . . . . . . . . . . Name: "fset" 1005 . . . . . . . . . . . . . Obj: *(obj @ 817) 1007 . . . . . . . . . . . . 1: *ast.Ident { 1009 . . . . . . . . . . . . . Name: "filename" 1010 . . . . . . . . . . . . . Obj: *(obj @ 926) 1012 . . . . . . . . . . . . 2: *ast.Ident { 1014 . . . . . . . . . . . . . Name: "nil" 1015 . . . . . . . . . . . . . Obj: *ast.Object { 1016 . . . . . . . . . . . . . . Kind: const 1017 . . . . . . . . . . . . . . Name: "nil" 1022 . . . . . . . . . . . . 3: *ast.BasicLit { 1024 . . . . . . . . . . . . . Kind: INT 1025 . . . . . . . . . . . . . Value: "0" 1033 . . . . . . . . 1: *ast.IfStmt { 1036 . . . . . . . . . Cond: *ast.BinaryExpr { 1037 . . . . . . . . . . X: *ast.Ident { 1039 . . . . . . . . . . . Name: "err" 1040 . . . . . . . . . . . Obj: *(obj @ 971) 1043 . . . . . . . . . . Op: != 1044 . . . . . . . . . . Y: *ast.Ident { 1046 . . . . . . . . . . . Name: "nil" 1047 . . . . . . . . . . . Obj: *(obj @ 1015) 1050 . . . . . . . . . Body: *ast.BlockStmt { 1052 . . . . . . . . . . List: []ast.Stmt (len = 1) { 1053 . . . . . . . . . . . 0: *ast.ExprStmt { 1054 . . . . . . . . . . . . X: *ast.CallExpr { 1055 . . . . . . . . . . . . . Fun: *ast.Ident { 1057 . . . . . . . . . . . . . . Name: "panic" 1058 . . . . . . . . . . . . . . Obj: *ast.Object { 1059 . . . . . . . . . . . . . . . Kind: func 1060 . . . . . . . . . . . . . . . Name: "panic" 1066 . . . . . . . . . . . . . Args: []ast.Expr (len = 1) { 1067 . . . . . . . . . . . . . . 0: *ast.Ident { 1069 . . . . . . . . . . . . . . . Name: "err" 1070 . . . . . . . . . . . . . . . Obj: *(obj @ 971) 1082 . . . . . . . . 2: *ast.ExprStmt { 1083 . . . . . . . . . X: *ast.CallExpr { 1084 . . . . . . . . . . Fun: *ast.Ident { 1086 . . . . . . . . . . . Name: "println" 1087 . . . . . . . . . . . Obj: *(obj @ 771) 1090 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1091 . . . . . . . . . . . 0: *ast.BasicLit { 1093 . . . . . . . . . . . . Kind: STRING 1094 . . . . . . . . . . . . Value: "\"#####################################\"" 1101 . . . . . . . . 3: *ast.AssignStmt { 1102 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1103 . . . . . . . . . . 0: *ast.Ident { 1105 . . . . . . . . . . . Name: "importer" 1106 . . . . . . . . . . . Obj: *ast.Object { 1107 . . . . . . . . . . . . Kind: var 1108 . . . . . . . . . . . . Name: "importer" 1115 . . . . . . . . . Tok: := 1116 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1117 . . . . . . . . . . 0: *ast.SelectorExpr { 1118 . . . . . . . . . . . X: *ast.Ident { 1120 . . . . . . . . . . . . Name: "types" 1121 . . . . . . . . . . . . Obj: *ast.Object { 1122 . . . . . . . . . . . . . Kind: package 1123 . . . . . . . . . . . . . Name: "types" 1124 . . . . . . . . . . . . . Decl: *(obj @ 114) 1128 . . . . . . . . . . . Sel: *ast.Ident { 1130 . . . . . . . . . . . . Name: "GcImporter" 1136 . . . . . . . . 4: *ast.AssignStmt { 1137 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1138 . . . . . . . . . . 0: *ast.Ident { 1140 . . . . . . . . . . . Name: "univ" 1141 . . . . . . . . . . . Obj: *ast.Object { 1142 . . . . . . . . . . . . Kind: var 1143 . . . . . . . . . . . . Name: "univ" 1150 . . . . . . . . . Tok: := 1151 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1152 . . . . . . . . . . 0: *ast.SelectorExpr { 1153 . . . . . . . . . . . X: *ast.Ident { 1155 . . . . . . . . . . . . Name: "types" 1156 . . . . . . . . . . . . Obj: *(obj @ 1121) 1158 . . . . . . . . . . . Sel: *ast.Ident { 1160 . . . . . . . . . . . . Name: "Universe" 1166 . . . . . . . . 5: *ast.AssignStmt { 1167 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1168 . . . . . . . . . . 0: *ast.IndexExpr { 1169 . . . . . . . . . . . X: *ast.Ident { 1171 . . . . . . . . . . . . Name: "files" 1172 . . . . . . . . . . . . Obj: *(obj @ 858) 1175 . . . . . . . . . . . Index: *ast.Ident { 1177 . . . . . . . . . . . . Name: "filename" 1178 . . . . . . . . . . . . Obj: *(obj @ 926) 1184 . . . . . . . . . Tok: = 1185 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1186 . . . . . . . . . . 0: *ast.Ident { 1188 . . . . . . . . . . . Name: "tree" 1189 . . . . . . . . . . . Obj: *(obj @ 961) 1193 . . . . . . . . 6: *ast.AssignStmt { 1194 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 1195 . . . . . . . . . . 0: *ast.Ident { 1197 . . . . . . . . . . . Name: "pkg" 1198 . . . . . . . . . . . Obj: *ast.Object { 1199 . . . . . . . . . . . . Kind: var 1200 . . . . . . . . . . . . Name: "pkg" 1205 . . . . . . . . . . 1: *ast.Ident { 1207 . . . . . . . . . . . Name: "err" 1208 . . . . . . . . . . . Obj: *(obj @ 971) 1212 . . . . . . . . . Tok: := 1213 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1214 . . . . . . . . . . 0: *ast.CallExpr { 1215 . . . . . . . . . . . Fun: *ast.SelectorExpr { 1216 . . . . . . . . . . . . X: *ast.Ident { 1218 . . . . . . . . . . . . . Name: "ast" 1219 . . . . . . . . . . . . . Obj: *(obj @ 895) 1221 . . . . . . . . . . . . Sel: *ast.Ident { 1223 . . . . . . . . . . . . . Name: "NewPackage" 1228 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1229 . . . . . . . . . . . . 0: *ast.Ident { 1231 . . . . . . . . . . . . . Name: "fset" 1232 . . . . . . . . . . . . . Obj: *(obj @ 817) 1234 . . . . . . . . . . . . 1: *ast.Ident { 1236 . . . . . . . . . . . . . Name: "files" 1237 . . . . . . . . . . . . . Obj: *(obj @ 858) 1239 . . . . . . . . . . . . 2: *ast.Ident { 1241 . . . . . . . . . . . . . Name: "importer" 1242 . . . . . . . . . . . . . Obj: *(obj @ 1106) 1244 . . . . . . . . . . . . 3: *ast.Ident { 1246 . . . . . . . . . . . . . Name: "univ" 1247 . . . . . . . . . . . . . Obj: *(obj @ 1141) 1255 . . . . . . . . 7: *ast.IfStmt { 1258 . . . . . . . . . Cond: *ast.BinaryExpr { 1259 . . . . . . . . . . X: *ast.Ident { 1261 . . . . . . . . . . . Name: "err" 1262 . . . . . . . . . . . Obj: *(obj @ 971) 1265 . . . . . . . . . . Op: != 1266 . . . . . . . . . . Y: *ast.Ident { 1268 . . . . . . . . . . . Name: "nil" 1269 . . . . . . . . . . . Obj: *(obj @ 1015) 1272 . . . . . . . . . Body: *ast.BlockStmt { 1274 . . . . . . . . . . List: []ast.Stmt (len = 1) { 1275 . . . . . . . . . . . 0: *ast.ExprStmt { 1276 . . . . . . . . . . . . X: *ast.CallExpr { 1277 . . . . . . . . . . . . . Fun: *ast.Ident { 1279 . . . . . . . . . . . . . . Name: "panic" 1280 . . . . . . . . . . . . . . Obj: *(obj @ 1058) 1283 . . . . . . . . . . . . . Args: []ast.Expr (len = 1) { 1284 . . . . . . . . . . . . . . 0: *ast.Ident { 1286 . . . . . . . . . . . . . . . Name: "err" 1287 . . . . . . . . . . . . . . . Obj: *(obj @ 971) 1299 . . . . . . . . 8: *ast.AssignStmt { 1300 . . . . . . . . . Lhs: []ast.Expr (len = 1) { 1301 . . . . . . . . . . 0: *ast.Ident { 1303 . . . . . . . . . . . Name: "_" 1308 . . . . . . . . . Tok: = 1309 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1310 . . . . . . . . . . 0: *ast.Ident { 1312 . . . . . . . . . . . Name: "pkg" 1313 . . . . . . . . . . . Obj: *(obj @ 1198) 1317 . . . . . . . . 9: *ast.AssignStmt { 1318 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 1319 . . . . . . . . . . 0: *ast.Ident { 1321 . . . . . . . . . . . Name: "n" 1322 . . . . . . . . . . . Obj: *ast.Object { 1323 . . . . . . . . . . . . Kind: var 1324 . . . . . . . . . . . . Name: "n" 1329 . . . . . . . . . . 1: *ast.Ident { 1331 . . . . . . . . . . . Name: "err" 1332 . . . . . . . . . . . Obj: *(obj @ 971) 1336 . . . . . . . . . Tok: := 1337 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1338 . . . . . . . . . . 0: *ast.CallExpr { 1339 . . . . . . . . . . . Fun: *ast.SelectorExpr { 1340 . . . . . . . . . . . . X: *ast.Ident { 1342 . . . . . . . . . . . . . Name: "ast" 1343 . . . . . . . . . . . . . Obj: *(obj @ 895) 1345 . . . . . . . . . . . . Sel: *ast.Ident { 1347 . . . . . . . . . . . . . Name: "Fprint" 1352 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1353 . . . . . . . . . . . . 0: *ast.SelectorExpr { 1354 . . . . . . . . . . . . . X: *ast.Ident { 1356 . . . . . . . . . . . . . . Name: "os" 1357 . . . . . . . . . . . . . . Obj: *ast.Object { 1358 . . . . . . . . . . . . . . . Kind: package 1359 . . . . . . . . . . . . . . . Name: "os" 1360 . . . . . . . . . . . . . . . Decl: *(obj @ 133) 1364 . . . . . . . . . . . . . Sel: *ast.Ident { 1366 . . . . . . . . . . . . . . Name: "Stdout" 1370 . . . . . . . . . . . . 1: *ast.Ident { 1372 . . . . . . . . . . . . . Name: "fset" 1373 . . . . . . . . . . . . . Obj: *(obj @ 817) 1375 . . . . . . . . . . . . 2: *ast.Ident { 1377 . . . . . . . . . . . . . Name: "tree" 1378 . . . . . . . . . . . . . Obj: *(obj @ 961) 1380 . . . . . . . . . . . . 3: *ast.Ident { 1382 . . . . . . . . . . . . . Name: "nil" 1383 . . . . . . . . . . . . . Obj: *(obj @ 1015) 1391 . . . . . . . . 10: *ast.ExprStmt { 1392 . . . . . . . . . X: *ast.CallExpr { 1393 . . . . . . . . . . Fun: *ast.Ident { 1395 . . . . . . . . . . . Name: "println" 1396 . . . . . . . . . . . Obj: *(obj @ 771) 1399 . . . . . . . . . . Args: []ast.Expr (len = 2) { 1400 . . . . . . . . . . . 0: *ast.BasicLit { 1402 . . . . . . . . . . . . Kind: STRING 1403 . . . . . . . . . . . . Value: "\"n=\"" 1405 . . . . . . . . . . . 1: *ast.Ident { 1407 . . . . . . . . . . . . Name: "n" 1408 . . . . . . . . . . . . Obj: *(obj @ 1322) 1419 . . . . . 8: *ast.RangeStmt { 1421 . . . . . . Key: *ast.Ident { 1423 . . . . . . . Name: "name" 1424 . . . . . . . Obj: *ast.Object { 1425 . . . . . . . . Kind: var 1426 . . . . . . . . Name: "name" 1431 . . . . . . Value: *ast.Ident { 1433 . . . . . . . Name: "tree" 1434 . . . . . . . Obj: *ast.Object { 1435 . . . . . . . . Kind: var 1436 . . . . . . . . Name: "tree" 1442 . . . . . . Tok: := 1443 . . . . . . X: *ast.Ident { 1445 . . . . . . . Name: "files" 1446 . . . . . . . Obj: *(obj @ 858) 1448 . . . . . . Body: *ast.BlockStmt { 1450 . . . . . . . List: []ast.Stmt (len = 8) { 1451 . . . . . . . . 0: *ast.ExprStmt { 1452 . . . . . . . . . X: *ast.CallExpr { 1453 . . . . . . . . . . Fun: *ast.Ident { 1455 . . . . . . . . . . . Name: "println" 1456 . . . . . . . . . . . Obj: *(obj @ 771) 1459 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1460 . . . . . . . . . . . 0: *ast.BasicLit { 1462 . . . . . . . . . . . . Kind: STRING 1463 . . . . . . . . . . . . Value: "\"#####################################\"" 1470 . . . . . . . . 1: *ast.ExprStmt { 1471 . . . . . . . . . X: *ast.CallExpr { 1472 . . . . . . . . . . Fun: *ast.Ident { 1474 . . . . . . . . . . . Name: "println" 1475 . . . . . . . . . . . Obj: *(obj @ 771) 1478 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1479 . . . . . . . . . . . 0: *ast.BasicLit { 1481 . . . . . . . . . . . . Kind: STRING 1482 . . . . . . . . . . . . Value: "\"#######################\"" 1489 . . . . . . . . 2: *ast.ExprStmt { 1490 . . . . . . . . . X: *ast.CallExpr { 1491 . . . . . . . . . . Fun: *ast.Ident { 1493 . . . . . . . . . . . Name: "println" 1494 . . . . . . . . . . . Obj: *(obj @ 771) 1497 . . . . . . . . . . Args: []ast.Expr (len = 2) { 1498 . . . . . . . . . . . 0: *ast.BasicLit { 1500 . . . . . . . . . . . . Kind: STRING 1501 . . . . . . . . . . . . Value: "\"####################### \"" 1503 . . . . . . . . . . . 1: *ast.Ident { 1505 . . . . . . . . . . . . Name: "name" 1506 . . . . . . . . . . . . Obj: *(obj @ 1424) 1513 . . . . . . . . 3: *ast.ExprStmt { 1514 . . . . . . . . . X: *ast.CallExpr { 1515 . . . . . . . . . . Fun: *ast.Ident { 1517 . . . . . . . . . . . Name: "println" 1518 . . . . . . . . . . . Obj: *(obj @ 771) 1521 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1522 . . . . . . . . . . . 0: *ast.BasicLit { 1524 . . . . . . . . . . . . Kind: STRING 1525 . . . . . . . . . . . . Value: "\"#######################\"" 1532 . . . . . . . . 4: *ast.AssignStmt { 1533 . . . . . . . . . Lhs: []ast.Expr (len = 2) { 1534 . . . . . . . . . . 0: *ast.Ident { 1536 . . . . . . . . . . . Name: "n" 1537 . . . . . . . . . . . Obj: *ast.Object { 1538 . . . . . . . . . . . . Kind: var 1539 . . . . . . . . . . . . Name: "n" 1544 . . . . . . . . . . 1: *ast.Ident { 1546 . . . . . . . . . . . Name: "err" 1547 . . . . . . . . . . . Obj: *ast.Object { 1548 . . . . . . . . . . . . Kind: var 1549 . . . . . . . . . . . . Name: "err" 1556 . . . . . . . . . Tok: := 1557 . . . . . . . . . Rhs: []ast.Expr (len = 1) { 1558 . . . . . . . . . . 0: *ast.CallExpr { 1559 . . . . . . . . . . . Fun: *ast.SelectorExpr { 1560 . . . . . . . . . . . . X: *ast.Ident { 1562 . . . . . . . . . . . . . Name: "ast" 1563 . . . . . . . . . . . . . Obj: *(obj @ 895) 1565 . . . . . . . . . . . . Sel: *ast.Ident { 1567 . . . . . . . . . . . . . Name: "Fprint" 1572 . . . . . . . . . . . Args: []ast.Expr (len = 4) { 1573 . . . . . . . . . . . . 0: *ast.SelectorExpr { 1574 . . . . . . . . . . . . . X: *ast.Ident { 1576 . . . . . . . . . . . . . . Name: "os" 1577 . . . . . . . . . . . . . . Obj: *(obj @ 1357) 1579 . . . . . . . . . . . . . Sel: *ast.Ident { 1581 . . . . . . . . . . . . . . Name: "Stdout" 1585 . . . . . . . . . . . . 1: *ast.Ident { 1587 . . . . . . . . . . . . . Name: "fset" 1588 . . . . . . . . . . . . . Obj: *(obj @ 817) 1590 . . . . . . . . . . . . 2: *ast.Ident { 1592 . . . . . . . . . . . . . Name: "tree" 1593 . . . . . . . . . . . . . Obj: *(obj @ 1434) 1595 . . . . . . . . . . . . 3: *ast.Ident { 1597 . . . . . . . . . . . . . Name: "nil" 1598 . . . . . . . . . . . . . Obj: *(obj @ 1015) 1606 . . . . . . . . 5: *ast.IfStmt { 1609 . . . . . . . . . Cond: *ast.BinaryExpr { 1610 . . . . . . . . . . X: *ast.Ident { 1612 . . . . . . . . . . . Name: "err" 1613 . . . . . . . . . . . Obj: *(obj @ 1547) 1616 . . . . . . . . . . Op: != 1617 . . . . . . . . . . Y: *ast.Ident { 1619 . . . . . . . . . . . Name: "nil" 1620 . . . . . . . . . . . Obj: *(obj @ 1015) 1623 . . . . . . . . . Body: *ast.BlockStmt { 1625 . . . . . . . . . . List: []ast.Stmt (len = 1) { 1626 . . . . . . . . . . . 0: *ast.ExprStmt { 1627 . . . . . . . . . . . . X: *ast.CallExpr { 1628 . . . . . . . . . . . . . Fun: *ast.Ident { 1630 . . . . . . . . . . . . . . Name: "panic" 1631 . . . . . . . . . . . . . . Obj: *(obj @ 1058) 1634 . . . . . . . . . . . . . Args: []ast.Expr (len = 1) { 1635 . . . . . . . . . . . . . . 0: *ast.Ident { 1637 . . . . . . . . . . . . . . . Name: "err" 1638 . . . . . . . . . . . . . . . Obj: *(obj @ 1547) 1650 . . . . . . . . 6: *ast.ExprStmt { 1651 . . . . . . . . . X: *ast.CallExpr { 1652 . . . . . . . . . . Fun: *ast.Ident { 1654 . . . . . . . . . . . Name: "println" 1655 . . . . . . . . . . . Obj: *(obj @ 771) 1658 . . . . . . . . . . Args: []ast.Expr (len = 2) { 1659 . . . . . . . . . . . 0: *ast.BasicLit { 1661 . . . . . . . . . . . . Kind: STRING 1662 . . . . . . . . . . . . Value: "\"n=\"" 1664 . . . . . . . . . . . 1: *ast.Ident { 1666 . . . . . . . . . . . . Name: "n" 1667 . . . . . . . . . . . . Obj: *(obj @ 1537) 1674 . . . . . . . . 7: *ast.ExprStmt { 1675 . . . . . . . . . X: *ast.CallExpr { 1676 . . . . . . . . . . Fun: *ast.Ident { 1678 . . . . . . . . . . . Name: "println" 1679 . . . . . . . . . . . Obj: *(obj @ 771) 1682 . . . . . . . . . . Args: []ast.Expr (len = 1) { 1683 . . . . . . . . . . . 0: *ast.BasicLit { 1685 . . . . . . . . . . . . Kind: STRING 1686 . . . . . . . . . . . . Value: "\"\"" 1702 . Scope: *ast.Scope { 1704 . . Objects: map[string] *ast.Object (len = 7) { 1705 . . . "BAR": *(obj @ 191) 1706 . . . "main": *(obj @ 607) 1707 . . . "Apple": *(obj @ 336) 1708 . . . "WormLener": *(obj @ 450) 1709 . . . "Worm": *(obj @ 268) 1710 . . . "TYPE": *(obj @ 240) 1711 . . . "FOO": *(obj @ 158) 1714 . Imports: []*ast.ImportSpec (len = 7) { 1715 . . 0: *(obj @ 15) 1716 . . 1: *(obj @ 34) 1717 . . 2: *(obj @ 53) 1718 . . 3: *(obj @ 72) 1719 . . 4: *(obj @ 95) 1720 . . 5: *(obj @ 114) 1721 . . 6: *(obj @ 133) 1723 . Unresolved: []*ast.Ident (len = 0) { n= 23554