qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Erik Rull <erik.rull@rdsoftware.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Hu Tao <hutao@cn.fujitsu.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Stefan Hajnoczi <stefanha@gmail.com>
Subject: Re: [Qemu-devel] GIT master fails compilation for ACPI
Date: Sun, 24 Nov 2013 13:28:15 +0200	[thread overview]
Message-ID: <20131124112815.GA7528@redhat.com> (raw)
In-Reply-To: <528FBC65.5050302@rdsoftware.de>

[-- Attachment #1: Type: text/plain, Size: 5853 bytes --]

On Fri, Nov 22, 2013 at 09:19:49PM +0100, Erik Rull wrote:
> Paolo Bonzini wrote:
> >Il 22/11/2013 12:16, Erik Rull ha scritto:
> >>It's getting more and more complex to build qemu, is there a reason why everyone
> >>needs to build the acpi stuff by himself?
> >
> >It is only attempted if iasl is installed but as you said below, your
> >version is too old.  Please run "make V=1" so that we can see what is
> >the problem.
> >
> >>It should be something static like the bios binary files, right?
> >
> >ACPI tables are now generated by QEMU, so the ACPI compilation step
> >happens while compiling QEMU.
> >
> >>So you could provide the defaults directly and everyone that wants to modify the
> >>defaults is free to compile it by himself.
> >>
> >>And if these tools are required, please add an error message at configure
> >>runtime so that the successive errors at runtime will not appear, because
> >>compiling is then blocked by configure. And if the IASL is too old, a version
> >>check at configure runtime would be helpful as well.
> >
> >Good idea.  Any chance you could help?  Version 20090123 should be new
> >enough.
> 
> Hi Paolo,
> 
> Sure, here the V=1 result - I tried already some make options to get
> the verbose output, but I didn't find this trivial option :-)
> 
> erik@debian:~/qemu-test/qemu$ make V=1
> make  BUILD_DIR=/home/erik/qemu-test/qemu -C pixman V="1" all
> make[1]: Entering directory `/home/erik/qemu-test/qemu/pixman'
> make  all-recursive
> make[2]: Entering directory `/home/erik/qemu-test/qemu/pixman'
> Making all in pixman
> make[3]: Entering directory `/home/erik/qemu-test/qemu/pixman/pixman'
> make  all-am
> make[4]: Entering directory `/home/erik/qemu-test/qemu/pixman/pixman'
> make[4]: Nothing to be done for `all-am'.
> make[4]: Leaving directory `/home/erik/qemu-test/qemu/pixman/pixman'
> make[3]: Leaving directory `/home/erik/qemu-test/qemu/pixman/pixman'
> Making all in test
> make[3]: Entering directory `/home/erik/qemu-test/qemu/pixman/test'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/home/erik/qemu-test/qemu/pixman/test'
> make[3]: Entering directory `/home/erik/qemu-test/qemu/pixman'
> make[3]: Nothing to be done for `all-am'.
> make[3]: Leaving directory `/home/erik/qemu-test/qemu/pixman'
> make[2]: Leaving directory `/home/erik/qemu-test/qemu/pixman'
> make[1]: Leaving directory `/home/erik/qemu-test/qemu/pixman'
> make  BUILD_DIR=/home/erik/qemu-test/qemu -C x86_64-softmmu V="1"
> TARGET_DIR="x86_64-softmmu/" all
> make[1]: Entering directory `/home/erik/qemu-test/qemu/x86_64-softmmu'
> cpp -P /home/erik/qemu-test/qemu/hw/i386/acpi-dsdt.dsl -o acpi-dsdt.dsl.i.orig
> python /home/erik/qemu-test/qemu/scripts/acpi_extract_preprocess.py
> acpi-dsdt.dsl.i.orig > acpi-dsdt.dsl.i
> iasl  -vs -l -tc -p acpi-dsdt acpi-dsdt.dsl.i   2>&1
> acpi-dsdt.dsl.i    84:             0x8000000000,
> Error    4094 -                   ^ Conversion error: AE_BAD_HEX_CONSTANT
> 
> 
> acpi-dsdt.dsl.i    85:             0xFFFFFFFFFF,
> Error    4094 -                   ^ Conversion error: AE_BAD_HEX_CONSTANT
> 
> 
> acpi-dsdt.dsl.i    87:             0x8000000000,
> Error    4094 -                   ^ Conversion error: AE_BAD_HEX_CONSTANT
> 
> 
> ASL Input:  acpi-dsdt.dsl.i - 476 lines, 19189 bytes, 316 keywords
> Compilation complete. 3 Errors, 0 Warnings, 0 Remarks, 246 Optimizations
> make[1]: *** [hw/i386/acpi-dsdt.hex] Error 1
> make[1]: Leaving directory `/home/erik/qemu-test/qemu/x86_64-softmmu'
> make: *** [subdir-x86_64-softmmu] Error 2
> erik@debian:~/qemu-test/qemu$
> 
> Best regards,
> 
> Erik

This IASL version seems broken: apparently it can't process 64 bit
constants?

The assumption is that if you have iasl installed you
are a developer that wants to hack on iasl, so
we are trying to build ACPI from source.

We did go out of our way to support systems without IASL
though, so as a quick work-around you can just remove iasl
from your system, or add an iasl binary early in the path
that will return an error code when called with the -h
flag, e.g. use a shell script that simply does "exit 1"
or manually remove IASL= from config-host.mak
after running configure.

This will tell the build that you don't have iasl
so it will now build acpi from source.

I also sent patches that let you bypass the installed iasl
by configuring with --iasl=

As for support for old IASL versions - I downloaded
acpica-unix-20060912 from debian etch unpacked the original
tarball and applied the patch acpica-unix_20060912-3.2.diff
that came with etch. I then built the source on Fedora 19.

I had to change $$ = to $<n>$ = in a bunch of places
to make it build with modern bison (patch attached
if you are curious).

Afterwards I got a version of iasl that compiled
QEMU just fine, so the issue appears not to be with too-old iasl
generally, it's the specific version that is broken, maybe your distro
applied a broken patch?

Maybe we should just figure out what confuses your iasl.
Is your iasl able to compile the following chunk of code?


DefinitionBlock (
    "iasl-test.aml",    // Output Filename 
    "DSDT",             // Signature
    0x01,               // DSDT Compliance Revision
    "BXPC",             // OEMID
    "BXDSDT",           // TABLE ID
    0x1                 // OEM Revision
    )
{


    Name(CR64, ResourceTemplate() {
        QWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
            0x00000000,          // Address Space Granularity
            0x8000000000,        // Address Range Minimum
            0xFFFFFFFFFF,        // Address Range Maximum
            0x00000000,          // Address Translation Offset
            0x8000000000,        // Address Length
            ,, PW64, AddressRangeMemory, TypeStatic)
    })

    CreateQWordField(CR64, PW64._MIN, PS64)

}

-- 
MST

[-- Attachment #2: acpica-unix_20060912-build-on-fedora.patch --]
[-- Type: text/plain, Size: 130418 bytes --]

--- aslcompiler.y	2013-11-24 12:01:42.596556550 +0200
+++ acpica-unix-20060912/compiler/aslcompiler.y	2013-11-24 12:05:06.336549346 +0200
@@ -790,11 +790,11 @@
 
 ASLCode
     : DefinitionBlockTerm
-    | error                         {YYABORT; $$ = NULL;}
+    | error                         {YYABORT; $<n>$ = NULL;}
     ;
 
 DefinitionBlockTerm
-    : PARSEOP_DEFINITIONBLOCK '('	{$$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
+    : PARSEOP_DEFINITIONBLOCK '('	{$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
         String ','
         String ','
         ByteConst ','
@@ -802,15 +802,15 @@
         String ','
         DWordConst
         ')'                         {TrSetEndLineNumber ($<n>3);}
-            '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
+            '{' TermList '}'        {$<n>$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
     ;
 
 /* ACPI 3.0 -- allow semicolons between terms */
 
 TermList
-    :                               {$$ = NULL;}
-    | TermList Term                 {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
-    | TermList ';' Term             {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
+    :                               {$<n>$ = NULL;}
+    | TermList Term                 {$<n>$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
+    | TermList ';' Term             {$<n>$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
     ;
 
 Term
@@ -821,20 +821,20 @@
     | Type2StringOpcode             {}
     | Type2BufferOpcode             {}
     | Type2BufferOrStringOpcode     {}
-    | error                         {$$ = AslDoError(); yyclearin;}
+    | error                         {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CompilerDirective
     : IncludeTerm                   {}
-    | IncludeCStyleTerm             {$$ = NULL;}
-    | LineTerm						{$$ = NULL;}
+    | IncludeCStyleTerm             {$<n>$ = NULL;}
+    | LineTerm						{$<n>$ = NULL;}
     | ExternalTerm                  {}
     ;
 
 ObjectList
-    :                               {$$ = NULL;}
-    | ObjectList Object             {$$ = TrLinkPeerNode ($1,$2);}
-    | error                         {$$ = AslDoError(); yyclearin;}
+    :                               {$<n>$ = NULL;}
+    | ObjectList Object             {$<n>$ = TrLinkPeerNode ($1,$2);}
+    | error                         {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 Object
@@ -851,9 +851,9 @@
     ;
 
 BufferData
-    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
+    : Type5Opcode                   {$<n>$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
+    | Type2BufferOrStringOpcode     {$<n>$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
+    | Type2BufferOpcode             {$<n>$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
     | BufferTerm                    {}
     ;
 
@@ -862,14 +862,14 @@
     ;
 
 IntegerData
-    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
+    : Type2IntegerOpcode            {$<n>$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
+    | Type3Opcode                   {$<n>$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
     | Integer                       {}
     | ConstTerm                     {}
     ;
 
 StringData
-    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
+    : Type2StringOpcode             {$<n>$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
     | String                        {}
     ;
 
@@ -903,42 +903,42 @@
 
 UserTerm
     : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
-        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
+        ArgList ')'                 {$<n>$ = TrLinkChildNode ($1,$4);}
     ;
 
 ArgList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | TermArg
     | ArgList ','                   /* Allows a trailing comma at list end */
     | ArgList ','
-        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
+        TermArg                     {$<n>$ = TrLinkPeerNode ($1,$3);}
     ;
 
 /*
 Removed from TermArg due to reduce/reduce conflicts
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | Type2IntegerOpcode            {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | Type2StringOpcode             {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | Type2BufferOpcode             {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | Type2BufferOrStringOpcode     {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
 
 */
 
 TermArg
-    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    : Type2Opcode                   {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | DataObject                    {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | NameString                    {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | ArgTerm                       {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
+    | LocalTerm                     {$<n>$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
     ;
 
 Target
-    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
-    | ','                           {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
-    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
+    :                               {$<n>$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
+    | ','                           {$<n>$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
+    | ',' SuperName                 {$<n>$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
     ;
 
 RequiredTarget
-    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
+    : ',' SuperName                 {$<n>$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
     ;
 
 SimpleTarget
@@ -950,40 +950,40 @@
 /* Rules for specifying the type of one method argument or return value */
 
 ParameterTypePackage
-    :                               {$$ = NULL;}
-    | ObjectTypeKeyword             {$$ = $1;}
+    :                               {$<n>$ = NULL;}
+    | ObjectTypeKeyword             {$<n>$ = $1;}
     | ParameterTypePackage ','
-        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
+        ObjectTypeKeyword           {$<n>$ = TrLinkPeerNodes (2,$1,$3);}
     ;
 
 ParameterTypePackageList
-    :                               {$$ = NULL;}
-    | ObjectTypeKeyword             {$$ = $1;}
-    | '{' ParameterTypePackage '}'  {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ObjectTypeKeyword             {$<n>$ = $1;}
+    | '{' ParameterTypePackage '}'  {$<n>$ = $2;}
     ;
 
 OptionalParameterTypePackage
-    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
-    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
+    | ',' ParameterTypePackageList  {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
     ;
 
 /* Rules for specifying the types for method arguments */
 
 ParameterTypesPackage
-    : ParameterTypePackageList      {$$ = $1;}
+    : ParameterTypePackageList      {$<n>$ = $1;}
     | ParameterTypesPackage ','
-        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
+        ParameterTypePackageList    {$<n>$ = TrLinkPeerNodes (2,$1,$3);}
     ;
 
 ParameterTypesPackageList
-    :                               {$$ = NULL;}
-    | ObjectTypeKeyword             {$$ = $1;}
-    | '{' ParameterTypesPackage '}' {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ObjectTypeKeyword             {$<n>$ = $1;}
+    | '{' ParameterTypesPackage '}' {$<n>$ = $2;}
     ;
 
 OptionalParameterTypesPackage
-    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
-    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
+    | ',' ParameterTypesPackageList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
     ;
 
 
@@ -1111,14 +1111,14 @@
     ;
 
 IncludeTerm
-    : PARSEOP_INCLUDE '('			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
-        String  ')'                 {$$ = TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
+    : PARSEOP_INCLUDE '('			{$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
+        String  ')'                 {$<n>$ = TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
         TermList
-        IncludeEndTerm              {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
+        IncludeEndTerm              {$<n>$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
     ;
 
 IncludeEndTerm
-    : PARSEOP_INCLUDE_END			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
+    : PARSEOP_INCLUDE_END			{$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
     ;
 
 IncludeCStyleTerm
@@ -1137,9 +1137,9 @@
         OptionalObjectTypeKeyword
         OptionalParameterTypePackage
         OptionalParameterTypesPackage
-        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
     | PARSEOP_EXTERNAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
@@ -1147,7 +1147,7 @@
 
 
 BankFieldTerm
-    : PARSEOP_BANKFIELD '('			{$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
+    : PARSEOP_BANKFIELD '('			{$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
         NameString
         NameStringItem
         TermArgItem
@@ -1155,17 +1155,17 @@
         ',' LockRuleKeyword
         ',' UpdateRuleKeyword
         ')' '{'
-            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
+            FieldUnitList '}'       {$<n>$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
     | PARSEOP_BANKFIELD '('
-        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
+        error ')' '{' error '}'     {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FieldUnitList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | FieldUnit
     | FieldUnitList ','             /* Allows a trailing comma at list end */
     | FieldUnitList ','
-        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
+        FieldUnit                   {$<n>$ = TrLinkPeerNode ($1,$3);}
     ;
 
 FieldUnit
@@ -1175,225 +1175,225 @@
     ;
 
 FieldUnitEntry
-    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
+    : ',' AmlPackageLengthTerm      {$<n>$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
     | NameSeg ','
-        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
+        AmlPackageLengthTerm        {$<n>$ = TrLinkChildNode ($1,$3);}
     ;
 
 OffsetTerm
     : PARSEOP_OFFSET '('
         AmlPackageLengthTerm
-        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
+        ')'                         {$<n>$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
     | PARSEOP_OFFSET '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 AccessAsTerm
     : PARSEOP_ACCESSAS '('
         AccessTypeKeyword
         OptionalAccessAttribTerm
-        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
+        ')'                         {$<n>$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
     | PARSEOP_ACCESSAS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CreateBitFieldTerm
-    : PARSEOP_CREATEBITFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
+    : PARSEOP_CREATEBITFIELD '('	{$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
         TermArg
         TermArgItem
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_CREATEBITFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CreateByteFieldTerm
-    : PARSEOP_CREATEBYTEFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
+    : PARSEOP_CREATEBYTEFIELD '('	{$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
         TermArg
         TermArgItem
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_CREATEBYTEFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CreateDWordFieldTerm
-    : PARSEOP_CREATEDWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
+    : PARSEOP_CREATEDWORDFIELD '('	{$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
         TermArg
         TermArgItem
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_CREATEDWORDFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CreateFieldTerm
-    : PARSEOP_CREATEFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
+    : PARSEOP_CREATEFIELD '('		{$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
         TermArg
         TermArgItem
         TermArgItem
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_CREATEFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CreateQWordFieldTerm
-    : PARSEOP_CREATEQWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
+    : PARSEOP_CREATEQWORDFIELD '('	{$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
         TermArg
         TermArgItem
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_CREATEQWORDFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CreateWordFieldTerm
-    : PARSEOP_CREATEWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
+    : PARSEOP_CREATEWORDFIELD '('	{$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
         TermArg
         TermArgItem
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_CREATEWORDFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DataRegionTerm
-    : PARSEOP_DATATABLEREGION '('	{$$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
+    : PARSEOP_DATATABLEREGION '('	{$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
         NameString
         TermArgItem
         TermArgItem
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
     | PARSEOP_DATATABLEREGION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DeviceTerm
-    : PARSEOP_DEVICE '('			{$$ = TrCreateLeafNode (PARSEOP_DEVICE);}
+    : PARSEOP_DEVICE '('			{$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
         NameString
         ')' '{'
-            ObjectList '}'          {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
+            ObjectList '}'          {$<n>$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
     | PARSEOP_DEVICE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 EventTerm
-    : PARSEOP_EVENT '('				{$$ = TrCreateLeafNode (PARSEOP_EVENT);}
+    : PARSEOP_EVENT '('				{$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
         NameString
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_EVENT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FieldTerm
-    : PARSEOP_FIELD '('				{$$ = TrCreateLeafNode (PARSEOP_FIELD);}
+    : PARSEOP_FIELD '('				{$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
         NameString
         ',' AccessTypeKeyword
         ',' LockRuleKeyword
         ',' UpdateRuleKeyword
         ')' '{'
-            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
+            FieldUnitList '}'       {$<n>$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
     | PARSEOP_FIELD '('
-        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
+        error ')' '{' error '}'     {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FunctionTerm
-    : PARSEOP_FUNCTION '('			{$$ = TrCreateLeafNode (PARSEOP_METHOD);}
+    : PARSEOP_FUNCTION '('			{$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
         NameString
         OptionalParameterTypePackage
         OptionalParameterTypesPackage
         ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
+            TermList '}'            {$<n>$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
                                         TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
                                         TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
                                         TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
     | PARSEOP_FUNCTION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IndexFieldTerm
-    : PARSEOP_INDEXFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
+    : PARSEOP_INDEXFIELD '('		{$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
         NameString
         NameStringItem
         ',' AccessTypeKeyword
         ',' LockRuleKeyword
         ',' UpdateRuleKeyword
         ')' '{'
-            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
+            FieldUnitList '}'       {$<n>$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
     | PARSEOP_INDEXFIELD '('
-        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
+        error ')' '{' error '}'     {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 MethodTerm
-    : PARSEOP_METHOD  '('			{$$ = TrCreateLeafNode (PARSEOP_METHOD);}
+    : PARSEOP_METHOD  '('			{$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
         NameString
-        OptionalByteConstExpr       {$$ = UtCheckIntegerRange ($5, 0, 7);}
+        OptionalByteConstExpr       {$<n>$ = UtCheckIntegerRange ($5, 0, 7);}
         OptionalSerializeRuleKeyword
         OptionalByteConstExpr
         OptionalParameterTypePackage
         OptionalParameterTypesPackage
         ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
+            TermList '}'            {$<n>$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
     | PARSEOP_METHOD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 MutexTerm
-    : PARSEOP_MUTEX '('				{$$ = TrCreateLeafNode (PARSEOP_MUTEX);}
+    : PARSEOP_MUTEX '('				{$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
         NameString
         ',' ByteConstExpr
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
     | PARSEOP_MUTEX '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 OpRegionTerm
-    : PARSEOP_OPERATIONREGION '('	{$$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
+    : PARSEOP_OPERATIONREGION '('	{$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
         NameString
         ',' OpRegionSpaceIdTerm
         TermArgItem
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
     | PARSEOP_OPERATIONREGION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 OpRegionSpaceIdTerm
     : RegionSpaceKeyword            {}
-    | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
+    | ByteConst                     {$<n>$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
     ;
 
 PowerResTerm
-    : PARSEOP_POWERRESOURCE '('		{$$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
+    : PARSEOP_POWERRESOURCE '('		{$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
         NameString
         ',' ByteConstExpr
         ',' WordConstExpr
         ')' '{'
-            ObjectList '}'          {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
+            ObjectList '}'          {$<n>$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
     | PARSEOP_POWERRESOURCE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ProcessorTerm
-    : PARSEOP_PROCESSOR '('			{$$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
+    : PARSEOP_PROCESSOR '('			{$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
         NameString
         ',' ByteConstExpr
         OptionalDWordConstExpr
         OptionalByteConstExpr
         ')' '{'
-            ObjectList '}'          {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
+            ObjectList '}'          {$<n>$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
     | PARSEOP_PROCESSOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ThermalZoneTerm
-    : PARSEOP_THERMALZONE '('		{$$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
+    : PARSEOP_THERMALZONE '('		{$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
         NameString
         ')' '{'
-            ObjectList '}'          {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
+            ObjectList '}'          {$<n>$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
     | PARSEOP_THERMALZONE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
@@ -1401,30 +1401,30 @@
 
 
 AliasTerm
-    : PARSEOP_ALIAS '('				{$$ = TrCreateLeafNode (PARSEOP_ALIAS);}
+    : PARSEOP_ALIAS '('				{$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
         NameString
         NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
     | PARSEOP_ALIAS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 NameTerm
-    : PARSEOP_NAME '('				{$$ = TrCreateLeafNode (PARSEOP_NAME);}
+    : PARSEOP_NAME '('				{$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
         NameString
         ',' DataObject
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
     | PARSEOP_NAME '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ScopeTerm
-    : PARSEOP_SCOPE '('				{$$ = TrCreateLeafNode (PARSEOP_SCOPE);}
+    : PARSEOP_SCOPE '('				{$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
         NameString
         ')' '{'
-            ObjectList '}'          {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
+            ObjectList '}'          {$<n>$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
     | PARSEOP_SCOPE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
@@ -1432,138 +1432,138 @@
 
 
 BreakTerm
-    : PARSEOP_BREAK					{$$ = TrCreateNode (PARSEOP_BREAK, 0);}
+    : PARSEOP_BREAK					{$<n>$ = TrCreateNode (PARSEOP_BREAK, 0);}
     ;
 
 BreakPointTerm
-    : PARSEOP_BREAKPOINT			{$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
+    : PARSEOP_BREAKPOINT			{$<n>$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
     ;
 
 ContinueTerm
-    : PARSEOP_CONTINUE				{$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
+    : PARSEOP_CONTINUE				{$<n>$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
     ;
 
 FatalTerm
-    : PARSEOP_FATAL '('				{$$ = TrCreateLeafNode (PARSEOP_FATAL);}
+    : PARSEOP_FATAL '('				{$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
         ByteConstExpr
         ',' DWordConstExpr
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
     | PARSEOP_FATAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IfElseTerm
-    : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
+    : IfTerm ElseTerm               {$<n>$ = TrLinkPeerNode ($1,$2);}
     ;
 
 IfTerm
-    : PARSEOP_IF '('				{$$ = TrCreateLeafNode (PARSEOP_IF);}
+    : PARSEOP_IF '('				{$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
         TermArg
         ')' '{'
             TermList '}'
-                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+                                    {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_IF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ElseTerm
-    :                               {$$ = NULL;}
-    | PARSEOP_ELSE '{'				{$$ = TrCreateLeafNode (PARSEOP_ELSE);}
+    :                               {$<n>$ = NULL;}
+    | PARSEOP_ELSE '{'				{$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
         TermList '}'
-                                    {$$ = TrLinkChildren ($<n>3,1,$4);}
+                                    {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_ELSE '{'
-        error '}'                   {$$ = AslDoError(); yyclearin;}
+        error '}'                   {$<n>$ = AslDoError(); yyclearin;}
 
-    | PARSEOP_ELSEIF '('			{$$ = TrCreateLeafNode (PARSEOP_ELSE);}
-        TermArg						{$$ = TrCreateLeafNode (PARSEOP_IF);}
+    | PARSEOP_ELSEIF '('			{$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
+        TermArg						{$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
         ')' '{'
-        TermList '}'			    {$$ = TrLinkChildren ($<n>5,2,$4,$8);}
-        ElseTerm                    {$$ = TrLinkPeerNode ($<n>5,$11);}
-                                    {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
+        TermList '}'			    {$<n>$ = TrLinkChildren ($<n>5,2,$4,$8);}
+        ElseTerm                    {$<n>$ = TrLinkPeerNode ($<n>5,$11);}
+                                    {$<n>$ = TrLinkChildren ($<n>3,1,$<n>5);}
     | PARSEOP_ELSEIF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LoadTerm
-    : PARSEOP_LOAD '('				{$$ = TrCreateLeafNode (PARSEOP_LOAD);}
+    : PARSEOP_LOAD '('				{$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
         NameString
         RequiredTarget
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_LOAD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 NoOpTerm
-    : PARSEOP_NOOP					{$$ = TrCreateNode (PARSEOP_NOOP, 0);}
+    : PARSEOP_NOOP					{$<n>$ = TrCreateNode (PARSEOP_NOOP, 0);}
     ;
 
 NotifyTerm
-    : PARSEOP_NOTIFY '('			{$$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
+    : PARSEOP_NOTIFY '('			{$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
         SuperName
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_NOTIFY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ReleaseTerm
-    : PARSEOP_RELEASE '('			{$$ = TrCreateLeafNode (PARSEOP_RELEASE);}
+    : PARSEOP_RELEASE '('			{$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_RELEASE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ResetTerm
-    : PARSEOP_RESET '('				{$$ = TrCreateLeafNode (PARSEOP_RESET);}
+    : PARSEOP_RESET '('				{$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_RESET '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ReturnTerm
-    : PARSEOP_RETURN '('			{$$ = TrCreateLeafNode (PARSEOP_RETURN);}
+    : PARSEOP_RETURN '('			{$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
         OptionalReturnArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_RETURN 				{$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrCreateLeafNode (PARSEOP_ZERO));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
+    | PARSEOP_RETURN 				{$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrCreateLeafNode (PARSEOP_ZERO));}
     | PARSEOP_RETURN '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 SignalTerm
-    : PARSEOP_SIGNAL '('			{$$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
+    : PARSEOP_SIGNAL '('			{$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_SIGNAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 SleepTerm
-    : PARSEOP_SLEEP '('				{$$ = TrCreateLeafNode (PARSEOP_SLEEP);}
+    : PARSEOP_SLEEP '('				{$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
         TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_SLEEP '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 StallTerm
-    : PARSEOP_STALL '('				{$$ = TrCreateLeafNode (PARSEOP_STALL);}
+    : PARSEOP_STALL '('				{$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
         TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_STALL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 SwitchTerm
-    : PARSEOP_SWITCH '('			{$$ = TrCreateLeafNode (PARSEOP_SWITCH);}
+    : PARSEOP_SWITCH '('			{$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
         TermArg
         ')' '{'
             CaseDefaultTermList '}'
-                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+                                    {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_SWITCH '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 /*
@@ -1571,391 +1571,391 @@
  */
 
 CaseDefaultTermList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | CaseTerm  {}
     | DefaultTerm   {}
     | CaseDefaultTermList
-        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
+        CaseTerm                    {$<n>$ = TrLinkPeerNode ($1,$2);}
     | CaseDefaultTermList
-        DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
+        DefaultTerm                 {$<n>$ = TrLinkPeerNode ($1,$2);}
 
 /* Original - attempts to force zero or one default term within the switch */
 
 /*
 CaseDefaultTermList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | CaseTermList
         DefaultTerm
-        CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
+        CaseTermList                {$<n>$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
     | CaseTermList
-        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
+        CaseTerm                    {$<n>$ = TrLinkPeerNode ($1,$2);}
     ;
 
 CaseTermList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | CaseTerm                      {}
     | CaseTermList
-        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
+        CaseTerm                    {$<n>$ = TrLinkPeerNode ($1,$2);}
     ;
 */
 
 CaseTerm
-    : PARSEOP_CASE '('				{$$ = TrCreateLeafNode (PARSEOP_CASE);}
+    : PARSEOP_CASE '('				{$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
         DataObject
         ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+            TermList '}'            {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_CASE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DefaultTerm
-    : PARSEOP_DEFAULT '{'			{$$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
-        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
+    : PARSEOP_DEFAULT '{'			{$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
+        TermList '}'                {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_DEFAULT '{'
-        error '}'                   {$$ = AslDoError(); yyclearin;}
+        error '}'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 UnloadTerm
-    : PARSEOP_UNLOAD '('			{$$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
+    : PARSEOP_UNLOAD '('			{$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_UNLOAD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 WhileTerm
-    : PARSEOP_WHILE '('				{$$ = TrCreateLeafNode (PARSEOP_WHILE);}
+    : PARSEOP_WHILE '('				{$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
         TermArg
         ')' '{' TermList '}'
-                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+                                    {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_WHILE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
 /******* Type 2 opcodes *******************************************************/
 
 AcquireTerm
-    : PARSEOP_ACQUIRE '('			{$$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
+    : PARSEOP_ACQUIRE '('			{$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
         SuperName
         ',' WordConstExpr
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$6);}
     | PARSEOP_ACQUIRE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 AddTerm
-    : PARSEOP_ADD '('				{$$ = TrCreateLeafNode (PARSEOP_ADD);}
+    : PARSEOP_ADD '('				{$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_ADD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 AndTerm
-    : PARSEOP_AND '('				{$$ = TrCreateLeafNode (PARSEOP_AND);}
+    : PARSEOP_AND '('				{$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_AND '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ConcatTerm
-    : PARSEOP_CONCATENATE '('		{$$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
+    : PARSEOP_CONCATENATE '('		{$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_CONCATENATE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ConcatResTerm
-    : PARSEOP_CONCATENATERESTEMPLATE '('    {$$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
+    : PARSEOP_CONCATENATERESTEMPLATE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_CONCATENATERESTEMPLATE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CondRefOfTerm
-    : PARSEOP_CONDREFOF '('			{$$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
+    : PARSEOP_CONDREFOF '('			{$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
         SuperName
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_CONDREFOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 CopyObjectTerm
-    : PARSEOP_COPYOBJECT '('		{$$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
+    : PARSEOP_COPYOBJECT '('		{$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
         TermArg
         ',' SimpleTarget
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
     | PARSEOP_COPYOBJECT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DecTerm
-    : PARSEOP_DECREMENT '('			{$$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
+    : PARSEOP_DECREMENT '('			{$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_DECREMENT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DerefOfTerm
-    : PARSEOP_DEREFOF '('			{$$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
+    : PARSEOP_DEREFOF '('			{$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
         TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_DEREFOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DivideTerm
-    : PARSEOP_DIVIDE '('			{$$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
+    : PARSEOP_DIVIDE '('			{$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
         TermArg
         TermArgItem
         Target
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
     | PARSEOP_DIVIDE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FindSetLeftBitTerm
-    : PARSEOP_FINDSETLEFTBIT '('	{$$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
+    : PARSEOP_FINDSETLEFTBIT '('	{$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_FINDSETLEFTBIT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FindSetRightBitTerm
-    : PARSEOP_FINDSETRIGHTBIT '('	{$$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
+    : PARSEOP_FINDSETRIGHTBIT '('	{$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_FINDSETRIGHTBIT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FromBCDTerm
-    : PARSEOP_FROMBCD '('			{$$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
+    : PARSEOP_FROMBCD '('			{$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_FROMBCD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IncTerm
-    : PARSEOP_INCREMENT '('			{$$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
+    : PARSEOP_INCREMENT '('			{$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_INCREMENT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IndexTerm
-    : PARSEOP_INDEX '('				{$$ = TrCreateLeafNode (PARSEOP_INDEX);}
+    : PARSEOP_INDEX '('				{$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_INDEX '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LAndTerm
-    : PARSEOP_LAND '('				{$$ = TrCreateLeafNode (PARSEOP_LAND);}
+    : PARSEOP_LAND '('				{$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_LAND '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LEqualTerm
-    : PARSEOP_LEQUAL '('			{$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
+    : PARSEOP_LEQUAL '('			{$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_LEQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LGreaterTerm
-    : PARSEOP_LGREATER '('			{$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
+    : PARSEOP_LGREATER '('			{$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_LGREATER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LGreaterEqualTerm
-    : PARSEOP_LGREATEREQUAL '('		{$$ = TrCreateLeafNode (PARSEOP_LLESS);}
+    : PARSEOP_LGREATEREQUAL '('		{$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
+        ')'                         {$<n>$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
     | PARSEOP_LGREATEREQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LLessTerm
-    : PARSEOP_LLESS '('				{$$ = TrCreateLeafNode (PARSEOP_LLESS);}
+    : PARSEOP_LLESS '('				{$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_LLESS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LLessEqualTerm
-    : PARSEOP_LLESSEQUAL '('		{$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
+    : PARSEOP_LLESSEQUAL '('		{$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
+        ')'                         {$<n>$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
     | PARSEOP_LLESSEQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LNotTerm
-    : PARSEOP_LNOT '('				{$$ = TrCreateLeafNode (PARSEOP_LNOT);}
+    : PARSEOP_LNOT '('				{$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
         TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_LNOT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LNotEqualTerm
-    : PARSEOP_LNOTEQUAL '('			{$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
+    : PARSEOP_LNOTEQUAL '('			{$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
+        ')'                         {$<n>$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
     | PARSEOP_LNOTEQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LoadTableTerm
-    : PARSEOP_LOADTABLE '('			{$$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
+    : PARSEOP_LOADTABLE '('			{$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
         TermArg
         TermArgItem
         TermArgItem
         OptionalListString
         OptionalListString
         OptionalReference
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
     | PARSEOP_LOADTABLE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 LOrTerm
-    : PARSEOP_LOR '('				{$$ = TrCreateLeafNode (PARSEOP_LOR);}
+    : PARSEOP_LOR '('				{$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
         TermArg
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_LOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 MatchTerm
-    : PARSEOP_MATCH '('				{$$ = TrCreateLeafNode (PARSEOP_MATCH);}
+    : PARSEOP_MATCH '('				{$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
         TermArg
         ',' MatchOpKeyword
         TermArgItem
         ',' MatchOpKeyword
         TermArgItem
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
     | PARSEOP_MATCH '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 MidTerm
-    : PARSEOP_MID '('				{$$ = TrCreateLeafNode (PARSEOP_MID);}
+    : PARSEOP_MID '('				{$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
         TermArg
         TermArgItem
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
     | PARSEOP_MID '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ModTerm
-    : PARSEOP_MOD '('				{$$ = TrCreateLeafNode (PARSEOP_MOD);}
+    : PARSEOP_MOD '('				{$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_MOD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 MultiplyTerm
-    : PARSEOP_MULTIPLY '('			{$$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
+    : PARSEOP_MULTIPLY '('			{$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_MULTIPLY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 NAndTerm
-    : PARSEOP_NAND '('				{$$ = TrCreateLeafNode (PARSEOP_NAND);}
+    : PARSEOP_NAND '('				{$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_NAND '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 NOrTerm
-    : PARSEOP_NOR '('				{$$ = TrCreateLeafNode (PARSEOP_NOR);}
+    : PARSEOP_NOR '('				{$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_NOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 NotTerm
-    : PARSEOP_NOT '('				{$$ = TrCreateLeafNode (PARSEOP_NOT);}
+    : PARSEOP_NOT '('				{$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_NOT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ObjectTypeTerm
-    : PARSEOP_OBJECTTYPE '('		{$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
+    : PARSEOP_OBJECTTYPE '('		{$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_OBJECTTYPE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 OrTerm
-    : PARSEOP_OR '('				{$$ = TrCreateLeafNode (PARSEOP_OR);}
+    : PARSEOP_OR '('				{$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_OR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 /*
@@ -1963,147 +1963,147 @@
  * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
  */
 RefOfTerm
-    : PARSEOP_REFOF '('				{$$ = TrCreateLeafNode (PARSEOP_REFOF);}
+    : PARSEOP_REFOF '('				{$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
     | PARSEOP_REFOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ShiftLeftTerm
-    : PARSEOP_SHIFTLEFT '('			{$$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
+    : PARSEOP_SHIFTLEFT '('			{$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_SHIFTLEFT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ShiftRightTerm
-    : PARSEOP_SHIFTRIGHT '('		{$$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
+    : PARSEOP_SHIFTRIGHT '('		{$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_SHIFTRIGHT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 SizeOfTerm
-    : PARSEOP_SIZEOF '('			{$$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
+    : PARSEOP_SIZEOF '('			{$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
         SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,1,$4);}
     | PARSEOP_SIZEOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 StoreTerm
-    : PARSEOP_STORE '('				{$$ = TrCreateLeafNode (PARSEOP_STORE);}
+    : PARSEOP_STORE '('				{$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
         TermArg
         ',' SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
     | PARSEOP_STORE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 SubtractTerm
-    : PARSEOP_SUBTRACT '('			{$$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
+    : PARSEOP_SUBTRACT '('			{$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_SUBTRACT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 TimerTerm
-    : PARSEOP_TIMER '('			    {$$ = TrCreateLeafNode (PARSEOP_TIMER);}
-        ')'                         {$$ = TrLinkChildren ($<n>3,0);}
-    | PARSEOP_TIMER		            {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
+    : PARSEOP_TIMER '('			    {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,0);}
+    | PARSEOP_TIMER		            {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
     | PARSEOP_TIMER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToBCDTerm
-    : PARSEOP_TOBCD '('				{$$ = TrCreateLeafNode (PARSEOP_TOBCD);}
+    : PARSEOP_TOBCD '('				{$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_TOBCD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToBufferTerm
-    : PARSEOP_TOBUFFER '('			{$$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
+    : PARSEOP_TOBUFFER '('			{$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_TOBUFFER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToDecimalStringTerm
-    : PARSEOP_TODECIMALSTRING '('	{$$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
+    : PARSEOP_TODECIMALSTRING '('	{$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_TODECIMALSTRING '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToHexStringTerm
-    : PARSEOP_TOHEXSTRING '('		{$$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
+    : PARSEOP_TOHEXSTRING '('		{$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_TOHEXSTRING '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToIntegerTerm
-    : PARSEOP_TOINTEGER '('			{$$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
+    : PARSEOP_TOINTEGER '('			{$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
         TermArg
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_TOINTEGER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToStringTerm
-    : PARSEOP_TOSTRING '('			{$$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
+    : PARSEOP_TOSTRING '('			{$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
         TermArg
         OptionalCount
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_TOSTRING '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ToUUIDTerm
     : PARSEOP_TOUUID '('
-        StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
+        StringData ')'              {$<n>$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
     | PARSEOP_TOUUID '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 WaitTerm
-    : PARSEOP_WAIT '('				{$$ = TrCreateLeafNode (PARSEOP_WAIT);}
+    : PARSEOP_WAIT '('				{$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
         SuperName
         TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$5);}
     | PARSEOP_WAIT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 XOrTerm
-    : PARSEOP_XOR '('				{$$ = TrCreateLeafNode (PARSEOP_XOR);}
+    : PARSEOP_XOR '('				{$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
         TermArg
         TermArgItem
         Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     | PARSEOP_XOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
@@ -2111,173 +2111,173 @@
 
 
 ObjectTypeKeyword
-    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
-    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
-    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
-    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
-    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
-    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
-    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
-    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
-    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
-    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
-    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
-    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
-    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
-    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
-    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
-    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
+    : PARSEOP_OBJECTTYPE_UNK                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
+    | PARSEOP_OBJECTTYPE_INT                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
+    | PARSEOP_OBJECTTYPE_STR                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
+    | PARSEOP_OBJECTTYPE_BUF                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
+    | PARSEOP_OBJECTTYPE_PKG                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
+    | PARSEOP_OBJECTTYPE_FLD                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
+    | PARSEOP_OBJECTTYPE_DEV                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
+    | PARSEOP_OBJECTTYPE_EVT                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
+    | PARSEOP_OBJECTTYPE_MTH                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
+    | PARSEOP_OBJECTTYPE_MTX                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
+    | PARSEOP_OBJECTTYPE_OPR                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
+    | PARSEOP_OBJECTTYPE_POW                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
+    | PARSEOP_OBJECTTYPE_PRO                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
+    | PARSEOP_OBJECTTYPE_THZ                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
+    | PARSEOP_OBJECTTYPE_BFF                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
+    | PARSEOP_OBJECTTYPE_DDB                {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
     ;
 
 AccessTypeKeyword
-    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
-    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
-    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
-    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
-    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
-    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
+    : PARSEOP_ACCESSTYPE_ANY                {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
+    | PARSEOP_ACCESSTYPE_BYTE               {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
+    | PARSEOP_ACCESSTYPE_WORD               {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
+    | PARSEOP_ACCESSTYPE_DWORD              {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
+    | PARSEOP_ACCESSTYPE_QWORD              {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
+    | PARSEOP_ACCESSTYPE_BUF                {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
     ;
 
 AccessAttribKeyword
-    : PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
-    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
-    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
-    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
-    | PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
-    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
-    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
+    : PARSEOP_ACCESSATTRIB_QUICK            {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
+    | PARSEOP_ACCESSATTRIB_SND_RCV          {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
+    | PARSEOP_ACCESSATTRIB_BYTE             {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
+    | PARSEOP_ACCESSATTRIB_WORD             {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
+    | PARSEOP_ACCESSATTRIB_BLOCK            {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
+    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
+    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
     ;
 
 LockRuleKeyword
-    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
-    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
+    : PARSEOP_LOCKRULE_LOCK                 {$<n>$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
+    | PARSEOP_LOCKRULE_NOLOCK               {$<n>$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
     ;
 
 UpdateRuleKeyword
-    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
-    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
-    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
+    : PARSEOP_UPDATERULE_PRESERVE           {$<n>$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
+    | PARSEOP_UPDATERULE_ONES               {$<n>$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
+    | PARSEOP_UPDATERULE_ZEROS              {$<n>$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
     ;
 
 
 RegionSpaceKeyword
-    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
-    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
-    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
-    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
-    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
-    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
-    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
+    : PARSEOP_REGIONSPACE_IO                {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
+    | PARSEOP_REGIONSPACE_MEM               {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
+    | PARSEOP_REGIONSPACE_PCI               {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
+    | PARSEOP_REGIONSPACE_EC                {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
+    | PARSEOP_REGIONSPACE_SMBUS             {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
+    | PARSEOP_REGIONSPACE_CMOS              {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
+    | PARSEOP_REGIONSPACE_PCIBAR            {$<n>$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
     ;
 
 AddressSpaceKeyword
-    : ByteConst								{$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
+    : ByteConst								{$<n>$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
     | RegionSpaceKeyword					{}
-    | PARSEOP_ADDRESSSPACE_FFIXEDHW         {$$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
+    | PARSEOP_ADDRESSSPACE_FFIXEDHW         {$<n>$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
     ;
 
 
 SerializeRuleKeyword
-    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
-    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
+    : PARSEOP_SERIALIZERULE_SERIAL          {$<n>$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
+    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$<n>$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
     ;
 
 MatchOpKeyword
-    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
-    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
-    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
-    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
-    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
-    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
+    : PARSEOP_MATCHTYPE_MTR                 {$<n>$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
+    | PARSEOP_MATCHTYPE_MEQ                 {$<n>$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
+    | PARSEOP_MATCHTYPE_MLE                 {$<n>$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
+    | PARSEOP_MATCHTYPE_MLT                 {$<n>$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
+    | PARSEOP_MATCHTYPE_MGE                 {$<n>$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
+    | PARSEOP_MATCHTYPE_MGT                 {$<n>$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
     ;
 
 DMATypeKeyword
-    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
-    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
-    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
-    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
+    : PARSEOP_DMATYPE_A                     {$<n>$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
+    | PARSEOP_DMATYPE_COMPATIBILITY         {$<n>$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
+    | PARSEOP_DMATYPE_B                     {$<n>$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
+    | PARSEOP_DMATYPE_F                     {$<n>$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
     ;
 
 XferTypeKeyword
-    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
-    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
-    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
+    : PARSEOP_XFERTYPE_8                    {$<n>$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
+    | PARSEOP_XFERTYPE_8_16                 {$<n>$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
+    | PARSEOP_XFERTYPE_16                   {$<n>$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
     ;
 
 ResourceTypeKeyword
-    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
-    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
+    : PARSEOP_RESOURCETYPE_CONSUMER         {$<n>$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
+    | PARSEOP_RESOURCETYPE_PRODUCER         {$<n>$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
     ;
 
 MinKeyword
-    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
-    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
+    : PARSEOP_MINTYPE_FIXED                 {$<n>$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
+    | PARSEOP_MINTYPE_NOTFIXED              {$<n>$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
     ;
 
 MaxKeyword
-    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
-    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
+    : PARSEOP_MAXTYPE_FIXED                 {$<n>$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
+    | PARSEOP_MAXTYPE_NOTFIXED              {$<n>$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
     ;
 
 DecodeKeyword
-    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
-    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
+    : PARSEOP_DECODETYPE_POS                {$<n>$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
+    | PARSEOP_DECODETYPE_SUB                {$<n>$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
     ;
 
 RangeTypeKeyword
-    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
-    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
-    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
+    : PARSEOP_RANGETYPE_ISAONLY             {$<n>$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
+    | PARSEOP_RANGETYPE_NONISAONLY          {$<n>$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
+    | PARSEOP_RANGETYPE_ENTIRE              {$<n>$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
     ;
 
 MemTypeKeyword
-    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
-    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
-    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
-    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
+    : PARSEOP_MEMTYPE_CACHEABLE             {$<n>$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
+    | PARSEOP_MEMTYPE_WRITECOMBINING        {$<n>$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
+    | PARSEOP_MEMTYPE_PREFETCHABLE          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
+    | PARSEOP_MEMTYPE_NONCACHEABLE          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
     ;
 
 OptionalReadWriteKeyword
-    :                                       {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
-    | PARSEOP_READWRITETYPE_BOTH            {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
-    | PARSEOP_READWRITETYPE_READONLY        {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
+    :                                       {$<n>$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
+    | PARSEOP_READWRITETYPE_BOTH            {$<n>$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
+    | PARSEOP_READWRITETYPE_READONLY        {$<n>$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
     ;
 
 InterruptTypeKeyword
-    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
-    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
+    : PARSEOP_INTTYPE_EDGE                  {$<n>$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
+    | PARSEOP_INTTYPE_LEVEL                 {$<n>$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
     ;
 
 InterruptLevel
-    : PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
-    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
+    : PARSEOP_INTLEVEL_ACTIVEHIGH           {$<n>$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
+    | PARSEOP_INTLEVEL_ACTIVELOW            {$<n>$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
     ;
 
 ShareTypeKeyword
-    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
-    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
+    : PARSEOP_SHARETYPE_SHARED              {$<n>$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
+    | PARSEOP_SHARETYPE_EXCLUSIVE           {$<n>$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
     ;
 
 IODecodeKeyword
-    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
-    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
+    : PARSEOP_IODECODETYPE_16               {$<n>$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
+    | PARSEOP_IODECODETYPE_10               {$<n>$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
     ;
 
 TypeKeyword
-    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
-    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
+    : PARSEOP_TYPE_TRANSLATION              {$<n>$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
+    | PARSEOP_TYPE_STATIC                   {$<n>$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
     ;
 
 TranslationKeyword
-    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
-    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
+    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$<n>$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
+    | PARSEOP_TRANSLATIONTYPE_DENSE         {$<n>$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
     ;
 
 AddressKeyword
-    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
-    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
-    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
-    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
+    : PARSEOP_ADDRESSTYPE_MEMORY            {$<n>$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
+    | PARSEOP_ADDRESSTYPE_RESERVED          {$<n>$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
+    | PARSEOP_ADDRESSTYPE_NVS               {$<n>$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
+    | PARSEOP_ADDRESSTYPE_ACPI              {$<n>$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
     ;
 
 
@@ -2294,110 +2294,110 @@
     ;
 
 ArgTerm
-    : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
-    | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
-    | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
-    | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
-    | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
-    | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
-    | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
+    : PARSEOP_ARG0                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG0);}
+    | PARSEOP_ARG1                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG1);}
+    | PARSEOP_ARG2                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG2);}
+    | PARSEOP_ARG3                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG3);}
+    | PARSEOP_ARG4                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG4);}
+    | PARSEOP_ARG5                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG5);}
+    | PARSEOP_ARG6                  {$<n>$ = TrCreateLeafNode (PARSEOP_ARG6);}
     ;
 
 LocalTerm
-    : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
-    | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
-    | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
-    | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
-    | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
-    | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
-    | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
-    | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
+    : PARSEOP_LOCAL0                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
+    | PARSEOP_LOCAL1                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
+    | PARSEOP_LOCAL2                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
+    | PARSEOP_LOCAL3                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
+    | PARSEOP_LOCAL4                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
+    | PARSEOP_LOCAL5                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
+    | PARSEOP_LOCAL6                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
+    | PARSEOP_LOCAL7                {$<n>$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
     ;
 
 DebugTerm
-    : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
+    : PARSEOP_DEBUG                 {$<n>$ = TrCreateLeafNode (PARSEOP_DEBUG);}
     ;
 
 
 ByteConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
+    : Integer                       {$<n>$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
     ;
 
 WordConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
+    : Integer                       {$<n>$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
     ;
 
 DWordConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
+    : Integer                       {$<n>$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
     ;
 
 QWordConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
+    : Integer                       {$<n>$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
     ;
 
 Integer
-    : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
+    : PARSEOP_INTEGER               {$<n>$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
     ;
 
 String
-    : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
+    : PARSEOP_STRING_LITERAL        {$<n>$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
     ;
 
 ConstTerm
     : ConstExprTerm                 {}
-    | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
+    | PARSEOP_REVISION              {$<n>$ = TrCreateLeafNode (PARSEOP_REVISION);}
     ;
 
 ByteConstExpr
-    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
-    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
+    : Type3Opcode                   {$<n>$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
+    | Type2IntegerOpcode            {$<n>$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
+    | ConstExprTerm                 {$<n>$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
     | ByteConst                     {}
     ;
 
 WordConstExpr
-    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
-    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
+    : Type3Opcode                   {$<n>$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
+    | Type2IntegerOpcode            {$<n>$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
+    | ConstExprTerm                 {$<n>$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
     | WordConst                     {}
     ;
 
 DWordConstExpr
-    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
-    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
+    : Type3Opcode                   {$<n>$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
+    | Type2IntegerOpcode            {$<n>$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
+    | ConstExprTerm                 {$<n>$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
     | DWordConst                    {}
     ;
 
 QWordConstExpr
-    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
-    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
+    : Type3Opcode                   {$<n>$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
+    | Type2IntegerOpcode            {$<n>$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
+    | ConstExprTerm                 {$<n>$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
     | QWordConst                    {}
     ;
 
 ConstExprTerm
-    : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
-    | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
-    | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_INTEGER_MAX);}
+    : PARSEOP_ZERO                  {$<n>$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
+    | PARSEOP_ONE                   {$<n>$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
+    | PARSEOP_ONES                  {$<n>$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_INTEGER_MAX);}
     ;
 
 /* OptionalCount must appear before ByteList or an incorrect reduction will result */
 
 OptionalCount
-    :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
-    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
-    | ',' TermArg                   {$$ = $2;}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
+    | ','                           {$<n>$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
+    | ',' TermArg                   {$<n>$ = $2;}
     ;
 
 
 BufferTerm
-    : PARSEOP_BUFFER '('            {$$ = TrCreateLeafNode (PARSEOP_BUFFER);}
+    : PARSEOP_BUFFER '('            {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
         OptionalTermArg
         ')' '{'
-            BufferTermData '}'      {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+            BufferTermData '}'      {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_BUFFER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 BufferTermData
@@ -2406,41 +2406,41 @@
     ;
 
 ByteList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | ByteConstExpr
     | ByteList ','                  /* Allows a trailing comma at list end */
     | ByteList ','
-        ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
+        ByteConstExpr               {$<n>$ = TrLinkPeerNode ($1,$3);}
     ;
 
 DWordList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | DWordConstExpr
     | DWordList ','                 /* Allows a trailing comma at list end */
     | DWordList ','
-        DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
+        DWordConstExpr              {$<n>$ = TrLinkPeerNode ($1,$3);}
     ;
 
 PackageTerm
-    : PARSEOP_PACKAGE '('           {$$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
+    : PARSEOP_PACKAGE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
         VarPackageLengthTerm
         ')' '{'
-            PackageList '}'         {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+            PackageList '}'         {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_PACKAGE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 VarPackageLengthTerm
-    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
-    | TermArg                       {$$ = $1;}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
+    | TermArg                       {$<n>$ = $1;}
     ;
 
 PackageList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | PackageElement
     | PackageList ','               /* Allows a trailing comma at list end */
     | PackageList ','
-        PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
+        PackageElement              {$<n>$ = TrLinkPeerNode ($1,$3);}
     ;
 
 PackageElement
@@ -2450,9 +2450,9 @@
 
 EISAIDTerm
     : PARSEOP_EISAID '('
-        StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
+        StringData ')'              {$<n>$ = TrUpdateNode (PARSEOP_EISAID, $3);}
     | PARSEOP_EISAID '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
@@ -2466,7 +2466,7 @@
 ResourceTemplateTerm
     : PARSEOP_RESOURCETEMPLATE '(' ')'
         '{'
-        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
+        ResourceMacroList '}'       {$<n>$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
                                           TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
                                           TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
                                           $5,
@@ -2474,17 +2474,17 @@
     ;
 
 UnicodeTerm
-    : PARSEOP_UNICODE '('           {$$ = TrCreateLeafNode (PARSEOP_UNICODE);}
+    : PARSEOP_UNICODE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
         StringData
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,2,0,$4);}
     | PARSEOP_UNICODE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ResourceMacroList
-    :                               {$$ = NULL;}
+    :                               {$<n>$ = NULL;}
     | ResourceMacroList
-        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
+        ResourceMacroTerm           {$<n>$ = TrLinkPeerNode ($1,$2);}
     ;
 
 ResourceMacroTerm
@@ -2518,19 +2518,19 @@
     ;
 
 DMATerm
-    : PARSEOP_DMA '('               {$$ = TrCreateLeafNode (PARSEOP_DMA);}
+    : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
         DMATypeKeyword
         OptionalBusMasterKeyword
         ',' XferTypeKeyword
         OptionalNameString_Last
         ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
+            ByteList '}'            {$<n>$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
     | PARSEOP_DMA '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DWordIOTerm
-    : PARSEOP_DWORDIO '('           {$$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
+    : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
         OptionalResourceType_First
         OptionalMinType
         OptionalMaxType
@@ -2546,13 +2546,13 @@
         OptionalNameString
         OptionalType
         OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
     | PARSEOP_DWORDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DWordMemoryTerm
-    : PARSEOP_DWORDMEMORY '('       {$$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
+    : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
         OptionalResourceType_First
         OptionalDecodeType
         OptionalMinType
@@ -2569,14 +2569,14 @@
         OptionalNameString
         OptionalAddressRange
         OptionalType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
     | PARSEOP_DWORDMEMORY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 DWordSpaceTerm
-    : PARSEOP_DWORDSPACE '('        {$$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
-        ByteConstExpr               {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
+    : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
+        ByteConstExpr               {$<n>$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
         OptionalResourceType
         OptionalDecodeType
         OptionalMinType
@@ -2590,21 +2590,21 @@
         OptionalByteConstExpr
         OptionalStringData
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
     | PARSEOP_DWORDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
 EndDependentFnTerm
     : PARSEOP_ENDDEPENDENTFN '('
-        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
+        ')'                         {$<n>$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
     | PARSEOP_ENDDEPENDENTFN '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ExtendedIOTerm
-    : PARSEOP_EXTENDEDIO '('        {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
+    : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
         OptionalResourceType_First
         OptionalMinType
         OptionalMaxType
@@ -2619,13 +2619,13 @@
         OptionalNameString
         OptionalType
         OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
     | PARSEOP_EXTENDEDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ExtendedMemoryTerm
-    : PARSEOP_EXTENDEDMEMORY '('    {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
+    : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
         OptionalResourceType_First
         OptionalDecodeType
         OptionalMinType
@@ -2641,14 +2641,14 @@
         OptionalNameString
         OptionalAddressRange
         OptionalType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
     | PARSEOP_EXTENDEDMEMORY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 ExtendedSpaceTerm
-    : PARSEOP_EXTENDEDSPACE '('     {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
-        ByteConstExpr               {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
+    : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
+        ByteConstExpr               {$<n>$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
         OptionalResourceType
         OptionalDecodeType
         OptionalMinType
@@ -2661,23 +2661,23 @@
         ',' QWordConstExpr
         OptionalQWordConstExpr
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
     | PARSEOP_EXTENDEDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 FixedIOTerm
-    : PARSEOP_FIXEDIO '('           {$$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
+    : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
         WordConstExpr
         ',' ByteConstExpr
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
     | PARSEOP_FIXEDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 InterruptTerm
-    : PARSEOP_INTERRUPT '('         {$$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
+    : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
         OptionalResourceType_First
         ',' InterruptTypeKeyword
         ',' InterruptLevel
@@ -2686,84 +2686,84 @@
         OptionalStringData
         OptionalNameString_Last
         ')' '{'
-            DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
+            DWordList '}'           {$<n>$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
     | PARSEOP_INTERRUPT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IOTerm
-    : PARSEOP_IO '('                {$$ = TrCreateLeafNode (PARSEOP_IO);}
+    : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
         IODecodeKeyword
         ',' WordConstExpr
         ',' WordConstExpr
         ',' ByteConstExpr
         ',' ByteConstExpr
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
     | PARSEOP_IO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IRQNoFlagsTerm
-    : PARSEOP_IRQNOFLAGS '('        {$$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
+    : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
         OptionalNameString_First
         ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+            ByteList '}'            {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_IRQNOFLAGS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 IRQTerm
-    : PARSEOP_IRQ '('               {$$ = TrCreateLeafNode (PARSEOP_IRQ);}
+    : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
         InterruptTypeKeyword
         ',' InterruptLevel
         OptionalShareType
         OptionalNameString_Last
         ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
+            ByteList '}'            {$<n>$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
     | PARSEOP_IRQ '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 Memory24Term
-    : PARSEOP_MEMORY24 '('          {$$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
+    : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
         OptionalReadWriteKeyword
         ',' WordConstExpr
         ',' WordConstExpr
         ',' WordConstExpr
         ',' WordConstExpr
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
     | PARSEOP_MEMORY24 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 Memory32FixedTerm
-    : PARSEOP_MEMORY32FIXED '('     {$$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
+    : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
         OptionalReadWriteKeyword
         ',' DWordConstExpr
         ',' DWordConstExpr
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
     | PARSEOP_MEMORY32FIXED '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 Memory32Term
-    : PARSEOP_MEMORY32 '('          {$$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
+    : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
         OptionalReadWriteKeyword
         ',' DWordConstExpr
         ',' DWordConstExpr
         ',' DWordConstExpr
         ',' DWordConstExpr
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
     | PARSEOP_MEMORY32 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 QWordIOTerm
-    : PARSEOP_QWORDIO '('           {$$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
+    : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
         OptionalResourceType_First
         OptionalMinType
         OptionalMaxType
@@ -2779,13 +2779,13 @@
         OptionalNameString
         OptionalType
         OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
     | PARSEOP_QWORDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 QWordMemoryTerm
-    : PARSEOP_QWORDMEMORY '('       {$$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
+    : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
         OptionalResourceType_First
         OptionalDecodeType
         OptionalMinType
@@ -2802,14 +2802,14 @@
         OptionalNameString
         OptionalAddressRange
         OptionalType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
     | PARSEOP_QWORDMEMORY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 QWordSpaceTerm
-    : PARSEOP_QWORDSPACE '('        {$$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
-        ByteConstExpr               {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
+    : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
+        ByteConstExpr               {$<n>$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
         OptionalResourceType
         OptionalDecodeType
         OptionalMinType
@@ -2823,62 +2823,62 @@
         OptionalByteConstExpr
         OptionalStringData
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
     | PARSEOP_QWORDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 RegisterTerm
-    : PARSEOP_REGISTER '('          {$$ = TrCreateLeafNode (PARSEOP_REGISTER);}
+    : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
         AddressSpaceKeyword
         ',' ByteConstExpr
         ',' ByteConstExpr
         ',' QWordConstExpr
         OptionalAccessSize
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
     | PARSEOP_REGISTER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 StartDependentFnTerm
-    : PARSEOP_STARTDEPENDENTFN '('  {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
+    : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
         ByteConstExpr
         ',' ByteConstExpr
         ')' '{'
-        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
+        ResourceMacroList '}'       {$<n>$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
     | PARSEOP_STARTDEPENDENTFN '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 StartDependentFnNoPriTerm
-    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
+    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
         ')' '{'
-        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
+        ResourceMacroList '}'       {$<n>$ = TrLinkChildren ($<n>3,1,$6);}
     | PARSEOP_STARTDEPENDENTFN_NOPRI '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 VendorLongTerm
-    : PARSEOP_VENDORLONG '('        {$$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
+    : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
         OptionalNameString_First
         ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+            ByteList '}'            {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_VENDORLONG '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 VendorShortTerm
-    : PARSEOP_VENDORSHORT '('       {$$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
+    : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
         OptionalNameString_First
         ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
+            ByteList '}'            {$<n>$ = TrLinkChildren ($<n>3,2,$4,$7);}
     | PARSEOP_VENDORSHORT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 WordBusNumberTerm
-    : PARSEOP_WORDBUSNUMBER '('     {$$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
+    : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
         OptionalResourceType_First
         OptionalMinType
         OptionalMaxType
@@ -2891,13 +2891,13 @@
         OptionalByteConstExpr
         OptionalStringData
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
     | PARSEOP_WORDBUSNUMBER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 WordIOTerm
-    : PARSEOP_WORDIO '('            {$$ = TrCreateLeafNode (PARSEOP_WORDIO);}
+    : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
         OptionalResourceType_First
         OptionalMinType
         OptionalMaxType
@@ -2913,14 +2913,14 @@
         OptionalNameString
         OptionalType
         OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
     | PARSEOP_WORDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 WordSpaceTerm
-    : PARSEOP_WORDSPACE '('         {$$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
-        ByteConstExpr               {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
+    : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
+        ByteConstExpr               {$<n>$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
         OptionalResourceType
         OptionalDecodeType
         OptionalMinType
@@ -2934,9 +2934,9 @@
         OptionalByteConstExpr
         OptionalStringData
         OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
+        ')'                         {$<n>$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
     | PARSEOP_WORDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
+        error ')'                   {$<n>$ = AslDoError(); yyclearin;}
     ;
 
 
@@ -2946,14 +2946,14 @@
 
 NameString
     : NameSeg                       {}
-    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
-    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
-    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
-    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
+    | PARSEOP_NAMESTRING            {$<n>$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
+    | PARSEOP_IO                    {$<n>$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
+    | PARSEOP_DMA                   {$<n>$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
+    | PARSEOP_IRQ                   {$<n>$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
     ;
 
 NameSeg
-    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
+    : PARSEOP_NAMESEG               {$<n>$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
     ;
 
 
@@ -2961,178 +2961,178 @@
 
 
 AmlPackageLengthTerm
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
+    : Integer                       {$<n>$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
     ;
 
 OptionalBusMasterKeyword
-    : ','                                       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
-    | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
-    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
+    : ','                                       {$<n>$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
+    | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$<n>$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
+    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$<n>$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
     ;
 
 OptionalAccessAttribTerm
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ByteConstExpr             {$$ = $2;}
-    | ',' AccessAttribKeyword       {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' ByteConstExpr             {$<n>$ = $2;}
+    | ',' AccessAttribKeyword       {$<n>$ = $2;}
     ;
 
 OptionalAccessSize
-    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
-    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
-    | ',' ByteConstExpr             {$$ = $2;}
+    :                               {$<n>$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
+    | ','                           {$<n>$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
+    | ',' ByteConstExpr             {$<n>$ = $2;}
     ;
 
 OptionalAddressRange
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' AddressKeyword            {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' AddressKeyword            {$<n>$ = $2;}
     ;
 
 OptionalByteConstExpr
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ByteConstExpr             {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' ByteConstExpr             {$<n>$ = $2;}
     ;
 
 OptionalDecodeType
-    : ','                           {$$ = NULL;}
-    | ',' DecodeKeyword             {$$ = $2;}
+    : ','                           {$<n>$ = NULL;}
+    | ',' DecodeKeyword             {$<n>$ = $2;}
     ;
 
 OptionalDWordConstExpr
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' DWordConstExpr            {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' DWordConstExpr            {$<n>$ = $2;}
     ;
 
 OptionalListString
-    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
-    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
-    | ',' TermArg                   {$$ = $2;}
+    :                               {$<n>$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
+    | ','                           {$<n>$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
+    | ',' TermArg                   {$<n>$ = $2;}
     ;
 
 OptionalMaxType
-    : ','                           {$$ = NULL;}
-    | ',' MaxKeyword                {$$ = $2;}
+    : ','                           {$<n>$ = NULL;}
+    | ',' MaxKeyword                {$<n>$ = $2;}
     ;
 
 OptionalMemType
-    : ','                           {$$ = NULL;}
-    | ',' MemTypeKeyword            {$$ = $2;}
+    : ','                           {$<n>$ = NULL;}
+    | ',' MemTypeKeyword            {$<n>$ = $2;}
     ;
 
 OptionalMinType
-    : ','                           {$$ = NULL;}
-    | ',' MinKeyword                {$$ = $2;}
+    : ','                           {$<n>$ = NULL;}
+    | ',' MinKeyword                {$<n>$ = $2;}
     ;
 
 OptionalNameString
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' NameString                {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' NameString                {$<n>$ = $2;}
     ;
 
 OptionalNameString_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' NameString                {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' NameString                {$<n>$ = $2;}
     ;
 
 OptionalNameString_First
-    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
-    | NameString                    {$$ = $1;}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_ZERO);}
+    | NameString                    {$<n>$ = $1;}
     ;
 
 OptionalObjectTypeKeyword
-    :                               {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
-    | ',' ObjectTypeKeyword         {$$ = $2;}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
+    | ',' ObjectTypeKeyword         {$<n>$ = $2;}
     ;
 
 OptionalQWordConstExpr
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' QWordConstExpr            {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' QWordConstExpr            {$<n>$ = $2;}
     ;
 
 OptionalRangeType
-    : ','                           {$$ = NULL;}
-    | ',' RangeTypeKeyword          {$$ = $2;}
+    : ','                           {$<n>$ = NULL;}
+    | ',' RangeTypeKeyword          {$<n>$ = $2;}
     ;
 
 OptionalReference
-    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
-    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
-    | ',' DataObject                {$$ = $2;}
-    | ',' NameString                {$$ = $2;}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
+    | ','                           {$<n>$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
+    | ',' DataObject                {$<n>$ = $2;}
+    | ',' NameString                {$<n>$ = $2;}
     ;
 
 OptionalResourceType_First
-    :                               {$$ = NULL;}
-    | ResourceTypeKeyword           {$$ = $1;}
+    :                               {$<n>$ = NULL;}
+    | ResourceTypeKeyword           {$<n>$ = $1;}
     ;
 
 OptionalResourceType
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ResourceTypeKeyword       {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' ResourceTypeKeyword       {$<n>$ = $2;}
     ;
 
 OptionalSerializeRuleKeyword
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' SerializeRuleKeyword      {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' SerializeRuleKeyword      {$<n>$ = $2;}
     ;
 
 OptionalShareType
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ShareTypeKeyword          {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' ShareTypeKeyword          {$<n>$ = $2;}
     ;
 
 OptionalStringData
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' StringData                {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' StringData                {$<n>$ = $2;}
     ;
 
 OptionalTermArg
-    :                               {$$ = NULL;}
-    | TermArg                       {$$ = $1;}
+    :                               {$<n>$ = NULL;}
+    | TermArg                       {$<n>$ = $1;}
     ;
 
 OptionalReturnArg
-    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
-    | TermArg                       {$$ = $1;}
+    :                               {$<n>$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
+    | TermArg                       {$<n>$ = $1;}
     ;
 
 OptionalType
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' TypeKeyword               {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' TypeKeyword               {$<n>$ = $2;}
     ;
 
 OptionalType_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' TypeKeyword               {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' TypeKeyword               {$<n>$ = $2;}
     ;
 
 OptionalTranslationType_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' TranslationKeyword        {$$ = $2;}
+    :                               {$<n>$ = NULL;}
+    | ','                           {$<n>$ = NULL;}
+    | ',' TranslationKeyword        {$<n>$ = $2;}
     ;
 
 
 TermArgItem
-    : ',' TermArg                   {$$ = $2;}
-    | ',' error                     {$$ = AslDoError (); yyclearin;}
+    : ',' TermArg                   {$<n>$ = $2;}
+    | ',' error                     {$<n>$ = AslDoError (); yyclearin;}
     ;
 
 NameStringItem
-    : ',' NameString                {$$ = $2;}
-    | ',' error                     {$$ = AslDoError (); yyclearin;}
+    : ',' NameString                {$<n>$ = $2;}
+    | ',' error                     {$<n>$ = AslDoError (); yyclearin;}
     ;
 
 

  reply	other threads:[~2013-11-24 11:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-21  8:06 [Qemu-devel] GIT master fails compilation for ACPI Erik Rull
2013-11-21  8:36 ` Hu Tao
2013-11-21 20:44   ` Erik Rull
2013-11-22 10:56     ` Stefan Hajnoczi
2013-11-22 11:16       ` Erik Rull
2013-11-22 15:53         ` Stefan Hajnoczi
2013-11-22 17:07         ` Paolo Bonzini
2013-11-22 20:19           ` Erik Rull
2013-11-24 11:28             ` Michael S. Tsirkin [this message]
2013-11-25 20:08               ` Erik Rull
2013-11-25 20:34                 ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131124112815.GA7528@redhat.com \
    --to=mst@redhat.com \
    --cc=erik.rull@rdsoftware.de \
    --cc=hutao@cn.fujitsu.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).