diff --git a/generate/msvc9/AslCompiler.vcproj b/generate/msvc9/AslCompiler.vcproj
index 50afb36d1..291cbbec9 100755
--- a/generate/msvc9/AslCompiler.vcproj
+++ b/generate/msvc9/AslCompiler.vcproj
@@ -232,7 +232,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3123,189 +2093,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3634,160 +2421,1443 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config
index 8d41399cd..dd7fd7561 100644
--- a/generate/unix/Makefile.config
+++ b/generate/unix/Makefile.config
@@ -206,6 +206,8 @@ endif
# -Wconversion\
# -Wshadow\
+#
+# M4 macro processor is used to build the final parser file
#
# Bison/Flex configuration
#
@@ -226,6 +228,9 @@ endif
YACC= bison
YFLAGS += -y
+MACROPROC= m4
+MFLAGS= -P -I$(ASL_COMPILER)
+
LEX= flex
LFLAGS += -i -s
diff --git a/generate/unix/iasl/Makefile b/generate/unix/iasl/Makefile
index 4ebc32778..f4b6ef39d 100644
--- a/generate/unix/iasl/Makefile
+++ b/generate/unix/iasl/Makefile
@@ -213,6 +213,7 @@ OBJECTS = \
$(OBJDIR)/utxferror.o
INTERMEDIATES = \
+ $(OBJDIR)/aslcompiler.y\
$(OBJDIR)/aslcompilerlex.c\
$(OBJDIR)/aslcompilerparse.c\
$(OBJDIR)/dtparserlex.c\
@@ -225,6 +226,18 @@ MISC = \
$(OBJDIR)/dtparser.y.h\
$(OBJDIR)/prparser.y.h
+ASL_PARSER = \
+ $(ASL_COMPILER)/aslparser.y\
+ $(ASL_COMPILER)/asltokens.y\
+ $(ASL_COMPILER)/asltypes.y\
+ $(ASL_COMPILER)/aslrules.y
+
+ASL_LEXER = \
+ $(ASL_COMPILER)/aslcompiler.l\
+ $(ASL_COMPILER)/aslsupport.l\
+ $(OBJDIR)/aslcompiler.y.h
+
+
#
# Flags specific to iASL compiler
#
@@ -238,17 +251,22 @@ CFLAGS += \
#
include ../Makefile.rules
+#
+# Macro processing for iASL .y files
+#
+$(OBJDIR)/aslcompiler.y : $(ASL_PARSER)
+ $(MACROPROC) $(MFLAGS) $(ASL_COMPILER)/aslparser.y > $(OBJDIR)/aslcompiler.y
#
# Parser and Lexer - intermediate C files
#
-$(OBJDIR)/aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l $(ASL_COMPILER)/aslsupport.l $(OBJDIR)/aslcompiler.y.h
+$(OBJDIR)/aslcompilerlex.c : $(ASL_LEXER)
$(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
-$(OBJDIR)/aslcompiler.y.h : $(ASL_COMPILER)/aslcompiler.y
+$(OBJDIR)/aslcompiler.y.h : $(OBJDIR)/aslcompiler.y
$(YACC) $(YFLAGS) -pAslCompiler -o/dev/null --defines=$@ $<
-$(OBJDIR)/aslcompilerparse.c : $(ASL_COMPILER)/aslcompiler.y
+$(OBJDIR)/aslcompilerparse.c : $(OBJDIR)/aslcompiler.y
$(YACC) $(YFLAGS) -pAslCompiler -o$@ --defines=/dev/null $<
$(OBJDIR)/dtparserlex.c : $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h
diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y
new file mode 100755
index 000000000..6946d5561
--- /dev/null
+++ b/source/compiler/aslparser.y
@@ -0,0 +1,202 @@
+%{
+/******************************************************************************
+ *
+ * Module Name: aslparser.y - Master Bison/Yacc input file for iASL
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * 2. License
+ *
+ * 2.1. This is your license from Intel Corp. under its intellectual property
+ * rights. You may have additional license terms from the party that provided
+ * you this software, covering your right to use that party's intellectual
+ * property rights.
+ *
+ * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+ * copy of the source code appearing in this file ("Covered Code") an
+ * irrevocable, perpetual, worldwide license under Intel's copyrights in the
+ * base code distributed originally by Intel ("Original Intel Code") to copy,
+ * make derivatives, distribute, use and display any portion of the Covered
+ * Code in any form, with the right to sublicense such rights; and
+ *
+ * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+ * license (with the right to sublicense), under only those claims of Intel
+ * patents that are infringed by the Original Intel Code, to make, use, sell,
+ * offer to sell, and import the Covered Code and derivative works thereof
+ * solely to the minimum extent necessary to exercise the above copyright
+ * license, and in no event shall the patent license extend to any additions
+ * to or modifications of the Original Intel Code. No other license or right
+ * is granted directly or by implication, estoppel or otherwise;
+ *
+ * The above copyright and patent license is granted only if the following
+ * conditions are met:
+ *
+ * 3. Conditions
+ *
+ * 3.1. Redistribution of Source with Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification with rights to further distribute source must include
+ * the above Copyright Notice, the above License, this list of Conditions,
+ * and the following Disclaimer and Export Compliance provision. In addition,
+ * Licensee must cause all Covered Code to which Licensee contributes to
+ * contain a file documenting the changes Licensee made to create that Covered
+ * Code and the date of any change. Licensee must include in that file the
+ * documentation of any changes made by any predecessor Licensee. Licensee
+ * must include a prominent statement that the modification is derived,
+ * directly or indirectly, from Original Intel Code.
+ *
+ * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification without rights to further distribute source must
+ * include the following Disclaimer and Export Compliance provision in the
+ * documentation and/or other materials provided with distribution. In
+ * addition, Licensee may not authorize further sublicense of source of any
+ * portion of the Covered Code, and must include terms to the effect that the
+ * license from Licensee to its licensee is limited to the intellectual
+ * property embodied in the software Licensee provides to its licensee, and
+ * not to intellectual property embodied in modifications its licensee may
+ * make.
+ *
+ * 3.3. Redistribution of Executable. Redistribution in executable form of any
+ * substantial portion of the Covered Code or modification must reproduce the
+ * above Copyright Notice, and the following Disclaimer and Export Compliance
+ * provision in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3.4. Intel retains all right, title, and interest in and to the Original
+ * Intel Code.
+ *
+ * 3.5. Neither the name Intel nor any other trademark owned or controlled by
+ * Intel shall be used in advertising or otherwise to promote the sale, use or
+ * other dealings in products derived from or relating to the Covered Code
+ * without prior written authorization from Intel.
+ *
+ * 4. Disclaimer and Export Compliance
+ *
+ * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+ * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+ * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+ * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+ * PARTICULAR PURPOSE.
+ *
+ * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+ * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+ * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+ * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+ * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+ * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+ * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+ * LIMITED REMEDY.
+ *
+ * 4.3. Licensee shall not export, either directly or indirectly, any of this
+ * software or system incorporating such software without first obtaining any
+ * required license or other approval from the U. S. Department of Commerce or
+ * any other agency or department of the United States Government. In the
+ * event Licensee exports any such software from the United States or
+ * re-exports any such software from a foreign destination, Licensee shall
+ * ensure that the distribution and export/re-export of the software is in
+ * compliance with all laws, regulations, orders, or other restrictions of the
+ * U.S. Export Administration Regulations. Licensee agrees that neither it nor
+ * any of its subsidiaries will export/re-export any technical data, process,
+ * software, or service, directly or indirectly, to any country for which the
+ * United States government or any agency thereof requires an export license,
+ * other governmental approval, or letter of assurance, without first obtaining
+ * such license, approval or letter.
+ *
+ *****************************************************************************/
+
+#include "aslcompiler.h"
+#include
+#include
+#include
+#include "acpi.h"
+#include "accommon.h"
+
+#define _COMPONENT ACPI_COMPILER
+ ACPI_MODULE_NAME ("aslparse")
+
+/*
+ * Global Notes:
+ *
+ * October 2005: The following list terms have been optimized (from the
+ * original ASL grammar in the ACPI specification) to force the immediate
+ * reduction of each list item so that the parse stack use doesn't increase on
+ * each list element and possibly overflow on very large lists (>4000 items).
+ * This dramatically reduces use of the parse stack overall.
+ *
+ * ArgList, TermList, Objectlist, ByteList, DWordList, PackageList,
+ * ResourceMacroList, and FieldUnitList
+ */
+
+void * AslLocalAllocate (unsigned int Size);
+
+/* Bison/yacc configuration */
+
+#define static
+#undef alloca
+#define alloca AslLocalAllocate
+#define yytname AslCompilername
+
+#define YYINITDEPTH 600 /* State stack depth */
+#define YYDEBUG 1 /* Enable debug output */
+#define YYERROR_VERBOSE 1 /* Verbose error messages */
+#define YYFLAG -32768
+
+/* Define YYMALLOC/YYFREE to prevent redefinition errors */
+
+#define YYMALLOC malloc
+#define YYFREE free
+%}
+
+/*
+ * Declare the type of values in the grammar
+ */
+%union {
+ UINT64 i;
+ char *s;
+ ACPI_PARSE_OBJECT *n;
+}
+
+/*
+ * These shift/reduce conflicts are expected. There should be zero
+ * reduce/reduce conflicts.
+ */
+%expect 86
+
+/*! [Begin] no source code translation */
+
+/*
+ * The M4 macro processor is used to bring in the parser items,
+ * in order to keep this master file smaller, and to break up
+ * the various parser items.
+ */
+m4_define(NoEcho)
+
+/* Token types */
+
+m4_include(asltokens.y)
+
+/* Production types/names */
+
+m4_include(asltypes.y)
+%%
+
+/* Production rules */
+
+m4_include(aslrules.y)
+%%
+
+/*! [End] no source code translation !*/
+
+/* Local support functions in C */
+
+m4_include(aslsupport.y)
diff --git a/source/compiler/aslcompiler.y b/source/compiler/aslrules.y
old mode 100644
new mode 100755
similarity index 82%
rename from source/compiler/aslcompiler.y
rename to source/compiler/aslrules.y
index 25130bfdf..509ef65ed
--- a/source/compiler/aslcompiler.y
+++ b/source/compiler/aslrules.y
@@ -1,7 +1,7 @@
-%{
+NoEcho('
/******************************************************************************
*
- * Module Name: aslcompiler.y - Bison/Yacc input file (ASL grammar and actions)
+ * Module Name: aslrules.y - Bison/Yacc production rules
*
*****************************************************************************/
@@ -113,756 +113,8 @@
* such license, approval or letter.
*
*****************************************************************************/
+')
-#include "aslcompiler.h"
-#include
-#include
-#include
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslparse")
-
-/*
- * Global Notes:
- *
- * October 2005: The following list terms have been optimized (from the
- * original ASL grammar in the ACPI specification) to force the immediate
- * reduction of each list item so that the parse stack use doesn't increase on
- * each list element and possibly overflow on very large lists (>4000 items).
- * This dramatically reduces use of the parse stack overall.
- *
- * ArgList, TermList, Objectlist, ByteList, DWordList, PackageList,
- * ResourceMacroList, and FieldUnitList
- */
-
-void * AslLocalAllocate (unsigned int Size);
-
-/* Bison/yacc configuration */
-
-#define static
-#undef alloca
-#define alloca AslLocalAllocate
-#define yytname AslCompilername
-
-#define YYINITDEPTH 600 /* State stack depth */
-#define YYDEBUG 1 /* Enable debug output */
-#define YYERROR_VERBOSE 1 /* Verbose error messages */
-
-/* Define YYMALLOC/YYFREE to prevent redefinition errors */
-
-#define YYMALLOC malloc
-#define YYFREE free
-
-/*
- * The windows version of bison defines this incorrectly as "32768" (Not negative).
- * We use a custom (edited binary) version of bison that defines YYFLAG as YYFBAD
- * instead (#define YYFBAD 32768), so we can define it correctly here.
- *
- * The problem is that if YYFLAG is positive, the extended syntax error messages
- * are disabled.
- */
-#define YYFLAG -32768
-
-%}
-
-/*
- * Declare the type of values in the grammar
- */
-%union {
- UINT64 i;
- char *s;
- ACPI_PARSE_OBJECT *n;
-}
-
-/*! [Begin] no source code translation */
-
-/*
- * These shift/reduce conflicts are expected. There should be zero
- * reduce/reduce conflicts.
- */
-%expect 86
-
-/******************************************************************************
- *
- * Token types: These are returned by the lexer
- *
- * NOTE: This list MUST match the AslKeywordMapping table found
- * in aslmap.c EXACTLY! Double check any changes!
- *
- *****************************************************************************/
-
-%token PARSEOP_ACCESSAS
-%token PARSEOP_ACCESSATTRIB_BLOCK
-%token PARSEOP_ACCESSATTRIB_BLOCK_CALL
-%token PARSEOP_ACCESSATTRIB_BYTE
-%token PARSEOP_ACCESSATTRIB_MULTIBYTE
-%token PARSEOP_ACCESSATTRIB_QUICK
-%token PARSEOP_ACCESSATTRIB_RAW_BYTES
-%token PARSEOP_ACCESSATTRIB_RAW_PROCESS
-%token PARSEOP_ACCESSATTRIB_SND_RCV
-%token PARSEOP_ACCESSATTRIB_WORD
-%token PARSEOP_ACCESSATTRIB_WORD_CALL
-%token PARSEOP_ACCESSTYPE_ANY
-%token PARSEOP_ACCESSTYPE_BUF
-%token PARSEOP_ACCESSTYPE_BYTE
-%token PARSEOP_ACCESSTYPE_DWORD
-%token PARSEOP_ACCESSTYPE_QWORD
-%token PARSEOP_ACCESSTYPE_WORD
-%token PARSEOP_ACQUIRE
-%token PARSEOP_ADD
-%token PARSEOP_ADDRESSINGMODE_7BIT
-%token PARSEOP_ADDRESSINGMODE_10BIT
-%token PARSEOP_ADDRESSTYPE_ACPI
-%token PARSEOP_ADDRESSTYPE_MEMORY
-%token PARSEOP_ADDRESSTYPE_NVS
-%token PARSEOP_ADDRESSTYPE_RESERVED
-%token PARSEOP_ALIAS
-%token PARSEOP_AND
-%token PARSEOP_ARG0
-%token PARSEOP_ARG1
-%token PARSEOP_ARG2
-%token PARSEOP_ARG3
-%token PARSEOP_ARG4
-%token PARSEOP_ARG5
-%token PARSEOP_ARG6
-%token PARSEOP_BANKFIELD
-%token PARSEOP_BITSPERBYTE_EIGHT
-%token PARSEOP_BITSPERBYTE_FIVE
-%token PARSEOP_BITSPERBYTE_NINE
-%token PARSEOP_BITSPERBYTE_SEVEN
-%token PARSEOP_BITSPERBYTE_SIX
-%token PARSEOP_BREAK
-%token PARSEOP_BREAKPOINT
-%token PARSEOP_BUFFER
-%token PARSEOP_BUSMASTERTYPE_MASTER
-%token PARSEOP_BUSMASTERTYPE_NOTMASTER
-%token PARSEOP_BYTECONST
-%token PARSEOP_CASE
-%token PARSEOP_CLOCKPHASE_FIRST
-%token PARSEOP_CLOCKPHASE_SECOND
-%token PARSEOP_CLOCKPOLARITY_HIGH
-%token PARSEOP_CLOCKPOLARITY_LOW
-%token PARSEOP_CONCATENATE
-%token PARSEOP_CONCATENATERESTEMPLATE
-%token PARSEOP_CONDREFOF
-%token PARSEOP_CONNECTION
-%token PARSEOP_CONTINUE
-%token PARSEOP_COPYOBJECT
-%token PARSEOP_CREATEBITFIELD
-%token PARSEOP_CREATEBYTEFIELD
-%token PARSEOP_CREATEDWORDFIELD
-%token PARSEOP_CREATEFIELD
-%token PARSEOP_CREATEQWORDFIELD
-%token PARSEOP_CREATEWORDFIELD
-%token PARSEOP_DATABUFFER
-%token PARSEOP_DATATABLEREGION
-%token PARSEOP_DEBUG
-%token PARSEOP_DECODETYPE_POS
-%token PARSEOP_DECODETYPE_SUB
-%token PARSEOP_DECREMENT
-%token PARSEOP_DEFAULT
-%token PARSEOP_DEFAULT_ARG
-%token PARSEOP_DEFINITIONBLOCK
-%token PARSEOP_DEREFOF
-%token PARSEOP_DEVICE
-%token PARSEOP_DEVICEPOLARITY_HIGH
-%token PARSEOP_DEVICEPOLARITY_LOW
-%token PARSEOP_DIVIDE
-%token PARSEOP_DMA
-%token PARSEOP_DMATYPE_A
-%token PARSEOP_DMATYPE_COMPATIBILITY
-%token PARSEOP_DMATYPE_B
-%token PARSEOP_DMATYPE_F
-%token PARSEOP_DWORDCONST
-%token PARSEOP_DWORDIO
-%token PARSEOP_DWORDMEMORY
-%token PARSEOP_DWORDSPACE
-%token PARSEOP_EISAID
-%token PARSEOP_ELSE
-%token PARSEOP_ELSEIF
-%token PARSEOP_ENDDEPENDENTFN
-%token PARSEOP_ENDIAN_BIG
-%token PARSEOP_ENDIAN_LITTLE
-%token PARSEOP_ENDTAG
-%token PARSEOP_ERRORNODE
-%token PARSEOP_EVENT
-%token PARSEOP_EXTENDEDIO
-%token PARSEOP_EXTENDEDMEMORY
-%token PARSEOP_EXTENDEDSPACE
-%token PARSEOP_EXTERNAL
-%token PARSEOP_FATAL
-%token PARSEOP_FIELD
-%token PARSEOP_FINDSETLEFTBIT
-%token PARSEOP_FINDSETRIGHTBIT
-%token PARSEOP_FIXEDDMA
-%token PARSEOP_FIXEDIO
-%token PARSEOP_FLOWCONTROL_HW
-%token PARSEOP_FLOWCONTROL_NONE
-%token PARSEOP_FLOWCONTROL_SW
-%token PARSEOP_FROMBCD
-%token PARSEOP_FUNCTION
-%token PARSEOP_GPIO_INT
-%token PARSEOP_GPIO_IO
-%token PARSEOP_I2C_SERIALBUS
-%token PARSEOP_IF
-%token PARSEOP_INCLUDE
-%token PARSEOP_INCLUDE_END
-%token PARSEOP_INCREMENT
-%token PARSEOP_INDEX
-%token PARSEOP_INDEXFIELD
-%token PARSEOP_INTEGER
-%token PARSEOP_INTERRUPT
-%token PARSEOP_INTLEVEL_ACTIVEBOTH
-%token PARSEOP_INTLEVEL_ACTIVEHIGH
-%token PARSEOP_INTLEVEL_ACTIVELOW
-%token PARSEOP_INTTYPE_EDGE
-%token PARSEOP_INTTYPE_LEVEL
-%token PARSEOP_IO
-%token PARSEOP_IODECODETYPE_10
-%token PARSEOP_IODECODETYPE_16
-%token PARSEOP_IORESTRICT_IN
-%token PARSEOP_IORESTRICT_NONE
-%token PARSEOP_IORESTRICT_OUT
-%token PARSEOP_IORESTRICT_PRESERVE
-%token PARSEOP_IRQ
-%token PARSEOP_IRQNOFLAGS
-%token PARSEOP_LAND
-%token PARSEOP_LEQUAL
-%token PARSEOP_LGREATER
-%token PARSEOP_LGREATEREQUAL
-%token PARSEOP_LLESS
-%token PARSEOP_LLESSEQUAL
-%token PARSEOP_LNOT
-%token PARSEOP_LNOTEQUAL
-%token PARSEOP_LOAD
-%token PARSEOP_LOADTABLE
-%token PARSEOP_LOCAL0
-%token PARSEOP_LOCAL1
-%token PARSEOP_LOCAL2
-%token PARSEOP_LOCAL3
-%token PARSEOP_LOCAL4
-%token PARSEOP_LOCAL5
-%token PARSEOP_LOCAL6
-%token PARSEOP_LOCAL7
-%token PARSEOP_LOCKRULE_LOCK
-%token PARSEOP_LOCKRULE_NOLOCK
-%token PARSEOP_LOR
-%token PARSEOP_MATCH
-%token PARSEOP_MATCHTYPE_MEQ
-%token PARSEOP_MATCHTYPE_MGE
-%token PARSEOP_MATCHTYPE_MGT
-%token PARSEOP_MATCHTYPE_MLE
-%token PARSEOP_MATCHTYPE_MLT
-%token PARSEOP_MATCHTYPE_MTR
-%token PARSEOP_MAXTYPE_FIXED
-%token PARSEOP_MAXTYPE_NOTFIXED
-%token PARSEOP_MEMORY24
-%token PARSEOP_MEMORY32
-%token PARSEOP_MEMORY32FIXED
-%token PARSEOP_MEMTYPE_CACHEABLE
-%token PARSEOP_MEMTYPE_NONCACHEABLE
-%token PARSEOP_MEMTYPE_PREFETCHABLE
-%token PARSEOP_MEMTYPE_WRITECOMBINING
-%token PARSEOP_METHOD
-%token PARSEOP_METHODCALL
-%token PARSEOP_MID
-%token PARSEOP_MINTYPE_FIXED
-%token PARSEOP_MINTYPE_NOTFIXED
-%token PARSEOP_MOD
-%token PARSEOP_MULTIPLY
-%token PARSEOP_MUTEX
-%token PARSEOP_NAME
-%token PARSEOP_NAMESEG
-%token PARSEOP_NAMESTRING
-%token PARSEOP_NAND
-%token PARSEOP_NOOP
-%token PARSEOP_NOR
-%token PARSEOP_NOT
-%token PARSEOP_NOTIFY
-%token PARSEOP_OBJECTTYPE
-%token PARSEOP_OBJECTTYPE_BFF
-%token PARSEOP_OBJECTTYPE_BUF
-%token PARSEOP_OBJECTTYPE_DDB
-%token PARSEOP_OBJECTTYPE_DEV
-%token PARSEOP_OBJECTTYPE_EVT
-%token PARSEOP_OBJECTTYPE_FLD
-%token PARSEOP_OBJECTTYPE_INT
-%token PARSEOP_OBJECTTYPE_MTH
-%token PARSEOP_OBJECTTYPE_MTX
-%token PARSEOP_OBJECTTYPE_OPR
-%token PARSEOP_OBJECTTYPE_PKG
-%token PARSEOP_OBJECTTYPE_POW
-%token PARSEOP_OBJECTTYPE_PRO
-%token PARSEOP_OBJECTTYPE_STR
-%token PARSEOP_OBJECTTYPE_THZ
-%token PARSEOP_OBJECTTYPE_UNK
-%token PARSEOP_OFFSET
-%token PARSEOP_ONE
-%token PARSEOP_ONES
-%token PARSEOP_OPERATIONREGION
-%token PARSEOP_OR
-%token PARSEOP_PACKAGE
-%token PARSEOP_PACKAGE_LENGTH
-%token PARSEOP_PARITYTYPE_EVEN
-%token PARSEOP_PARITYTYPE_MARK
-%token PARSEOP_PARITYTYPE_NONE
-%token PARSEOP_PARITYTYPE_ODD
-%token PARSEOP_PARITYTYPE_SPACE
-%token PARSEOP_PIN_NOPULL
-%token PARSEOP_PIN_PULLDEFAULT
-%token PARSEOP_PIN_PULLDOWN
-%token PARSEOP_PIN_PULLUP
-%token PARSEOP_POWERRESOURCE
-%token PARSEOP_PROCESSOR
-%token PARSEOP_QWORDCONST
-%token PARSEOP_QWORDIO
-%token PARSEOP_QWORDMEMORY
-%token PARSEOP_QWORDSPACE
-%token PARSEOP_RANGETYPE_ENTIRE
-%token PARSEOP_RANGETYPE_ISAONLY
-%token PARSEOP_RANGETYPE_NONISAONLY
-%token PARSEOP_RAW_DATA
-%token PARSEOP_READWRITETYPE_BOTH
-%token PARSEOP_READWRITETYPE_READONLY
-%token PARSEOP_REFOF
-%token PARSEOP_REGIONSPACE_CMOS
-%token PARSEOP_REGIONSPACE_EC
-%token PARSEOP_REGIONSPACE_FFIXEDHW
-%token PARSEOP_REGIONSPACE_GPIO
-%token PARSEOP_REGIONSPACE_GSBUS
-%token PARSEOP_REGIONSPACE_IO
-%token PARSEOP_REGIONSPACE_IPMI
-%token PARSEOP_REGIONSPACE_MEM
-%token PARSEOP_REGIONSPACE_PCC
-%token PARSEOP_REGIONSPACE_PCI
-%token PARSEOP_REGIONSPACE_PCIBAR
-%token PARSEOP_REGIONSPACE_SMBUS
-%token PARSEOP_REGISTER
-%token PARSEOP_RELEASE
-%token