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 - 2004, 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 "aslcompiler.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_EISAID
254 %token <i> PARSEOP_ELSE
255 %token <i> PARSEOP_ELSEIF
256 %token <i> PARSEOP_ENDDEPENDENTFN
257 %token <i> PARSEOP_ERRORNODE
258 %token <i> PARSEOP_EVENT
259 %token <i> PARSEOP_EXTERNAL
260 %token <i> PARSEOP_FATAL
261 %token <i> PARSEOP_FIELD
262 %token <i> PARSEOP_FINDSETLEFTBIT
263 %token <i> PARSEOP_FINDSETRIGHTBIT
264 %token <i> PARSEOP_FIXEDIO
265 %token <i> PARSEOP_FROMBCD
266 %token <i> PARSEOP_IF
267 %token <i> PARSEOP_INCLUDE
268 %token <i> PARSEOP_INCLUDE_CSTYLE
269 %token <i> PARSEOP_INCLUDE_END
270 %token <i> PARSEOP_INCREMENT
271 %token <i> PARSEOP_INDEX
272 %token <i> PARSEOP_INDEXFIELD
273 %token <i> PARSEOP_INTEGER
274 %token <i> PARSEOP_INTERRUPT
275 %token <i> PARSEOP_INTLEVEL_ACTIVEHIGH
276 %token <i> PARSEOP_INTLEVEL_ACTIVELOW
277 %token <i> PARSEOP_INTTYPE_EDGE
278 %token <i> PARSEOP_INTTYPE_LEVEL
279 %token <i> PARSEOP_IO
280 %token <i> PARSEOP_IODECODETYPE_10
281 %token <i> PARSEOP_IODECODETYPE_16
282 %token <i> PARSEOP_IRQ
283 %token <i> PARSEOP_IRQNOFLAGS
284 %token <i> PARSEOP_LAND
285 %token <i> PARSEOP_LEQUAL
286 %token <i> PARSEOP_LGREATER
287 %token <i> PARSEOP_LGREATEREQUAL
288 %token <i> PARSEOP_LINE_CSTYLE
289 %token <i> PARSEOP_LLESS
290 %token <i> PARSEOP_LLESSEQUAL
291 %token <i> PARSEOP_LNOT
292 %token <i> PARSEOP_LNOTEQUAL
293 %token <i> PARSEOP_LOAD
294 %token <i> PARSEOP_LOADTABLE
295 %token <i> PARSEOP_LOCAL0
296 %token <i> PARSEOP_LOCAL1
297 %token <i> PARSEOP_LOCAL2
298 %token <i> PARSEOP_LOCAL3
299 %token <i> PARSEOP_LOCAL4
300 %token <i> PARSEOP_LOCAL5
301 %token <i> PARSEOP_LOCAL6
302 %token <i> PARSEOP_LOCAL7
303 %token <i> PARSEOP_LOCKRULE_LOCK
304 %token <i> PARSEOP_LOCKRULE_NOLOCK
305 %token <i> PARSEOP_LOR
306 %token <i> PARSEOP_MATCH
307 %token <i> PARSEOP_MATCHTYPE_MEQ
308 %token <i> PARSEOP_MATCHTYPE_MGE
309 %token <i> PARSEOP_MATCHTYPE_MGT
310 %token <i> PARSEOP_MATCHTYPE_MLE
311 %token <i> PARSEOP_MATCHTYPE_MLT
312 %token <i> PARSEOP_MATCHTYPE_MTR
313 %token <i> PARSEOP_MAXTYPE_FIXED
314 %token <i> PARSEOP_MAXTYPE_NOTFIXED
315 %token <i> PARSEOP_MEMORY24
316 %token <i> PARSEOP_MEMORY32
317 %token <i> PARSEOP_MEMORY32FIXED
318 %token <i> PARSEOP_MEMTYPE_CACHEABLE
319 %token <i> PARSEOP_MEMTYPE_NONCACHEABLE
320 %token <i> PARSEOP_MEMTYPE_PREFETCHABLE
321 %token <i> PARSEOP_MEMTYPE_WRITECOMBINING
322 %token <i> PARSEOP_METHOD
323 %token <i> PARSEOP_METHODCALL
324 %token <i> PARSEOP_MID
325 %token <i> PARSEOP_MINTYPE_FIXED
326 %token <i> PARSEOP_MINTYPE_NOTFIXED
327 %token <i> PARSEOP_MOD
328 %token <i> PARSEOP_MULTIPLY
329 %token <i> PARSEOP_MUTEX
330 %token <i> PARSEOP_NAME
331 %token <s> PARSEOP_NAMESEG
332 %token <s> PARSEOP_NAMESTRING
333 %token <i> PARSEOP_NAND
334 %token <i> PARSEOP_NOOP
335 %token <i> PARSEOP_NOR
336 %token <i> PARSEOP_NOT
337 %token <i> PARSEOP_NOTIFY
338 %token <i> PARSEOP_OBJECTTYPE
339 %token <i> PARSEOP_OBJECTTYPE_BFF
340 %token <i> PARSEOP_OBJECTTYPE_BUF
341 %token <i> PARSEOP_OBJECTTYPE_DDB
342 %token <i> PARSEOP_OBJECTTYPE_DEV
343 %token <i> PARSEOP_OBJECTTYPE_EVT
344 %token <i> PARSEOP_OBJECTTYPE_FLD
345 %token <i> PARSEOP_OBJECTTYPE_INT
346 %token <i> PARSEOP_OBJECTTYPE_MTH
347 %token <i> PARSEOP_OBJECTTYPE_MTX
348 %token <i> PARSEOP_OBJECTTYPE_OPR
349 %token <i> PARSEOP_OBJECTTYPE_PKG
350 %token <i> PARSEOP_OBJECTTYPE_POW
351 %token <i> PARSEOP_OBJECTTYPE_STR
352 %token <i> PARSEOP_OBJECTTYPE_THZ
353 %token <i> PARSEOP_OBJECTTYPE_UNK
354 %token <i> PARSEOP_OFFSET
355 %token <i> PARSEOP_ONE
356 %token <i> PARSEOP_ONES
357 %token <i> PARSEOP_OPERATIONREGION
358 %token <i> PARSEOP_OR
359 %token <i> PARSEOP_PACKAGE
360 %token <i> PARSEOP_PACKAGE_LENGTH
361 %token <i> PARSEOP_POWERRESOURCE
362 %token <i> PARSEOP_PROCESSOR
363 %token <i> PARSEOP_QWORDCONST
364 %token <i> PARSEOP_QWORDIO
365 %token <i> PARSEOP_QWORDMEMORY
366 %token <i> PARSEOP_RANGETYPE_ENTIRE
367 %token <i> PARSEOP_RANGETYPE_ISAONLY
368 %token <i> PARSEOP_RANGETYPE_NONISAONLY
369 %token <i> PARSEOP_RAW_DATA
370 %token <i> PARSEOP_READWRITETYPE_BOTH
371 %token <i> PARSEOP_READWRITETYPE_READONLY
372 %token <i> PARSEOP_REFOF
373 %token <i> PARSEOP_REGIONSPACE_CMOS
374 %token <i> PARSEOP_REGIONSPACE_EC
375 %token <i> PARSEOP_REGIONSPACE_IO
376 %token <i> PARSEOP_REGIONSPACE_MEM
377 %token <i> PARSEOP_REGIONSPACE_PCI
378 %token <i> PARSEOP_REGIONSPACE_PCIBAR
379 %token <i> PARSEOP_REGIONSPACE_SMBUS
380 %token <i> PARSEOP_REGISTER
381 %token <i> PARSEOP_RELEASE
382 %token <i> PARSEOP_RESERVED_BYTES
383 %token <i> PARSEOP_RESET
384 %token <i> PARSEOP_RESOURCETEMPLATE
385 %token <i> PARSEOP_RESOURCETYPE_CONSUMER
386 %token <i> PARSEOP_RESOURCETYPE_PRODUCER
387 %token <i> PARSEOP_RETURN
388 %token <i> PARSEOP_REVISION
389 %token <i> PARSEOP_SCOPE
390 %token <i> PARSEOP_SERIALIZERULE_NOTSERIAL
391 %token <i> PARSEOP_SERIALIZERULE_SERIAL
392 %token <i> PARSEOP_SHARETYPE_EXCLUSIVE
393 %token <i> PARSEOP_SHARETYPE_SHARED
394 %token <i> PARSEOP_SHIFTLEFT
395 %token <i> PARSEOP_SHIFTRIGHT
396 %token <i> PARSEOP_SIGNAL
397 %token <i> PARSEOP_SIZEOF
398 %token <i> PARSEOP_SLEEP
399 %token <i> PARSEOP_STALL
400 %token <i> PARSEOP_STARTDEPENDENTFN
401 %token <i> PARSEOP_STARTDEPENDENTFN_NOPRI
402 %token <i> PARSEOP_STORE
403 %token <s> PARSEOP_STRING_LITERAL
404 %token <i> PARSEOP_SUBTRACT
405 %token <i> PARSEOP_SWITCH
406 %token <i> PARSEOP_THERMALZONE
407 %token <i> PARSEOP_TOBCD
408 %token <i> PARSEOP_TOBUFFER
409 %token <i> PARSEOP_TODECIMALSTRING
410 %token <i> PARSEOP_TOHEXSTRING
411 %token <i> PARSEOP_TOINTEGER
412 %token <i> PARSEOP_TOSTRING
413 %token <i> PARSEOP_TRANSLATIONTYPE_DENSE
414 %token <i> PARSEOP_TRANSLATIONTYPE_SPARSE
415 %token <i> PARSEOP_TYPE_STATIC
416 %token <i> PARSEOP_TYPE_TRANSLATION
417 %token <i> PARSEOP_UNICODE
418 %token <i> PARSEOP_UNLOAD
419 %token <i> PARSEOP_UPDATERULE_ONES
420 %token <i> PARSEOP_UPDATERULE_PRESERVE
421 %token <i> PARSEOP_UPDATERULE_ZEROS
422 %token <i> PARSEOP_VAR_PACKAGE
423 %token <i> PARSEOP_VENDORLONG
424 %token <i> PARSEOP_VENDORSHORT
425 %token <i> PARSEOP_WAIT
426 %token <i> PARSEOP_WHILE
427 %token <i> PARSEOP_WORDBUSNUMBER
428 %token <i> PARSEOP_WORDCONST
429 %token <i> PARSEOP_WORDIO
430 %token <i> PARSEOP_XFERTYPE_8
431 %token <i> PARSEOP_XFERTYPE_8_16
432 %token <i> PARSEOP_XFERTYPE_16
433 %token <i> PARSEOP_XOR
434 %token <i> PARSEOP_ZERO
442 %type <n> DefinitionBlockTerm
445 %type <n> CompilerDirective
450 %type <n> PackageData
451 %type <n> IntegerData
453 %type <n> NamedObject
454 %type <n> NameSpaceModifier
457 %type <n> ArgListTail
460 %type <n> RequiredTarget
461 %type <n> SimpleTarget
462 %type <n> BufferTermData
464 %type <n> Type1Opcode
465 %type <n> Type2Opcode
466 %type <n> Type2IntegerOpcode
467 %type <n> Type2StringOpcode
468 %type <n> Type2BufferOpcode
469 %type <n> Type2BufferOrStringOpcode
470 %type <n> Type3Opcode
472 /* Obsolete %type <n> Type4Opcode */
474 %type <n> Type5Opcode
475 %type <n> Type6Opcode
478 %type <n> IncludeTerm
479 %type <n> IncludeCStyleTerm
480 %type <n> ExternalTerm
482 %type <n> FieldUnitList
483 %type <n> FieldUnitListTail
485 %type <n> FieldUnitEntry
488 %type <n> AccessAsTerm
489 %type <n> OptionalAccessAttribTerm
494 %type <n> BankFieldTerm
495 %type <n> CreateBitFieldTerm
496 %type <n> CreateByteFieldTerm
497 %type <n> CreateDWordFieldTerm
498 %type <n> CreateFieldTerm
499 %type <n> CreateQWordFieldTerm
500 %type <n> CreateWordFieldTerm
501 %type <n> DataRegionTerm
505 %type <n> IndexFieldTerm
508 %type <n> OpRegionTerm
509 %type <n> OpRegionSpaceIdTerm
510 %type <n> PowerResTerm
511 %type <n> ProcessorTerm
512 %type <n> ThermalZoneTerm
515 /* Namespace modifiers */
524 %type <n> BreakPointTerm
525 %type <n> ContinueTerm
533 %type <n> ReleaseTerm
540 %type <n> CaseTermList
541 %type <n> DefaultTermList
543 %type <n> DefaultTerm
549 %type <n> AcquireTerm
553 %type <n> ConcatResTerm
554 %type <n> CondRefOfTerm
555 %type <n> CopyObjectTerm
557 %type <n> DerefOfTerm
559 %type <n> FindSetLeftBitTerm
560 %type <n> FindSetRightBitTerm
561 %type <n> FromBCDTerm
566 %type <n> LGreaterTerm
567 %type <n> LGreaterEqualTerm
569 %type <n> LLessEqualTerm
571 %type <n> LNotEqualTerm
572 %type <n> LoadTableTerm
577 %type <n> MultiplyTerm
581 %type <n> ObjectTypeTerm
584 %type <n> ShiftLeftTerm
585 %type <n> ShiftRightTerm
588 %type <n> SubtractTerm
590 %type <n> ToBufferTerm
591 %type <n> ToDecimalStringTerm
592 %type <n> ToHexStringTerm
593 %type <n> ToIntegerTerm
594 %type <n> ToStringTerm
598 %type <n> OptionalTermArg
599 %type <n> OptionalListString
604 %type <n> ObjectTypeKeyword
605 %type <n> AccessTypeKeyword
606 %type <n> AccessAttribKeyword
607 %type <n> LockRuleKeyword
608 %type <n> UpdateRuleKeyword
609 %type <n> RegionSpaceKeyword
610 %type <n> AddressSpaceKeyword
611 %type <n> MatchOpKeyword
612 %type <n> SerializeRuleKeyword
613 %type <n> DMATypeKeyword
614 %type <n> BusMasterKeyword
615 %type <n> XferTypeKeyword
616 %type <n> ResourceTypeKeyword
619 %type <n> DecodeKeyword
620 %type <n> RangeTypeKeyword
621 %type <n> MemTypeKeyword
622 %type <n> ReadWriteKeyword
623 %type <n> InterruptTypeKeyword
624 %type <n> InterruptLevel
625 %type <n> ShareTypeKeyword
626 %type <n> IODecodeKeyword
627 %type <n> TypeKeyword
628 %type <n> TranslationKeyword
629 %type <n> AddressKeyword
654 %type <n> ByteConstExpr
655 %type <n> WordConstExpr
656 %type <n> DWordConstExpr
657 %type <n> QWordConstExpr
658 %type <n> ConstExprTerm
662 %type <n> ByteListTail
664 %type <n> DWordListTail
666 %type <n> PackageTerm
667 %type <n> PackageLengthTerm
668 %type <n> PackageList
669 %type <n> PackageListTail
670 %type <n> PackageElement
672 %type <n> VarPackageLengthTerm
676 %type <n> ResourceTemplateTerm
677 %type <n> UnicodeTerm
678 %type <n> ResourceMacroList
679 %type <n> ResourceMacroTerm
682 %type <n> DWordIOTerm
683 %type <n> DWordMemoryTerm
684 %type <n> EndDependentFnTerm
685 %type <n> FixedIOTerm
686 %type <n> InterruptTerm
688 %type <n> IRQNoFlagsTerm
690 %type <n> Memory24Term
691 %type <n> Memory32FixedTerm
692 %type <n> Memory32Term
693 %type <n> QWordIOTerm
694 %type <n> QWordMemoryTerm
695 %type <n> RegisterTerm
696 %type <n> StartDependentFnTerm
697 %type <n> StartDependentFnNoPriTerm
698 %type <n> VendorLongTerm
699 %type <n> VendorShortTerm
700 %type <n> WordBusNumberTerm
707 /* Local types that help construct the AML, not in ACPI spec */
709 %type <n> IncludeEndTerm
710 %type <n> AmlPackageLengthTerm
711 %type <n> OptionalByteConstExpr
712 %type <n> OptionalDWordConstExpr
713 %type <n> OptionalSerializeRuleKeyword
714 %type <n> OptionalResourceType_First
715 %type <n> OptionalMinType
716 %type <n> OptionalMaxType
717 %type <n> OptionalMemType
718 %type <n> OptionalCount
719 %type <n> OptionalDecodeType
720 %type <n> OptionalRangeType
721 %type <n> OptionalShareType
722 %type <n> OptionalType
723 %type <n> OptionalType_Last
724 %type <n> OptionalTranslationType_Last
725 %type <n> OptionalStringData
726 %type <n> OptionalNameString
727 %type <n> OptionalNameString_First
728 %type <n> OptionalNameString_Last
729 %type <n> OptionalAddressRange
730 %type <n> OptionalObjectTypeKeyword
731 %type <n> OptionalReference
734 %type <n> TermArgItem
735 %type <n> NameStringItem
740 /*******************************************************************************
742 * Production rules start here
744 ******************************************************************************/
752 * Blocks, Data, and Opcodes
756 : DefinitionBlockTerm
757 | error {YYABORT; $$ = NULL;}
761 : PARSEOP_DEFINITIONBLOCK '(' {$$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
768 ')' {TrSetEndLineNumber ($<n>3);}
769 '{' ObjectList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
774 | Term TermList {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
781 | Type2IntegerOpcode {}
782 | Type2StringOpcode {}
783 | Type2BufferOpcode {}
784 | Type2BufferOrStringOpcode {}
785 | error {$$ = AslDoError(); yyclearin;}
790 | IncludeCStyleTerm {$$ = NULL;}
791 | LineTerm {$$ = NULL;}
797 | Object ObjectList {$$ = TrLinkPeerNode ($1,$2);}
798 | error {$$ = AslDoError(); yyclearin;}
802 : CompilerDirective {}
804 | NameSpaceModifier {}
815 : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
816 | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
817 | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
826 : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
827 | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
833 : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
839 | CreateBitFieldTerm {}
840 | CreateByteFieldTerm {}
841 | CreateDWordFieldTerm {}
843 | CreateQWordFieldTerm {}
844 | CreateWordFieldTerm {}
865 : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
866 ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
871 | TermArg ArgListTail {$$ = TrLinkPeerNode ($1,$2);}
876 | ',' TermArg ArgListTail {$$ = TrLinkPeerNode ($2,$3);}
877 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
881 : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
882 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
883 | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
884 | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
885 | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
886 | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
887 | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
888 | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
889 | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
893 : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
894 | ',' {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
895 | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
899 : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
945 * A type 2 opcode evaluates to an Integer and cannot have a destination operand
948 Type2IntegerOpcode /* "Type3" opcodes */
953 | FindSetLeftBitTerm {}
954 | FindSetRightBitTerm {}
961 | LGreaterEqualTerm {}
984 Type2StringOpcode /* "Type4" Opcodes */
985 : ToDecimalStringTerm {}
990 Type2BufferOpcode /* "Type5" Opcodes */
995 Type2BufferOrStringOpcode
1001 * A type 3 opcode evaluates to an Integer and cannot have a destination operand
1011 | ToDecimalStringTerm {}
1012 | ToHexStringTerm {}
1020 : ResourceTemplateTerm {}
1032 : PARSEOP_INCLUDE '(' {$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
1033 String ')' {$$ = TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
1035 IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
1039 : PARSEOP_INCLUDE_END {$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
1043 : PARSEOP_INCLUDE_CSTYLE
1044 String {FlOpenIncludeFile ($2);}
1048 : PARSEOP_LINE_CSTYLE
1049 Integer {FlSetLineNumber ($2);}
1053 : PARSEOP_EXTERNAL '('
1055 OptionalObjectTypeKeyword
1056 ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,2,$3,$4);}
1057 | PARSEOP_EXTERNAL '('
1058 error ')' {$$ = AslDoError(); yyclearin;}
1062 /******* Named Objects *******************************************************/
1066 : PARSEOP_BANKFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
1070 ',' AccessTypeKeyword
1072 ',' UpdateRuleKeyword
1074 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
1075 | PARSEOP_BANKFIELD '('
1076 error ')' {$$ = AslDoError(); yyclearin;}
1082 FieldUnitListTail {$$ = TrLinkPeerNode ($1,$2);}
1087 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
1089 FieldUnitListTail {$$ = TrLinkPeerNode ($2,$3);}
1099 : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
1101 AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
1105 : PARSEOP_OFFSET '('
1106 AmlPackageLengthTerm
1107 ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
1108 | PARSEOP_OFFSET '('
1109 error ')' {$$ = AslDoError(); yyclearin;}
1113 : PARSEOP_ACCESSAS '('
1115 OptionalAccessAttribTerm
1116 ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
1117 | PARSEOP_ACCESSAS '('
1118 error ')' {$$ = AslDoError(); yyclearin;}
1122 : PARSEOP_CREATEBITFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
1126 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1127 | PARSEOP_CREATEBITFIELD '('
1128 error ')' {$$ = AslDoError(); yyclearin;}
1132 : PARSEOP_CREATEBYTEFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
1136 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1137 | PARSEOP_CREATEBYTEFIELD '('
1138 error ')' {$$ = AslDoError(); yyclearin;}
1141 CreateDWordFieldTerm
1142 : PARSEOP_CREATEDWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
1146 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1147 | PARSEOP_CREATEDWORDFIELD '('
1148 error ')' {$$ = AslDoError(); yyclearin;}
1152 : PARSEOP_CREATEFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
1157 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
1158 | PARSEOP_CREATEFIELD '('
1159 error ')' {$$ = AslDoError(); yyclearin;}
1162 CreateQWordFieldTerm
1163 : PARSEOP_CREATEQWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
1167 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1168 | PARSEOP_CREATEQWORDFIELD '('
1169 error ')' {$$ = AslDoError(); yyclearin;}
1173 : PARSEOP_CREATEWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
1177 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1178 | PARSEOP_CREATEWORDFIELD '('
1179 error ')' {$$ = AslDoError(); yyclearin;}
1183 : PARSEOP_DATATABLEREGION '(' {$$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
1188 ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
1189 | PARSEOP_DATATABLEREGION '('
1190 error ')' {$$ = AslDoError(); yyclearin;}
1194 : PARSEOP_DEVICE '(' {$$ = TrCreateLeafNode (PARSEOP_DEVICE);}
1197 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1198 | PARSEOP_DEVICE '('
1199 error ')' {$$ = AslDoError(); yyclearin;}
1203 : PARSEOP_EVENT '(' {$$ = TrCreateLeafNode (PARSEOP_EVENT);}
1205 ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
1207 error ')' {$$ = AslDoError(); yyclearin;}
1211 : PARSEOP_FIELD '(' {$$ = TrCreateLeafNode (PARSEOP_FIELD);}
1213 ',' AccessTypeKeyword
1215 ',' UpdateRuleKeyword
1217 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
1219 error ')' {$$ = AslDoError(); yyclearin;}
1223 : PARSEOP_INDEXFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
1226 ',' AccessTypeKeyword
1228 ',' UpdateRuleKeyword
1230 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
1231 | PARSEOP_INDEXFIELD '('
1232 error ')' {$$ = AslDoError(); yyclearin;}
1236 : PARSEOP_METHOD '(' {$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1238 OptionalByteConstExpr {$$ = UtCheckIntegerRange ($5, 0, 7);}
1239 OptionalSerializeRuleKeyword
1240 OptionalByteConstExpr
1242 TermList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$11);}
1243 | PARSEOP_METHOD '('
1244 error ')' {$$ = AslDoError(); yyclearin;}
1248 : PARSEOP_MUTEX '(' {$$ = TrCreateLeafNode (PARSEOP_MUTEX);}
1251 ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1253 error ')' {$$ = AslDoError(); yyclearin;}
1257 : PARSEOP_OPERATIONREGION '(' {$$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
1259 ',' OpRegionSpaceIdTerm
1262 ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
1263 | PARSEOP_OPERATIONREGION '('
1264 error ')' {$$ = AslDoError(); yyclearin;}
1268 : RegionSpaceKeyword {}
1269 | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1273 : PARSEOP_POWERRESOURCE '(' {$$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
1278 ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
1279 | PARSEOP_POWERRESOURCE '('
1280 error ')' {$$ = AslDoError(); yyclearin;}
1284 : PARSEOP_PROCESSOR '(' {$$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1287 OptionalDWordConstExpr
1288 OptionalByteConstExpr
1290 ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
1291 | PARSEOP_PROCESSOR '('
1292 error ')' {$$ = AslDoError(); yyclearin;}
1296 : PARSEOP_THERMALZONE '(' {$$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1299 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1300 | PARSEOP_THERMALZONE '('
1301 error ')' {$$ = AslDoError(); yyclearin;}
1305 /******* Namespace modifiers *************************************************/
1309 : PARSEOP_ALIAS '(' {$$ = TrCreateLeafNode (PARSEOP_ALIAS);}
1312 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
1314 error ')' {$$ = AslDoError(); yyclearin;}
1318 : PARSEOP_NAME '(' {$$ = TrCreateLeafNode (PARSEOP_NAME);}
1321 ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1323 error ')' {$$ = AslDoError(); yyclearin;}
1327 : PARSEOP_SCOPE '(' {$$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1330 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1332 error ')' {$$ = AslDoError(); yyclearin;}
1336 /******* Type 1 opcodes *******************************************************/
1340 : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
1344 : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
1348 : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
1352 : PARSEOP_FATAL '(' {$$ = TrCreateLeafNode (PARSEOP_FATAL);}
1356 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
1358 error ')' {$$ = AslDoError(); yyclearin;}
1362 : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
1366 : PARSEOP_IF '(' {$$ = TrCreateLeafNode (PARSEOP_IF);}
1370 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1372 error ')' {$$ = AslDoError(); yyclearin;}
1377 | PARSEOP_ELSE '{' {$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1379 {$$ = TrLinkChildren ($<n>3,1,$4);}
1381 | PARSEOP_ELSEIF '(' {$$ = TrCreateLeafNode (PARSEOP_ELSEIF);}
1385 ElseTerm {$$ = TrLinkChildren ($<n>3,3,$4,$7,$9);}
1387 | PARSEOP_ELSEIF '('
1388 error ')' {$$ = AslDoError(); yyclearin;}
1392 : PARSEOP_LOAD '(' {$$ = TrCreateLeafNode (PARSEOP_LOAD);}
1395 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1397 error ')' {$$ = AslDoError(); yyclearin;}
1401 : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1405 : PARSEOP_NOTIFY '(' {$$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1408 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1409 | PARSEOP_NOTIFY '('
1410 error ')' {$$ = AslDoError(); yyclearin;}
1414 : PARSEOP_RELEASE '(' {$$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1416 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1417 | PARSEOP_RELEASE '('
1418 error ')' {$$ = AslDoError(); yyclearin;}
1422 : PARSEOP_RESET '(' {$$ = TrCreateLeafNode (PARSEOP_RESET);}
1424 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1426 error ')' {$$ = AslDoError(); yyclearin;}
1430 : PARSEOP_RETURN '(' {$$ = TrCreateLeafNode (PARSEOP_RETURN);}
1432 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1433 | PARSEOP_RETURN '('
1434 error ')' {$$ = AslDoError(); yyclearin;}
1438 : PARSEOP_SIGNAL '(' {$$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1440 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1441 | PARSEOP_SIGNAL '('
1442 error ')' {$$ = AslDoError(); yyclearin;}
1446 : PARSEOP_SLEEP '(' {$$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1448 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1450 error ')' {$$ = AslDoError(); yyclearin;}
1454 : PARSEOP_STALL '(' {$$ = TrCreateLeafNode (PARSEOP_STALL);}
1456 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1458 error ')' {$$ = AslDoError(); yyclearin;}
1462 : PARSEOP_SWITCH '(' {$$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1466 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1467 | PARSEOP_SWITCH '('
1468 error ')' {$$ = AslDoError(); yyclearin;}
1475 DefaultTermList {$$ = TrLinkPeerNode ($1,$2);}
1477 CaseTermList {$$ = TrLinkPeerNode ($1,$2);}
1484 DefaultTermList {$$ = TrLinkPeerNode ($1,$2);}
1488 : PARSEOP_CASE '(' {$$ = TrCreateLeafNode (PARSEOP_CASE);}
1491 TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1493 error ')' {$$ = AslDoError(); yyclearin;}
1497 : PARSEOP_DEFAULT '{' {$$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
1498 TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
1499 | PARSEOP_DEFAULT '('
1500 error ')' {$$ = AslDoError(); yyclearin;}
1504 : PARSEOP_UNLOAD '(' {$$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1506 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1507 | PARSEOP_UNLOAD '('
1508 error ')' {$$ = AslDoError(); yyclearin;}
1512 : PARSEOP_WHILE '(' {$$ = TrCreateLeafNode (PARSEOP_WHILE);}
1514 ')' '{' TermList '}'
1515 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1517 error ')' {$$ = AslDoError(); yyclearin;}
1521 /******* Type 2 opcodes *******************************************************/
1524 : PARSEOP_ACQUIRE '(' {$$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
1527 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
1528 | PARSEOP_ACQUIRE '('
1529 error ')' {$$ = AslDoError(); yyclearin;}
1533 : PARSEOP_ADD '(' {$$ = TrCreateLeafNode (PARSEOP_ADD);}
1537 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1539 error ')' {$$ = AslDoError(); yyclearin;}
1543 : PARSEOP_AND '(' {$$ = TrCreateLeafNode (PARSEOP_AND);}
1547 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1549 error ')' {$$ = AslDoError(); yyclearin;}
1553 : PARSEOP_CONCATENATE '(' {$$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
1557 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1558 | PARSEOP_CONCATENATE '('
1559 error ')' {$$ = AslDoError(); yyclearin;}
1563 : PARSEOP_CONCATENATERESTEMPLATE '(' {$$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
1567 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1568 | PARSEOP_CONCATENATERESTEMPLATE '('
1569 error ')' {$$ = AslDoError(); yyclearin;}
1573 : PARSEOP_CONDREFOF '(' {$$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
1576 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1577 | PARSEOP_CONDREFOF '('
1578 error ')' {$$ = AslDoError(); yyclearin;}
1582 : PARSEOP_COPYOBJECT '(' {$$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
1585 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1586 | PARSEOP_COPYOBJECT '('
1587 error ')' {$$ = AslDoError(); yyclearin;}
1591 : PARSEOP_DECREMENT '(' {$$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
1593 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1594 | PARSEOP_DECREMENT '('
1595 error ')' {$$ = AslDoError(); yyclearin;}
1599 : PARSEOP_DEREFOF '(' {$$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
1601 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1602 | PARSEOP_DEREFOF '('
1603 error ')' {$$ = AslDoError(); yyclearin;}
1607 : PARSEOP_DIVIDE '(' {$$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
1612 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1613 | PARSEOP_DIVIDE '('
1614 error ')' {$$ = AslDoError(); yyclearin;}
1618 : PARSEOP_FINDSETLEFTBIT '(' {$$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
1621 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1622 | PARSEOP_FINDSETLEFTBIT '('
1623 error ')' {$$ = AslDoError(); yyclearin;}
1627 : PARSEOP_FINDSETRIGHTBIT '(' {$$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
1630 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1631 | PARSEOP_FINDSETRIGHTBIT '('
1632 error ')' {$$ = AslDoError(); yyclearin;}
1636 : PARSEOP_FROMBCD '(' {$$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1639 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1640 | PARSEOP_FROMBCD '('
1641 error ')' {$$ = AslDoError(); yyclearin;}
1645 : PARSEOP_INCREMENT '(' {$$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1647 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1648 | PARSEOP_INCREMENT '('
1649 error ')' {$$ = AslDoError(); yyclearin;}
1653 : PARSEOP_INDEX '(' {$$ = TrCreateLeafNode (PARSEOP_INDEX);}
1657 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1659 error ')' {$$ = AslDoError(); yyclearin;}
1663 : PARSEOP_LAND '(' {$$ = TrCreateLeafNode (PARSEOP_LAND);}
1666 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1668 error ')' {$$ = AslDoError(); yyclearin;}
1672 : PARSEOP_LEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1675 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1676 | PARSEOP_LEQUAL '('
1677 error ')' {$$ = AslDoError(); yyclearin;}
1681 : PARSEOP_LGREATER '(' {$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1684 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1685 | PARSEOP_LGREATER '('
1686 error ')' {$$ = AslDoError(); yyclearin;}
1690 : PARSEOP_LGREATEREQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1693 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1694 | PARSEOP_LGREATEREQUAL '('
1695 error ')' {$$ = AslDoError(); yyclearin;}
1699 : PARSEOP_LLESS '(' {$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1702 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1704 error ')' {$$ = AslDoError(); yyclearin;}
1708 : PARSEOP_LLESSEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1711 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1712 | PARSEOP_LLESSEQUAL '('
1713 error ')' {$$ = AslDoError(); yyclearin;}
1717 : PARSEOP_LNOT '(' {$$ = TrCreateLeafNode (PARSEOP_LNOT);}
1719 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1721 error ')' {$$ = AslDoError(); yyclearin;}
1725 : PARSEOP_LNOTEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1728 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1729 | PARSEOP_LNOTEQUAL '('
1730 error ')' {$$ = AslDoError(); yyclearin;}
1734 : PARSEOP_LOADTABLE '(' {$$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1741 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
1742 | PARSEOP_LOADTABLE '('
1743 error ')' {$$ = AslDoError(); yyclearin;}
1747 : PARSEOP_LOR '(' {$$ = TrCreateLeafNode (PARSEOP_LOR);}
1750 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1752 error ')' {$$ = AslDoError(); yyclearin;}
1756 : PARSEOP_MATCH '(' {$$ = TrCreateLeafNode (PARSEOP_MATCH);}
1763 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
1765 error ')' {$$ = AslDoError(); yyclearin;}
1769 : PARSEOP_MID '(' {$$ = TrCreateLeafNode (PARSEOP_MID);}
1774 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1776 error ')' {$$ = AslDoError(); yyclearin;}
1780 : PARSEOP_MOD '(' {$$ = TrCreateLeafNode (PARSEOP_MOD);}
1784 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1786 error ')' {$$ = AslDoError(); yyclearin;}
1790 : PARSEOP_MULTIPLY '(' {$$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1794 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1795 | PARSEOP_MULTIPLY '('
1796 error ')' {$$ = AslDoError(); yyclearin;}
1800 : PARSEOP_NAND '(' {$$ = TrCreateLeafNode (PARSEOP_NAND);}
1804 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1806 error ')' {$$ = AslDoError(); yyclearin;}
1810 : PARSEOP_NOR '(' {$$ = TrCreateLeafNode (PARSEOP_NOR);}
1814 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1816 error ')' {$$ = AslDoError(); yyclearin;}
1820 : PARSEOP_NOT '(' {$$ = TrCreateLeafNode (PARSEOP_NOT);}
1823 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1825 error ')' {$$ = AslDoError(); yyclearin;}
1829 : PARSEOP_OBJECTTYPE '(' {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1831 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1832 | PARSEOP_OBJECTTYPE '('
1833 error ')' {$$ = AslDoError(); yyclearin;}
1837 : PARSEOP_OR '(' {$$ = TrCreateLeafNode (PARSEOP_OR);}
1841 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1843 error ')' {$$ = AslDoError(); yyclearin;}
1847 * In RefOf, the node isn't really a target, but we can't keep track of it after
1848 * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1851 : PARSEOP_REFOF '(' {$$ = TrCreateLeafNode (PARSEOP_REFOF);}
1853 ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1855 error ')' {$$ = AslDoError(); yyclearin;}
1859 : PARSEOP_SHIFTLEFT '(' {$$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1863 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1864 | PARSEOP_SHIFTLEFT '('
1865 error ')' {$$ = AslDoError(); yyclearin;}
1869 : PARSEOP_SHIFTRIGHT '(' {$$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1873 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1874 | PARSEOP_SHIFTRIGHT '('
1875 error ')' {$$ = AslDoError(); yyclearin;}
1879 : PARSEOP_SIZEOF '(' {$$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1881 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1882 | PARSEOP_SIZEOF '('
1883 error ')' {$$ = AslDoError(); yyclearin;}
1887 : PARSEOP_STORE '(' {$$ = TrCreateLeafNode (PARSEOP_STORE);}
1890 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1892 error ')' {$$ = AslDoError(); yyclearin;}
1896 : PARSEOP_SUBTRACT '(' {$$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
1900 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1901 | PARSEOP_SUBTRACT '('
1902 error ')' {$$ = AslDoError(); yyclearin;}
1906 : PARSEOP_TOBCD '(' {$$ = TrCreateLeafNode (PARSEOP_TOBCD);}
1909 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1911 error ')' {$$ = AslDoError(); yyclearin;}
1915 : PARSEOP_TOBUFFER '(' {$$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
1918 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1919 | PARSEOP_TOBUFFER '('
1920 error ')' {$$ = AslDoError(); yyclearin;}
1924 : PARSEOP_TODECIMALSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
1927 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1928 | PARSEOP_TODECIMALSTRING '('
1929 error ')' {$$ = AslDoError(); yyclearin;}
1933 : PARSEOP_TOHEXSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
1936 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1937 | PARSEOP_TOHEXSTRING '('
1938 error ')' {$$ = AslDoError(); yyclearin;}
1942 : PARSEOP_TOINTEGER '(' {$$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
1945 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1946 | PARSEOP_TOINTEGER '('
1947 error ')' {$$ = AslDoError(); yyclearin;}
1951 : PARSEOP_TOSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
1955 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1956 | PARSEOP_TOSTRING '('
1957 error ')' {$$ = AslDoError(); yyclearin;}
1961 : PARSEOP_WAIT '(' {$$ = TrCreateLeafNode (PARSEOP_WAIT);}
1964 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1966 error ')' {$$ = AslDoError(); yyclearin;}
1970 : PARSEOP_XOR '(' {$$ = TrCreateLeafNode (PARSEOP_XOR);}
1974 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1976 error ')' {$$ = AslDoError(); yyclearin;}
1980 /******* Keywords *************************************************************/
1984 : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
1985 | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
1986 | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
1987 | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
1988 | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
1989 | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
1990 | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
1991 | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
1992 | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
1993 | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
1994 | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
1995 | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
1996 | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
1997 | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
1998 | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
2002 : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
2003 | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
2004 | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
2005 | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
2006 | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
2007 | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
2011 : PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
2012 | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
2013 | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
2014 | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
2015 | PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
2016 | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
2017 | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
2021 : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
2022 | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
2026 : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
2027 | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
2028 | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
2033 : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
2034 | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
2035 | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
2036 | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
2037 | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
2038 | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
2039 | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
2043 : ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
2044 | RegionSpaceKeyword {}
2045 | PARSEOP_ADDRESSSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
2049 SerializeRuleKeyword
2050 : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
2051 | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
2055 : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
2056 | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
2057 | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
2058 | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
2059 | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
2060 | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
2064 : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
2065 | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
2066 | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
2067 | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
2071 : PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2072 | PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
2076 : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
2077 | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
2078 | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
2082 : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2083 | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
2087 : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
2088 | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
2092 : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
2093 | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
2097 : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
2098 | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
2102 : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
2103 | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
2104 | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
2108 : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
2109 | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
2110 | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
2111 | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
2115 : PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2116 | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
2119 InterruptTypeKeyword
2120 : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
2121 | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
2125 : PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
2126 | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
2130 : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
2131 | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
2135 : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
2136 | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
2140 : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
2141 | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
2145 : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
2146 | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
2150 : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
2151 | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
2152 | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
2153 | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
2157 /******* Miscellaneous Types **************************************************/
2166 /* | UserTerm {} */ /* Caused reduce/reduce with Type6Opcode->UserTerm */
2170 : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
2171 | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
2172 | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
2173 | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
2174 | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
2175 | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
2176 | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
2180 : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
2181 | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
2182 | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
2183 | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
2184 | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
2185 | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
2186 | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
2187 | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
2191 : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
2196 : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2200 : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2204 : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2208 : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2212 : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
2216 : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2221 | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
2225 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2226 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2227 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2232 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2233 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2234 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2239 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2240 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2241 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2246 : Type3Opcode {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2247 | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2248 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2253 : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
2254 | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
2255 | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_INTEGER_MAX);}
2258 /* OptionalCount must appear before ByteList or an incorrect reduction will result */
2261 : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2262 | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2263 | ',' TermArg {$$ = $2;}
2268 : PARSEOP_BUFFER '(' {$$ = TrCreateLeafNode (PARSEOP_BUFFER);}
2271 BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2272 | PARSEOP_BUFFER '('
2273 error ')' {$$ = AslDoError(); yyclearin;}
2284 ByteListTail {$$ = TrLinkPeerNode ($1,$2);}
2289 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
2291 ByteListTail {$$ = TrLinkPeerNode ($2,$3);}
2297 DWordListTail {$$ = TrLinkPeerNode ($1,$2);}
2302 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
2303 | ',' DWordConstExpr
2304 DWordListTail {$$ = TrLinkPeerNode ($2,$3);}
2308 : PARSEOP_PACKAGE '(' {$$ = TrCreateLeafNode (PARSEOP_PACKAGE);}
2311 PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2312 | PARSEOP_PACKAGE '(' {$$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
2313 VarPackageLengthTerm
2315 PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2316 | PARSEOP_PACKAGE '('
2317 error ')' {$$ = AslDoError(); yyclearin;}
2325 VarPackageLengthTerm
2332 PackageListTail {$$ = TrLinkPeerNode ($1,$2);}
2337 | ',' {$$ = NULL;} /* Allows a trailing comma at list end */
2338 | ',' PackageElement
2339 PackageListTail {$$ = TrLinkPeerNode ($2,$3);}
2348 : PARSEOP_EISAID '('
2349 StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
2350 | PARSEOP_EISAID '('
2351 error ')' {$$ = AslDoError(); yyclearin;}
2355 /******* Resources and Memory ***********************************************/
2358 ResourceTemplateTerm
2359 : PARSEOP_RESOURCETEMPLATE '(' ')'
2361 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,3,
2362 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2363 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$5);}
2367 : PARSEOP_UNICODE '(' {$$ = TrCreateLeafNode (PARSEOP_UNICODE);}
2369 ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
2370 | PARSEOP_UNICODE '('
2371 error ')' {$$ = AslDoError(); yyclearin;}
2377 ResourceMacroList {$$ = TrLinkPeerNode ($1,$2);}
2383 | DWordMemoryTerm {}
2384 | EndDependentFnTerm {}
2391 | Memory32FixedTerm {}
2394 | QWordMemoryTerm {}
2396 | StartDependentFnTerm {}
2397 | StartDependentFnNoPriTerm {}
2399 | VendorShortTerm {}
2400 | WordBusNumberTerm {}
2405 : PARSEOP_DMA '(' {$$ = TrCreateLeafNode (PARSEOP_DMA);}
2407 ',' BusMasterKeyword
2409 OptionalNameString_Last
2411 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$9,$12);}
2413 error ')' {$$ = AslDoError(); yyclearin;}
2417 : PARSEOP_DWORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
2418 OptionalResourceType_First
2428 OptionalByteConstExpr
2432 OptionalTranslationType_Last
2433 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2434 | PARSEOP_DWORDIO '('
2435 error ')' {$$ = AslDoError(); yyclearin;}
2439 : PARSEOP_DWORDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
2440 OptionalResourceType_First
2445 ',' ReadWriteKeyword
2451 OptionalByteConstExpr
2454 OptionalAddressRange
2456 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2457 | PARSEOP_DWORDMEMORY '('
2458 error ')' {$$ = AslDoError(); yyclearin;}
2462 : PARSEOP_ENDDEPENDENTFN '('
2463 ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
2464 | PARSEOP_ENDDEPENDENTFN '('
2465 error ')' {$$ = AslDoError(); yyclearin;}
2469 : PARSEOP_FIXEDIO '(' {$$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
2472 OptionalNameString_Last
2473 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
2474 | PARSEOP_FIXEDIO '('
2475 error ')' {$$ = AslDoError(); yyclearin;}
2479 : PARSEOP_INTERRUPT '(' {$$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
2480 OptionalResourceType_First
2481 ',' InterruptTypeKeyword
2484 OptionalByteConstExpr
2486 OptionalNameString_Last
2488 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
2489 | PARSEOP_INTERRUPT '('
2490 error ')' {$$ = AslDoError(); yyclearin;}
2494 : PARSEOP_IO '(' {$$ = TrCreateLeafNode (PARSEOP_IO);}
2500 OptionalNameString_Last
2501 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2503 error ')' {$$ = AslDoError(); yyclearin;}
2507 : PARSEOP_IRQNOFLAGS '(' {$$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
2508 OptionalNameString_First
2510 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2511 | PARSEOP_IRQNOFLAGS '('
2512 error ')' {$$ = AslDoError(); yyclearin;}
2516 : PARSEOP_IRQ '(' {$$ = TrCreateLeafNode (PARSEOP_IRQ);}
2517 InterruptTypeKeyword
2520 OptionalNameString_Last
2522 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
2524 error ')' {$$ = AslDoError(); yyclearin;}
2528 : PARSEOP_MEMORY24 '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
2534 OptionalNameString_Last
2535 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2536 | PARSEOP_MEMORY24 '('
2537 error ')' {$$ = AslDoError(); yyclearin;}
2541 : PARSEOP_MEMORY32FIXED '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
2545 OptionalNameString_Last
2546 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
2547 | PARSEOP_MEMORY32FIXED '('
2548 error ')' {$$ = AslDoError(); yyclearin;}
2552 : PARSEOP_MEMORY32 '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
2558 OptionalNameString_Last
2559 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2560 | PARSEOP_MEMORY32 '('
2561 error ')' {$$ = AslDoError(); yyclearin;}
2565 : PARSEOP_QWORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
2566 OptionalResourceType_First
2576 OptionalByteConstExpr
2580 OptionalTranslationType_Last
2581 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2582 | PARSEOP_QWORDIO '('
2583 error ')' {$$ = AslDoError(); yyclearin;}
2587 : PARSEOP_QWORDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
2588 OptionalResourceType_First
2593 ',' ReadWriteKeyword
2599 OptionalByteConstExpr
2602 OptionalAddressRange
2604 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2605 | PARSEOP_QWORDMEMORY '('
2606 error ')' {$$ = AslDoError(); yyclearin;}
2610 : PARSEOP_REGISTER '(' {$$ = TrCreateLeafNode (PARSEOP_REGISTER);}
2615 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$10);}
2616 | PARSEOP_REGISTER '('
2617 error ')' {$$ = AslDoError(); yyclearin;}
2620 StartDependentFnTerm
2621 : PARSEOP_STARTDEPENDENTFN '(' {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
2625 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
2626 | PARSEOP_STARTDEPENDENTFN '('
2627 error ')' {$$ = AslDoError(); yyclearin;}
2630 StartDependentFnNoPriTerm
2631 : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
2633 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
2634 | PARSEOP_STARTDEPENDENTFN_NOPRI '('
2635 error ')' {$$ = AslDoError(); yyclearin;}
2639 : PARSEOP_VENDORLONG '(' {$$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
2640 OptionalNameString_First
2642 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2643 | PARSEOP_VENDORLONG '('
2644 error ')' {$$ = AslDoError(); yyclearin;}
2648 : PARSEOP_VENDORSHORT '(' {$$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
2649 OptionalNameString_First
2651 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2652 | PARSEOP_VENDORSHORT '('
2653 error ')' {$$ = AslDoError(); yyclearin;}
2657 : PARSEOP_WORDBUSNUMBER '(' {$$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
2658 OptionalResourceType_First
2667 OptionalByteConstExpr
2669 OptionalNameString_Last
2670 ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
2671 | PARSEOP_WORDBUSNUMBER '('
2672 error ')' {$$ = AslDoError(); yyclearin;}
2676 : PARSEOP_WORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_WORDIO);}
2677 OptionalResourceType_First
2687 OptionalByteConstExpr
2691 OptionalTranslationType_Last
2692 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2693 | PARSEOP_WORDIO '('
2694 error ')' {$$ = AslDoError(); yyclearin;}
2698 /******* Object References ***********************************************/
2703 | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2707 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2711 /******* Helper rules ****************************************************/
2714 AmlPackageLengthTerm
2715 : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
2718 OptionalAccessAttribTerm
2721 | ',' ByteConstExpr {$$ = $2;}
2722 | ',' AccessAttribKeyword {$$ = $2;}
2725 OptionalAddressRange
2728 | ',' AddressKeyword {$$ = $2;}
2731 OptionalByteConstExpr
2734 | ',' ByteConstExpr {$$ = $2;}
2739 | ',' DecodeKeyword {$$ = $2;}
2742 OptionalDWordConstExpr
2745 | ',' DWordConstExpr {$$ = $2;}
2749 : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
2750 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
2751 | ',' TermArg {$$ = $2;}
2756 | ',' MaxKeyword {$$ = $2;}
2761 | ',' MemTypeKeyword {$$ = $2;}
2766 | ',' MinKeyword {$$ = $2;}
2772 | ',' NameString {$$ = $2;}
2775 OptionalNameString_Last
2778 | ',' NameString {$$ = $2;}
2781 OptionalNameString_First
2782 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
2783 | NameString {$$ = $1;}
2786 OptionalObjectTypeKeyword
2787 : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
2788 | ',' ObjectTypeKeyword {$$ = $2;}
2793 | ',' RangeTypeKeyword {$$ = $2;}
2797 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
2798 | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
2799 | ',' DataObject {$$ = $2;}
2800 | ',' NameString {$$ = $2;}
2803 OptionalResourceType_First
2805 | ResourceTypeKeyword {$$ = $1;}
2808 OptionalSerializeRuleKeyword
2811 | ',' SerializeRuleKeyword {$$ = $2;}
2817 | ',' ShareTypeKeyword {$$ = $2;}
2823 | ',' StringData {$$ = $2;}
2828 | TermArg {$$ = $1;}
2834 | ',' TypeKeyword {$$ = $2;}
2840 | ',' TypeKeyword {$$ = $2;}
2843 OptionalTranslationType_Last
2846 | ',' TranslationKeyword {$$ = $2;}
2851 : ',' TermArg {$$ = $2;}
2852 | ',' error {$$ = AslDoError (); yyclearin;}
2856 : ',' NameString {$$ = $2;}
2857 | ',' error {$$ = AslDoError (); yyclearin;}
2865 * Local support functions
2869 AslCompilerwrap(void)
2874 /*! [End] no source code translation !*/
2877 AslLocalAllocate (unsigned int Size)
2882 DbgPrint (ASL_PARSE_OUTPUT, "\nAslLocalAllocate: Expanding Stack to %d\n\n", Size);
2884 Mem = ACPI_MEM_CALLOCATE (Size);
2887 AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
2888 Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
2889 Gbl_InputByteCount, Gbl_CurrentColumn,
2890 Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
2902 return (TrCreateLeafNode (PARSEOP_ERRORNODE));