aslrules.y revision 1.1.1.2 1 1.1 christos NoEcho('
2 1.1 christos /******************************************************************************
3 1.1 christos *
4 1.1 christos * Module Name: aslrules.y - Bison/Yacc production rules
5 1.1 christos *
6 1.1 christos *****************************************************************************/
7 1.1 christos
8 1.1 christos /*
9 1.1.1.2 christos * Copyright (C) 2000 - 2015, Intel Corp.
10 1.1 christos * All rights reserved.
11 1.1 christos *
12 1.1 christos * Redistribution and use in source and binary forms, with or without
13 1.1 christos * modification, are permitted provided that the following conditions
14 1.1 christos * are met:
15 1.1 christos * 1. Redistributions of source code must retain the above copyright
16 1.1 christos * notice, this list of conditions, and the following disclaimer,
17 1.1 christos * without modification.
18 1.1 christos * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 1.1 christos * substantially similar to the "NO WARRANTY" disclaimer below
20 1.1 christos * ("Disclaimer") and any redistribution must be conditioned upon
21 1.1 christos * including a substantially similar Disclaimer requirement for further
22 1.1 christos * binary redistribution.
23 1.1 christos * 3. Neither the names of the above-listed copyright holders nor the names
24 1.1 christos * of any contributors may be used to endorse or promote products derived
25 1.1 christos * from this software without specific prior written permission.
26 1.1 christos *
27 1.1 christos * Alternatively, this software may be distributed under the terms of the
28 1.1 christos * GNU General Public License ("GPL") version 2 as published by the Free
29 1.1 christos * Software Foundation.
30 1.1 christos *
31 1.1 christos * NO WARRANTY
32 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 1.1 christos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 1.1 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 1.1 christos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 1.1 christos * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 1.1 christos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 1.1 christos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 1.1 christos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 1.1 christos * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 1.1 christos * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 1.1 christos * POSSIBILITY OF SUCH DAMAGES.
43 1.1 christos */
44 1.1 christos
45 1.1 christos ')
46 1.1 christos
47 1.1 christos /*******************************************************************************
48 1.1 christos *
49 1.1 christos * Production rules start here
50 1.1 christos *
51 1.1 christos ******************************************************************************/
52 1.1 christos
53 1.1 christos /*
54 1.1 christos * ASL Names
55 1.1 christos *
56 1.1 christos * Root rule. Allow multiple #line directives before the definition block
57 1.1 christos * to handle output from preprocessors
58 1.1 christos */
59 1.1 christos ASLCode
60 1.1 christos : DefinitionBlockTerm
61 1.1 christos | error {YYABORT; $$ = NULL;}
62 1.1 christos ;
63 1.1 christos
64 1.1 christos /*
65 1.1 christos * Blocks, Data, and Opcodes
66 1.1 christos */
67 1.1 christos
68 1.1 christos /*
69 1.1 christos * Note concerning support for "module-level code".
70 1.1 christos *
71 1.1 christos * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
72 1.1 christos * methods (the so-called module-level code.) This support was explicitly
73 1.1 christos * removed in ACPI 2.0, but this type of code continues to be created by
74 1.1 christos * BIOS vendors. In order to support the disassembly and recompilation of
75 1.1 christos * such code (and the porting of ASL code to iASL), iASL supports this
76 1.1 christos * code in violation of the current ACPI specification.
77 1.1 christos *
78 1.1 christos * The grammar change to support module-level code is to revert the
79 1.1 christos * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
80 1.1 christos * original use of {TermList} instead (see below.) This allows the use
81 1.1 christos * of Type1 and Type2 opcodes at module level.
82 1.1 christos */
83 1.1 christos DefinitionBlockTerm
84 1.1 christos : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
85 1.1 christos String ','
86 1.1 christos String ','
87 1.1 christos ByteConst ','
88 1.1 christos String ','
89 1.1 christos String ','
90 1.1 christos DWordConst
91 1.1 christos ')' {TrSetEndLineNumber ($<n>3);}
92 1.1 christos '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
93 1.1 christos ;
94 1.1 christos
95 1.1.1.2 christos /*
96 1.1.1.2 christos * ASL Extensions: C-style math/logical operators and expressions.
97 1.1.1.2 christos * The implementation transforms these operators into the standard
98 1.1.1.2 christos * AML opcodes and syntax.
99 1.1.1.2 christos *
100 1.1.1.2 christos * Supported operators and precedence rules (high-to-low)
101 1.1.1.2 christos *
102 1.1.1.2 christos * NOTE: The operator precedence and associativity rules are
103 1.1.1.2 christos * implemented by the tokens in asltokens.y
104 1.1.1.2 christos *
105 1.1.1.2 christos * (left-to-right):
106 1.1.1.2 christos * 1) ( ) expr++ expr--
107 1.1.1.2 christos *
108 1.1.1.2 christos * (right-to-left):
109 1.1.1.2 christos * 2) ! ~
110 1.1.1.2 christos *
111 1.1.1.2 christos * (left-to-right):
112 1.1.1.2 christos * 3) * / %
113 1.1.1.2 christos * 4) + -
114 1.1.1.2 christos * 5) >> <<
115 1.1.1.2 christos * 6) < > <= >=
116 1.1.1.2 christos * 7) == !=
117 1.1.1.2 christos * 8) &
118 1.1.1.2 christos * 9) ^
119 1.1.1.2 christos * 10) |
120 1.1.1.2 christos * 11) &&
121 1.1.1.2 christos * 12) ||
122 1.1.1.2 christos *
123 1.1.1.2 christos * (right-to-left):
124 1.1.1.2 christos * 13) = += -= *= /= %= <<= >>= &= ^= |=
125 1.1.1.2 christos */
126 1.1.1.2 christos Expression
127 1.1.1.2 christos
128 1.1.1.2 christos /* Unary operators */
129 1.1.1.2 christos
130 1.1.1.2 christos : PARSEOP_EXP_LOGICAL_NOT {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
131 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>2,1,$3);}
132 1.1.1.2 christos | PARSEOP_EXP_NOT {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
133 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>2,2,$3,TrCreateNullTarget ());}
134 1.1.1.2 christos
135 1.1.1.2 christos | SuperName PARSEOP_EXP_INCREMENT {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
136 1.1.1.2 christos {$$ = TrLinkChildren ($<n>3,1,$1);}
137 1.1.1.2 christos | SuperName PARSEOP_EXP_DECREMENT {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
138 1.1.1.2 christos {$$ = TrLinkChildren ($<n>3,1,$1);}
139 1.1.1.2 christos
140 1.1.1.2 christos /* Binary operators: math and logical */
141 1.1.1.2 christos
142 1.1.1.2 christos | TermArg PARSEOP_EXP_ADD {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
143 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
144 1.1.1.2 christos | TermArg PARSEOP_EXP_DIVIDE {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
145 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
146 1.1.1.2 christos TrCreateNullTarget ());}
147 1.1.1.2 christos | TermArg PARSEOP_EXP_MODULO {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
148 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
149 1.1.1.2 christos | TermArg PARSEOP_EXP_MULTIPLY {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
150 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
151 1.1.1.2 christos | TermArg PARSEOP_EXP_SHIFT_LEFT {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
152 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
153 1.1.1.2 christos | TermArg PARSEOP_EXP_SHIFT_RIGHT {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
154 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
155 1.1.1.2 christos | TermArg PARSEOP_EXP_SUBTRACT {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
156 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
157 1.1.1.2 christos
158 1.1.1.2 christos | TermArg PARSEOP_EXP_AND {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
159 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
160 1.1.1.2 christos | TermArg PARSEOP_EXP_OR {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
161 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
162 1.1.1.2 christos | TermArg PARSEOP_EXP_XOR {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
163 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
164 1.1.1.2 christos
165 1.1.1.2 christos | TermArg PARSEOP_EXP_GREATER {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
166 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
167 1.1.1.2 christos | TermArg PARSEOP_EXP_GREATER_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATEREQUAL);}
168 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
169 1.1.1.2 christos | TermArg PARSEOP_EXP_LESS {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
170 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
171 1.1.1.2 christos | TermArg PARSEOP_EXP_LESS_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LLESSEQUAL);}
172 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
173 1.1.1.2 christos
174 1.1.1.2 christos | TermArg PARSEOP_EXP_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
175 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
176 1.1.1.2 christos | TermArg PARSEOP_EXP_NOT_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LNOTEQUAL);}
177 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
178 1.1.1.2 christos
179 1.1.1.2 christos | TermArg PARSEOP_EXP_LOGICAL_AND {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
180 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
181 1.1.1.2 christos | TermArg PARSEOP_EXP_LOGICAL_OR {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
182 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
183 1.1.1.2 christos
184 1.1.1.2 christos /* Parentheses */
185 1.1.1.2 christos
186 1.1.1.2 christos | '(' TermArg ')' { $$ = $2;}
187 1.1.1.2 christos ;
188 1.1.1.2 christos
189 1.1.1.2 christos EqualsTerm
190 1.1.1.2 christos
191 1.1.1.2 christos /* All assignment-type operations */
192 1.1.1.2 christos
193 1.1.1.2 christos : SuperName PARSEOP_EXP_EQUALS
194 1.1.1.2 christos TermArg {$$ = TrCreateAssignmentNode ($1, $3);}
195 1.1.1.2 christos
196 1.1.1.2 christos | TermArg PARSEOP_EXP_ADD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
197 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
198 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
199 1.1.1.2 christos
200 1.1.1.2 christos | TermArg PARSEOP_EXP_DIV_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
201 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
202 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
203 1.1.1.2 christos
204 1.1.1.2 christos | TermArg PARSEOP_EXP_MOD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
205 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
206 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
207 1.1.1.2 christos
208 1.1.1.2 christos | TermArg PARSEOP_EXP_MUL_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
209 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
210 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
211 1.1.1.2 christos
212 1.1.1.2 christos | TermArg PARSEOP_EXP_SHL_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
213 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
214 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
215 1.1.1.2 christos
216 1.1.1.2 christos | TermArg PARSEOP_EXP_SHR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
217 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
218 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
219 1.1.1.2 christos
220 1.1.1.2 christos | TermArg PARSEOP_EXP_SUB_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
221 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
222 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
223 1.1.1.2 christos
224 1.1.1.2 christos | TermArg PARSEOP_EXP_AND_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
225 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
226 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
227 1.1.1.2 christos
228 1.1.1.2 christos | TermArg PARSEOP_EXP_OR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
229 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
230 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
231 1.1.1.2 christos
232 1.1.1.2 christos | TermArg PARSEOP_EXP_XOR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
233 1.1.1.2 christos TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
234 1.1.1.2 christos TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
235 1.1.1.2 christos ;
236 1.1.1.2 christos
237 1.1.1.2 christos
238 1.1 christos /* ACPI 3.0 -- allow semicolons between terms */
239 1.1 christos
240 1.1 christos TermList
241 1.1 christos : {$$ = NULL;}
242 1.1 christos | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
243 1.1 christos | TermList Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
244 1.1 christos | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
245 1.1 christos | TermList ';' Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
246 1.1 christos ;
247 1.1 christos
248 1.1 christos Term
249 1.1 christos : Object {}
250 1.1 christos | Type1Opcode {}
251 1.1 christos | Type2Opcode {}
252 1.1.1.2 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
253 1.1.1.2 christos | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
254 1.1 christos | Type2BufferOpcode {}
255 1.1 christos | Type2BufferOrStringOpcode {}
256 1.1 christos | error {$$ = AslDoError(); yyclearin;}
257 1.1 christos ;
258 1.1 christos
259 1.1 christos CompilerDirective
260 1.1 christos : IncludeTerm {}
261 1.1 christos | ExternalTerm {}
262 1.1 christos ;
263 1.1 christos
264 1.1 christos ObjectList
265 1.1 christos : {$$ = NULL;}
266 1.1 christos | ObjectList Object {$$ = TrLinkPeerNode ($1,$2);}
267 1.1 christos | error {$$ = AslDoError(); yyclearin;}
268 1.1 christos ;
269 1.1 christos
270 1.1 christos Object
271 1.1 christos : CompilerDirective {}
272 1.1 christos | NamedObject {}
273 1.1 christos | NameSpaceModifier {}
274 1.1 christos ;
275 1.1 christos
276 1.1 christos DataObject
277 1.1 christos : BufferData {}
278 1.1 christos | PackageData {}
279 1.1 christos | IntegerData {}
280 1.1 christos | StringData {}
281 1.1 christos ;
282 1.1 christos
283 1.1 christos BufferData
284 1.1 christos : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
285 1.1 christos | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
286 1.1 christos | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
287 1.1 christos | BufferTerm {}
288 1.1 christos ;
289 1.1 christos
290 1.1 christos PackageData
291 1.1 christos : PackageTerm {}
292 1.1 christos ;
293 1.1 christos
294 1.1 christos IntegerData
295 1.1 christos : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
296 1.1 christos | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
297 1.1 christos | Integer {}
298 1.1 christos | ConstTerm {}
299 1.1 christos ;
300 1.1 christos
301 1.1 christos StringData
302 1.1 christos : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
303 1.1 christos | String {}
304 1.1 christos ;
305 1.1 christos
306 1.1 christos NamedObject
307 1.1 christos : BankFieldTerm {}
308 1.1 christos | CreateBitFieldTerm {}
309 1.1 christos | CreateByteFieldTerm {}
310 1.1 christos | CreateDWordFieldTerm {}
311 1.1 christos | CreateFieldTerm {}
312 1.1 christos | CreateQWordFieldTerm {}
313 1.1 christos | CreateWordFieldTerm {}
314 1.1 christos | DataRegionTerm {}
315 1.1 christos | DeviceTerm {}
316 1.1 christos | EventTerm {}
317 1.1 christos | FieldTerm {}
318 1.1 christos | FunctionTerm {}
319 1.1 christos | IndexFieldTerm {}
320 1.1 christos | MethodTerm {}
321 1.1 christos | MutexTerm {}
322 1.1 christos | OpRegionTerm {}
323 1.1 christos | PowerResTerm {}
324 1.1 christos | ProcessorTerm {}
325 1.1 christos | ThermalZoneTerm {}
326 1.1 christos ;
327 1.1 christos
328 1.1 christos NameSpaceModifier
329 1.1 christos : AliasTerm {}
330 1.1 christos | NameTerm {}
331 1.1 christos | ScopeTerm {}
332 1.1 christos ;
333 1.1 christos
334 1.1.1.2 christos MethodInvocationTerm
335 1.1 christos : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
336 1.1 christos ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
337 1.1 christos ;
338 1.1 christos
339 1.1 christos ArgList
340 1.1 christos : {$$ = NULL;}
341 1.1 christos | TermArg
342 1.1 christos | ArgList ',' /* Allows a trailing comma at list end */
343 1.1 christos | ArgList ','
344 1.1 christos TermArg {$$ = TrLinkPeerNode ($1,$3);}
345 1.1 christos ;
346 1.1 christos
347 1.1 christos /*
348 1.1 christos Removed from TermArg due to reduce/reduce conflicts
349 1.1 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
350 1.1 christos | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
351 1.1 christos | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
352 1.1 christos | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
353 1.1 christos
354 1.1 christos */
355 1.1 christos
356 1.1 christos TermArg
357 1.1 christos : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
358 1.1 christos | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
359 1.1 christos | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
360 1.1 christos | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
361 1.1 christos | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
362 1.1 christos ;
363 1.1 christos
364 1.1 christos Target
365 1.1.1.2 christos : {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
366 1.1.1.2 christos | ',' {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
367 1.1 christos | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
368 1.1 christos ;
369 1.1 christos
370 1.1 christos RequiredTarget
371 1.1 christos : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
372 1.1 christos ;
373 1.1 christos
374 1.1 christos SimpleTarget
375 1.1 christos : NameString {}
376 1.1 christos | LocalTerm {}
377 1.1 christos | ArgTerm {}
378 1.1 christos ;
379 1.1 christos
380 1.1 christos /* Rules for specifying the type of one method argument or return value */
381 1.1 christos
382 1.1 christos ParameterTypePackage
383 1.1 christos : {$$ = NULL;}
384 1.1 christos | ObjectTypeKeyword {$$ = $1;}
385 1.1 christos | ParameterTypePackage ','
386 1.1 christos ObjectTypeKeyword {$$ = TrLinkPeerNodes (2,$1,$3);}
387 1.1 christos ;
388 1.1 christos
389 1.1 christos ParameterTypePackageList
390 1.1 christos : {$$ = NULL;}
391 1.1 christos | ObjectTypeKeyword {$$ = $1;}
392 1.1 christos | '{' ParameterTypePackage '}' {$$ = $2;}
393 1.1 christos ;
394 1.1 christos
395 1.1 christos OptionalParameterTypePackage
396 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
397 1.1 christos | ',' ParameterTypePackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
398 1.1 christos ;
399 1.1 christos
400 1.1 christos /* Rules for specifying the types for method arguments */
401 1.1 christos
402 1.1 christos ParameterTypesPackage
403 1.1 christos : ParameterTypePackageList {$$ = $1;}
404 1.1 christos | ParameterTypesPackage ','
405 1.1 christos ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);}
406 1.1 christos ;
407 1.1 christos
408 1.1 christos ParameterTypesPackageList
409 1.1 christos : {$$ = NULL;}
410 1.1 christos | ObjectTypeKeyword {$$ = $1;}
411 1.1 christos | '{' ParameterTypesPackage '}' {$$ = $2;}
412 1.1 christos ;
413 1.1 christos
414 1.1 christos OptionalParameterTypesPackage
415 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
416 1.1 christos | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
417 1.1 christos ;
418 1.1 christos
419 1.1 christos
420 1.1 christos /* Opcode types */
421 1.1 christos
422 1.1 christos Type1Opcode
423 1.1 christos : BreakTerm {}
424 1.1 christos | BreakPointTerm {}
425 1.1 christos | ContinueTerm {}
426 1.1 christos | FatalTerm {}
427 1.1 christos | IfElseTerm {}
428 1.1 christos | LoadTerm {}
429 1.1 christos | NoOpTerm {}
430 1.1 christos | NotifyTerm {}
431 1.1 christos | ReleaseTerm {}
432 1.1 christos | ResetTerm {}
433 1.1 christos | ReturnTerm {}
434 1.1 christos | SignalTerm {}
435 1.1 christos | SleepTerm {}
436 1.1 christos | StallTerm {}
437 1.1 christos | SwitchTerm {}
438 1.1 christos | UnloadTerm {}
439 1.1 christos | WhileTerm {}
440 1.1 christos ;
441 1.1 christos
442 1.1 christos Type2Opcode
443 1.1 christos : AcquireTerm {}
444 1.1 christos | CondRefOfTerm {}
445 1.1 christos | CopyObjectTerm {}
446 1.1 christos | DerefOfTerm {}
447 1.1 christos | ObjectTypeTerm {}
448 1.1 christos | RefOfTerm {}
449 1.1 christos | SizeOfTerm {}
450 1.1 christos | StoreTerm {}
451 1.1.1.2 christos | EqualsTerm {}
452 1.1 christos | TimerTerm {}
453 1.1 christos | WaitTerm {}
454 1.1.1.2 christos | MethodInvocationTerm {}
455 1.1 christos ;
456 1.1 christos
457 1.1 christos /*
458 1.1 christos * Type 3/4/5 opcodes
459 1.1 christos */
460 1.1 christos
461 1.1 christos Type2IntegerOpcode /* "Type3" opcodes */
462 1.1.1.2 christos : Expression {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
463 1.1.1.2 christos | AddTerm {}
464 1.1 christos | AndTerm {}
465 1.1 christos | DecTerm {}
466 1.1 christos | DivideTerm {}
467 1.1 christos | FindSetLeftBitTerm {}
468 1.1 christos | FindSetRightBitTerm {}
469 1.1 christos | FromBCDTerm {}
470 1.1 christos | IncTerm {}
471 1.1 christos | IndexTerm {}
472 1.1 christos | LAndTerm {}
473 1.1 christos | LEqualTerm {}
474 1.1 christos | LGreaterTerm {}
475 1.1 christos | LGreaterEqualTerm {}
476 1.1 christos | LLessTerm {}
477 1.1 christos | LLessEqualTerm {}
478 1.1 christos | LNotTerm {}
479 1.1 christos | LNotEqualTerm {}
480 1.1 christos | LoadTableTerm {}
481 1.1 christos | LOrTerm {}
482 1.1 christos | MatchTerm {}
483 1.1 christos | ModTerm {}
484 1.1 christos | MultiplyTerm {}
485 1.1 christos | NAndTerm {}
486 1.1 christos | NOrTerm {}
487 1.1 christos | NotTerm {}
488 1.1 christos | OrTerm {}
489 1.1 christos | ShiftLeftTerm {}
490 1.1 christos | ShiftRightTerm {}
491 1.1 christos | SubtractTerm {}
492 1.1 christos | ToBCDTerm {}
493 1.1 christos | ToIntegerTerm {}
494 1.1 christos | XOrTerm {}
495 1.1 christos ;
496 1.1 christos
497 1.1 christos Type2StringOpcode /* "Type4" Opcodes */
498 1.1 christos : ToDecimalStringTerm {}
499 1.1 christos | ToHexStringTerm {}
500 1.1 christos | ToStringTerm {}
501 1.1 christos ;
502 1.1 christos
503 1.1 christos Type2BufferOpcode /* "Type5" Opcodes */
504 1.1 christos : ToBufferTerm {}
505 1.1 christos | ConcatResTerm {}
506 1.1 christos ;
507 1.1 christos
508 1.1 christos Type2BufferOrStringOpcode
509 1.1.1.2 christos : ConcatTerm {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
510 1.1.1.2 christos | PrintfTerm {}
511 1.1.1.2 christos | FprintfTerm {}
512 1.1 christos | MidTerm {}
513 1.1 christos ;
514 1.1 christos
515 1.1 christos /*
516 1.1 christos * A type 3 opcode evaluates to an Integer and cannot have a destination operand
517 1.1 christos */
518 1.1 christos
519 1.1 christos Type3Opcode
520 1.1 christos : EISAIDTerm {}
521 1.1 christos ;
522 1.1 christos
523 1.1 christos /* Obsolete
524 1.1 christos Type4Opcode
525 1.1 christos : ConcatTerm {}
526 1.1 christos | ToDecimalStringTerm {}
527 1.1 christos | ToHexStringTerm {}
528 1.1 christos | MidTerm {}
529 1.1 christos | ToStringTerm {}
530 1.1 christos ;
531 1.1 christos */
532 1.1 christos
533 1.1 christos
534 1.1 christos Type5Opcode
535 1.1 christos : ResourceTemplateTerm {}
536 1.1 christos | UnicodeTerm {}
537 1.1.1.2 christos | ToPLDTerm {}
538 1.1 christos | ToUUIDTerm {}
539 1.1 christos ;
540 1.1 christos
541 1.1 christos Type6Opcode
542 1.1 christos : RefOfTerm {}
543 1.1 christos | DerefOfTerm {}
544 1.1 christos | IndexTerm {}
545 1.1.1.2 christos | MethodInvocationTerm {}
546 1.1 christos ;
547 1.1 christos
548 1.1 christos IncludeTerm
549 1.1 christos : PARSEOP_INCLUDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
550 1.1 christos String ')' {TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
551 1.1 christos TermList
552 1.1 christos IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
553 1.1 christos ;
554 1.1 christos
555 1.1 christos IncludeEndTerm
556 1.1 christos : PARSEOP_INCLUDE_END {$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
557 1.1 christos ;
558 1.1 christos
559 1.1 christos ExternalTerm
560 1.1 christos : PARSEOP_EXTERNAL '('
561 1.1 christos NameString
562 1.1 christos OptionalObjectTypeKeyword
563 1.1 christos OptionalParameterTypePackage
564 1.1 christos OptionalParameterTypesPackage
565 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
566 1.1 christos | PARSEOP_EXTERNAL '('
567 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
568 1.1 christos ;
569 1.1 christos
570 1.1 christos
571 1.1 christos /******* Named Objects *******************************************************/
572 1.1 christos
573 1.1 christos
574 1.1 christos BankFieldTerm
575 1.1 christos : PARSEOP_BANKFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
576 1.1 christos NameString
577 1.1 christos NameStringItem
578 1.1 christos TermArgItem
579 1.1 christos ',' AccessTypeKeyword
580 1.1 christos ',' LockRuleKeyword
581 1.1 christos ',' UpdateRuleKeyword
582 1.1 christos ')' '{'
583 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
584 1.1 christos | PARSEOP_BANKFIELD '('
585 1.1 christos error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
586 1.1 christos ;
587 1.1 christos
588 1.1 christos FieldUnitList
589 1.1 christos : {$$ = NULL;}
590 1.1 christos | FieldUnit
591 1.1 christos | FieldUnitList ',' /* Allows a trailing comma at list end */
592 1.1 christos | FieldUnitList ','
593 1.1 christos FieldUnit {$$ = TrLinkPeerNode ($1,$3);}
594 1.1 christos ;
595 1.1 christos
596 1.1 christos FieldUnit
597 1.1 christos : FieldUnitEntry {}
598 1.1 christos | OffsetTerm {}
599 1.1 christos | AccessAsTerm {}
600 1.1 christos | ConnectionTerm {}
601 1.1 christos ;
602 1.1 christos
603 1.1 christos FieldUnitEntry
604 1.1 christos : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
605 1.1 christos | NameSeg ','
606 1.1 christos AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
607 1.1 christos ;
608 1.1 christos
609 1.1 christos OffsetTerm
610 1.1 christos : PARSEOP_OFFSET '('
611 1.1 christos AmlPackageLengthTerm
612 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
613 1.1 christos | PARSEOP_OFFSET '('
614 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
615 1.1 christos ;
616 1.1 christos
617 1.1 christos AccessAsTerm
618 1.1 christos : PARSEOP_ACCESSAS '('
619 1.1 christos AccessTypeKeyword
620 1.1 christos OptionalAccessAttribTerm
621 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
622 1.1 christos | PARSEOP_ACCESSAS '('
623 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
624 1.1 christos ;
625 1.1 christos
626 1.1 christos ConnectionTerm
627 1.1 christos : PARSEOP_CONNECTION '('
628 1.1 christos NameString
629 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
630 1.1 christos | PARSEOP_CONNECTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
631 1.1 christos ResourceMacroTerm
632 1.1 christos ')' {$$ = TrLinkChildren ($<n>3, 1,
633 1.1 christos TrLinkChildren (TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
634 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
635 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
636 1.1 christos $4));}
637 1.1 christos | PARSEOP_CONNECTION '('
638 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
639 1.1 christos ;
640 1.1 christos
641 1.1 christos CreateBitFieldTerm
642 1.1 christos : PARSEOP_CREATEBITFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
643 1.1 christos TermArg
644 1.1 christos TermArgItem
645 1.1 christos NameStringItem
646 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
647 1.1 christos | PARSEOP_CREATEBITFIELD '('
648 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
649 1.1 christos ;
650 1.1 christos
651 1.1 christos CreateByteFieldTerm
652 1.1 christos : PARSEOP_CREATEBYTEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
653 1.1 christos TermArg
654 1.1 christos TermArgItem
655 1.1 christos NameStringItem
656 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
657 1.1 christos | PARSEOP_CREATEBYTEFIELD '('
658 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
659 1.1 christos ;
660 1.1 christos
661 1.1 christos CreateDWordFieldTerm
662 1.1 christos : PARSEOP_CREATEDWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
663 1.1 christos TermArg
664 1.1 christos TermArgItem
665 1.1 christos NameStringItem
666 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
667 1.1 christos | PARSEOP_CREATEDWORDFIELD '('
668 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
669 1.1 christos ;
670 1.1 christos
671 1.1 christos CreateFieldTerm
672 1.1 christos : PARSEOP_CREATEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
673 1.1 christos TermArg
674 1.1 christos TermArgItem
675 1.1 christos TermArgItem
676 1.1 christos NameStringItem
677 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
678 1.1 christos | PARSEOP_CREATEFIELD '('
679 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
680 1.1 christos ;
681 1.1 christos
682 1.1 christos CreateQWordFieldTerm
683 1.1 christos : PARSEOP_CREATEQWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
684 1.1 christos TermArg
685 1.1 christos TermArgItem
686 1.1 christos NameStringItem
687 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
688 1.1 christos | PARSEOP_CREATEQWORDFIELD '('
689 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
690 1.1 christos ;
691 1.1 christos
692 1.1 christos CreateWordFieldTerm
693 1.1 christos : PARSEOP_CREATEWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
694 1.1 christos TermArg
695 1.1 christos TermArgItem
696 1.1 christos NameStringItem
697 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
698 1.1 christos | PARSEOP_CREATEWORDFIELD '('
699 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
700 1.1 christos ;
701 1.1 christos
702 1.1 christos DataRegionTerm
703 1.1 christos : PARSEOP_DATATABLEREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
704 1.1 christos NameString
705 1.1 christos TermArgItem
706 1.1 christos TermArgItem
707 1.1 christos TermArgItem
708 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
709 1.1 christos | PARSEOP_DATATABLEREGION '('
710 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
711 1.1 christos ;
712 1.1 christos
713 1.1 christos DeviceTerm
714 1.1 christos : PARSEOP_DEVICE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
715 1.1 christos NameString
716 1.1 christos ')' '{'
717 1.1 christos ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
718 1.1 christos | PARSEOP_DEVICE '('
719 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
720 1.1 christos ;
721 1.1 christos
722 1.1 christos EventTerm
723 1.1 christos : PARSEOP_EVENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
724 1.1 christos NameString
725 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
726 1.1 christos | PARSEOP_EVENT '('
727 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
728 1.1 christos ;
729 1.1 christos
730 1.1 christos FieldTerm
731 1.1 christos : PARSEOP_FIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
732 1.1 christos NameString
733 1.1 christos ',' AccessTypeKeyword
734 1.1 christos ',' LockRuleKeyword
735 1.1 christos ',' UpdateRuleKeyword
736 1.1 christos ')' '{'
737 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
738 1.1 christos | PARSEOP_FIELD '('
739 1.1 christos error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
740 1.1 christos ;
741 1.1 christos
742 1.1 christos FunctionTerm
743 1.1 christos : PARSEOP_FUNCTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
744 1.1 christos NameString
745 1.1 christos OptionalParameterTypePackage
746 1.1 christos OptionalParameterTypesPackage
747 1.1 christos ')' '{'
748 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
749 1.1 christos TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
750 1.1 christos TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
751 1.1 christos TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
752 1.1 christos | PARSEOP_FUNCTION '('
753 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
754 1.1 christos ;
755 1.1 christos
756 1.1 christos IndexFieldTerm
757 1.1 christos : PARSEOP_INDEXFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
758 1.1 christos NameString
759 1.1 christos NameStringItem
760 1.1 christos ',' AccessTypeKeyword
761 1.1 christos ',' LockRuleKeyword
762 1.1 christos ',' UpdateRuleKeyword
763 1.1 christos ')' '{'
764 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
765 1.1 christos | PARSEOP_INDEXFIELD '('
766 1.1 christos error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
767 1.1 christos ;
768 1.1 christos
769 1.1 christos MethodTerm
770 1.1 christos : PARSEOP_METHOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
771 1.1 christos NameString
772 1.1 christos OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);}
773 1.1 christos OptionalSerializeRuleKeyword
774 1.1 christos OptionalByteConstExpr
775 1.1 christos OptionalParameterTypePackage
776 1.1 christos OptionalParameterTypesPackage
777 1.1 christos ')' '{'
778 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
779 1.1 christos | PARSEOP_METHOD '('
780 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
781 1.1 christos ;
782 1.1 christos
783 1.1 christos MutexTerm
784 1.1 christos : PARSEOP_MUTEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
785 1.1 christos NameString
786 1.1 christos ',' ByteConstExpr
787 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
788 1.1 christos | PARSEOP_MUTEX '('
789 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
790 1.1 christos ;
791 1.1 christos
792 1.1 christos OpRegionTerm
793 1.1 christos : PARSEOP_OPERATIONREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
794 1.1 christos NameString
795 1.1 christos ',' OpRegionSpaceIdTerm
796 1.1 christos TermArgItem
797 1.1 christos TermArgItem
798 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
799 1.1 christos | PARSEOP_OPERATIONREGION '('
800 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
801 1.1 christos ;
802 1.1 christos
803 1.1 christos OpRegionSpaceIdTerm
804 1.1 christos : RegionSpaceKeyword {}
805 1.1 christos | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
806 1.1 christos ;
807 1.1 christos
808 1.1 christos PowerResTerm
809 1.1 christos : PARSEOP_POWERRESOURCE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
810 1.1 christos NameString
811 1.1 christos ',' ByteConstExpr
812 1.1 christos ',' WordConstExpr
813 1.1 christos ')' '{'
814 1.1 christos ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
815 1.1 christos | PARSEOP_POWERRESOURCE '('
816 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
817 1.1 christos ;
818 1.1 christos
819 1.1 christos ProcessorTerm
820 1.1 christos : PARSEOP_PROCESSOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
821 1.1 christos NameString
822 1.1 christos ',' ByteConstExpr
823 1.1 christos OptionalDWordConstExpr
824 1.1 christos OptionalByteConstExpr
825 1.1 christos ')' '{'
826 1.1 christos ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
827 1.1 christos | PARSEOP_PROCESSOR '('
828 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
829 1.1 christos ;
830 1.1 christos
831 1.1 christos ThermalZoneTerm
832 1.1 christos : PARSEOP_THERMALZONE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
833 1.1 christos NameString
834 1.1 christos ')' '{'
835 1.1 christos ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
836 1.1 christos | PARSEOP_THERMALZONE '('
837 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
838 1.1 christos ;
839 1.1 christos
840 1.1 christos
841 1.1 christos /******* Namespace modifiers *************************************************/
842 1.1 christos
843 1.1 christos
844 1.1 christos AliasTerm
845 1.1 christos : PARSEOP_ALIAS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
846 1.1 christos NameString
847 1.1 christos NameStringItem
848 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
849 1.1 christos | PARSEOP_ALIAS '('
850 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
851 1.1 christos ;
852 1.1 christos
853 1.1 christos NameTerm
854 1.1 christos : PARSEOP_NAME '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
855 1.1 christos NameString
856 1.1 christos ',' DataObject
857 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
858 1.1 christos | PARSEOP_NAME '('
859 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
860 1.1 christos ;
861 1.1 christos
862 1.1 christos ScopeTerm
863 1.1 christos : PARSEOP_SCOPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
864 1.1 christos NameString
865 1.1 christos ')' '{'
866 1.1 christos ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
867 1.1 christos | PARSEOP_SCOPE '('
868 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
869 1.1 christos ;
870 1.1 christos
871 1.1 christos
872 1.1 christos /******* Type 1 opcodes *******************************************************/
873 1.1 christos
874 1.1 christos
875 1.1 christos BreakTerm
876 1.1 christos : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
877 1.1 christos ;
878 1.1 christos
879 1.1 christos BreakPointTerm
880 1.1 christos : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
881 1.1 christos ;
882 1.1 christos
883 1.1 christos ContinueTerm
884 1.1 christos : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
885 1.1 christos ;
886 1.1 christos
887 1.1 christos FatalTerm
888 1.1 christos : PARSEOP_FATAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
889 1.1 christos ByteConstExpr
890 1.1 christos ',' DWordConstExpr
891 1.1 christos TermArgItem
892 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
893 1.1 christos | PARSEOP_FATAL '('
894 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
895 1.1 christos ;
896 1.1 christos
897 1.1 christos IfElseTerm
898 1.1 christos : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
899 1.1 christos ;
900 1.1 christos
901 1.1 christos IfTerm
902 1.1 christos : PARSEOP_IF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
903 1.1 christos TermArg
904 1.1 christos ')' '{'
905 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
906 1.1 christos
907 1.1 christos | PARSEOP_IF '('
908 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
909 1.1 christos ;
910 1.1 christos
911 1.1 christos ElseTerm
912 1.1 christos : {$$ = NULL;}
913 1.1 christos | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
914 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
915 1.1 christos
916 1.1 christos | PARSEOP_ELSE '{'
917 1.1 christos error '}' {$$ = AslDoError(); yyclearin;}
918 1.1 christos
919 1.1 christos | PARSEOP_ELSE
920 1.1 christos error {$$ = AslDoError(); yyclearin;}
921 1.1 christos
922 1.1 christos | PARSEOP_ELSEIF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
923 1.1 christos TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
924 1.1 christos ')' '{'
925 1.1 christos TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);}
926 1.1 christos ElseTerm {TrLinkPeerNode ($<n>5,$11);}
927 1.1 christos {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
928 1.1 christos
929 1.1 christos | PARSEOP_ELSEIF '('
930 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
931 1.1 christos
932 1.1 christos | PARSEOP_ELSEIF
933 1.1 christos error {$$ = AslDoError(); yyclearin;}
934 1.1 christos ;
935 1.1 christos
936 1.1 christos LoadTerm
937 1.1 christos : PARSEOP_LOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
938 1.1 christos NameString
939 1.1 christos RequiredTarget
940 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
941 1.1 christos | PARSEOP_LOAD '('
942 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
943 1.1 christos ;
944 1.1 christos
945 1.1 christos NoOpTerm
946 1.1 christos : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
947 1.1 christos ;
948 1.1 christos
949 1.1 christos NotifyTerm
950 1.1 christos : PARSEOP_NOTIFY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
951 1.1 christos SuperName
952 1.1 christos TermArgItem
953 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
954 1.1 christos | PARSEOP_NOTIFY '('
955 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
956 1.1 christos ;
957 1.1 christos
958 1.1 christos ReleaseTerm
959 1.1 christos : PARSEOP_RELEASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
960 1.1 christos SuperName
961 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
962 1.1 christos | PARSEOP_RELEASE '('
963 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
964 1.1 christos ;
965 1.1 christos
966 1.1 christos ResetTerm
967 1.1 christos : PARSEOP_RESET '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
968 1.1 christos SuperName
969 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
970 1.1 christos | PARSEOP_RESET '('
971 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
972 1.1 christos ;
973 1.1 christos
974 1.1 christos ReturnTerm
975 1.1 christos : PARSEOP_RETURN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
976 1.1 christos OptionalReturnArg
977 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
978 1.1 christos | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));}
979 1.1 christos | PARSEOP_RETURN '('
980 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
981 1.1 christos ;
982 1.1 christos
983 1.1 christos SignalTerm
984 1.1 christos : PARSEOP_SIGNAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
985 1.1 christos SuperName
986 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
987 1.1 christos | PARSEOP_SIGNAL '('
988 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
989 1.1 christos ;
990 1.1 christos
991 1.1 christos SleepTerm
992 1.1 christos : PARSEOP_SLEEP '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
993 1.1 christos TermArg
994 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
995 1.1 christos | PARSEOP_SLEEP '('
996 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
997 1.1 christos ;
998 1.1 christos
999 1.1 christos StallTerm
1000 1.1 christos : PARSEOP_STALL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
1001 1.1 christos TermArg
1002 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1003 1.1 christos | PARSEOP_STALL '('
1004 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1005 1.1 christos ;
1006 1.1 christos
1007 1.1 christos SwitchTerm
1008 1.1 christos : PARSEOP_SWITCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1009 1.1 christos TermArg
1010 1.1 christos ')' '{'
1011 1.1 christos CaseDefaultTermList '}'
1012 1.1 christos {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1013 1.1 christos | PARSEOP_SWITCH '('
1014 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1015 1.1 christos ;
1016 1.1 christos
1017 1.1 christos /*
1018 1.1 christos * Case-Default list; allow only one Default term and unlimited Case terms
1019 1.1 christos */
1020 1.1 christos
1021 1.1 christos CaseDefaultTermList
1022 1.1 christos : {$$ = NULL;}
1023 1.1 christos | CaseTerm {}
1024 1.1 christos | DefaultTerm {}
1025 1.1 christos | CaseDefaultTermList
1026 1.1 christos CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
1027 1.1 christos | CaseDefaultTermList
1028 1.1 christos DefaultTerm {$$ = TrLinkPeerNode ($1,$2);}
1029 1.1 christos
1030 1.1 christos /* Original - attempts to force zero or one default term within the switch */
1031 1.1 christos
1032 1.1 christos /*
1033 1.1 christos CaseDefaultTermList
1034 1.1 christos : {$$ = NULL;}
1035 1.1 christos | CaseTermList
1036 1.1 christos DefaultTerm
1037 1.1 christos CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
1038 1.1 christos | CaseTermList
1039 1.1 christos CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
1040 1.1 christos ;
1041 1.1 christos
1042 1.1 christos CaseTermList
1043 1.1 christos : {$$ = NULL;}
1044 1.1 christos | CaseTerm {}
1045 1.1 christos | CaseTermList
1046 1.1 christos CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
1047 1.1 christos ;
1048 1.1 christos */
1049 1.1 christos
1050 1.1 christos CaseTerm
1051 1.1 christos : PARSEOP_CASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
1052 1.1 christos DataObject
1053 1.1 christos ')' '{'
1054 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1055 1.1 christos | PARSEOP_CASE '('
1056 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1057 1.1 christos ;
1058 1.1 christos
1059 1.1 christos DefaultTerm
1060 1.1 christos : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
1061 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
1062 1.1 christos | PARSEOP_DEFAULT '{'
1063 1.1 christos error '}' {$$ = AslDoError(); yyclearin;}
1064 1.1 christos ;
1065 1.1 christos
1066 1.1 christos UnloadTerm
1067 1.1 christos : PARSEOP_UNLOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1068 1.1 christos SuperName
1069 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1070 1.1 christos | PARSEOP_UNLOAD '('
1071 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1072 1.1 christos ;
1073 1.1 christos
1074 1.1 christos WhileTerm
1075 1.1 christos : PARSEOP_WHILE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
1076 1.1 christos TermArg
1077 1.1 christos ')' '{' TermList '}'
1078 1.1 christos {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1079 1.1 christos | PARSEOP_WHILE '('
1080 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1081 1.1 christos ;
1082 1.1 christos
1083 1.1 christos
1084 1.1 christos /******* Type 2 opcodes *******************************************************/
1085 1.1 christos
1086 1.1 christos AcquireTerm
1087 1.1 christos : PARSEOP_ACQUIRE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
1088 1.1 christos SuperName
1089 1.1 christos ',' WordConstExpr
1090 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
1091 1.1 christos | PARSEOP_ACQUIRE '('
1092 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1093 1.1 christos ;
1094 1.1 christos
1095 1.1 christos AddTerm
1096 1.1 christos : PARSEOP_ADD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
1097 1.1 christos TermArg
1098 1.1 christos TermArgItem
1099 1.1 christos Target
1100 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1101 1.1 christos | PARSEOP_ADD '('
1102 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1103 1.1 christos ;
1104 1.1 christos
1105 1.1 christos AndTerm
1106 1.1 christos : PARSEOP_AND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
1107 1.1 christos TermArg
1108 1.1 christos TermArgItem
1109 1.1 christos Target
1110 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1111 1.1 christos | PARSEOP_AND '('
1112 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1113 1.1 christos ;
1114 1.1 christos
1115 1.1 christos ConcatTerm
1116 1.1 christos : PARSEOP_CONCATENATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
1117 1.1 christos TermArg
1118 1.1 christos TermArgItem
1119 1.1 christos Target
1120 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1121 1.1 christos | PARSEOP_CONCATENATE '('
1122 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1123 1.1 christos ;
1124 1.1 christos
1125 1.1 christos ConcatResTerm
1126 1.1 christos : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
1127 1.1 christos TermArg
1128 1.1 christos TermArgItem
1129 1.1 christos Target
1130 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1131 1.1 christos | PARSEOP_CONCATENATERESTEMPLATE '('
1132 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1133 1.1 christos ;
1134 1.1 christos
1135 1.1 christos CondRefOfTerm
1136 1.1 christos : PARSEOP_CONDREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
1137 1.1 christos SuperName
1138 1.1 christos Target
1139 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1140 1.1 christos | PARSEOP_CONDREFOF '('
1141 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1142 1.1 christos ;
1143 1.1 christos
1144 1.1 christos CopyObjectTerm
1145 1.1 christos : PARSEOP_COPYOBJECT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
1146 1.1 christos TermArg
1147 1.1 christos ',' SimpleTarget
1148 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1149 1.1 christos | PARSEOP_COPYOBJECT '('
1150 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1151 1.1 christos ;
1152 1.1 christos
1153 1.1 christos DecTerm
1154 1.1 christos : PARSEOP_DECREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
1155 1.1 christos SuperName
1156 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1157 1.1 christos | PARSEOP_DECREMENT '('
1158 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1159 1.1 christos ;
1160 1.1 christos
1161 1.1 christos DerefOfTerm
1162 1.1 christos : PARSEOP_DEREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
1163 1.1 christos TermArg
1164 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1165 1.1 christos | PARSEOP_DEREFOF '('
1166 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1167 1.1 christos ;
1168 1.1 christos
1169 1.1 christos DivideTerm
1170 1.1 christos : PARSEOP_DIVIDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
1171 1.1 christos TermArg
1172 1.1 christos TermArgItem
1173 1.1 christos Target
1174 1.1 christos Target
1175 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1176 1.1 christos | PARSEOP_DIVIDE '('
1177 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1178 1.1 christos ;
1179 1.1 christos
1180 1.1 christos FindSetLeftBitTerm
1181 1.1 christos : PARSEOP_FINDSETLEFTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
1182 1.1 christos TermArg
1183 1.1 christos Target
1184 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1185 1.1 christos | PARSEOP_FINDSETLEFTBIT '('
1186 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1187 1.1 christos ;
1188 1.1 christos
1189 1.1 christos FindSetRightBitTerm
1190 1.1 christos : PARSEOP_FINDSETRIGHTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
1191 1.1 christos TermArg
1192 1.1 christos Target
1193 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1194 1.1 christos | PARSEOP_FINDSETRIGHTBIT '('
1195 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1196 1.1 christos ;
1197 1.1 christos
1198 1.1 christos FromBCDTerm
1199 1.1 christos : PARSEOP_FROMBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1200 1.1 christos TermArg
1201 1.1 christos Target
1202 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1203 1.1 christos | PARSEOP_FROMBCD '('
1204 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1205 1.1 christos ;
1206 1.1 christos
1207 1.1 christos IncTerm
1208 1.1 christos : PARSEOP_INCREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1209 1.1 christos SuperName
1210 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1211 1.1 christos | PARSEOP_INCREMENT '('
1212 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1213 1.1 christos ;
1214 1.1 christos
1215 1.1 christos IndexTerm
1216 1.1 christos : PARSEOP_INDEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
1217 1.1 christos TermArg
1218 1.1 christos TermArgItem
1219 1.1 christos Target
1220 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1221 1.1 christos | PARSEOP_INDEX '('
1222 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1223 1.1 christos ;
1224 1.1 christos
1225 1.1 christos LAndTerm
1226 1.1 christos : PARSEOP_LAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
1227 1.1 christos TermArg
1228 1.1 christos TermArgItem
1229 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1230 1.1 christos | PARSEOP_LAND '('
1231 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1232 1.1 christos ;
1233 1.1 christos
1234 1.1 christos LEqualTerm
1235 1.1 christos : PARSEOP_LEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1236 1.1 christos TermArg
1237 1.1 christos TermArgItem
1238 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1239 1.1 christos | PARSEOP_LEQUAL '('
1240 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1241 1.1 christos ;
1242 1.1 christos
1243 1.1 christos LGreaterTerm
1244 1.1 christos : PARSEOP_LGREATER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1245 1.1 christos TermArg
1246 1.1 christos TermArgItem
1247 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1248 1.1 christos | PARSEOP_LGREATER '('
1249 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1250 1.1 christos ;
1251 1.1 christos
1252 1.1 christos LGreaterEqualTerm
1253 1.1 christos : PARSEOP_LGREATEREQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1254 1.1 christos TermArg
1255 1.1 christos TermArgItem
1256 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1257 1.1 christos | PARSEOP_LGREATEREQUAL '('
1258 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1259 1.1 christos ;
1260 1.1 christos
1261 1.1 christos LLessTerm
1262 1.1 christos : PARSEOP_LLESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1263 1.1 christos TermArg
1264 1.1 christos TermArgItem
1265 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1266 1.1 christos | PARSEOP_LLESS '('
1267 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1268 1.1 christos ;
1269 1.1 christos
1270 1.1 christos LLessEqualTerm
1271 1.1 christos : PARSEOP_LLESSEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1272 1.1 christos TermArg
1273 1.1 christos TermArgItem
1274 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1275 1.1 christos | PARSEOP_LLESSEQUAL '('
1276 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1277 1.1 christos ;
1278 1.1 christos
1279 1.1 christos LNotTerm
1280 1.1 christos : PARSEOP_LNOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
1281 1.1 christos TermArg
1282 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1283 1.1 christos | PARSEOP_LNOT '('
1284 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1285 1.1 christos ;
1286 1.1 christos
1287 1.1 christos LNotEqualTerm
1288 1.1 christos : PARSEOP_LNOTEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1289 1.1 christos TermArg
1290 1.1 christos TermArgItem
1291 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1292 1.1 christos | PARSEOP_LNOTEQUAL '('
1293 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1294 1.1 christos ;
1295 1.1 christos
1296 1.1 christos LoadTableTerm
1297 1.1 christos : PARSEOP_LOADTABLE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1298 1.1 christos TermArg
1299 1.1 christos TermArgItem
1300 1.1 christos TermArgItem
1301 1.1 christos OptionalListString
1302 1.1 christos OptionalListString
1303 1.1 christos OptionalReference
1304 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
1305 1.1 christos | PARSEOP_LOADTABLE '('
1306 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1307 1.1 christos ;
1308 1.1 christos
1309 1.1 christos LOrTerm
1310 1.1 christos : PARSEOP_LOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
1311 1.1 christos TermArg
1312 1.1 christos TermArgItem
1313 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1314 1.1 christos | PARSEOP_LOR '('
1315 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1316 1.1 christos ;
1317 1.1 christos
1318 1.1 christos MatchTerm
1319 1.1 christos : PARSEOP_MATCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
1320 1.1 christos TermArg
1321 1.1 christos ',' MatchOpKeyword
1322 1.1 christos TermArgItem
1323 1.1 christos ',' MatchOpKeyword
1324 1.1 christos TermArgItem
1325 1.1 christos TermArgItem
1326 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
1327 1.1 christos | PARSEOP_MATCH '('
1328 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1329 1.1 christos ;
1330 1.1 christos
1331 1.1 christos MidTerm
1332 1.1 christos : PARSEOP_MID '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
1333 1.1 christos TermArg
1334 1.1 christos TermArgItem
1335 1.1 christos TermArgItem
1336 1.1 christos Target
1337 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1338 1.1 christos | PARSEOP_MID '('
1339 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1340 1.1 christos ;
1341 1.1 christos
1342 1.1 christos ModTerm
1343 1.1 christos : PARSEOP_MOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
1344 1.1 christos TermArg
1345 1.1 christos TermArgItem
1346 1.1 christos Target
1347 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1348 1.1 christos | PARSEOP_MOD '('
1349 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1350 1.1 christos ;
1351 1.1 christos
1352 1.1 christos MultiplyTerm
1353 1.1 christos : PARSEOP_MULTIPLY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1354 1.1 christos TermArg
1355 1.1 christos TermArgItem
1356 1.1 christos Target
1357 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1358 1.1 christos | PARSEOP_MULTIPLY '('
1359 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1360 1.1 christos ;
1361 1.1 christos
1362 1.1 christos NAndTerm
1363 1.1 christos : PARSEOP_NAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
1364 1.1 christos TermArg
1365 1.1 christos TermArgItem
1366 1.1 christos Target
1367 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1368 1.1 christos | PARSEOP_NAND '('
1369 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1370 1.1 christos ;
1371 1.1 christos
1372 1.1 christos NOrTerm
1373 1.1 christos : PARSEOP_NOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
1374 1.1 christos TermArg
1375 1.1 christos TermArgItem
1376 1.1 christos Target
1377 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1378 1.1 christos | PARSEOP_NOR '('
1379 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1380 1.1 christos ;
1381 1.1 christos
1382 1.1 christos NotTerm
1383 1.1 christos : PARSEOP_NOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
1384 1.1 christos TermArg
1385 1.1 christos Target
1386 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1387 1.1 christos | PARSEOP_NOT '('
1388 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1389 1.1 christos ;
1390 1.1 christos
1391 1.1 christos ObjectTypeTerm
1392 1.1 christos : PARSEOP_OBJECTTYPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1393 1.1 christos ObjectTypeName
1394 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1395 1.1 christos | PARSEOP_OBJECTTYPE '('
1396 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1397 1.1 christos ;
1398 1.1 christos
1399 1.1 christos OrTerm
1400 1.1 christos : PARSEOP_OR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
1401 1.1 christos TermArg
1402 1.1 christos TermArgItem
1403 1.1 christos Target
1404 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1405 1.1 christos | PARSEOP_OR '('
1406 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1407 1.1 christos ;
1408 1.1 christos
1409 1.1 christos /*
1410 1.1 christos * In RefOf, the node isn't really a target, but we can't keep track of it after
1411 1.1 christos * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1412 1.1 christos */
1413 1.1 christos RefOfTerm
1414 1.1 christos : PARSEOP_REFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
1415 1.1 christos SuperName
1416 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1417 1.1 christos | PARSEOP_REFOF '('
1418 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1419 1.1 christos ;
1420 1.1 christos
1421 1.1 christos ShiftLeftTerm
1422 1.1 christos : PARSEOP_SHIFTLEFT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1423 1.1 christos TermArg
1424 1.1 christos TermArgItem
1425 1.1 christos Target
1426 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1427 1.1 christos | PARSEOP_SHIFTLEFT '('
1428 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1429 1.1 christos ;
1430 1.1 christos
1431 1.1 christos ShiftRightTerm
1432 1.1 christos : PARSEOP_SHIFTRIGHT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1433 1.1 christos TermArg
1434 1.1 christos TermArgItem
1435 1.1 christos Target
1436 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1437 1.1 christos | PARSEOP_SHIFTRIGHT '('
1438 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1439 1.1 christos ;
1440 1.1 christos
1441 1.1 christos SizeOfTerm
1442 1.1 christos : PARSEOP_SIZEOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1443 1.1 christos SuperName
1444 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1445 1.1 christos | PARSEOP_SIZEOF '('
1446 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1447 1.1 christos ;
1448 1.1 christos
1449 1.1 christos StoreTerm
1450 1.1 christos : PARSEOP_STORE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
1451 1.1 christos TermArg
1452 1.1 christos ',' SuperName
1453 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1454 1.1 christos | PARSEOP_STORE '('
1455 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1456 1.1 christos ;
1457 1.1 christos
1458 1.1 christos SubtractTerm
1459 1.1 christos : PARSEOP_SUBTRACT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
1460 1.1 christos TermArg
1461 1.1 christos TermArgItem
1462 1.1 christos Target
1463 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1464 1.1 christos | PARSEOP_SUBTRACT '('
1465 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1466 1.1 christos ;
1467 1.1 christos
1468 1.1 christos TimerTerm
1469 1.1 christos : PARSEOP_TIMER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
1470 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,0);}
1471 1.1 christos | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
1472 1.1 christos | PARSEOP_TIMER '('
1473 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1474 1.1 christos ;
1475 1.1 christos
1476 1.1 christos ToBCDTerm
1477 1.1 christos : PARSEOP_TOBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
1478 1.1 christos TermArg
1479 1.1 christos Target
1480 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1481 1.1 christos | PARSEOP_TOBCD '('
1482 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1483 1.1 christos ;
1484 1.1 christos
1485 1.1 christos ToBufferTerm
1486 1.1 christos : PARSEOP_TOBUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
1487 1.1 christos TermArg
1488 1.1 christos Target
1489 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1490 1.1 christos | PARSEOP_TOBUFFER '('
1491 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1492 1.1 christos ;
1493 1.1 christos
1494 1.1 christos ToDecimalStringTerm
1495 1.1 christos : PARSEOP_TODECIMALSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
1496 1.1 christos TermArg
1497 1.1 christos Target
1498 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1499 1.1 christos | PARSEOP_TODECIMALSTRING '('
1500 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1501 1.1 christos ;
1502 1.1 christos
1503 1.1 christos ToHexStringTerm
1504 1.1 christos : PARSEOP_TOHEXSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
1505 1.1 christos TermArg
1506 1.1 christos Target
1507 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1508 1.1 christos | PARSEOP_TOHEXSTRING '('
1509 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1510 1.1 christos ;
1511 1.1 christos
1512 1.1 christos ToIntegerTerm
1513 1.1 christos : PARSEOP_TOINTEGER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
1514 1.1 christos TermArg
1515 1.1 christos Target
1516 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1517 1.1 christos | PARSEOP_TOINTEGER '('
1518 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1519 1.1 christos ;
1520 1.1 christos
1521 1.1.1.2 christos PldKeyword
1522 1.1.1.2 christos : PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
1523 1.1.1.2 christos | PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
1524 1.1.1.2 christos | PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
1525 1.1.1.2 christos | PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
1526 1.1.1.2 christos | PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
1527 1.1.1.2 christos | PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
1528 1.1.1.2 christos | PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
1529 1.1.1.2 christos | PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
1530 1.1.1.2 christos | PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
1531 1.1.1.2 christos | PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
1532 1.1.1.2 christos | PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
1533 1.1.1.2 christos | PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
1534 1.1.1.2 christos | PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
1535 1.1.1.2 christos | PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
1536 1.1.1.2 christos | PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
1537 1.1.1.2 christos | PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
1538 1.1.1.2 christos | PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
1539 1.1.1.2 christos | PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
1540 1.1.1.2 christos | PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
1541 1.1.1.2 christos | PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
1542 1.1.1.2 christos | PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
1543 1.1.1.2 christos | PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
1544 1.1.1.2 christos | PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
1545 1.1.1.2 christos | PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
1546 1.1.1.2 christos | PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
1547 1.1.1.2 christos | PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
1548 1.1.1.2 christos | PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
1549 1.1.1.2 christos | PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
1550 1.1.1.2 christos ;
1551 1.1.1.2 christos
1552 1.1.1.2 christos PldKeywordList
1553 1.1.1.2 christos : {$$ = NULL;}
1554 1.1.1.2 christos | PldKeyword
1555 1.1.1.2 christos PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);}
1556 1.1.1.2 christos | PldKeyword
1557 1.1.1.2 christos PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);}
1558 1.1.1.2 christos | PldKeywordList ',' /* Allows a trailing comma at list end */
1559 1.1.1.2 christos | PldKeywordList ','
1560 1.1.1.2 christos PldKeyword
1561 1.1.1.2 christos PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1562 1.1.1.2 christos | PldKeywordList ','
1563 1.1.1.2 christos PldKeyword
1564 1.1.1.2 christos PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1565 1.1.1.2 christos ;
1566 1.1.1.2 christos
1567 1.1.1.2 christos ToPLDTerm
1568 1.1.1.2 christos : PARSEOP_TOPLD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
1569 1.1.1.2 christos PldKeywordList
1570 1.1.1.2 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1571 1.1.1.2 christos | PARSEOP_TOPLD '('
1572 1.1.1.2 christos error ')' {$$ = AslDoError(); yyclearin;}
1573 1.1.1.2 christos ;
1574 1.1.1.2 christos
1575 1.1.1.2 christos PrintfArgList
1576 1.1.1.2 christos : {$$ = NULL;}
1577 1.1.1.2 christos | TermArg {$$ = $1;}
1578 1.1.1.2 christos | PrintfArgList ','
1579 1.1.1.2 christos TermArg {$$ = TrLinkPeerNode ($1, $3);}
1580 1.1.1.2 christos ;
1581 1.1.1.2 christos
1582 1.1.1.2 christos PrintfTerm
1583 1.1.1.2 christos : PARSEOP_PRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
1584 1.1.1.2 christos StringData
1585 1.1.1.2 christos PrintfArgList
1586 1.1.1.2 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1587 1.1.1.2 christos | PARSEOP_PRINTF '('
1588 1.1.1.2 christos error ')' {$$ = AslDoError(); yyclearin;}
1589 1.1.1.2 christos ;
1590 1.1.1.2 christos
1591 1.1.1.2 christos FprintfTerm
1592 1.1.1.2 christos : PARSEOP_FPRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
1593 1.1.1.2 christos TermArg ','
1594 1.1.1.2 christos StringData
1595 1.1.1.2 christos PrintfArgList
1596 1.1.1.2 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
1597 1.1.1.2 christos | PARSEOP_FPRINTF '('
1598 1.1.1.2 christos error ')' {$$ = AslDoError(); yyclearin;}
1599 1.1.1.2 christos ;
1600 1.1.1.2 christos
1601 1.1 christos ToStringTerm
1602 1.1 christos : PARSEOP_TOSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
1603 1.1 christos TermArg
1604 1.1 christos OptionalCount
1605 1.1 christos Target
1606 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1607 1.1 christos | PARSEOP_TOSTRING '('
1608 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1609 1.1 christos ;
1610 1.1 christos
1611 1.1 christos ToUUIDTerm
1612 1.1 christos : PARSEOP_TOUUID '('
1613 1.1 christos StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
1614 1.1 christos | PARSEOP_TOUUID '('
1615 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1616 1.1 christos ;
1617 1.1 christos
1618 1.1 christos WaitTerm
1619 1.1 christos : PARSEOP_WAIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
1620 1.1 christos SuperName
1621 1.1 christos TermArgItem
1622 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1623 1.1 christos | PARSEOP_WAIT '('
1624 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1625 1.1 christos ;
1626 1.1 christos
1627 1.1 christos XOrTerm
1628 1.1 christos : PARSEOP_XOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
1629 1.1 christos TermArg
1630 1.1 christos TermArgItem
1631 1.1 christos Target
1632 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1633 1.1 christos | PARSEOP_XOR '('
1634 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1635 1.1 christos ;
1636 1.1 christos
1637 1.1 christos
1638 1.1 christos /******* Keywords *************************************************************/
1639 1.1 christos
1640 1.1 christos
1641 1.1 christos AccessAttribKeyword
1642 1.1 christos : PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
1643 1.1 christos | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
1644 1.1 christos | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
1645 1.1 christos | PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
1646 1.1 christos | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
1647 1.1 christos | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
1648 1.1 christos | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
1649 1.1 christos | PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
1650 1.1 christos ByteConst
1651 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1652 1.1 christos | PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
1653 1.1 christos ByteConst
1654 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1655 1.1 christos | PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
1656 1.1 christos ByteConst
1657 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1658 1.1 christos ;
1659 1.1 christos
1660 1.1 christos AccessTypeKeyword
1661 1.1 christos : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
1662 1.1 christos | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
1663 1.1 christos | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
1664 1.1 christos | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
1665 1.1 christos | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
1666 1.1 christos | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
1667 1.1 christos ;
1668 1.1 christos
1669 1.1 christos AddressingModeKeyword
1670 1.1 christos : PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
1671 1.1 christos | PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
1672 1.1 christos ;
1673 1.1 christos
1674 1.1 christos AddressKeyword
1675 1.1 christos : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
1676 1.1 christos | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
1677 1.1 christos | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
1678 1.1 christos | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
1679 1.1 christos ;
1680 1.1 christos
1681 1.1 christos AddressSpaceKeyword
1682 1.1 christos : ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
1683 1.1 christos | RegionSpaceKeyword {}
1684 1.1 christos ;
1685 1.1 christos
1686 1.1 christos BitsPerByteKeyword
1687 1.1 christos : PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
1688 1.1 christos | PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
1689 1.1 christos | PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
1690 1.1 christos | PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
1691 1.1 christos | PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
1692 1.1 christos ;
1693 1.1 christos
1694 1.1 christos ClockPhaseKeyword
1695 1.1 christos : PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
1696 1.1 christos | PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
1697 1.1 christos ;
1698 1.1 christos
1699 1.1 christos ClockPolarityKeyword
1700 1.1 christos : PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
1701 1.1 christos | PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
1702 1.1 christos ;
1703 1.1 christos
1704 1.1 christos DecodeKeyword
1705 1.1 christos : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
1706 1.1 christos | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
1707 1.1 christos ;
1708 1.1 christos
1709 1.1 christos DevicePolarityKeyword
1710 1.1 christos : PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
1711 1.1 christos | PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
1712 1.1 christos ;
1713 1.1 christos
1714 1.1 christos DMATypeKeyword
1715 1.1 christos : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
1716 1.1 christos | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
1717 1.1 christos | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
1718 1.1 christos | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
1719 1.1 christos ;
1720 1.1 christos
1721 1.1 christos EndianKeyword
1722 1.1 christos : PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
1723 1.1 christos | PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
1724 1.1 christos ;
1725 1.1 christos
1726 1.1 christos FlowControlKeyword
1727 1.1 christos : PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
1728 1.1 christos | PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
1729 1.1 christos | PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
1730 1.1 christos ;
1731 1.1 christos
1732 1.1 christos InterruptLevel
1733 1.1 christos : PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
1734 1.1 christos | PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
1735 1.1 christos | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
1736 1.1 christos ;
1737 1.1 christos
1738 1.1 christos InterruptTypeKeyword
1739 1.1 christos : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
1740 1.1 christos | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
1741 1.1 christos ;
1742 1.1 christos
1743 1.1 christos IODecodeKeyword
1744 1.1 christos : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
1745 1.1 christos | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
1746 1.1 christos ;
1747 1.1 christos
1748 1.1 christos IoRestrictionKeyword
1749 1.1 christos : PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
1750 1.1 christos | PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
1751 1.1 christos | PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
1752 1.1 christos | PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
1753 1.1 christos ;
1754 1.1 christos
1755 1.1 christos LockRuleKeyword
1756 1.1 christos : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
1757 1.1 christos | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
1758 1.1 christos ;
1759 1.1 christos
1760 1.1 christos MatchOpKeyword
1761 1.1 christos : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
1762 1.1 christos | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
1763 1.1 christos | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
1764 1.1 christos | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
1765 1.1 christos | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
1766 1.1 christos | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
1767 1.1 christos ;
1768 1.1 christos
1769 1.1 christos MaxKeyword
1770 1.1 christos : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
1771 1.1 christos | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
1772 1.1 christos ;
1773 1.1 christos
1774 1.1 christos MemTypeKeyword
1775 1.1 christos : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
1776 1.1 christos | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
1777 1.1 christos | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
1778 1.1 christos | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
1779 1.1 christos ;
1780 1.1 christos
1781 1.1 christos MinKeyword
1782 1.1 christos : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
1783 1.1 christos | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
1784 1.1 christos ;
1785 1.1 christos
1786 1.1 christos ObjectTypeKeyword
1787 1.1 christos : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
1788 1.1 christos | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
1789 1.1 christos | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
1790 1.1 christos | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
1791 1.1 christos | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
1792 1.1 christos | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
1793 1.1 christos | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
1794 1.1 christos | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
1795 1.1 christos | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
1796 1.1 christos | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
1797 1.1 christos | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
1798 1.1 christos | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
1799 1.1 christos | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
1800 1.1 christos | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
1801 1.1 christos | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
1802 1.1 christos | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
1803 1.1 christos ;
1804 1.1 christos
1805 1.1 christos ParityTypeKeyword
1806 1.1 christos : PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
1807 1.1 christos | PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
1808 1.1 christos | PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
1809 1.1 christos | PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
1810 1.1 christos | PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
1811 1.1 christos ;
1812 1.1 christos
1813 1.1 christos PinConfigByte
1814 1.1 christos : PinConfigKeyword {$$ = $1;}
1815 1.1 christos | ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1816 1.1 christos ;
1817 1.1 christos
1818 1.1 christos PinConfigKeyword
1819 1.1 christos : PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
1820 1.1 christos | PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
1821 1.1 christos | PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
1822 1.1 christos | PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
1823 1.1 christos ;
1824 1.1 christos
1825 1.1 christos RangeTypeKeyword
1826 1.1 christos : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
1827 1.1 christos | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
1828 1.1 christos | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
1829 1.1 christos ;
1830 1.1 christos
1831 1.1 christos RegionSpaceKeyword
1832 1.1 christos : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
1833 1.1 christos | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
1834 1.1 christos | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
1835 1.1 christos | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
1836 1.1 christos | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
1837 1.1 christos | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
1838 1.1 christos | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
1839 1.1 christos | PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
1840 1.1 christos | PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
1841 1.1 christos | PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
1842 1.1 christos | PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
1843 1.1 christos | PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
1844 1.1 christos ;
1845 1.1 christos
1846 1.1 christos ResourceTypeKeyword
1847 1.1 christos : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1848 1.1 christos | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
1849 1.1 christos ;
1850 1.1 christos
1851 1.1 christos SerializeRuleKeyword
1852 1.1 christos : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
1853 1.1 christos | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
1854 1.1 christos ;
1855 1.1 christos
1856 1.1 christos ShareTypeKeyword
1857 1.1 christos : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
1858 1.1 christos | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
1859 1.1 christos | PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
1860 1.1 christos | PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
1861 1.1 christos ;
1862 1.1 christos
1863 1.1 christos SlaveModeKeyword
1864 1.1 christos : PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
1865 1.1 christos | PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
1866 1.1 christos ;
1867 1.1 christos
1868 1.1 christos StopBitsKeyword
1869 1.1 christos : PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
1870 1.1 christos | PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
1871 1.1 christos | PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
1872 1.1 christos | PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
1873 1.1 christos ;
1874 1.1 christos
1875 1.1 christos TranslationKeyword
1876 1.1 christos : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
1877 1.1 christos | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
1878 1.1 christos ;
1879 1.1 christos
1880 1.1 christos TypeKeyword
1881 1.1 christos : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
1882 1.1 christos | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
1883 1.1 christos ;
1884 1.1 christos
1885 1.1 christos UpdateRuleKeyword
1886 1.1 christos : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
1887 1.1 christos | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
1888 1.1 christos | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
1889 1.1 christos ;
1890 1.1 christos
1891 1.1 christos WireModeKeyword
1892 1.1 christos : PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
1893 1.1 christos | PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
1894 1.1 christos ;
1895 1.1 christos
1896 1.1 christos XferSizeKeyword
1897 1.1 christos : PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);}
1898 1.1 christos | PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);}
1899 1.1 christos | PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
1900 1.1 christos | PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);}
1901 1.1 christos | PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
1902 1.1 christos | PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
1903 1.1 christos ;
1904 1.1 christos
1905 1.1 christos XferTypeKeyword
1906 1.1 christos : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
1907 1.1 christos | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
1908 1.1 christos | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
1909 1.1 christos ;
1910 1.1 christos
1911 1.1 christos
1912 1.1 christos /******* Miscellaneous Types **************************************************/
1913 1.1 christos
1914 1.1 christos
1915 1.1 christos SuperName
1916 1.1 christos : NameString {}
1917 1.1 christos | ArgTerm {}
1918 1.1 christos | LocalTerm {}
1919 1.1 christos | DebugTerm {}
1920 1.1 christos | Type6Opcode {}
1921 1.1 christos
1922 1.1.1.2 christos /* For ObjectType: SuperName except for MethodInvocationTerm */
1923 1.1 christos
1924 1.1 christos ObjectTypeName
1925 1.1 christos : NameString {}
1926 1.1 christos | ArgTerm {}
1927 1.1 christos | LocalTerm {}
1928 1.1 christos | DebugTerm {}
1929 1.1 christos | RefOfTerm {}
1930 1.1 christos | DerefOfTerm {}
1931 1.1 christos | IndexTerm {}
1932 1.1 christos
1933 1.1.1.2 christos /* | MethodInvocationTerm {} */ /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
1934 1.1 christos ;
1935 1.1 christos
1936 1.1 christos ArgTerm
1937 1.1 christos : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
1938 1.1 christos | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
1939 1.1 christos | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
1940 1.1 christos | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
1941 1.1 christos | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
1942 1.1 christos | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
1943 1.1 christos | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
1944 1.1 christos ;
1945 1.1 christos
1946 1.1 christos LocalTerm
1947 1.1 christos : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
1948 1.1 christos | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
1949 1.1 christos | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
1950 1.1 christos | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
1951 1.1 christos | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
1952 1.1 christos | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
1953 1.1 christos | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
1954 1.1 christos | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
1955 1.1 christos ;
1956 1.1 christos
1957 1.1 christos DebugTerm
1958 1.1 christos : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
1959 1.1 christos ;
1960 1.1 christos
1961 1.1 christos
1962 1.1 christos ByteConst
1963 1.1 christos : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
1964 1.1 christos ;
1965 1.1 christos
1966 1.1 christos WordConst
1967 1.1 christos : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
1968 1.1 christos ;
1969 1.1 christos
1970 1.1 christos DWordConst
1971 1.1 christos : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
1972 1.1 christos ;
1973 1.1 christos
1974 1.1 christos QWordConst
1975 1.1 christos : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
1976 1.1 christos ;
1977 1.1 christos
1978 1.1 christos Integer
1979 1.1 christos : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
1980 1.1 christos ;
1981 1.1 christos
1982 1.1 christos String
1983 1.1 christos : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
1984 1.1 christos ;
1985 1.1 christos
1986 1.1 christos ConstTerm
1987 1.1 christos : ConstExprTerm {}
1988 1.1 christos | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
1989 1.1 christos ;
1990 1.1 christos
1991 1.1 christos ConstExprTerm
1992 1.1 christos : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
1993 1.1 christos | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
1994 1.1 christos | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
1995 1.1 christos | PARSEOP___DATE__ {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
1996 1.1 christos | PARSEOP___FILE__ {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
1997 1.1 christos | PARSEOP___LINE__ {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
1998 1.1 christos | PARSEOP___PATH__ {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
1999 1.1 christos ;
2000 1.1 christos
2001 1.1 christos /*
2002 1.1 christos * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
2003 1.1 christos * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
2004 1.1 christos * to simple integers. It is an error if these types of expressions cannot be
2005 1.1 christos * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
2006 1.1 christos * Note: The required byte length of the constant is passed through to the
2007 1.1 christos * constant folding code in the node AmlLength field.
2008 1.1 christos */
2009 1.1 christos ByteConstExpr
2010 1.1 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
2011 1.1 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
2012 1.1 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2013 1.1 christos | ByteConst {}
2014 1.1 christos ;
2015 1.1 christos
2016 1.1 christos WordConstExpr
2017 1.1 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
2018 1.1 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
2019 1.1 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2020 1.1 christos | WordConst {}
2021 1.1 christos ;
2022 1.1 christos
2023 1.1 christos DWordConstExpr
2024 1.1 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
2025 1.1 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
2026 1.1 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2027 1.1 christos | DWordConst {}
2028 1.1 christos ;
2029 1.1 christos
2030 1.1 christos QWordConstExpr
2031 1.1 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
2032 1.1 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
2033 1.1 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2034 1.1 christos | QWordConst {}
2035 1.1 christos ;
2036 1.1 christos
2037 1.1 christos /* OptionalCount must appear before ByteList or an incorrect reduction will result */
2038 1.1 christos
2039 1.1 christos OptionalCount
2040 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2041 1.1 christos | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2042 1.1 christos | ',' TermArg {$$ = $2;}
2043 1.1 christos ;
2044 1.1 christos
2045 1.1 christos BufferTerm
2046 1.1 christos : PARSEOP_BUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
2047 1.1 christos OptionalTermArg
2048 1.1 christos ')' '{'
2049 1.1 christos BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2050 1.1 christos | PARSEOP_BUFFER '('
2051 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2052 1.1 christos ;
2053 1.1 christos
2054 1.1 christos BufferTermData
2055 1.1 christos : ByteList {}
2056 1.1 christos | StringData {}
2057 1.1 christos ;
2058 1.1 christos
2059 1.1 christos ByteList
2060 1.1 christos : {$$ = NULL;}
2061 1.1 christos | ByteConstExpr
2062 1.1 christos | ByteList ',' /* Allows a trailing comma at list end */
2063 1.1 christos | ByteList ','
2064 1.1 christos ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);}
2065 1.1 christos ;
2066 1.1 christos
2067 1.1 christos DataBufferTerm
2068 1.1 christos : PARSEOP_DATABUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
2069 1.1 christos OptionalWordConst
2070 1.1 christos ')' '{'
2071 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2072 1.1 christos | PARSEOP_DATABUFFER '('
2073 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2074 1.1 christos ;
2075 1.1 christos
2076 1.1 christos DWordList
2077 1.1 christos : {$$ = NULL;}
2078 1.1 christos | DWordConstExpr
2079 1.1 christos | DWordList ',' /* Allows a trailing comma at list end */
2080 1.1 christos | DWordList ','
2081 1.1 christos DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);}
2082 1.1 christos ;
2083 1.1 christos
2084 1.1 christos PackageTerm
2085 1.1 christos : PARSEOP_PACKAGE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
2086 1.1 christos VarPackageLengthTerm
2087 1.1 christos ')' '{'
2088 1.1 christos PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2089 1.1 christos | PARSEOP_PACKAGE '('
2090 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2091 1.1 christos ;
2092 1.1 christos
2093 1.1 christos PackageList
2094 1.1 christos : {$$ = NULL;}
2095 1.1 christos | PackageElement
2096 1.1 christos | PackageList ',' /* Allows a trailing comma at list end */
2097 1.1 christos | PackageList ','
2098 1.1 christos PackageElement {$$ = TrLinkPeerNode ($1,$3);}
2099 1.1 christos ;
2100 1.1 christos
2101 1.1 christos PackageElement
2102 1.1 christos : DataObject {}
2103 1.1 christos | NameString {}
2104 1.1 christos ;
2105 1.1 christos
2106 1.1 christos VarPackageLengthTerm
2107 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
2108 1.1 christos | TermArg {$$ = $1;}
2109 1.1 christos ;
2110 1.1 christos
2111 1.1 christos
2112 1.1 christos /******* Macros ***********************************************/
2113 1.1 christos
2114 1.1 christos
2115 1.1 christos EISAIDTerm
2116 1.1 christos : PARSEOP_EISAID '('
2117 1.1 christos StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
2118 1.1 christos | PARSEOP_EISAID '('
2119 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2120 1.1 christos ;
2121 1.1 christos
2122 1.1 christos UnicodeTerm
2123 1.1 christos : PARSEOP_UNICODE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
2124 1.1 christos StringData
2125 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
2126 1.1 christos | PARSEOP_UNICODE '('
2127 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2128 1.1 christos ;
2129 1.1 christos
2130 1.1 christos
2131 1.1 christos /******* Resources and Memory ***********************************************/
2132 1.1 christos
2133 1.1 christos
2134 1.1 christos /*
2135 1.1 christos * Note: Create two default nodes to allow conversion to a Buffer AML opcode
2136 1.1 christos * Also, insert the EndTag at the end of the template.
2137 1.1 christos */
2138 1.1 christos ResourceTemplateTerm
2139 1.1 christos : PARSEOP_RESOURCETEMPLATE '(' ')'
2140 1.1 christos '{'
2141 1.1 christos ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
2142 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2143 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2144 1.1 christos $5,
2145 1.1 christos TrCreateLeafNode (PARSEOP_ENDTAG));}
2146 1.1 christos ;
2147 1.1 christos
2148 1.1 christos ResourceMacroList
2149 1.1 christos : {$$ = NULL;}
2150 1.1 christos | ResourceMacroList
2151 1.1 christos ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
2152 1.1 christos ;
2153 1.1 christos
2154 1.1 christos ResourceMacroTerm
2155 1.1 christos : DMATerm {}
2156 1.1 christos | DWordIOTerm {}
2157 1.1 christos | DWordMemoryTerm {}
2158 1.1 christos | DWordSpaceTerm {}
2159 1.1 christos | EndDependentFnTerm {}
2160 1.1 christos | ExtendedIOTerm {}
2161 1.1 christos | ExtendedMemoryTerm {}
2162 1.1 christos | ExtendedSpaceTerm {}
2163 1.1 christos | FixedDmaTerm {}
2164 1.1 christos | FixedIOTerm {}
2165 1.1 christos | GpioIntTerm {}
2166 1.1 christos | GpioIoTerm {}
2167 1.1 christos | I2cSerialBusTerm {}
2168 1.1 christos | InterruptTerm {}
2169 1.1 christos | IOTerm {}
2170 1.1 christos | IRQNoFlagsTerm {}
2171 1.1 christos | IRQTerm {}
2172 1.1 christos | Memory24Term {}
2173 1.1 christos | Memory32FixedTerm {}
2174 1.1 christos | Memory32Term {}
2175 1.1 christos | QWordIOTerm {}
2176 1.1 christos | QWordMemoryTerm {}
2177 1.1 christos | QWordSpaceTerm {}
2178 1.1 christos | RegisterTerm {}
2179 1.1 christos | SpiSerialBusTerm {}
2180 1.1 christos | StartDependentFnNoPriTerm {}
2181 1.1 christos | StartDependentFnTerm {}
2182 1.1 christos | UartSerialBusTerm {}
2183 1.1 christos | VendorLongTerm {}
2184 1.1 christos | VendorShortTerm {}
2185 1.1 christos | WordBusNumberTerm {}
2186 1.1 christos | WordIOTerm {}
2187 1.1 christos | WordSpaceTerm {}
2188 1.1 christos ;
2189 1.1 christos
2190 1.1 christos DMATerm
2191 1.1 christos : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
2192 1.1 christos DMATypeKeyword
2193 1.1 christos OptionalBusMasterKeyword
2194 1.1 christos ',' XferTypeKeyword
2195 1.1 christos OptionalNameString_Last
2196 1.1 christos ')' '{'
2197 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
2198 1.1 christos | PARSEOP_DMA '('
2199 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2200 1.1 christos ;
2201 1.1 christos
2202 1.1 christos DWordIOTerm
2203 1.1 christos : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
2204 1.1 christos OptionalResourceType_First
2205 1.1 christos OptionalMinType
2206 1.1 christos OptionalMaxType
2207 1.1 christos OptionalDecodeType
2208 1.1 christos OptionalRangeType
2209 1.1 christos ',' DWordConstExpr
2210 1.1 christos ',' DWordConstExpr
2211 1.1 christos ',' DWordConstExpr
2212 1.1 christos ',' DWordConstExpr
2213 1.1 christos ',' DWordConstExpr
2214 1.1 christos OptionalByteConstExpr
2215 1.1 christos OptionalStringData
2216 1.1 christos OptionalNameString
2217 1.1 christos OptionalType
2218 1.1 christos OptionalTranslationType_Last
2219 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2220 1.1 christos | PARSEOP_DWORDIO '('
2221 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2222 1.1 christos ;
2223 1.1 christos
2224 1.1 christos DWordMemoryTerm
2225 1.1 christos : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
2226 1.1 christos OptionalResourceType_First
2227 1.1 christos OptionalDecodeType
2228 1.1 christos OptionalMinType
2229 1.1 christos OptionalMaxType
2230 1.1 christos OptionalMemType
2231 1.1 christos ',' OptionalReadWriteKeyword
2232 1.1 christos ',' DWordConstExpr
2233 1.1 christos ',' DWordConstExpr
2234 1.1 christos ',' DWordConstExpr
2235 1.1 christos ',' DWordConstExpr
2236 1.1 christos ',' DWordConstExpr
2237 1.1 christos OptionalByteConstExpr
2238 1.1 christos OptionalStringData
2239 1.1 christos OptionalNameString
2240 1.1 christos OptionalAddressRange
2241 1.1 christos OptionalType_Last
2242 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2243 1.1 christos | PARSEOP_DWORDMEMORY '('
2244 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2245 1.1 christos ;
2246 1.1 christos
2247 1.1 christos DWordSpaceTerm
2248 1.1 christos : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
2249 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2250 1.1 christos OptionalResourceType
2251 1.1 christos OptionalDecodeType
2252 1.1 christos OptionalMinType
2253 1.1 christos OptionalMaxType
2254 1.1 christos ',' ByteConstExpr
2255 1.1 christos ',' DWordConstExpr
2256 1.1 christos ',' DWordConstExpr
2257 1.1 christos ',' DWordConstExpr
2258 1.1 christos ',' DWordConstExpr
2259 1.1 christos ',' DWordConstExpr
2260 1.1 christos OptionalByteConstExpr
2261 1.1 christos OptionalStringData
2262 1.1 christos OptionalNameString_Last
2263 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2264 1.1 christos | PARSEOP_DWORDSPACE '('
2265 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2266 1.1 christos ;
2267 1.1 christos
2268 1.1 christos
2269 1.1 christos EndDependentFnTerm
2270 1.1 christos : PARSEOP_ENDDEPENDENTFN '('
2271 1.1 christos ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
2272 1.1 christos | PARSEOP_ENDDEPENDENTFN '('
2273 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2274 1.1 christos ;
2275 1.1 christos
2276 1.1 christos ExtendedIOTerm
2277 1.1 christos : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
2278 1.1 christos OptionalResourceType_First
2279 1.1 christos OptionalMinType
2280 1.1 christos OptionalMaxType
2281 1.1 christos OptionalDecodeType
2282 1.1 christos OptionalRangeType
2283 1.1 christos ',' QWordConstExpr
2284 1.1 christos ',' QWordConstExpr
2285 1.1 christos ',' QWordConstExpr
2286 1.1 christos ',' QWordConstExpr
2287 1.1 christos ',' QWordConstExpr
2288 1.1 christos OptionalQWordConstExpr
2289 1.1 christos OptionalNameString
2290 1.1 christos OptionalType
2291 1.1 christos OptionalTranslationType_Last
2292 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
2293 1.1 christos | PARSEOP_EXTENDEDIO '('
2294 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2295 1.1 christos ;
2296 1.1 christos
2297 1.1 christos ExtendedMemoryTerm
2298 1.1 christos : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
2299 1.1 christos OptionalResourceType_First
2300 1.1 christos OptionalDecodeType
2301 1.1 christos OptionalMinType
2302 1.1 christos OptionalMaxType
2303 1.1 christos OptionalMemType
2304 1.1 christos ',' OptionalReadWriteKeyword
2305 1.1 christos ',' QWordConstExpr
2306 1.1 christos ',' QWordConstExpr
2307 1.1 christos ',' QWordConstExpr
2308 1.1 christos ',' QWordConstExpr
2309 1.1 christos ',' QWordConstExpr
2310 1.1 christos OptionalQWordConstExpr
2311 1.1 christos OptionalNameString
2312 1.1 christos OptionalAddressRange
2313 1.1 christos OptionalType_Last
2314 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
2315 1.1 christos | PARSEOP_EXTENDEDMEMORY '('
2316 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2317 1.1 christos ;
2318 1.1 christos
2319 1.1 christos ExtendedSpaceTerm
2320 1.1 christos : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
2321 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2322 1.1 christos OptionalResourceType
2323 1.1 christos OptionalDecodeType
2324 1.1 christos OptionalMinType
2325 1.1 christos OptionalMaxType
2326 1.1 christos ',' ByteConstExpr
2327 1.1 christos ',' QWordConstExpr
2328 1.1 christos ',' QWordConstExpr
2329 1.1 christos ',' QWordConstExpr
2330 1.1 christos ',' QWordConstExpr
2331 1.1 christos ',' QWordConstExpr
2332 1.1 christos OptionalQWordConstExpr
2333 1.1 christos OptionalNameString_Last
2334 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
2335 1.1 christos | PARSEOP_EXTENDEDSPACE '('
2336 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2337 1.1 christos ;
2338 1.1 christos
2339 1.1 christos FixedDmaTerm
2340 1.1 christos : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
2341 1.1 christos WordConstExpr /* 04: DMA RequestLines */
2342 1.1 christos ',' WordConstExpr /* 06: DMA Channels */
2343 1.1 christos OptionalXferSize /* 07: DMA TransferSize */
2344 1.1 christos OptionalNameString /* 08: DescriptorName */
2345 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
2346 1.1 christos | PARSEOP_FIXEDDMA '('
2347 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2348 1.1 christos ;
2349 1.1 christos
2350 1.1 christos FixedIOTerm
2351 1.1 christos : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
2352 1.1 christos WordConstExpr
2353 1.1 christos ',' ByteConstExpr
2354 1.1 christos OptionalNameString_Last
2355 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
2356 1.1 christos | PARSEOP_FIXEDIO '('
2357 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2358 1.1 christos ;
2359 1.1 christos
2360 1.1 christos GpioIntTerm
2361 1.1 christos : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
2362 1.1 christos InterruptTypeKeyword /* 04: InterruptType */
2363 1.1 christos ',' InterruptLevel /* 06: InterruptLevel */
2364 1.1 christos OptionalShareType /* 07: SharedType */
2365 1.1 christos ',' PinConfigByte /* 09: PinConfig */
2366 1.1 christos OptionalWordConstExpr /* 10: DebounceTimeout */
2367 1.1 christos ',' StringData /* 12: ResourceSource */
2368 1.1 christos OptionalByteConstExpr /* 13: ResourceSourceIndex */
2369 1.1 christos OptionalResourceType /* 14: ResourceType */
2370 1.1 christos OptionalNameString /* 15: DescriptorName */
2371 1.1 christos OptionalBuffer_Last /* 16: VendorData */
2372 1.1 christos ')' '{'
2373 1.1 christos DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
2374 1.1 christos | PARSEOP_GPIO_INT '('
2375 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2376 1.1 christos ;
2377 1.1 christos
2378 1.1 christos GpioIoTerm
2379 1.1 christos : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
2380 1.1 christos OptionalShareType_First /* 04: SharedType */
2381 1.1 christos ',' PinConfigByte /* 06: PinConfig */
2382 1.1 christos OptionalWordConstExpr /* 07: DebounceTimeout */
2383 1.1 christos OptionalWordConstExpr /* 08: DriveStrength */
2384 1.1 christos OptionalIoRestriction /* 09: IoRestriction */
2385 1.1 christos ',' StringData /* 11: ResourceSource */
2386 1.1 christos OptionalByteConstExpr /* 12: ResourceSourceIndex */
2387 1.1 christos OptionalResourceType /* 13: ResourceType */
2388 1.1 christos OptionalNameString /* 14: DescriptorName */
2389 1.1 christos OptionalBuffer_Last /* 15: VendorData */
2390 1.1 christos ')' '{'
2391 1.1 christos DWordList '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
2392 1.1 christos | PARSEOP_GPIO_IO '('
2393 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2394 1.1 christos ;
2395 1.1 christos
2396 1.1 christos I2cSerialBusTerm
2397 1.1 christos : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
2398 1.1 christos WordConstExpr /* 04: SlaveAddress */
2399 1.1 christos OptionalSlaveMode /* 05: SlaveMode */
2400 1.1 christos ',' DWordConstExpr /* 07: ConnectionSpeed */
2401 1.1 christos OptionalAddressingMode /* 08: AddressingMode */
2402 1.1 christos ',' StringData /* 10: ResourceSource */
2403 1.1 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
2404 1.1 christos OptionalResourceType /* 12: ResourceType */
2405 1.1 christos OptionalNameString /* 13: DescriptorName */
2406 1.1 christos OptionalBuffer_Last /* 14: VendorData */
2407 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,9,$4,$5,$7,$8,$10,$11,$12,$13,$14);}
2408 1.1 christos | PARSEOP_I2C_SERIALBUS '('
2409 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2410 1.1 christos ;
2411 1.1 christos
2412 1.1 christos InterruptTerm
2413 1.1 christos : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
2414 1.1 christos OptionalResourceType_First
2415 1.1 christos ',' InterruptTypeKeyword
2416 1.1 christos ',' InterruptLevel
2417 1.1 christos OptionalShareType
2418 1.1 christos OptionalByteConstExpr
2419 1.1 christos OptionalStringData
2420 1.1 christos OptionalNameString_Last
2421 1.1 christos ')' '{'
2422 1.1 christos DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
2423 1.1 christos | PARSEOP_INTERRUPT '('
2424 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2425 1.1 christos ;
2426 1.1 christos
2427 1.1 christos IOTerm
2428 1.1 christos : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
2429 1.1 christos IODecodeKeyword
2430 1.1 christos ',' WordConstExpr
2431 1.1 christos ',' WordConstExpr
2432 1.1 christos ',' ByteConstExpr
2433 1.1 christos ',' ByteConstExpr
2434 1.1 christos OptionalNameString_Last
2435 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2436 1.1 christos | PARSEOP_IO '('
2437 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2438 1.1 christos ;
2439 1.1 christos
2440 1.1 christos IRQNoFlagsTerm
2441 1.1 christos : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
2442 1.1 christos OptionalNameString_First
2443 1.1 christos ')' '{'
2444 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2445 1.1 christos | PARSEOP_IRQNOFLAGS '('
2446 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2447 1.1 christos ;
2448 1.1 christos
2449 1.1 christos IRQTerm
2450 1.1 christos : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
2451 1.1 christos InterruptTypeKeyword
2452 1.1 christos ',' InterruptLevel
2453 1.1 christos OptionalShareType
2454 1.1 christos OptionalNameString_Last
2455 1.1 christos ')' '{'
2456 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
2457 1.1 christos | PARSEOP_IRQ '('
2458 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2459 1.1 christos ;
2460 1.1 christos
2461 1.1 christos Memory24Term
2462 1.1 christos : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
2463 1.1 christos OptionalReadWriteKeyword
2464 1.1 christos ',' WordConstExpr
2465 1.1 christos ',' WordConstExpr
2466 1.1 christos ',' WordConstExpr
2467 1.1 christos ',' WordConstExpr
2468 1.1 christos OptionalNameString_Last
2469 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2470 1.1 christos | PARSEOP_MEMORY24 '('
2471 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2472 1.1 christos ;
2473 1.1 christos
2474 1.1 christos Memory32FixedTerm
2475 1.1 christos : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
2476 1.1 christos OptionalReadWriteKeyword
2477 1.1 christos ',' DWordConstExpr
2478 1.1 christos ',' DWordConstExpr
2479 1.1 christos OptionalNameString_Last
2480 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
2481 1.1 christos | PARSEOP_MEMORY32FIXED '('
2482 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2483 1.1 christos ;
2484 1.1 christos
2485 1.1 christos Memory32Term
2486 1.1 christos : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
2487 1.1 christos OptionalReadWriteKeyword
2488 1.1 christos ',' DWordConstExpr
2489 1.1 christos ',' DWordConstExpr
2490 1.1 christos ',' DWordConstExpr
2491 1.1 christos ',' DWordConstExpr
2492 1.1 christos OptionalNameString_Last
2493 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2494 1.1 christos | PARSEOP_MEMORY32 '('
2495 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2496 1.1 christos ;
2497 1.1 christos
2498 1.1 christos QWordIOTerm
2499 1.1 christos : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
2500 1.1 christos OptionalResourceType_First
2501 1.1 christos OptionalMinType
2502 1.1 christos OptionalMaxType
2503 1.1 christos OptionalDecodeType
2504 1.1 christos OptionalRangeType
2505 1.1 christos ',' QWordConstExpr
2506 1.1 christos ',' QWordConstExpr
2507 1.1 christos ',' QWordConstExpr
2508 1.1 christos ',' QWordConstExpr
2509 1.1 christos ',' QWordConstExpr
2510 1.1 christos OptionalByteConstExpr
2511 1.1 christos OptionalStringData
2512 1.1 christos OptionalNameString
2513 1.1 christos OptionalType
2514 1.1 christos OptionalTranslationType_Last
2515 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2516 1.1 christos | PARSEOP_QWORDIO '('
2517 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2518 1.1 christos ;
2519 1.1 christos
2520 1.1 christos QWordMemoryTerm
2521 1.1 christos : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
2522 1.1 christos OptionalResourceType_First
2523 1.1 christos OptionalDecodeType
2524 1.1 christos OptionalMinType
2525 1.1 christos OptionalMaxType
2526 1.1 christos OptionalMemType
2527 1.1 christos ',' OptionalReadWriteKeyword
2528 1.1 christos ',' QWordConstExpr
2529 1.1 christos ',' QWordConstExpr
2530 1.1 christos ',' QWordConstExpr
2531 1.1 christos ',' QWordConstExpr
2532 1.1 christos ',' QWordConstExpr
2533 1.1 christos OptionalByteConstExpr
2534 1.1 christos OptionalStringData
2535 1.1 christos OptionalNameString
2536 1.1 christos OptionalAddressRange
2537 1.1 christos OptionalType_Last
2538 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2539 1.1 christos | PARSEOP_QWORDMEMORY '('
2540 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2541 1.1 christos ;
2542 1.1 christos
2543 1.1 christos QWordSpaceTerm
2544 1.1 christos : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
2545 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2546 1.1 christos OptionalResourceType
2547 1.1 christos OptionalDecodeType
2548 1.1 christos OptionalMinType
2549 1.1 christos OptionalMaxType
2550 1.1 christos ',' ByteConstExpr
2551 1.1 christos ',' QWordConstExpr
2552 1.1 christos ',' QWordConstExpr
2553 1.1 christos ',' QWordConstExpr
2554 1.1 christos ',' QWordConstExpr
2555 1.1 christos ',' QWordConstExpr
2556 1.1 christos OptionalByteConstExpr
2557 1.1 christos OptionalStringData
2558 1.1 christos OptionalNameString_Last
2559 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2560 1.1 christos | PARSEOP_QWORDSPACE '('
2561 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2562 1.1 christos ;
2563 1.1 christos
2564 1.1 christos RegisterTerm
2565 1.1 christos : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
2566 1.1 christos AddressSpaceKeyword
2567 1.1 christos ',' ByteConstExpr
2568 1.1 christos ',' ByteConstExpr
2569 1.1 christos ',' QWordConstExpr
2570 1.1 christos OptionalAccessSize
2571 1.1 christos OptionalNameString_Last
2572 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
2573 1.1 christos | PARSEOP_REGISTER '('
2574 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2575 1.1 christos ;
2576 1.1 christos
2577 1.1 christos SpiSerialBusTerm
2578 1.1 christos : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
2579 1.1 christos WordConstExpr /* 04: DeviceSelection */
2580 1.1 christos OptionalDevicePolarity /* 05: DevicePolarity */
2581 1.1 christos OptionalWireMode /* 06: WireMode */
2582 1.1 christos ',' ByteConstExpr /* 08: DataBitLength */
2583 1.1 christos OptionalSlaveMode /* 09: SlaveMode */
2584 1.1 christos ',' DWordConstExpr /* 11: ConnectionSpeed */
2585 1.1 christos ',' ClockPolarityKeyword /* 13: ClockPolarity */
2586 1.1 christos ',' ClockPhaseKeyword /* 15: ClockPhase */
2587 1.1 christos ',' StringData /* 17: ResourceSource */
2588 1.1 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
2589 1.1 christos OptionalResourceType /* 19: ResourceType */
2590 1.1 christos OptionalNameString /* 20: DescriptorName */
2591 1.1 christos OptionalBuffer_Last /* 21: VendorData */
2592 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,13,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21);}
2593 1.1 christos | PARSEOP_SPI_SERIALBUS '('
2594 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2595 1.1 christos ;
2596 1.1 christos
2597 1.1 christos StartDependentFnNoPriTerm
2598 1.1 christos : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
2599 1.1 christos ')' '{'
2600 1.1 christos ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
2601 1.1 christos | PARSEOP_STARTDEPENDENTFN_NOPRI '('
2602 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2603 1.1 christos ;
2604 1.1 christos
2605 1.1 christos StartDependentFnTerm
2606 1.1 christos : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
2607 1.1 christos ByteConstExpr
2608 1.1 christos ',' ByteConstExpr
2609 1.1 christos ')' '{'
2610 1.1 christos ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
2611 1.1 christos | PARSEOP_STARTDEPENDENTFN '('
2612 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2613 1.1 christos ;
2614 1.1 christos
2615 1.1 christos UartSerialBusTerm
2616 1.1 christos : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
2617 1.1 christos DWordConstExpr /* 04: ConnectionSpeed */
2618 1.1 christos OptionalBitsPerByte /* 05: BitsPerByte */
2619 1.1 christos OptionalStopBits /* 06: StopBits */
2620 1.1 christos ',' ByteConstExpr /* 08: LinesInUse */
2621 1.1 christos OptionalEndian /* 09: Endianess */
2622 1.1 christos OptionalParityType /* 10: Parity */
2623 1.1 christos OptionalFlowControl /* 11: FlowControl */
2624 1.1 christos ',' WordConstExpr /* 13: Rx BufferSize */
2625 1.1 christos ',' WordConstExpr /* 15: Tx BufferSize */
2626 1.1 christos ',' StringData /* 17: ResourceSource */
2627 1.1 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
2628 1.1 christos OptionalResourceType /* 19: ResourceType */
2629 1.1 christos OptionalNameString /* 20: DescriptorName */
2630 1.1 christos OptionalBuffer_Last /* 21: VendorData */
2631 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21);}
2632 1.1 christos | PARSEOP_UART_SERIALBUS '('
2633 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2634 1.1 christos ;
2635 1.1 christos
2636 1.1 christos VendorLongTerm
2637 1.1 christos : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
2638 1.1 christos OptionalNameString_First
2639 1.1 christos ')' '{'
2640 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2641 1.1 christos | PARSEOP_VENDORLONG '('
2642 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2643 1.1 christos ;
2644 1.1 christos
2645 1.1 christos VendorShortTerm
2646 1.1 christos : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
2647 1.1 christos OptionalNameString_First
2648 1.1 christos ')' '{'
2649 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2650 1.1 christos | PARSEOP_VENDORSHORT '('
2651 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2652 1.1 christos ;
2653 1.1 christos
2654 1.1 christos WordBusNumberTerm
2655 1.1 christos : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
2656 1.1 christos OptionalResourceType_First
2657 1.1 christos OptionalMinType
2658 1.1 christos OptionalMaxType
2659 1.1 christos OptionalDecodeType
2660 1.1 christos ',' WordConstExpr
2661 1.1 christos ',' WordConstExpr
2662 1.1 christos ',' WordConstExpr
2663 1.1 christos ',' WordConstExpr
2664 1.1 christos ',' WordConstExpr
2665 1.1 christos OptionalByteConstExpr
2666 1.1 christos OptionalStringData
2667 1.1 christos OptionalNameString_Last
2668 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
2669 1.1 christos | PARSEOP_WORDBUSNUMBER '('
2670 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2671 1.1 christos ;
2672 1.1 christos
2673 1.1 christos WordIOTerm
2674 1.1 christos : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
2675 1.1 christos OptionalResourceType_First
2676 1.1 christos OptionalMinType
2677 1.1 christos OptionalMaxType
2678 1.1 christos OptionalDecodeType
2679 1.1 christos OptionalRangeType
2680 1.1 christos ',' WordConstExpr
2681 1.1 christos ',' WordConstExpr
2682 1.1 christos ',' WordConstExpr
2683 1.1 christos ',' WordConstExpr
2684 1.1 christos ',' WordConstExpr
2685 1.1 christos OptionalByteConstExpr
2686 1.1 christos OptionalStringData
2687 1.1 christos OptionalNameString
2688 1.1 christos OptionalType
2689 1.1 christos OptionalTranslationType_Last
2690 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2691 1.1 christos | PARSEOP_WORDIO '('
2692 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2693 1.1 christos ;
2694 1.1 christos
2695 1.1 christos WordSpaceTerm
2696 1.1 christos : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
2697 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2698 1.1 christos OptionalResourceType
2699 1.1 christos OptionalDecodeType
2700 1.1 christos OptionalMinType
2701 1.1 christos OptionalMaxType
2702 1.1 christos ',' ByteConstExpr
2703 1.1 christos ',' WordConstExpr
2704 1.1 christos ',' WordConstExpr
2705 1.1 christos ',' WordConstExpr
2706 1.1 christos ',' WordConstExpr
2707 1.1 christos ',' WordConstExpr
2708 1.1 christos OptionalByteConstExpr
2709 1.1 christos OptionalStringData
2710 1.1 christos OptionalNameString_Last
2711 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2712 1.1 christos | PARSEOP_WORDSPACE '('
2713 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
2714 1.1 christos ;
2715 1.1 christos
2716 1.1 christos
2717 1.1 christos /******* Object References ***********************************************/
2718 1.1 christos
2719 1.1 christos /* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
2720 1.1 christos
2721 1.1 christos NameString
2722 1.1 christos : NameSeg {}
2723 1.1 christos | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2724 1.1 christos | PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
2725 1.1 christos | PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
2726 1.1 christos | PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
2727 1.1 christos ;
2728 1.1 christos
2729 1.1 christos NameSeg
2730 1.1 christos : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2731 1.1 christos ;
2732 1.1 christos
2733 1.1 christos
2734 1.1 christos /******* Helper rules ****************************************************/
2735 1.1 christos
2736 1.1 christos
2737 1.1 christos AmlPackageLengthTerm
2738 1.1 christos : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
2739 1.1 christos ;
2740 1.1 christos
2741 1.1 christos NameStringItem
2742 1.1 christos : ',' NameString {$$ = $2;}
2743 1.1 christos | ',' error {$$ = AslDoError (); yyclearin;}
2744 1.1 christos ;
2745 1.1 christos
2746 1.1 christos TermArgItem
2747 1.1 christos : ',' TermArg {$$ = $2;}
2748 1.1 christos | ',' error {$$ = AslDoError (); yyclearin;}
2749 1.1 christos ;
2750 1.1 christos
2751 1.1 christos OptionalBusMasterKeyword
2752 1.1 christos : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2753 1.1 christos | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2754 1.1 christos | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
2755 1.1 christos ;
2756 1.1 christos
2757 1.1 christos OptionalAccessAttribTerm
2758 1.1 christos : {$$ = NULL;}
2759 1.1 christos | ',' {$$ = NULL;}
2760 1.1 christos | ',' ByteConstExpr {$$ = $2;}
2761 1.1 christos | ',' AccessAttribKeyword {$$ = $2;}
2762 1.1 christos ;
2763 1.1 christos
2764 1.1 christos OptionalAccessSize
2765 1.1 christos : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2766 1.1 christos | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2767 1.1 christos | ',' ByteConstExpr {$$ = $2;}
2768 1.1 christos ;
2769 1.1 christos
2770 1.1 christos OptionalAddressingMode
2771 1.1 christos : ',' {$$ = NULL;}
2772 1.1 christos | ',' AddressingModeKeyword {$$ = $2;}
2773 1.1 christos ;
2774 1.1 christos
2775 1.1 christos OptionalAddressRange
2776 1.1 christos : {$$ = NULL;}
2777 1.1 christos | ',' {$$ = NULL;}
2778 1.1 christos | ',' AddressKeyword {$$ = $2;}
2779 1.1 christos ;
2780 1.1 christos
2781 1.1 christos OptionalBitsPerByte
2782 1.1 christos : ',' {$$ = NULL;}
2783 1.1 christos | ',' BitsPerByteKeyword {$$ = $2;}
2784 1.1 christos ;
2785 1.1 christos
2786 1.1 christos OptionalBuffer_Last
2787 1.1 christos : {$$ = NULL;}
2788 1.1 christos | ',' {$$ = NULL;}
2789 1.1 christos | ',' DataBufferTerm {$$ = $2;}
2790 1.1 christos ;
2791 1.1 christos
2792 1.1 christos OptionalByteConstExpr
2793 1.1 christos : {$$ = NULL;}
2794 1.1 christos | ',' {$$ = NULL;}
2795 1.1 christos | ',' ByteConstExpr {$$ = $2;}
2796 1.1 christos ;
2797 1.1 christos
2798 1.1 christos OptionalDecodeType
2799 1.1 christos : ',' {$$ = NULL;}
2800 1.1 christos | ',' DecodeKeyword {$$ = $2;}
2801 1.1 christos ;
2802 1.1 christos
2803 1.1 christos OptionalDevicePolarity
2804 1.1 christos : ',' {$$ = NULL;}
2805 1.1 christos | ',' DevicePolarityKeyword {$$ = $2;}
2806 1.1 christos ;
2807 1.1 christos
2808 1.1 christos OptionalDWordConstExpr
2809 1.1 christos : {$$ = NULL;}
2810 1.1 christos | ',' {$$ = NULL;}
2811 1.1 christos | ',' DWordConstExpr {$$ = $2;}
2812 1.1 christos ;
2813 1.1 christos
2814 1.1 christos OptionalEndian
2815 1.1 christos : ',' {$$ = NULL;}
2816 1.1 christos | ',' EndianKeyword {$$ = $2;}
2817 1.1 christos ;
2818 1.1 christos
2819 1.1 christos OptionalFlowControl
2820 1.1 christos : ',' {$$ = NULL;}
2821 1.1 christos | ',' FlowControlKeyword {$$ = $2;}
2822 1.1 christos ;
2823 1.1 christos
2824 1.1 christos OptionalIoRestriction
2825 1.1 christos : ',' {$$ = NULL;}
2826 1.1 christos | ',' IoRestrictionKeyword {$$ = $2;}
2827 1.1 christos ;
2828 1.1 christos
2829 1.1 christos OptionalListString
2830 1.1 christos : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
2831 1.1 christos | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
2832 1.1 christos | ',' TermArg {$$ = $2;}
2833 1.1 christos ;
2834 1.1 christos
2835 1.1 christos OptionalMaxType
2836 1.1 christos : ',' {$$ = NULL;}
2837 1.1 christos | ',' MaxKeyword {$$ = $2;}
2838 1.1 christos ;
2839 1.1 christos
2840 1.1 christos OptionalMemType
2841 1.1 christos : ',' {$$ = NULL;}
2842 1.1 christos | ',' MemTypeKeyword {$$ = $2;}
2843 1.1 christos ;
2844 1.1 christos
2845 1.1 christos OptionalMinType
2846 1.1 christos : ',' {$$ = NULL;}
2847 1.1 christos | ',' MinKeyword {$$ = $2;}
2848 1.1 christos ;
2849 1.1 christos
2850 1.1 christos OptionalNameString
2851 1.1 christos : {$$ = NULL;}
2852 1.1 christos | ',' {$$ = NULL;}
2853 1.1 christos | ',' NameString {$$ = $2;}
2854 1.1 christos ;
2855 1.1 christos
2856 1.1 christos OptionalNameString_Last
2857 1.1 christos : {$$ = NULL;}
2858 1.1 christos | ',' {$$ = NULL;}
2859 1.1 christos | ',' NameString {$$ = $2;}
2860 1.1 christos ;
2861 1.1 christos
2862 1.1 christos OptionalNameString_First
2863 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
2864 1.1 christos | NameString {$$ = $1;}
2865 1.1 christos ;
2866 1.1 christos
2867 1.1 christos OptionalObjectTypeKeyword
2868 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
2869 1.1 christos | ',' ObjectTypeKeyword {$$ = $2;}
2870 1.1 christos ;
2871 1.1 christos
2872 1.1 christos OptionalParityType
2873 1.1 christos : ',' {$$ = NULL;}
2874 1.1 christos | ',' ParityTypeKeyword {$$ = $2;}
2875 1.1 christos ;
2876 1.1 christos
2877 1.1 christos OptionalQWordConstExpr
2878 1.1 christos : {$$ = NULL;}
2879 1.1 christos | ',' {$$ = NULL;}
2880 1.1 christos | ',' QWordConstExpr {$$ = $2;}
2881 1.1 christos ;
2882 1.1 christos
2883 1.1 christos OptionalRangeType
2884 1.1 christos : ',' {$$ = NULL;}
2885 1.1 christos | ',' RangeTypeKeyword {$$ = $2;}
2886 1.1 christos ;
2887 1.1 christos
2888 1.1 christos OptionalReadWriteKeyword
2889 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2890 1.1 christos | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2891 1.1 christos | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
2892 1.1 christos ;
2893 1.1 christos
2894 1.1 christos OptionalReference
2895 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
2896 1.1 christos | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
2897 1.1 christos | ',' TermArg {$$ = $2;}
2898 1.1 christos ;
2899 1.1 christos
2900 1.1 christos OptionalResourceType_First
2901 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2902 1.1 christos | ResourceTypeKeyword {$$ = $1;}
2903 1.1 christos ;
2904 1.1 christos
2905 1.1 christos OptionalResourceType
2906 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2907 1.1 christos | ',' {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2908 1.1 christos | ',' ResourceTypeKeyword {$$ = $2;}
2909 1.1 christos ;
2910 1.1 christos
2911 1.1 christos OptionalReturnArg
2912 1.1 christos : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);} /* Placeholder is a ZeroOp object */
2913 1.1 christos | TermArg {$$ = $1;}
2914 1.1 christos ;
2915 1.1 christos
2916 1.1 christos OptionalSerializeRuleKeyword
2917 1.1 christos : {$$ = NULL;}
2918 1.1 christos | ',' {$$ = NULL;}
2919 1.1 christos | ',' SerializeRuleKeyword {$$ = $2;}
2920 1.1 christos ;
2921 1.1 christos
2922 1.1 christos OptionalSlaveMode
2923 1.1 christos : ',' {$$ = NULL;}
2924 1.1 christos | ',' SlaveModeKeyword {$$ = $2;}
2925 1.1 christos ;
2926 1.1 christos
2927 1.1 christos OptionalShareType
2928 1.1 christos : {$$ = NULL;}
2929 1.1 christos | ',' {$$ = NULL;}
2930 1.1 christos | ',' ShareTypeKeyword {$$ = $2;}
2931 1.1 christos ;
2932 1.1 christos
2933 1.1 christos OptionalShareType_First
2934 1.1 christos : {$$ = NULL;}
2935 1.1 christos | ShareTypeKeyword {$$ = $1;}
2936 1.1 christos ;
2937 1.1 christos
2938 1.1 christos OptionalStopBits
2939 1.1 christos : ',' {$$ = NULL;}
2940 1.1 christos | ',' StopBitsKeyword {$$ = $2;}
2941 1.1 christos ;
2942 1.1 christos
2943 1.1 christos OptionalStringData
2944 1.1 christos : {$$ = NULL;}
2945 1.1 christos | ',' {$$ = NULL;}
2946 1.1 christos | ',' StringData {$$ = $2;}
2947 1.1 christos ;
2948 1.1 christos
2949 1.1 christos OptionalTermArg
2950 1.1 christos : {$$ = NULL;}
2951 1.1 christos | TermArg {$$ = $1;}
2952 1.1 christos ;
2953 1.1 christos
2954 1.1 christos OptionalType
2955 1.1 christos : {$$ = NULL;}
2956 1.1 christos | ',' {$$ = NULL;}
2957 1.1 christos | ',' TypeKeyword {$$ = $2;}
2958 1.1 christos ;
2959 1.1 christos
2960 1.1 christos OptionalType_Last
2961 1.1 christos : {$$ = NULL;}
2962 1.1 christos | ',' {$$ = NULL;}
2963 1.1 christos | ',' TypeKeyword {$$ = $2;}
2964 1.1 christos ;
2965 1.1 christos
2966 1.1 christos OptionalTranslationType_Last
2967 1.1 christos : {$$ = NULL;}
2968 1.1 christos | ',' {$$ = NULL;}
2969 1.1 christos | ',' TranslationKeyword {$$ = $2;}
2970 1.1 christos ;
2971 1.1 christos
2972 1.1 christos OptionalWireMode
2973 1.1 christos : ',' {$$ = NULL;}
2974 1.1 christos | ',' WireModeKeyword {$$ = $2;}
2975 1.1 christos ;
2976 1.1 christos
2977 1.1 christos OptionalWordConst
2978 1.1 christos : {$$ = NULL;}
2979 1.1 christos | WordConst {$$ = $1;}
2980 1.1 christos ;
2981 1.1 christos
2982 1.1 christos OptionalWordConstExpr
2983 1.1 christos : ',' {$$ = NULL;}
2984 1.1 christos | ',' WordConstExpr {$$ = $2;}
2985 1.1 christos ;
2986 1.1 christos
2987 1.1 christos OptionalXferSize
2988 1.1 christos : {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
2989 1.1 christos | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
2990 1.1 christos | ',' XferSizeKeyword {$$ = $2;}
2991 1.1 christos ;
2992