github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/ast/member_expr_test.go (about) 1 package ast 2 3 import ( 4 "testing" 5 ) 6 7 func TestMemberExpr(t *testing.T) { 8 nodes := map[string]Node{ 9 `0x7fcc758e34a0 <col:8, col:12> 'int' lvalue ->_w 0x7fcc758d60c8`: &MemberExpr{ 10 Addr: 0x7fcc758e34a0, 11 Pos: NewPositionFromString("col:8, col:12"), 12 Type: "int", 13 Type2: "", 14 IsLvalue: true, 15 IsBitfield: false, 16 Name: "_w", 17 Address2: "0x7fcc758d60c8", 18 IsPointer: true, 19 ChildNodes: []Node{}, 20 }, 21 `0x7fcc76004210 <col:12, col:16> 'unsigned char *' lvalue ->_p 0x7fcc758d6018`: &MemberExpr{ 22 Addr: 0x7fcc76004210, 23 Pos: NewPositionFromString("col:12, col:16"), 24 Type: "unsigned char *", 25 Type2: "", 26 IsLvalue: true, 27 IsBitfield: false, 28 Name: "_p", 29 Address2: "0x7fcc758d6018", 30 IsPointer: true, 31 ChildNodes: []Node{}, 32 }, 33 `0x7f85338325b0 <col:4, col:13> 'float' lvalue .constant 0x7f8533832260`: &MemberExpr{ 34 Addr: 0x7f85338325b0, 35 Pos: NewPositionFromString("col:4, col:13"), 36 Type: "float", 37 Type2: "", 38 IsLvalue: true, 39 IsBitfield: false, 40 Name: "constant", 41 Address2: "0x7f8533832260", 42 IsPointer: false, 43 ChildNodes: []Node{}, 44 }, 45 `0x7f8533832670 <col:4, col:13> 'char *' lvalue .pointer 0x7f85338322b8`: &MemberExpr{ 46 Addr: 0x7f8533832670, 47 Pos: NewPositionFromString("col:4, col:13"), 48 Type: "char *", 49 Type2: "", 50 IsLvalue: true, 51 IsBitfield: false, 52 Name: "pointer", 53 Address2: "0x7f85338322b8", 54 IsPointer: false, 55 ChildNodes: []Node{}, 56 }, 57 `0x7fb7d5a49ac8 <col:3, col:6> 'bft':'unsigned int' lvalue bitfield ->isPrepareV2 0x7fb7d5967f40`: &MemberExpr{ 58 Addr: 0x7fb7d5a49ac8, 59 Pos: NewPositionFromString("col:3, col:6"), 60 Type: "bft", 61 Type2: "unsigned int", 62 IsLvalue: true, 63 IsBitfield: true, 64 Name: "isPrepareV2", 65 Address2: "0x7fb7d5967f40", 66 IsPointer: true, 67 ChildNodes: []Node{}, 68 }, 69 `0x2914fb8 <col:12, col:14> 'union vec3d_t::(anonymous at main.c:2:5)' lvalue . 0x2914920`: &MemberExpr{ 70 Addr: 0x2914fb8, 71 Pos: NewPositionFromString("col:12, col:14"), 72 Type: "union vec3d_t::(anonymous at main.c:2:5)", 73 Type2: "", 74 IsLvalue: true, 75 IsBitfield: false, 76 Name: "", 77 Address2: "0x2914920", 78 IsPointer: false, 79 ChildNodes: []Node{}, 80 }, 81 `0x3180ef0 <col:32, col:48> 'int' .n 0x317f450`: &MemberExpr{ 82 Addr: 0x3180ef0, 83 Pos: NewPositionFromString("col:32, col:48"), 84 Type: "int", 85 Type2: "", 86 IsLvalue: false, 87 IsBitfield: false, 88 Name: "n", 89 Address2: "0x317f450", 90 IsPointer: false, 91 ChildNodes: []Node{}, 92 }, 93 `0x2a0dbd0 <col:15, col:18> 'int (*)(int, int)' lvalue .f 0x2a0d7c0`: &MemberExpr{ 94 Addr: 0x2a0dbd0, 95 Pos: NewPositionFromString("col:15, col:18"), 96 Type: "int (*)(int, int)", 97 Type2: "", 98 IsLvalue: true, 99 IsBitfield: false, 100 Name: "f", 101 Address2: "0x2a0d7c0", 102 IsPointer: false, 103 ChildNodes: []Node{}, 104 }, 105 `0x2a0fdf8 <col:15, col:19> 'int (*)(int, int)' lvalue ->f 0x2a0d7c0`: &MemberExpr{ 106 Addr: 0x2a0fdf8, 107 Pos: NewPositionFromString("col:15, col:19"), 108 Type: "int (*)(int, int)", 109 Type2: "", 110 IsLvalue: true, 111 IsBitfield: false, 112 Name: "f", 113 Address2: "0x2a0d7c0", 114 IsPointer: true, 115 ChildNodes: []Node{}, 116 }, 117 `0x1f54888 <col:44, col:49> 'enum linestyle_type [19]' lvalue .lineStyle 0x1eb6830 non_odr_use_unevaluated`: &MemberExpr{ 118 Addr: 0x1f54888, 119 Pos: NewPositionFromString("col:44, col:49"), 120 Type: "enum linestyle_type [19]", 121 Type2: "", 122 IsLvalue: true, 123 IsBitfield: false, 124 Name: "lineStyle", 125 Address2: "0x1eb6830", 126 IsPointer: false, 127 Other: " non_odr_use_unevaluated", 128 ChildNodes: []Node{}, 129 }, 130 } 131 132 runNodeTests(t, nodes) 133 }