Subversion Repositories tendra.SVN

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 7
Line 35... Line 35...
35
#ifndef MEMBER_OPS_H_INCLUDED
35
#ifndef MEMBER_OPS_H_INCLUDED
36
#define MEMBER_OPS_H_INCLUDED
36
#define MEMBER_OPS_H_INCLUDED
37
 
37
 
38
/* Operations for union MEMBER */
38
/* Operations for union MEMBER */
39
 
39
 
40
#define TAG_member( P )			( CHECK_NULL ( P )->ag_tag )
40
#define TAG_member(P)			(CHECK_NULL(P)->ag_tag)
41
 
41
 
42
 
42
 
43
/* Operations for component id of union MEMBER */
43
/* Operations for component id of union MEMBER */
44
 
44
 
45
#define member_id( P )			( CHECK_NULL ( P ) + 1 )
45
#define member_id(P)			(CHECK_NULL(P) + 1)
46
 
46
 
47
 
47
 
48
/* Operations for component alt of union MEMBER */
48
/* Operations for component alt of union MEMBER */
49
 
49
 
50
#define member_alt( P )			( CHECK_NULL ( P ) + 2 )
50
#define member_alt(P)			(CHECK_NULL(P) + 2)
51
 
51
 
52
 
52
 
53
/* Operations for component next of union MEMBER */
53
/* Operations for component next of union MEMBER */
54
 
54
 
55
#define member_next( P )		( CHECK_NULL ( P ) + 3 )
55
#define member_next(P)			(CHECK_NULL(P) + 3)
56
 
56
 
57
 
57
 
58
/* Operations for field small of union MEMBER */
58
/* Operations for field small of union MEMBER */
59
 
59
 
60
#define member_small_tag		( ( unsigned ) 0 )
60
#define member_small_tag		((unsigned)0)
61
#define IS_member_small( P )		( CHECK_NULL ( P )->ag_tag == 0 )
61
#define IS_member_small(P)		(CHECK_NULL(P)->ag_tag == 0)
62
 
62
 
63
 
63
 
64
#define MAKE_member_small( next_, c_class_member )\
64
#define MAKE_member_small(next_, c_class_member)\
65
    {\
65
    {\
66
	c_class *x424_ = GEN_c_class ( 4, TYPEID_member ) ;\
66
	c_class *x424_ = GEN_c_class(4, TYPEID_member);\
67
	x424_->ag_tag = 0 ;\
67
	x424_->ag_tag = 0;\
68
	COPY_id ( x424_ + 1, NULL_id ) ;\
68
	COPY_id(x424_ + 1, NULL_id);\
69
	COPY_id ( x424_ + 2, NULL_id ) ;\
69
	COPY_id(x424_ + 2, NULL_id);\
70
	COPY_member ( x424_ + 3, ( next_ ) ) ;\
70
	COPY_member(x424_ + 3, (next_));\
71
	( c_class_member ) = x424_ ;\
71
	(c_class_member) = x424_;\
72
    }
72
    }
73
 
73
 
74
#define DECONS_member_small( id_, alt_, next_, c_class_member )\
74
#define DECONS_member_small(id_, alt_, next_, c_class_member)\
75
    {\
75
    {\
76
	c_class *x425_ = CHECK_TAG ( ( c_class_member ), 0 ) ;\
76
	c_class *x425_ = CHECK_TAG((c_class_member), 0);\
77
	( id_ ) = DEREF_id ( x425_ + 1 ) ;\
77
	(id_) = DEREF_id(x425_ + 1);\
78
	( alt_ ) = DEREF_id ( x425_ + 2 ) ;\
78
	(alt_) = DEREF_id(x425_ + 2);\
79
	( next_ ) = DEREF_member ( x425_ + 3 ) ;\
79
	(next_) = DEREF_member(x425_ + 3);\
80
    }
80
    }
81
 
81
 
82
#define DESTROY_member_small( destroyer_, id_, alt_, next_, c_class_member )\
82
#define DESTROY_member_small(destroyer_, id_, alt_, next_, c_class_member)\
83
    {\
83
    {\
84
	c_class *x426_ = CHECK_TAG ( ( c_class_member ), 0 ) ;\
84
	c_class *x426_ = CHECK_TAG((c_class_member), 0);\
85
	( id_ ) = DEREF_id ( x426_ + 1 ) ;\
85
	(id_) = DEREF_id(x426_ + 1);\
86
	( alt_ ) = DEREF_id ( x426_ + 2 ) ;\
86
	(alt_) = DEREF_id(x426_ + 2);\
87
	( next_ ) = DEREF_member ( x426_ + 3 ) ;\
87
	(next_) = DEREF_member(x426_ + 3);\
88
	( destroyer_ ) ( x426_, ( unsigned ) 4 ) ;\
88
	(destroyer_)(x426_, (unsigned)4);\
89
    }
89
    }
