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  }