3 /******************************************************************************
5 * Module Name: aslcompiler.y - Bison input file (ASL grammar and actions)
8 *****************************************************************************/
10 /******************************************************************************
14 * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.
15 * All rights reserved.
19 * 2.1. This is your license from Intel Corp. under its intellectual property
20 * rights. You may have additional license terms from the party that provided
21 * you this software, covering your right to use that party's intellectual
24 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
25 * copy of the source code appearing in this file ("Covered Code") an
26 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
27 * base code distributed originally by Intel ("Original Intel Code") to copy,
28 * make derivatives, distribute, use and display any portion of the Covered
29 * Code in any form, with the right to sublicense such rights; and
31 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
32 * license (with the right to sublicense), under only those claims of Intel
33 * patents that are infringed by the Original Intel Code, to make, use, sell,
34 * offer to sell, and import the Covered Code and derivative works thereof
35 * solely to the minimum extent necessary to exercise the above copyright
36 * license, and in no event shall the patent license extend to any additions
37 * to or modifications of the Original Intel Code. No other license or right
38 * is granted directly or by implication, estoppel or otherwise;
40 * The above copyright and patent license is granted only if the following
45 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
46 * Redistribution of source code of any substantial portion of the Covered
47 * Code or modification with rights to further distribute source must include
48 * the above Copyright Notice, the above License, this list of Conditions,
49 * and the following Disclaimer and Export Compliance provision. In addition,
50 * Licensee must cause all Covered Code to which Licensee contributes to
51 * contain a file documenting the changes Licensee made to create that Covered
52 * Code and the date of any change. Licensee must include in that file the
53 * documentation of any changes made by any predecessor Licensee. Licensee
54 * must include a prominent statement that the modification is derived,
55 * directly or indirectly, from Original Intel Code.
57 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
58 * Redistribution of source code of any substantial portion of the Covered
59 * Code or modification without rights to further distribute source must
60 * include the following Disclaimer and Export Compliance provision in the
61 * documentation and/or other materials provided with distribution. In
62 * addition, Licensee may not authorize further sublicense of source of any
63 * portion of the Covered Code, and must include terms to the effect that the
64 * license from Licensee to its licensee is limited to the intellectual
65 * property embodied in the software Licensee provides to its licensee, and
66 * not to intellectual property embodied in modifications its licensee may
69 * 3.3. Redistribution of Executable. Redistribution in executable form of any
70 * substantial portion of the Covered Code or modification must reproduce the
71 * above Copyright Notice, and the following Disclaimer and Export Compliance
72 * provision in the documentation and/or other materials provided with the
75 * 3.4. Intel retains all right, title, and interest in and to the Original
78 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
79 * Intel shall be used in advertising or otherwise to promote the sale, use or
80 * other dealings in products derived from or relating to the Covered Code
81 * without prior written authorization from Intel.
83 * 4. Disclaimer and Export Compliance
85 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
86 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
87 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
88 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
89 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
90 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
93 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
94 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
95 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
96 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
97 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
98 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
99 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
102 * 4.3. Licensee shall not export, either directly or indirectly, any of this
103 * software or system incorporating such software without first obtaining any
104 * required license or other approval from the U. S. Department of Commerce or
105 * any other agency or department of the United States Government. In the
106 * event Licensee exports any such software from the United States or
107 * re-exports any such software from a foreign destination, Licensee shall
108 * ensure that the distribution and export/re-export of the software is in
109 * compliance with all laws, regulations, orders, or other restrictions of the
110 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
111 * any of its subsidiaries will export/re-export any technical data, process,
112 * software, or service, directly or indirectly, to any country for which the
113 * United States government or any agency thereof requires an export license,
114 * other governmental approval, or letter of assurance, without first obtaining
115 * such license, approval or letter.
117 *****************************************************************************/
120 #define YYERROR_VERBOSE 1
123 * State stack - compiler will fault if it overflows. (Default was 200)
125 #define YYINITDEPTH 600
127 #include <contrib/dev/acpica/compiler/aslcompiler.h>
131 #include <contrib/dev/acpica/acpi.h>
133 #define _COMPONENT ACPI_COMPILER
134 ACPI_MODULE_NAME ("aslparse")
138 * Next statement is important - this makes everything public so that
139 * we can access some of the parser tables from other modules
143 #define alloca AslLocalAllocate
144 #define YYERROR_VERBOSE 1
147 AslLocalAllocate (unsigned int Size);
150 * The windows version of bison defines this incorrectly as "32768" (Not negative).
151 * Using a custom (edited binary) version of bison that defines YYFLAG as YYFBAD
152 * instead (#define YYFBAD 32768), so we can define it correctly here.
154 * The problem is that if YYFLAG is positive, the extended syntax error messages
158 #define YYFLAG -32768
165 * Declare the type of values in the grammar
171 ACPI_PARSE_OBJECT *n;
175 /*! [Begin] no source code translation */
179 * Token types: These are returned by the lexer
181 * NOTE: This list MUST match the AslKeywordMapping table found
182 * in aslmap.c EXACTLY! Double check any changes!
185 %token <i> PARSEOP_ACCESSAS
186 %token <i> PARSEOP_ACCESSATTRIB_BLOCK
187 %token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
188 %token <i> PARSEOP_ACCESSATTRIB_BYTE
189 %token <i> PARSEOP_ACCESSATTRIB_WORD_CALL
190 %token <i> PARSEOP_ACCESSATTRIB_QUICK
191 %token <i> PARSEOP_ACCESSATTRIB_SND_RCV
192 %token <i> PARSEOP_ACCESSATTRIB_WORD
193 %token <i> PARSEOP_ACCESSTYPE_ANY
194 %token <i> PARSEOP_ACCESSTYPE_BUF
195 %token <i> PARSEOP_ACCESSTYPE_BYTE
196 %token <i> PARSEOP_ACCESSTYPE_DWORD
197 %token <i> PARSEOP_ACCESSTYPE_QWORD
198 %token <i> PARSEOP_ACCESSTYPE_WORD
199 %token <i> PARSEOP_ACQUIRE
200 %token <i> PARSEOP_ADD
201 %token <i> PARSEOP_ADDRESSSPACE_FFIXEDHW
202 %token <i> PARSEOP_ADDRESSTYPE_ACPI
203 %token <i> PARSEOP_ADDRESSTYPE_MEMORY
204 %token <i> PARSEOP_ADDRESSTYPE_NVS
205 %token <i> PARSEOP_ADDRESSTYPE_RESERVED
206 %token <i> PARSEOP_ALIAS
207 %token <i> PARSEOP_AND
208 %token <i> PARSEOP_ARG0
209 %token <i> PARSEOP_ARG1
210 %token <i> PARSEOP_ARG2
211 %token <i> PARSEOP_ARG3
212 %token <i> PARSEOP_ARG4
213 %token <i> PARSEOP_ARG5
214 %token <i> PARSEOP_ARG6
215 %token <i> PARSEOP_BANKFIELD
216 %token <i> PARSEOP_BREAK
217 %token <i> PARSEOP_BREAKPOINT
218 %token <i> PARSEOP_BUFFER
219 %token <i> PARSEOP_BUSMASTERTYPE_MASTER
220 %token <i> PARSEOP_BUSMASTERTYPE_NOTMASTER
221 %token <i> PARSEOP_BYTECONST
222 %token <i> PARSEOP_CASE
223 %token <i> PARSEOP_CONCATENATE
224 %token <i> PARSEOP_CONCATENATERESTEMPLATE
225 %token <i> PARSEOP_CONDREFOF
226 %token <i> PARSEOP_CONTINUE
227 %token <i> PARSEOP_COPYOBJECT
228 %token <i> PARSEOP_CREATEBITFIELD
229 %token <i> PARSEOP_CREATEBYTEFIELD
230 %token <i> PARSEOP_CREATEDWORDFIELD
231 %token <i> PARSEOP_CREATEFIELD
232 %token <i> PARSEOP_CREATEQWORDFIELD
233 %token <i> PARSEOP_CREATEWORDFIELD
234 %token <i> PARSEOP_DATATABLEREGION
235 %token <i> PARSEOP_DEBUG
236 %token <i> PARSEOP_DECODETYPE_POS
237 %token <i> PARSEOP_DECODETYPE_SUB
238 %token <i> PARSEOP_DECREMENT
239 %token <i> PARSEOP_DEFAULT
240 %token <i> PARSEOP_DEFAULT_ARG
241 %token <i> PARSEOP_DEFINITIONBLOCK
242 %token <i> PARSEOP_DEREFOF
243 %token <i> PARSEOP_DEVICE
244 %token <i> PARSEOP_DIVIDE
245 %token <i> PARSEOP_DMA
246 %token <i> PARSEOP_DMATYPE_A
247 %token <i> PARSEOP_DMATYPE_COMPATIBILITY
248 %token <i> PARSEOP_DMATYPE_B
249 %token <i> PARSEOP_DMATYPE_F
250 %token <i> PARSEOP_DWORDCONST
251 %token <i> PARSEOP_DWORDIO
252 %token <i> PARSEOP_DWORDMEMORY
253 %token <i> PARSEOP_DWORDSPACE
254 %token <i> PARSEOP_EISAID
255 %token <i> PARSEOP_ELSE
256 %token <i> PARSEOP_ELSEIF
257 %token <i> PARSEOP_ENDDEPENDENTFN
258 %token <i> PARSEOP_ERRORNODE
259 %token <i> PARSEOP_EVENT
260 %token <i> PARSEOP_EXTENDEDIO
261 %token <i> PARSEOP_EXTENDEDMEMORY
262 %token <i> PARSEOP_EXTENDEDSPACE
263 %token <i> PARSEOP_EXTERNAL
264 %token <i> PARSEOP_FATAL
265 %token <i> PARSEOP_FIELD
266 %token <i> PARSEOP_FINDSETLEFTBIT
267 %token <i> PARSEOP_FINDSETRIGHTBIT
268 %token <i> PARSEOP_FIXEDIO
269 %token <i> PARSEOP_FROMBCD
270 %token <i> PARSEOP_FUNCTION
271 %token <i> PARSEOP_IF
272 %token <i> PARSEOP_INCLUDE
273 %token <i> PARSEOP_INCLUDE_CSTYLE
274 %token <i> PARSEOP_INCLUDE_END
275 %token <i> PARSEOP_INCREMENT
276 %token <i> PARSEOP_INDEX
277 %token <i> PARSEOP_INDEXFIELD
278 %token <i> PARSEOP_INTEGER
279 %token <i> PARSEOP_INTERRUPT
280 %token <i> PARSEOP_INTLEVEL_ACTIVEHIGH
281 %token <i> PARSEOP_INTLEVEL_ACTIVELOW
282 %token <i> PARSEOP_INTTYPE_EDGE
283 %token <i> PARSEOP_INTTYPE_LEVEL
284 %token <i> PARSEOP_IO
285 %token <i> PARSEOP_IODECODETYPE_10
286 %token <i> PARSEOP_IODECODETYPE_16
287 %token <i> PARSEOP_IRQ
288 %token <i> PARSEOP_IRQNOFLAGS
289 %token <i> PARSEOP_LAND
290 %token <i> PARSEOP_LEQUAL
291 %token <i> PARSEOP_LGREATER
292 %token <i> PARSEOP_LGREATEREQUAL
293 %token <i> PARSEOP_LINE_CSTYLE
294 %token <i> PARSEOP_LLESS
295 %token <i> PARSEOP_LLESSEQUAL
296 %token <i> PARSEOP_LNOT
297 %token <i> PARSEOP_LNOTEQUAL
298 %token <i> PARSEOP_LOAD
299 %token <i> PARSEOP_LOADTABLE
300 %token <i> PARSEOP_LOCAL0
301 %token <i> PARSEOP_LOCAL1
302 %token <i> PARSEOP_LOCAL2
303 %token <i> PARSEOP_LOCAL3
304 %token <i> PARSEOP_LOCAL4
305 %token <i> PARSEOP_LOCAL5
306 %token <i> PARSEOP_LOCAL6
307 %token <i> PARSEOP_LOCAL7
308 %token <i> PARSEOP_LOCKRULE_LOCK
309 %token <i> PARSEOP_LOCKRULE_NOLOCK
310 %token <i> PARSEOP_LOR
311 %token <i> PARSEOP_MATCH
312 %token <i> PARSEOP_MATCHTYPE_MEQ
313 %token <i> PARSEOP_MATCHTYPE_MGE
314 %token <i> PARSEOP_MATCHTYPE_MGT
315 %token <i> PARSEOP_MATCHTYPE_MLE
316 %token <i> PARSEOP_MATCHTYPE_MLT
317 %token <i> PARSEOP_MATCHTYPE_MTR
318 %token <i> PARSEOP_MAXTYPE_FIXED
319 %token <i> PARSEOP_MAXTYPE_NOTFIXED
320 %token <i> PARSEOP_MEMORY24
321 %token <i> PARSEOP_MEMORY32
322 %token <i> PARSEOP_MEMORY32FIXED
323 %token <i> PARSEOP_MEMTYPE_CACHEABLE
324 %token <i> PARSEOP_MEMTYPE_NONCACHEABLE
325 %token <i> PARSEOP_MEMTYPE_PREFETCHABLE
326 %token <i> PARSEOP_MEMTYPE_WRITECOMBINING
327 %token <i> PARSEOP_METHOD
328 %token <i> PARSEOP_METHODCALL
329 %token <i> PARSEOP_MID
330 %token <i> PARSEOP_MINTYPE_FIXED
331 %token <i> PARSEOP_MINTYPE_NOTFIXED
332 %token <i> PARSEOP_MOD
333 %token <i> PARSEOP_MULTIPLY
334 %token <i> PARSEOP_MUTEX
335 %token <i> PARSEOP_NAME
336 %token <s> PARSEOP_NAMESEG
337 %token <s> PARSEOP_NAMESTRING
338 %token <i> PARSEOP_NAND
339 %token <i> PARSEOP_NOOP
340 %token <i> PARSEOP_NOR
341 %token <i> PARSEOP_NOT
342 %token <i> PARSEOP_NOTIFY
343 %token <i> PARSEOP_OBJECTTYPE
344 %token <i> PARSEOP_OBJECTTYPE_BFF
345 %token <i> PARSEOP_OBJECTTYPE_BUF
346 %token <i> PARSEOP_OBJECTTYPE_DDB
347 %token <i> PARSEOP_OBJECTTYPE_DEV
348 %token <i> PARSEOP_OBJECTTYPE_EVT
349 %token <i> PARSEOP_OBJECTTYPE_FLD
350 %token <i> PARSEOP_OBJECTTYPE_INT
351 %token <i> PARSEOP_OBJECTTYPE_MTH
352 %token <i> PARSEOP_OBJECTTYPE_MTX
353 %token <i> PARSEOP_OBJECTTYPE_OPR
354 %token <i> PARSEOP_OBJECTTYPE_PKG
355 %token <i> PARSEOP_OBJECTTYPE_POW
356 %token <i> PARSEOP_OBJECTTYPE_PRO
357 %token <i> PARSEOP_OBJECTTYPE_STR
358 %token <i> PARSEOP_OBJECTTYPE_THZ
359 %token <i> PARSEOP_OBJECTTYPE_UNK
360 %token <i> PARSEOP_OFFSET
361 %token <i> PARSEOP_ONE
362 %token <i> PARSEOP_ONES
363 %token <i> PARSEOP_OPERATIONREGION
364 %token <i> PARSEOP_OR
365 %token <i> PARSEOP_PACKAGE
366 %token <i> PARSEOP_PACKAGE_LENGTH
367 %token <i> PARSEOP_POWERRESOURCE
368 %token <i> PARSEOP_PROCESSOR
369 %token <i> PARSEOP_QWORDCONST
370 %token <i> PARSEOP_QWORDIO
371 %token <i> PARSEOP_QWORDMEMORY
372 %token <i> PARSEOP_QWORDSPACE
373 %token <i> PARSEOP_RANGETYPE_ENTIRE
374 %token <i> PARSEOP_RANGETYPE_ISAONLY
375 %token <i> PARSEOP_RANGETYPE_NONISAONLY
376 %token <i> PARSEOP_RAW_DATA
377 %token <i> PARSEOP_READWRITETYPE_BOTH
378 %token <i> PARSEOP_READWRITETYPE_READONLY
379 %token <i> PARSEOP_REFOF
380 %token <i> PARSEOP_REGIONSPACE_CMOS
381 %token <i> PARSEOP_REGIONSPACE_EC
382 %token <i> PARSEOP_REGIONSPACE_IO
383 %token <i> PARSEOP_REGIONSPACE_MEM
384 %token <i> PARSEOP_REGIONSPACE_PCI
385 %token <i> PARSEOP_REGIONSPACE_PCIBAR
386 %token <i> PARSEOP_REGIONSPACE_SMBUS
387 %token <i> PARSEOP_REGISTER
388 %token <i> PARSEOP_RELEASE
389 %token <i> PARSEOP_RESERVED_BYTES
390 %token <i> PARSEOP_RESET
391 %token <i> PARSEOP_RESOURCETEMPLATE
392 %token <i> PARSEOP_RESOURCETYPE_CONSUMER
393 %token <i> PARSEOP_RESOURCETYPE_PRODUCER
394 %token <i> PARSEOP_RETURN
395 %token <i> PARSEOP_REVISION
396 %token <i> PARSEOP_SCOPE
397 %token <i> PARSEOP_SERIALIZERULE_NOTSERIAL
398 %token <i> PARSEOP_SERIALIZERULE_SERIAL
399 %token <i> PARSEOP_SHARETYPE_EXCLUSIVE
400 %token <i> PARSEOP_SHARETYPE_SHARED
401 %token <i> PARSEOP_SHIFTLEFT
402 %token <i> PARSEOP_SHIFTRIGHT
403 %token <i> PARSEOP_SIGNAL
404 %token <i> PARSEOP_SIZEOF
405 %token <i> PARSEOP_SLEEP
406 %token <i> PARSEOP_STALL
407 %token <i> PARSEOP_STARTDEPENDENTFN
408 %token <i> PARSEOP_STARTDEPENDENTFN_NOPRI
409 %token <i> PARSEOP_STORE
410 %token <s> PARSEOP_STRING_LITERAL
411 %token <i> PARSEOP_SUBTRACT
412 %token <i> PARSEOP_SWITCH
413 %token <i> PARSEOP_THERMALZONE
414 %token <i> PARSEOP_TIMER
415 %token <i> PARSEOP_TOBCD
416 %token <i> PARSEOP_TOBUFFER
417 %token <i> PARSEOP_TODECIMALSTRING
418 %token <i> PARSEOP_TOHEXSTRING
419 %token <i> PARSEOP_TOINTEGER
420 %token <i> PARSEOP_TOSTRING
421 %token <i> PARSEOP_TOUUID
422 %token <i> PARSEOP_TRANSLATIONTYPE_DENSE
423 %token <i> PARSEOP_TRANSLATIONTYPE_SPARSE
424 %token <i> PARSEOP_TYPE_STATIC
425 %token <i> PARSEOP_TYPE_TRANSLATION
426 %token <i> PARSEOP_UNICODE
427 %token <i> PARSEOP_UNLOAD
428 %token <i> PARSEOP_UPDATERULE_ONES
429 %token <i> PARSEOP_UPDATERULE_PRESERVE
430 %token <i> PARSEOP_UPDATERULE_ZEROS
431 %token <i> PARSEOP_VAR_PACKAGE
432 %token <i> PARSEOP_VENDORLONG
433 %token <i> PARSEOP_VENDORSHORT
434 %token <i> PARSEOP_WAIT
435 %token <i> PARSEOP_WHILE
436 %token <i> PARSEOP_WORDBUSNUMBER
437 %token <i> PARSEOP_WORDCONST
438 %token <i> PARSEOP_WORDIO
439 %token <i> PARSEOP_WORDSPACE
440 %token <i> PARSEOP_XFERTYPE_8
441 %token <i> PARSEOP_XFERTYPE_8_16
442 %token <i> PARSEOP_XFERTYPE_16
443 %token <i> PARSEOP_XOR
444 %token <i> PARSEOP_ZERO
452 %type <n> DefinitionBlockTerm
455 %type <n> CompilerDirective
460 %type <n> PackageData
461 %type <n> IntegerData
463 %type <n> NamedObject
464 %type <n> NameSpaceModifier
467 %type <n> ArgListTail
470 %type <n> RequiredTarget
471 %type <n> SimpleTarget
472 %type <n> BufferTermData
473 %type <n> ParameterTypePackage
474 %type <n> ParameterTypePackageList
475 %type <n> ParameterTypesPackage
476 %type <n> ParameterTypesPackageList
478 %type <n> Type1Opcode
479 %type <n> Type2Opcode
480 %type <n> Type2IntegerOpcode
481 %type <n> Type2StringOpcode
482 %type <n> Type2BufferOpcode
483 %type <n> Type2BufferOrStringOpcode
484 %type <n> Type3Opcode
486 /* Obsolete %type <n> Type4Opcode */
488 %type <n> Type5Opcode
489 %type <n> Type6Opcode
492 %type <n> IncludeTerm
493 %type <n> IncludeCStyleTerm
494 %type <n> ExternalTerm
496 %type <n> FieldUnitList
497 %type <n> FieldUnitListTail
499 %type <n> FieldUnitEntry
502 %type <n> AccessAsTerm
503 %type <n> OptionalAccessAttribTerm
508 %type <n> BankFieldTerm
509 %type <n> CreateBitFieldTerm
510 %type <n> CreateByteFieldTerm
511 %type <n> CreateDWordFieldTerm
512 %type <n> CreateFieldTerm
513 %type <n> CreateQWordFieldTerm
514 %type <n> CreateWordFieldTerm
515 %type <n> DataRegionTerm
519 %type <n> FunctionTerm
520 %type <n> IndexFieldTerm
523 %type <n> OpRegionTerm
524 %type <n> OpRegionSpaceIdTerm
525 %type <n> PowerResTerm
526 %type <n> ProcessorTerm
527 %type <n> ThermalZoneTerm
530 /* Namespace modifiers */
539 %type <n> BreakPointTerm
540 %type <n> ContinueTerm
548 %type <n> ReleaseTerm
555 %type <n> CaseTermList
556 %type <n> DefaultTermList
558 %type <n> DefaultTerm
564 %type <n> AcquireTerm
568 %type <n> ConcatResTerm
569 %type <n> CondRefOfTerm
570 %type <n> CopyObjectTerm
572 %type <n> DerefOfTerm
574 %type <n> FindSetLeftBitTerm
575 %type <n> FindSetRightBitTerm
576 %type <n> FromBCDTerm
581 %type <n> LGreaterTerm
582 %type <n> LGreaterEqualTerm
584 %type <n> LLessEqualTerm
586 %type <n> LNotEqualTerm
587 %type <n> LoadTableTerm
592 %type <n> MultiplyTerm
596 %type <n> ObjectTypeTerm
599 %type <n> ShiftLeftTerm
600 %type <n> ShiftRightTerm
603 %type <n> SubtractTerm
606 %type <n> ToBufferTerm
607 %type <n> ToDecimalStringTerm
608 %type <n> ToHexStringTerm
609 %type <n> ToIntegerTerm
610 %type <n> ToStringTerm
614 %type <n> OptionalTermArg
615 %type <n> OptionalReturnArg
616 %type <n> OptionalListString
621 %type <n> ObjectTypeKeyword
622 %type <n> AccessTypeKeyword
623 %type <n> AccessAttribKeyword
624 %type <n> LockRuleKeyword
625 %type <n> UpdateRuleKeyword
626 %type <n> RegionSpaceKeyword
627 %type <n> AddressSpaceKeyword
628 %type <n> MatchOpKeyword
629 %type <n> SerializeRuleKeyword
630 %type <n> DMATypeKeyword
631 %type <n> OptionalBusMasterKeyword
632 %type <n> XferTypeKeyword
633 %type <n> ResourceTypeKeyword
636 %type <n> DecodeKeyword
637 %type <n> RangeTypeKeyword
638 %type <n> MemTypeKeyword
639 %type <n> OptionalReadWriteKeyword
640 %type <n> InterruptTypeKeyword
641 %type <n> InterruptLevel
642 %type <n> ShareTypeKeyword
643 %type <n> IODecodeKeyword
644 %type <n> TypeKeyword
645 %type <n> TranslationKeyword
646 %type <n> AddressKeyword
671 %type <n> ByteConstExpr
672 %type <n> WordConstExpr
673 %type <n> DWordConstExpr
674 %type <n> QWordConstExpr
675 %type <n> ConstExprTerm
679 %type <n> ByteListTail
681 %type <n> DWordListTail
683 %type <n> PackageTerm
684 %type <n> PackageList
685 %type <n> PackageListTail
686 %type <n> PackageElement
688 %type <n> VarPackageLengthTerm
693 %type <n> ResourceTemplateTerm
695 %type <n> UnicodeTerm
696 %type <n> ResourceMacroList
697 %type <n> ResourceMacroTerm
700 %type <n> DWordIOTerm
701 %type <n> DWordMemoryTerm
702 %type <n> DWordSpaceTerm
703 %type <n> EndDependentFnTerm
704 %type <n> ExtendedIOTerm
705 %type <n> ExtendedMemoryTerm
706 %type <n> ExtendedSpaceTerm
707 %type <n> FixedIOTerm
708 %type <n> InterruptTerm
710 %type <n> IRQNoFlagsTerm
712 %type <n> Memory24Term
713 %type <n> Memory32FixedTerm
714 %type <n> Memory32Term
715 %type <n> QWordIOTerm
716 %type <n> QWordMemoryTerm
717 %type <n> QWordSpaceTerm
718 %type <n> RegisterTerm
719 %type <n> StartDependentFnTerm
720 %type <n> StartDependentFnNoPriTerm
721 %type <n> VendorLongTerm
722 %type <n> VendorShortTerm
723 %type <n> WordBusNumberTerm
725 %type <n> WordSpaceTerm
731 /* Local types that help construct the AML, not in ACPI spec */
733 %type <n> IncludeEndTerm
734 %type <n> AmlPackageLengthTerm
735 %type <n> OptionalByteConstExpr
736 %type <n> OptionalDWordConstExpr
737 %type <n> OptionalQWordConstExpr
738 %type <n> OptionalSerializeRuleKeyword
739 %type <n> OptionalResourceType_First
740 %type <n> OptionalResourceType
741 %type <n> OptionalMinType
742 %type <n> OptionalMaxType
743 %type <n> OptionalMemType
744 %type <n> OptionalCount
745 %type <n> OptionalDecodeType
746 %type <n> OptionalRangeType
747 %type <n> OptionalShareType
748 %type <n> OptionalType
749 %type <n> OptionalType_Last
750 %type <n> OptionalTranslationType_Last
751 %type <n> OptionalStringData
752 %type <n> OptionalNameString
753 %type <n> OptionalNameString_First
754 %type <n> OptionalNameString_Last
755 %type <n> OptionalAddressRange
756 %type <n> OptionalObjectTypeKeyword
757 %type <n> OptionalParameterTypePackage
758 %type <n> OptionalParameterTypesPackage
759 %type <n> OptionalReference
760 %type <n> OptionalAccessSize
763 %type <n> TermArgItem
764 %type <n> NameStringItem
769 /*******************************************************************************
771 * Production rules start here
773 ******************************************************************************/
781 * Blocks, Data, and Opcodes
785 : DefinitionBlockTerm
786 | error {YYABORT; $$ = NULL;}
790 : PARSEOP_DEFINITIONBLOCK '(' {$$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
797 ')' {TrSetEndLineNumber ($<n>3);}
798 '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
801 /* ACPI 3.0 -- allow semicolons between terms */
805 | Term TermList {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
806 | Term ';' TermList {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
813 | Type2IntegerOpcode {}
814 | Type2StringOpcode {}
815 | Type2BufferOpcode {}
816 | Type2BufferOrStringOpcode {}
817 | error {$$ = AslDoError(); yyclearin;}
822 | IncludeCStyleTerm {$$ = NULL;}
823 | LineTerm {$$ = NULL;}
829 | Object ObjectList {$$ = TrLinkPeerNode ($1,$2);}
830 | error {$$ = AslDoError(); yyclearin;}
834 : CompilerDirective {}
836 | NameSpaceModifier {}
847 : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
848 | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
849 | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
858 : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
859 | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
865 : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
871 | CreateBitFieldTerm {}
872 | CreateByteFieldTerm {}
873 | CreateDWordFieldTerm {}
875 | CreateQWordFieldTerm {}
876 | CreateWordFieldTerm {}
898 : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
899 ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
904 | TermArg ArgListTail {$$ = TrLinkPeerNode ($1,$2);}
909 | ',' TermArg ArgListTail {$$ = TrLinkPeerNode ($2,$3);}
910 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
914 : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
915 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
916 | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
917 | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
918 | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
919 | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
920 | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
921 | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
922 | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
926 : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
927 | ',' {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
928 | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
932 : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
941 /* Rules for specifying the Return type for control methods */
945 | ObjectTypeKeyword {$$ = $1;}
946 | '{''}' {$$ = NULL;}
951 ParameterTypePackageList
955 ParameterTypePackageList
957 | ObjectTypeKeyword {$$ = $1;}
958 | ObjectTypeKeyword ','
959 ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);}
962 OptionalParameterTypePackage
963 : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
964 | ',' {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
965 | ',' ParameterTypePackage {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
968 /* Rules for specifying the Argument types for control methods */
970 ParameterTypesPackage
972 | ObjectTypeKeyword {$$ = $1;}
973 | '{''}' {$$ = NULL;}
978 ParameterTypesPackageList
982 ParameterTypesPackageList
984 | ObjectTypeKeyword {$$ = $1;}
985 | ParameterTypesPackage {$$ = $1;}
986 | ParameterTypesPackage ','
987 ParameterTypesPackageList {$$ = TrLinkPeerNodes (2,$1,$3);}
988 | ParameterTypesPackage ','
989 ParameterTypesPackage {$$ = TrLinkPeerNodes (2,$1,$3);}
992 OptionalParameterTypesPackage
993 : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
994 | ',' {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
995 | ',' ParameterTypesPackage {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
1036 * Type 3/4/5 opcodes
1039 Type2IntegerOpcode /* "Type3" opcodes */
1044 | FindSetLeftBitTerm {}
1045 | FindSetRightBitTerm {}
1052 | LGreaterEqualTerm {}
1074 Type2StringOpcode /* "Type4" Opcodes */
1075 : ToDecimalStringTerm {}
1076 | ToHexStringTerm {}
1080 Type2BufferOpcode /* "Type5" Opcodes */
1085 Type2BufferOrStringOpcode
1091 * A type 3 opcode evaluates to an Integer and cannot have a destination operand
1101 | ToDecimalStringTerm {}
1102 | ToHexStringTerm {}
1110 : ResourceTemplateTerm {}
1123 : PARSEOP_INCLUDE '(' {$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
1124 String ')' {$$ = TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
1126 IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
1130 : PARSEOP_INCLUDE_END {$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
1134 : PARSEOP_INCLUDE_CSTYLE
1135 String {FlOpenIncludeFile ($2);}
1139 : PARSEOP_LINE_CSTYLE
1140 Integer {FlSetLineNumber ($2);}
1144 : PARSEOP_EXTERNAL '('
1146 OptionalObjectTypeKeyword
1147 OptionalParameterTypePackage
1148 OptionalParameterTypesPackage
1149 ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
1150 | PARSEOP_EXTERNAL '('
1151 error ')' {$$ = AslDoError(); yyclearin;}
1155 /******* Named Objects *******************************************************/
1159 : PARSEOP_BANKFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
1163 ',' AccessTypeKeyword
1165 ',' UpdateRuleKeyword
1167 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
1168 | PARSEOP_BANKFIELD '('
1169 error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
1175 FieldUnitListTail {$$ = TrLinkPeerNode ($1,$2);}
1180 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
1182 FieldUnitListTail {$$ = TrLinkPeerNode ($2,$3);}
1192 : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
1194 AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
1198 : PARSEOP_OFFSET '('
1199 AmlPackageLengthTerm
1200 ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
1201 | PARSEOP_OFFSET '('
1202 error ')' {$$ = AslDoError(); yyclearin;}
1206 : PARSEOP_ACCESSAS '('
1208 OptionalAccessAttribTerm
1209 ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
1210 | PARSEOP_ACCESSAS '('
1211 error ')' {$$ = AslDoError(); yyclearin;}
1215 : PARSEOP_CREATEBITFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
1219 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1220 | PARSEOP_CREATEBITFIELD '('
1221 error ')' {$$ = AslDoError(); yyclearin;}
1225 : PARSEOP_CREATEBYTEFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
1229 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1230 | PARSEOP_CREATEBYTEFIELD '('
1231 error ')' {$$ = AslDoError(); yyclearin;}
1234 CreateDWordFieldTerm
1235 : PARSEOP_CREATEDWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
1239 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1240 | PARSEOP_CREATEDWORDFIELD '('
1241 error ')' {$$ = AslDoError(); yyclearin;}
1245 : PARSEOP_CREATEFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
1250 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
1251 | PARSEOP_CREATEFIELD '('
1252 error ')' {$$ = AslDoError(); yyclearin;}
1255 CreateQWordFieldTerm
1256 : PARSEOP_CREATEQWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
1260 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1261 | PARSEOP_CREATEQWORDFIELD '('
1262 error ')' {$$ = AslDoError(); yyclearin;}
1266 : PARSEOP_CREATEWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
1270 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1271 | PARSEOP_CREATEWORDFIELD '('
1272 error ')' {$$ = AslDoError(); yyclearin;}
1276 : PARSEOP_DATATABLEREGION '(' {$$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
1281 ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
1282 | PARSEOP_DATATABLEREGION '('
1283 error ')' {$$ = AslDoError(); yyclearin;}
1287 : PARSEOP_DEVICE '(' {$$ = TrCreateLeafNode (PARSEOP_DEVICE);}
1290 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1291 | PARSEOP_DEVICE '('
1292 error ')' {$$ = AslDoError(); yyclearin;}
1296 : PARSEOP_EVENT '(' {$$ = TrCreateLeafNode (PARSEOP_EVENT);}
1298 ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
1300 error ')' {$$ = AslDoError(); yyclearin;}
1304 : PARSEOP_FIELD '(' {$$ = TrCreateLeafNode (PARSEOP_FIELD);}
1306 ',' AccessTypeKeyword
1308 ',' UpdateRuleKeyword
1310 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
1312 error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
1316 : PARSEOP_FUNCTION '(' {$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1318 OptionalParameterTypePackage
1319 OptionalParameterTypesPackage
1321 TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
1322 TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
1323 TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
1324 TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
1325 | PARSEOP_FUNCTION '('
1326 error ')' {$$ = AslDoError(); yyclearin;}
1330 : PARSEOP_INDEXFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
1333 ',' AccessTypeKeyword
1335 ',' UpdateRuleKeyword
1337 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
1338 | PARSEOP_INDEXFIELD '('
1339 error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
1343 : PARSEOP_METHOD '(' {$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1345 OptionalByteConstExpr {$$ = UtCheckIntegerRange ($5, 0, 7);}
1346 OptionalSerializeRuleKeyword
1347 OptionalByteConstExpr
1348 OptionalParameterTypePackage
1349 OptionalParameterTypesPackage
1351 TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
1352 | PARSEOP_METHOD '('
1353 error ')' {$$ = AslDoError(); yyclearin;}
1357 : PARSEOP_MUTEX '(' {$$ = TrCreateLeafNode (PARSEOP_MUTEX);}
1360 ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1362 error ')' {$$ = AslDoError(); yyclearin;}
1366 : PARSEOP_OPERATIONREGION '(' {$$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
1368 ',' OpRegionSpaceIdTerm
1371 ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
1372 | PARSEOP_OPERATIONREGION '('
1373 error ')' {$$ = AslDoError(); yyclearin;}
1377 : RegionSpaceKeyword {}
1378 | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1382 : PARSEOP_POWERRESOURCE '(' {$$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
1387 ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
1388 | PARSEOP_POWERRESOURCE '('
1389 error ')' {$$ = AslDoError(); yyclearin;}
1393 : PARSEOP_PROCESSOR '(' {$$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1396 OptionalDWordConstExpr
1397 OptionalByteConstExpr
1399 ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
1400 | PARSEOP_PROCESSOR '('
1401 error ')' {$$ = AslDoError(); yyclearin;}
1405 : PARSEOP_THERMALZONE '(' {$$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1408 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1409 | PARSEOP_THERMALZONE '('
1410 error ')' {$$ = AslDoError(); yyclearin;}
1414 /******* Namespace modifiers *************************************************/
1418 : PARSEOP_ALIAS '(' {$$ = TrCreateLeafNode (PARSEOP_ALIAS);}
1421 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
1423 error ')' {$$ = AslDoError(); yyclearin;}
1427 : PARSEOP_NAME '(' {$$ = TrCreateLeafNode (PARSEOP_NAME);}
1430 ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1432 error ')' {$$ = AslDoError(); yyclearin;}
1436 : PARSEOP_SCOPE '(' {$$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1439 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1441 error ')' {$$ = AslDoError(); yyclearin;}
1445 /******* Type 1 opcodes *******************************************************/
1449 : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
1453 : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
1457 : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
1461 : PARSEOP_FATAL '(' {$$ = TrCreateLeafNode (PARSEOP_FATAL);}
1465 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
1467 error ')' {$$ = AslDoError(); yyclearin;}
1471 : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
1475 : PARSEOP_IF '(' {$$ = TrCreateLeafNode (PARSEOP_IF);}
1479 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1481 error ')' {$$ = AslDoError(); yyclearin;}
1486 | PARSEOP_ELSE '{' {$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1488 {$$ = TrLinkChildren ($<n>3,1,$4);}
1490 error '}' {$$ = AslDoError(); yyclearin;}
1492 | PARSEOP_ELSEIF '(' {$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1493 TermArg {$$ = TrCreateLeafNode (PARSEOP_IF);}
1495 TermList '}' {$$ = TrLinkChildren ($<n>5,2,$4,$8);}
1496 ElseTerm {$$ = TrLinkPeerNode ($<n>5,$11);}
1497 {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
1498 | PARSEOP_ELSEIF '('
1499 error ')' {$$ = AslDoError(); yyclearin;}
1503 : PARSEOP_LOAD '(' {$$ = TrCreateLeafNode (PARSEOP_LOAD);}
1506 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1508 error ')' {$$ = AslDoError(); yyclearin;}
1512 : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1516 : PARSEOP_NOTIFY '(' {$$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1519 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1520 | PARSEOP_NOTIFY '('
1521 error ')' {$$ = AslDoError(); yyclearin;}
1525 : PARSEOP_RELEASE '(' {$$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1527 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1528 | PARSEOP_RELEASE '('
1529 error ')' {$$ = AslDoError(); yyclearin;}
1533 : PARSEOP_RESET '(' {$$ = TrCreateLeafNode (PARSEOP_RESET);}
1535 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1537 error ')' {$$ = AslDoError(); yyclearin;}
1541 : PARSEOP_RETURN '(' {$$ = TrCreateLeafNode (PARSEOP_RETURN);}
1543 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1544 | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrCreateLeafNode (PARSEOP_ZERO));}
1545 | PARSEOP_RETURN '('
1546 error ')' {$$ = AslDoError(); yyclearin;}
1550 : PARSEOP_SIGNAL '(' {$$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1552 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1553 | PARSEOP_SIGNAL '('
1554 error ')' {$$ = AslDoError(); yyclearin;}
1558 : PARSEOP_SLEEP '(' {$$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1560 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1562 error ')' {$$ = AslDoError(); yyclearin;}
1566 : PARSEOP_STALL '(' {$$ = TrCreateLeafNode (PARSEOP_STALL);}
1568 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1570 error ')' {$$ = AslDoError(); yyclearin;}
1574 : PARSEOP_SWITCH '(' {$$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1578 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1579 | PARSEOP_SWITCH '('
1580 error ')' {$$ = AslDoError(); yyclearin;}
1587 DefaultTermList {$$ = TrLinkPeerNode ($1,$2);}
1589 CaseTermList {$$ = TrLinkPeerNode ($1,$2);}
1596 DefaultTermList {$$ = TrLinkPeerNode ($1,$2);}
1600 : PARSEOP_CASE '(' {$$ = TrCreateLeafNode (PARSEOP_CASE);}
1603 TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1605 error ')' {$$ = AslDoError(); yyclearin;}
1609 : PARSEOP_DEFAULT '{' {$$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
1610 TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
1611 | PARSEOP_DEFAULT '{'
1612 error '}' {$$ = AslDoError(); yyclearin;}
1616 : PARSEOP_UNLOAD '(' {$$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1618 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1619 | PARSEOP_UNLOAD '('
1620 error ')' {$$ = AslDoError(); yyclearin;}
1624 : PARSEOP_WHILE '(' {$$ = TrCreateLeafNode (PARSEOP_WHILE);}
1626 ')' '{' TermList '}'
1627 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1629 error ')' {$$ = AslDoError(); yyclearin;}
1633 /******* Type 2 opcodes *******************************************************/
1636 : PARSEOP_ACQUIRE '(' {$$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
1639 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
1640 | PARSEOP_ACQUIRE '('
1641 error ')' {$$ = AslDoError(); yyclearin;}
1645 : PARSEOP_ADD '(' {$$ = TrCreateLeafNode (PARSEOP_ADD);}
1649 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1651 error ')' {$$ = AslDoError(); yyclearin;}
1655 : PARSEOP_AND '(' {$$ = TrCreateLeafNode (PARSEOP_AND);}
1659 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1661 error ')' {$$ = AslDoError(); yyclearin;}
1665 : PARSEOP_CONCATENATE '(' {$$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
1669 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1670 | PARSEOP_CONCATENATE '('
1671 error ')' {$$ = AslDoError(); yyclearin;}
1675 : PARSEOP_CONCATENATERESTEMPLATE '(' {$$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
1679 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1680 | PARSEOP_CONCATENATERESTEMPLATE '('
1681 error ')' {$$ = AslDoError(); yyclearin;}
1685 : PARSEOP_CONDREFOF '(' {$$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
1688 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1689 | PARSEOP_CONDREFOF '('
1690 error ')' {$$ = AslDoError(); yyclearin;}
1694 : PARSEOP_COPYOBJECT '(' {$$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
1697 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1698 | PARSEOP_COPYOBJECT '('
1699 error ')' {$$ = AslDoError(); yyclearin;}
1703 : PARSEOP_DECREMENT '(' {$$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
1705 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1706 | PARSEOP_DECREMENT '('
1707 error ')' {$$ = AslDoError(); yyclearin;}
1711 : PARSEOP_DEREFOF '(' {$$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
1713 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1714 | PARSEOP_DEREFOF '('
1715 error ')' {$$ = AslDoError(); yyclearin;}
1719 : PARSEOP_DIVIDE '(' {$$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
1724 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1725 | PARSEOP_DIVIDE '('
1726 error ')' {$$ = AslDoError(); yyclearin;}
1730 : PARSEOP_FINDSETLEFTBIT '(' {$$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
1733 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1734 | PARSEOP_FINDSETLEFTBIT '('
1735 error ')' {$$ = AslDoError(); yyclearin;}
1739 : PARSEOP_FINDSETRIGHTBIT '(' {$$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
1742 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1743 | PARSEOP_FINDSETRIGHTBIT '('
1744 error ')' {$$ = AslDoError(); yyclearin;}
1748 : PARSEOP_FROMBCD '(' {$$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1751 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1752 | PARSEOP_FROMBCD '('
1753 error ')' {$$ = AslDoError(); yyclearin;}
1757 : PARSEOP_INCREMENT '(' {$$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1759 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1760 | PARSEOP_INCREMENT '('
1761 error ')' {$$ = AslDoError(); yyclearin;}
1765 : PARSEOP_INDEX '(' {$$ = TrCreateLeafNode (PARSEOP_INDEX);}
1769 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1771 error ')' {$$ = AslDoError(); yyclearin;}
1775 : PARSEOP_LAND '(' {$$ = TrCreateLeafNode (PARSEOP_LAND);}
1778 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1780 error ')' {$$ = AslDoError(); yyclearin;}
1784 : PARSEOP_LEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1787 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1788 | PARSEOP_LEQUAL '('
1789 error ')' {$$ = AslDoError(); yyclearin;}
1793 : PARSEOP_LGREATER '(' {$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1796 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1797 | PARSEOP_LGREATER '('
1798 error ')' {$$ = AslDoError(); yyclearin;}
1802 : PARSEOP_LGREATEREQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1805 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1806 | PARSEOP_LGREATEREQUAL '('
1807 error ')' {$$ = AslDoError(); yyclearin;}
1811 : PARSEOP_LLESS '(' {$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1814 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1816 error ')' {$$ = AslDoError(); yyclearin;}
1820 : PARSEOP_LLESSEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1823 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1824 | PARSEOP_LLESSEQUAL '('
1825 error ')' {$$ = AslDoError(); yyclearin;}
1829 : PARSEOP_LNOT '(' {$$ = TrCreateLeafNode (PARSEOP_LNOT);}
1831 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1833 error ')' {$$ = AslDoError(); yyclearin;}
1837 : PARSEOP_LNOTEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1840 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1841 | PARSEOP_LNOTEQUAL '('
1842 error ')' {$$ = AslDoError(); yyclearin;}
1846 : PARSEOP_LOADTABLE '(' {$$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1853 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
1854 | PARSEOP_LOADTABLE '('
1855 error ')' {$$ = AslDoError(); yyclearin;}
1859 : PARSEOP_LOR '(' {$$ = TrCreateLeafNode (PARSEOP_LOR);}
1862 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1864 error ')' {$$ = AslDoError(); yyclearin;}
1868 : PARSEOP_MATCH '(' {$$ = TrCreateLeafNode (PARSEOP_MATCH);}
1875 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
1877 error ')' {$$ = AslDoError(); yyclearin;}
1881 : PARSEOP_MID '(' {$$ = TrCreateLeafNode (PARSEOP_MID);}
1886 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1888 error ')' {$$ = AslDoError(); yyclearin;}
1892 : PARSEOP_MOD '(' {$$ = TrCreateLeafNode (PARSEOP_MOD);}
1896 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1898 error ')' {$$ = AslDoError(); yyclearin;}
1902 : PARSEOP_MULTIPLY '(' {$$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1906 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1907 | PARSEOP_MULTIPLY '('
1908 error ')' {$$ = AslDoError(); yyclearin;}
1912 : PARSEOP_NAND '(' {$$ = TrCreateLeafNode (PARSEOP_NAND);}
1916 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1918 error ')' {$$ = AslDoError(); yyclearin;}
1922 : PARSEOP_NOR '(' {$$ = TrCreateLeafNode (PARSEOP_NOR);}
1926 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1928 error ')' {$$ = AslDoError(); yyclearin;}
1932 : PARSEOP_NOT '(' {$$ = TrCreateLeafNode (PARSEOP_NOT);}
1935 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1937 error ')' {$$ = AslDoError(); yyclearin;}
1941 : PARSEOP_OBJECTTYPE '(' {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1943 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1944 | PARSEOP_OBJECTTYPE '('
1945 error ')' {$$ = AslDoError(); yyclearin;}
1949 : PARSEOP_OR '(' {$$ = TrCreateLeafNode (PARSEOP_OR);}
1953 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1955 error ')' {$$ = AslDoError(); yyclearin;}
1959 * In RefOf, the node isn't really a target, but we can't keep track of it after
1960 * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1963 : PARSEOP_REFOF '(' {$$ = TrCreateLeafNode (PARSEOP_REFOF);}
1965 ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1967 error ')' {$$ = AslDoError(); yyclearin;}
1971 : PARSEOP_SHIFTLEFT '(' {$$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1975 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1976 | PARSEOP_SHIFTLEFT '('
1977 error ')' {$$ = AslDoError(); yyclearin;}
1981 : PARSEOP_SHIFTRIGHT '(' {$$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1985 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1986 | PARSEOP_SHIFTRIGHT '('
1987 error ')' {$$ = AslDoError(); yyclearin;}
1991 : PARSEOP_SIZEOF '(' {$$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1993 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1994 | PARSEOP_SIZEOF '('
1995 error ')' {$$ = AslDoError(); yyclearin;}
1999 : PARSEOP_STORE '(' {$$ = TrCreateLeafNode (PARSEOP_STORE);}
2002 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
2004 error ')' {$$ = AslDoError(); yyclearin;}
2008 : PARSEOP_SUBTRACT '(' {$$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
2012 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
2013 | PARSEOP_SUBTRACT '('
2014 error ')' {$$ = AslDoError(); yyclearin;}
2018 : PARSEOP_TIMER '(' {$$ = TrCreateLeafNode (PARSEOP_TIMER);}
2019 ')' {$$ = TrLinkChildren ($<n>3,0);}
2020 | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
2022 error ')' {$$ = AslDoError(); yyclearin;}
2026 : PARSEOP_TOBCD '(' {$$ = TrCreateLeafNode (PARSEOP_TOBCD);}
2029 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
2031 error ')' {$$ = AslDoError(); yyclearin;}
2035 : PARSEOP_TOBUFFER '(' {$$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
2038 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
2039 | PARSEOP_TOBUFFER '('
2040 error ')' {$$ = AslDoError(); yyclearin;}
2044 : PARSEOP_TODECIMALSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
2047 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
2048 | PARSEOP_TODECIMALSTRING '('
2049 error ')' {$$ = AslDoError(); yyclearin;}
2053 : PARSEOP_TOHEXSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
2056 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
2057 | PARSEOP_TOHEXSTRING '('
2058 error ')' {$$ = AslDoError(); yyclearin;}
2062 : PARSEOP_TOINTEGER '(' {$$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
2065 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
2066 | PARSEOP_TOINTEGER '('
2067 error ')' {$$ = AslDoError(); yyclearin;}
2071 : PARSEOP_TOSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
2075 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
2076 | PARSEOP_TOSTRING '('
2077 error ')' {$$ = AslDoError(); yyclearin;}
2081 : PARSEOP_TOUUID '('
2082 StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
2083 | PARSEOP_TOUUID '('
2084 error ')' {$$ = AslDoError(); yyclearin;}
2088 : PARSEOP_WAIT '(' {$$ = TrCreateLeafNode (PARSEOP_WAIT);}
2091 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
2093 error ')' {$$ = AslDoError(); yyclearin;}
2097 : PARSEOP_XOR '(' {$$ = TrCreateLeafNode (PARSEOP_XOR);}
2101 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
2103 error ')' {$$ = AslDoError(); yyclearin;}
2107 /******* Keywords *************************************************************/
2111 : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
2112 | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
2113 | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
2114 | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
2115 | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
2116 | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
2117 | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
2118 | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
2119 | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
2120 | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
2121 | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
2122 | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
2123 | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
2124 | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
2125 | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
2126 | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
2130 : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
2131 | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
2132 | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
2133 | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
2134 | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
2135 | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
2139 : PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
2140 | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
2141 | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
2142 | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
2143 | PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
2144 | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
2145 | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
2149 : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
2150 | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
2154 : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
2155 | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
2156 | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
2161 : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
2162 | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
2163 | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
2164 | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
2165 | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
2166 | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
2167 | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
2171 : ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
2172 | RegionSpaceKeyword {}
2173 | PARSEOP_ADDRESSSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
2177 SerializeRuleKeyword
2178 : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
2179 | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
2183 : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
2184 | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
2185 | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
2186 | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
2187 | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
2188 | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
2192 : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
2193 | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
2194 | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
2195 | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
2199 : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
2200 | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
2201 | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
2205 : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2206 | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
2210 : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
2211 | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
2215 : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
2216 | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
2220 : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
2221 | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
2225 : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
2226 | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
2227 | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
2231 : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
2232 | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
2233 | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
2234 | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
2237 OptionalReadWriteKeyword
2238 : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2239 | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2240 | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
2243 InterruptTypeKeyword
2244 : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
2245 | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
2249 : PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
2250 | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
2254 : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
2255 | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
2259 : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
2260 | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
2264 : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
2265 | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
2269 : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
2270 | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
2274 : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
2275 | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
2276 | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
2277 | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
2281 /******* Miscellaneous Types **************************************************/
2290 /* | UserTerm {} */ /* Caused reduce/reduce with Type6Opcode->UserTerm */
2294 : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
2295 | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
2296 | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
2297 | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
2298 | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
2299 | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
2300 | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
2304 : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
2305 | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
2306 | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
2307 | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
2308 | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
2309 | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
2310 | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
2311 | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
2315 : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
2320 : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2324 : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2328 : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2332 : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2336 : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
2340 : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2345 | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
2349 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2350 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2351 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2356 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2357 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2358 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2363 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2364 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2365 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2370 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2371 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2372 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2377 : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
2378 | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
2379 | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_INTEGER_MAX);}
2382 /* OptionalCount must appear before ByteList or an incorrect reduction will result */
2385 : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2386 | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2387 | ',' TermArg {$$ = $2;}
2392 : PARSEOP_BUFFER '(' {$$ = TrCreateLeafNode (PARSEOP_BUFFER);}
2395 BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2396 | PARSEOP_BUFFER '('
2397 error ')' {$$ = AslDoError(); yyclearin;}
2408 ByteListTail {$$ = TrLinkPeerNode ($1,$2);}
2413 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
2415 ByteListTail {$$ = TrLinkPeerNode ($2,$3);}
2421 DWordListTail {$$ = TrLinkPeerNode ($1,$2);}
2426 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
2427 | ',' DWordConstExpr
2428 DWordListTail {$$ = TrLinkPeerNode ($2,$3);}
2432 : PARSEOP_PACKAGE '(' {$$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
2433 VarPackageLengthTerm
2435 PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2436 | PARSEOP_PACKAGE '('
2437 error ')' {$$ = AslDoError(); yyclearin;}
2440 VarPackageLengthTerm
2441 : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
2442 | TermArg {$$ = $1;}
2448 PackageListTail {$$ = TrLinkPeerNode ($1,$2);}
2453 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
2454 | ',' PackageElement
2455 PackageListTail {$$ = TrLinkPeerNode ($2,$3);}
2464 : PARSEOP_EISAID '('
2465 StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
2466 | PARSEOP_EISAID '('
2467 error ')' {$$ = AslDoError(); yyclearin;}
2471 /******* Resources and Memory ***********************************************/
2474 ResourceTemplateTerm
2475 : PARSEOP_RESOURCETEMPLATE '(' ')'
2477 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,3,
2478 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2479 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$5);}
2483 : PARSEOP_UNICODE '(' {$$ = TrCreateLeafNode (PARSEOP_UNICODE);}
2485 ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
2486 | PARSEOP_UNICODE '('
2487 error ')' {$$ = AslDoError(); yyclearin;}
2493 ResourceMacroList {$$ = TrLinkPeerNode ($1,$2);}
2499 | DWordMemoryTerm {}
2501 | EndDependentFnTerm {}
2503 | ExtendedMemoryTerm {}
2504 | ExtendedSpaceTerm {}
2511 | Memory32FixedTerm {}
2514 | QWordMemoryTerm {}
2517 | StartDependentFnTerm {}
2518 | StartDependentFnNoPriTerm {}
2520 | VendorShortTerm {}
2521 | WordBusNumberTerm {}
2527 : PARSEOP_DMA '(' {$$ = TrCreateLeafNode (PARSEOP_DMA);}
2529 OptionalBusMasterKeyword
2531 OptionalNameString_Last
2533 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
2535 error ')' {$$ = AslDoError(); yyclearin;}
2539 : PARSEOP_DWORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
2540 OptionalResourceType_First
2550 OptionalByteConstExpr
2554 OptionalTranslationType_Last
2555 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2556 | PARSEOP_DWORDIO '('
2557 error ')' {$$ = AslDoError(); yyclearin;}
2561 : PARSEOP_DWORDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
2562 OptionalResourceType_First
2567 ',' OptionalReadWriteKeyword
2573 OptionalByteConstExpr
2576 OptionalAddressRange
2578 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2579 | PARSEOP_DWORDMEMORY '('
2580 error ')' {$$ = AslDoError(); yyclearin;}
2584 : PARSEOP_DWORDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
2585 ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2586 OptionalResourceType
2596 OptionalByteConstExpr
2598 OptionalNameString_Last
2599 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2600 | PARSEOP_DWORDSPACE '('
2601 error ')' {$$ = AslDoError(); yyclearin;}
2606 : PARSEOP_ENDDEPENDENTFN '('
2607 ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
2608 | PARSEOP_ENDDEPENDENTFN '('
2609 error ')' {$$ = AslDoError(); yyclearin;}
2613 : PARSEOP_EXTENDEDIO '(' {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
2614 OptionalResourceType_First
2624 OptionalQWordConstExpr
2627 OptionalTranslationType_Last
2628 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
2629 | PARSEOP_EXTENDEDIO '('
2630 error ')' {$$ = AslDoError(); yyclearin;}
2634 : PARSEOP_EXTENDEDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
2635 OptionalResourceType_First
2640 ',' OptionalReadWriteKeyword
2646 OptionalQWordConstExpr
2648 OptionalAddressRange
2650 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
2651 | PARSEOP_EXTENDEDMEMORY '('
2652 error ')' {$$ = AslDoError(); yyclearin;}
2656 : PARSEOP_EXTENDEDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
2657 ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2658 OptionalResourceType
2668 OptionalQWordConstExpr
2669 OptionalNameString_Last
2670 ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
2671 | PARSEOP_EXTENDEDSPACE '('
2672 error ')' {$$ = AslDoError(); yyclearin;}
2676 : PARSEOP_FIXEDIO '(' {$$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
2679 OptionalNameString_Last
2680 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
2681 | PARSEOP_FIXEDIO '('
2682 error ')' {$$ = AslDoError(); yyclearin;}
2686 : PARSEOP_INTERRUPT '(' {$$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
2687 OptionalResourceType_First
2688 ',' InterruptTypeKeyword
2691 OptionalByteConstExpr
2693 OptionalNameString_Last
2695 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
2696 | PARSEOP_INTERRUPT '('
2697 error ')' {$$ = AslDoError(); yyclearin;}
2701 : PARSEOP_IO '(' {$$ = TrCreateLeafNode (PARSEOP_IO);}
2707 OptionalNameString_Last
2708 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2710 error ')' {$$ = AslDoError(); yyclearin;}
2714 : PARSEOP_IRQNOFLAGS '(' {$$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
2715 OptionalNameString_First
2717 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2718 | PARSEOP_IRQNOFLAGS '('
2719 error ')' {$$ = AslDoError(); yyclearin;}
2723 : PARSEOP_IRQ '(' {$$ = TrCreateLeafNode (PARSEOP_IRQ);}
2724 InterruptTypeKeyword
2727 OptionalNameString_Last
2729 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
2731 error ')' {$$ = AslDoError(); yyclearin;}
2735 : PARSEOP_MEMORY24 '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
2736 OptionalReadWriteKeyword
2741 OptionalNameString_Last
2742 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2743 | PARSEOP_MEMORY24 '('
2744 error ')' {$$ = AslDoError(); yyclearin;}
2748 : PARSEOP_MEMORY32FIXED '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
2749 OptionalReadWriteKeyword
2752 OptionalNameString_Last
2753 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
2754 | PARSEOP_MEMORY32FIXED '('
2755 error ')' {$$ = AslDoError(); yyclearin;}
2759 : PARSEOP_MEMORY32 '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
2760 OptionalReadWriteKeyword
2765 OptionalNameString_Last
2766 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2767 | PARSEOP_MEMORY32 '('
2768 error ')' {$$ = AslDoError(); yyclearin;}
2772 : PARSEOP_QWORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
2773 OptionalResourceType_First
2783 OptionalByteConstExpr
2787 OptionalTranslationType_Last
2788 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2789 | PARSEOP_QWORDIO '('
2790 error ')' {$$ = AslDoError(); yyclearin;}
2794 : PARSEOP_QWORDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
2795 OptionalResourceType_First
2800 ',' OptionalReadWriteKeyword
2806 OptionalByteConstExpr
2809 OptionalAddressRange
2811 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2812 | PARSEOP_QWORDMEMORY '('
2813 error ')' {$$ = AslDoError(); yyclearin;}
2817 : PARSEOP_QWORDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
2818 ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2819 OptionalResourceType
2829 OptionalByteConstExpr
2831 OptionalNameString_Last
2832 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2833 | PARSEOP_QWORDSPACE '('
2834 error ')' {$$ = AslDoError(); yyclearin;}
2838 : PARSEOP_REGISTER '(' {$$ = TrCreateLeafNode (PARSEOP_REGISTER);}
2844 ')' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$11);}
2845 | PARSEOP_REGISTER '('
2846 error ')' {$$ = AslDoError(); yyclearin;}
2849 StartDependentFnTerm
2850 : PARSEOP_STARTDEPENDENTFN '(' {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
2854 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
2855 | PARSEOP_STARTDEPENDENTFN '('
2856 error ')' {$$ = AslDoError(); yyclearin;}
2859 StartDependentFnNoPriTerm
2860 : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
2862 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
2863 | PARSEOP_STARTDEPENDENTFN_NOPRI '('
2864 error ')' {$$ = AslDoError(); yyclearin;}
2868 : PARSEOP_VENDORLONG '(' {$$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
2869 OptionalNameString_First
2871 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2872 | PARSEOP_VENDORLONG '('
2873 error ')' {$$ = AslDoError(); yyclearin;}
2877 : PARSEOP_VENDORSHORT '(' {$$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
2878 OptionalNameString_First
2880 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2881 | PARSEOP_VENDORSHORT '('
2882 error ')' {$$ = AslDoError(); yyclearin;}
2886 : PARSEOP_WORDBUSNUMBER '(' {$$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
2887 OptionalResourceType_First
2896 OptionalByteConstExpr
2898 OptionalNameString_Last
2899 ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
2900 | PARSEOP_WORDBUSNUMBER '('
2901 error ')' {$$ = AslDoError(); yyclearin;}
2905 : PARSEOP_WORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_WORDIO);}
2906 OptionalResourceType_First
2916 OptionalByteConstExpr
2920 OptionalTranslationType_Last
2921 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2922 | PARSEOP_WORDIO '('
2923 error ')' {$$ = AslDoError(); yyclearin;}
2927 : PARSEOP_WORDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
2928 ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2929 OptionalResourceType
2939 OptionalByteConstExpr
2941 OptionalNameString_Last
2942 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2943 | PARSEOP_WORDSPACE '('
2944 error ')' {$$ = AslDoError(); yyclearin;}
2948 /******* Object References ***********************************************/
2953 | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2957 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2961 /******* Helper rules ****************************************************/
2964 AmlPackageLengthTerm
2965 : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
2968 OptionalBusMasterKeyword
2969 : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2970 | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2971 | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
2974 OptionalAccessAttribTerm
2977 | ',' ByteConstExpr {$$ = $2;}
2978 | ',' AccessAttribKeyword {$$ = $2;}
2982 : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2983 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2984 | ',' ByteConstExpr {$$ = $2;}
2987 OptionalAddressRange
2990 | ',' AddressKeyword {$$ = $2;}
2993 OptionalByteConstExpr
2996 | ',' ByteConstExpr {$$ = $2;}
3001 | ',' DecodeKeyword {$$ = $2;}
3004 OptionalDWordConstExpr
3007 | ',' DWordConstExpr {$$ = $2;}
3011 : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
3012 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
3013 | ',' TermArg {$$ = $2;}
3018 | ',' MaxKeyword {$$ = $2;}
3023 | ',' MemTypeKeyword {$$ = $2;}
3028 | ',' MinKeyword {$$ = $2;}
3034 | ',' NameString {$$ = $2;}
3037 OptionalNameString_Last
3040 | ',' NameString {$$ = $2;}
3043 OptionalNameString_First
3044 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
3045 | NameString {$$ = $1;}
3048 OptionalObjectTypeKeyword
3049 : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
3050 | ',' ObjectTypeKeyword {$$ = $2;}
3053 OptionalQWordConstExpr
3056 | ',' QWordConstExpr {$$ = $2;}
3061 | ',' RangeTypeKeyword {$$ = $2;}
3065 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
3066 | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
3067 | ',' DataObject {$$ = $2;}
3068 | ',' NameString {$$ = $2;}
3071 OptionalResourceType_First
3073 | ResourceTypeKeyword {$$ = $1;}
3076 OptionalResourceType
3079 | ',' ResourceTypeKeyword {$$ = $2;}
3082 OptionalSerializeRuleKeyword
3085 | ',' SerializeRuleKeyword {$$ = $2;}
3091 | ',' ShareTypeKeyword {$$ = $2;}
3097 | ',' StringData {$$ = $2;}
3102 | TermArg {$$ = $1;}
3106 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
3107 | TermArg {$$ = $1;}
3113 | ',' TypeKeyword {$$ = $2;}
3119 | ',' TypeKeyword {$$ = $2;}
3122 OptionalTranslationType_Last
3125 | ',' TranslationKeyword {$$ = $2;}
3130 : ',' TermArg {$$ = $2;}
3131 | ',' error {$$ = AslDoError (); yyclearin;}
3135 : ',' NameString {$$ = $2;}
3136 | ',' error {$$ = AslDoError (); yyclearin;}
3144 * Local support functions
3148 AslCompilerwrap(void)
3153 /*! [End] no source code translation !*/
3156 AslLocalAllocate (unsigned int Size)
3161 DbgPrint (ASL_PARSE_OUTPUT, "\nAslLocalAllocate: Expanding Stack to %d\n\n", Size);
3163 Mem = ACPI_MEM_CALLOCATE (Size);
3166 AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
3167 Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
3168 Gbl_InputByteCount, Gbl_CurrentColumn,
3169 Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
3181 return (TrCreateLeafNode (PARSEOP_ERRORNODE));