90
 
90
 
91
 
91
 
92
/* Operations for field large of union MEMBER */
92
/* Operations for field large of union MEMBER */
93
 
93
 
94
#define member_large_tag		( ( unsigned ) 1 )
94
#define member_large_tag		((unsigned)1)
95
#define IS_member_large( P )		( CHECK_NULL ( P )->ag_tag == 1 )
95
#define IS_member_large(P)		(CHECK_NULL(P)->ag_tag == 1)
96
 
96
 
97
#define member_large_tnext( P )		( CHECK_TAG ( ( P ), 1 ) + 4 )
97
#define member_large_tnext(P)		(CHECK_TAG((P), 1) + 4)
98
 
98
 
99
#define MAKE_member_large( next_, tnext_, c_class_member )\
99
#define MAKE_member_large(next_, tnext_, c_class_member)\
100
    {\
100
    {\
101
	c_class *x427_ = GEN_c_class ( 5, TYPEID_member ) ;\
101
	c_class *x427_ = GEN_c_class(5, TYPEID_member);\
102
	x427_->ag_tag = 1 ;\
102
	x427_->ag_tag = 1;\
103
	COPY_id ( x427_ + 1, NULL_id ) ;\
103
	COPY_id(x427_ + 1, NULL_id);\
104
	COPY_id ( x427_ + 2, NULL_id ) ;\
104
	COPY_id(x427_ + 2, NULL_id);\
105
	COPY_member ( x427_ + 3, ( next_ ) ) ;\
105
	COPY_member(x427_ + 3, (next_));\
106
	COPY_member ( x427_ + 4, ( tnext_ ) ) ;\
106
	COPY_member(x427_ + 4, (tnext_));\
107
	( c_class_member ) = x427_ ;\
107
	(c_class_member) = x427_;\
108
    }
108
    }
109
 
109
 
110
#define DECONS_member_large( id_, alt_, next_, tnext_, c_class_member )\
110
#define DECONS_member_large(id_, alt_, next_, tnext_, c_class_member)\
111
    {\
111
    {\
112
	c_class *x428_ = CHECK_TAG ( ( c_class_member ), 1 ) ;\
112
	c_class *x428_ = CHECK_TAG((c_class_member), 1);\
113
	( id_ ) = DEREF_id ( x428_ + 1 ) ;\
113
	(id_) = DEREF_id(x428_ + 1);\
114
	( alt_ ) = DEREF_id ( x428_ + 2 ) ;\
114
	(alt_) = DEREF_id(x428_ + 2);\
115
	( next_ ) = DEREF_member ( x428_ + 3 ) ;\
115
	(next_) = DEREF_member(x428_ + 3);\
116
	( tnext_ ) = DEREF_member ( x428_ + 4 ) ;\
116
	(tnext_) = DEREF_member(x428_ + 4);\
117
    }
117
    }
118
 
118
 
119
#define DESTROY_member_large( destroyer_, id_, alt_, next_, tnext_, c_class_member )\
119
#define DESTROY_member_large(destroyer_, id_, alt_, next_, tnext_, c_class_member)\
120
    {\
120
    {\
121
	c_class *x429_ = CHECK_TAG ( ( c_class_member ), 1 ) ;\
121
	c_class *x429_ = CHECK_TAG((c_class_member), 1);\
122
	( id_ ) = DEREF_id ( x429_ + 1 ) ;\
122
	(id_) = DEREF_id(x429_ + 1);\
123
	( alt_ ) = DEREF_id ( x429_ + 2 ) ;\
123
	(alt_) = DEREF_id(x429_ + 2);\
124
	( next_ ) = DEREF_member ( x429_ + 3 ) ;\
124
	(next_) = DEREF_member(x429_ + 3);\
125
	( tnext_ ) = DEREF_member ( x429_ + 4 ) ;\
125
	(tnext_) = DEREF_member(x429_ + 4);\
126
	( destroyer_ ) ( x429_, ( unsigned ) 5 ) ;\
126
	(destroyer_)(x429_, (unsigned)5);\
127
    }
127
    }
128
 
128
 
129
 
129
 
130
#endif
130
#endif