Rev 109 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 109 | Rev 122 | ||
---|---|---|---|
Line 86... | Line 86... | ||
86 | if ~ field eq . |
86 | if ~ field eq . |
87 | name#field type def |
87 | name#field type def |
88 | sizeof.#name#field = $ - name#field |
88 | sizeof.#name#field = $ - name#field |
89 | else |
89 | else |
90 | label name#.#type |
90 | rb sizeof.#type |
91 | rb sizeof.#type |
- | |
92 | end if |
91 | end if |
93 | local value |
92 | local value |
94 | match any, list \{ list equ list, \} |
93 | match any, list \{ list equ list, \} |
95 | list equ list |
94 | list equ list |
96 | common |
95 | common |
Line 126... | Line 125... | ||
126 | enable@substruct |
125 | enable@substruct |
Line 127... | Line 126... | ||
127 | 126 | ||
128 | macro define@union parent,name,[field,type,def] |
127 | macro define@union parent,name,[field,type,def] |
129 | { common |
128 | { common |
130 | virtual at parent#.#name |
129 | virtual at 0 |
131 | forward |
130 | forward |
132 | if ~ field eq . |
131 | if ~ field eq . |
133 | virtual at parent#.#name |
132 | virtual at 0 |
134 | parent#field type def |
133 | parent#field type def |
135 | sizeof.#parent#field = $ - parent#field |
134 | sizeof.#parent#field = $ - parent#field |
136 | end virtual |
135 | end virtual |
137 | if sizeof.#parent#field > $ - parent#.#name |
136 | if sizeof.#parent#field > $ |
138 | rb sizeof.#parent#field - ($ - parent#.#name) |
- | |
139 | end if |
- | |
140 | else |
- | |
141 | label name#.#type at parent#.#name |
- | |
142 | if sizeof.#type > $ - parent#.#name |
- | |
143 | rb sizeof.#type - ($ - parent#.#name) |
137 | rb sizeof.#parent#field - $ |
- | 138 | end if |
|
- | 139 | else if sizeof.#type > $ |
|
144 | end if |
140 | rb sizeof.#type - $ |
145 | end if |
141 | end if |
146 | common |
142 | common |
147 | sizeof.#name = $ - parent#.#name |
143 | sizeof.#name = $ |
148 | end virtual |
144 | end virtual |
149 | struc name [value] \{ \common |
145 | struc name [value] \{ \common |
150 | label .\#name |
146 | label .\#name |
151 | last@union equ |
147 | last@union equ |
Line 159... | Line 155... | ||
159 | common rb sizeof.#name - ($ - .\#name) \} } |
155 | common rb sizeof.#name - ($ - .\#name) \} } |
160 | 156 | ||
Line 161... | Line 157... | ||
161 | macro define@substruct parent,name,[field,type,def] |
157 | macro define@substruct parent,name,[field,type,def] |
162 | { common |
158 | { common |
163 | virtual at parent#.#name |
159 | virtual at 0 |
164 | forward |
160 | forward |
165 | if ~ field eq . |
161 | if ~ field eq . |
166 | parent#field type def |
162 | parent#field type def |
167 | sizeof.#parent#field = $ - parent#field |
163 | sizeof.#parent#field = $ - parent#field |
168 | else |
164 | else |
169 | label name#.#type |
- | |
170 | rb sizeof.#type |
165 | rb sizeof.#type |
171 | end if |
166 | end if |
- | 167 | local value |
|
172 | common |
168 | common |
173 | sizeof.#name = $ - parent#.#name |
169 | sizeof.#name = $ |
174 | end virtual |
170 | end virtual |
175 | struc name value \{ |
171 | struc name value \{ |
176 | label .\#name |
172 | label .\#name |
177 | forward |
173 | forward |
178 | match , value \\{ field type def \\} |
174 | match , value \\{ field type def \\} |