Subversion Repositories Kolibri OS

Rev

Rev 1498 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1498 Rev 2216
1
%{
1
%{
2
/******************************************************************************
2
/******************************************************************************
3
 *
3
 *
4
 * Module Name: aslcompiler.y - Bison input file (ASL grammar and actions)
4
 * Module Name: aslcompiler.y - Bison input file (ASL grammar and actions)
5
 *
5
 *
6
 *****************************************************************************/
6
 *****************************************************************************/
7
 
7
 
8
/******************************************************************************
8
/******************************************************************************
9
 *
9
 *
10
 * 1. Copyright Notice
10
 * 1. Copyright Notice
11
 *
11
 *
12
 * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
12
 * Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp.
13
 * All rights reserved.
13
 * All rights reserved.
14
 *
14
 *
15
 * 2. License
15
 * 2. License
16
 *
16
 *
17
 * 2.1. This is your license from Intel Corp. under its intellectual property
17
 * 2.1. This is your license from Intel Corp. under its intellectual property
18
 * rights.  You may have additional license terms from the party that provided
18
 * rights.  You may have additional license terms from the party that provided
19
 * you this software, covering your right to use that party's intellectual
19
 * you this software, covering your right to use that party's intellectual
20
 * property rights.
20
 * property rights.
21
 *
21
 *
22
 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22
 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23
 * copy of the source code appearing in this file ("Covered Code") an
23
 * copy of the source code appearing in this file ("Covered Code") an
24
 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24
 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25
 * base code distributed originally by Intel ("Original Intel Code") to copy,
25
 * base code distributed originally by Intel ("Original Intel Code") to copy,
26
 * make derivatives, distribute, use and display any portion of the Covered
26
 * make derivatives, distribute, use and display any portion of the Covered
27
 * Code in any form, with the right to sublicense such rights; and
27
 * Code in any form, with the right to sublicense such rights; and
28
 *
28
 *
29
 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29
 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30
 * license (with the right to sublicense), under only those claims of Intel
30
 * license (with the right to sublicense), under only those claims of Intel
31
 * patents that are infringed by the Original Intel Code, to make, use, sell,
31
 * patents that are infringed by the Original Intel Code, to make, use, sell,
32
 * offer to sell, and import the Covered Code and derivative works thereof
32
 * offer to sell, and import the Covered Code and derivative works thereof
33
 * solely to the minimum extent necessary to exercise the above copyright
33
 * solely to the minimum extent necessary to exercise the above copyright
34
 * license, and in no event shall the patent license extend to any additions
34
 * license, and in no event shall the patent license extend to any additions
35
 * to or modifications of the Original Intel Code.  No other license or right
35
 * to or modifications of the Original Intel Code.  No other license or right
36
 * is granted directly or by implication, estoppel or otherwise;
36
 * is granted directly or by implication, estoppel or otherwise;
37
 *
37
 *
38
 * The above copyright and patent license is granted only if the following
38
 * The above copyright and patent license is granted only if the following
39
 * conditions are met:
39
 * conditions are met:
40
 *
40
 *
41
 * 3. Conditions
41
 * 3. Conditions
42
 *
42
 *
43
 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43
 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44
 * Redistribution of source code of any substantial portion of the Covered
44
 * Redistribution of source code of any substantial portion of the Covered
45
 * Code or modification with rights to further distribute source must include
45
 * Code or modification with rights to further distribute source must include
46
 * the above Copyright Notice, the above License, this list of Conditions,
46
 * the above Copyright Notice, the above License, this list of Conditions,
47
 * and the following Disclaimer and Export Compliance provision.  In addition,
47
 * and the following Disclaimer and Export Compliance provision.  In addition,
48
 * Licensee must cause all Covered Code to which Licensee contributes to
48
 * Licensee must cause all Covered Code to which Licensee contributes to
49
 * contain a file documenting the changes Licensee made to create that Covered
49
 * contain a file documenting the changes Licensee made to create that Covered
50
 * Code and the date of any change.  Licensee must include in that file the
50
 * Code and the date of any change.  Licensee must include in that file the
51
 * documentation of any changes made by any predecessor Licensee.  Licensee
51
 * documentation of any changes made by any predecessor Licensee.  Licensee
52
 * must include a prominent statement that the modification is derived,
52
 * must include a prominent statement that the modification is derived,
53
 * directly or indirectly, from Original Intel Code.
53
 * directly or indirectly, from Original Intel Code.
54
 *
54
 *
55
 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55
 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56
 * Redistribution of source code of any substantial portion of the Covered
56
 * Redistribution of source code of any substantial portion of the Covered
57
 * Code or modification without rights to further distribute source must
57
 * Code or modification without rights to further distribute source must
58
 * include the following Disclaimer and Export Compliance provision in the
58
 * include the following Disclaimer and Export Compliance provision in the
59
 * documentation and/or other materials provided with distribution.  In
59
 * documentation and/or other materials provided with distribution.  In
60
 * addition, Licensee may not authorize further sublicense of source of any
60
 * addition, Licensee may not authorize further sublicense of source of any
61
 * portion of the Covered Code, and must include terms to the effect that the
61
 * portion of the Covered Code, and must include terms to the effect that the
62
 * license from Licensee to its licensee is limited to the intellectual
62
 * license from Licensee to its licensee is limited to the intellectual
63
 * property embodied in the software Licensee provides to its licensee, and
63
 * property embodied in the software Licensee provides to its licensee, and
64
 * not to intellectual property embodied in modifications its licensee may
64
 * not to intellectual property embodied in modifications its licensee may
65
 * make.
65
 * make.
66
 *
66
 *
67
 * 3.3. Redistribution of Executable. Redistribution in executable form of any
67
 * 3.3. Redistribution of Executable. Redistribution in executable form of any
68
 * substantial portion of the Covered Code or modification must reproduce the
68
 * substantial portion of the Covered Code or modification must reproduce the
69
 * above Copyright Notice, and the following Disclaimer and Export Compliance
69
 * above Copyright Notice, and the following Disclaimer and Export Compliance
70
 * provision in the documentation and/or other materials provided with the
70
 * provision in the documentation and/or other materials provided with the
71
 * distribution.
71
 * distribution.
72
 *
72
 *
73
 * 3.4. Intel retains all right, title, and interest in and to the Original
73
 * 3.4. Intel retains all right, title, and interest in and to the Original
74
 * Intel Code.
74
 * Intel Code.
75
 *
75
 *
76
 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76
 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77
 * Intel shall be used in advertising or otherwise to promote the sale, use or
77
 * Intel shall be used in advertising or otherwise to promote the sale, use or
78
 * other dealings in products derived from or relating to the Covered Code
78
 * other dealings in products derived from or relating to the Covered Code
79
 * without prior written authorization from Intel.
79
 * without prior written authorization from Intel.
80
 *
80
 *
81
 * 4. Disclaimer and Export Compliance
81
 * 4. Disclaimer and Export Compliance
82
 *
82
 *
83
 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83
 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84
 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84
 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85
 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85
 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86
 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86
 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87
 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87
 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88
 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88
 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89
 * PARTICULAR PURPOSE.
89
 * PARTICULAR PURPOSE.
90
 *
90
 *
91
 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91
 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92
 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92
 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93
 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93
 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94
 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94
 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95
 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95
 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96
 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96
 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97
 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97
 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98
 * LIMITED REMEDY.
98
 * LIMITED REMEDY.
99
 *
99
 *
100
 * 4.3. Licensee shall not export, either directly or indirectly, any of this
100
 * 4.3. Licensee shall not export, either directly or indirectly, any of this
101
 * software or system incorporating such software without first obtaining any
101
 * software or system incorporating such software without first obtaining any
102
 * required license or other approval from the U. S. Department of Commerce or
102
 * required license or other approval from the U. S. Department of Commerce or
103
 * any other agency or department of the United States Government.  In the
103
 * any other agency or department of the United States Government.  In the
104
 * event Licensee exports any such software from the United States or
104
 * event Licensee exports any such software from the United States or
105
 * re-exports any such software from a foreign destination, Licensee shall
105
 * re-exports any such software from a foreign destination, Licensee shall
106
 * ensure that the distribution and export/re-export of the software is in
106
 * ensure that the distribution and export/re-export of the software is in
107
 * compliance with all laws, regulations, orders, or other restrictions of the
107
 * compliance with all laws, regulations, orders, or other restrictions of the
108
 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108
 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109
 * any of its subsidiaries will export/re-export any technical data, process,
109
 * any of its subsidiaries will export/re-export any technical data, process,
110
 * software, or service, directly or indirectly, to any country for which the
110
 * software, or service, directly or indirectly, to any country for which the
111
 * United States government or any agency thereof requires an export license,
111
 * United States government or any agency thereof requires an export license,
112
 * other governmental approval, or letter of assurance, without first obtaining
112
 * other governmental approval, or letter of assurance, without first obtaining
113
 * such license, approval or letter.
113
 * such license, approval or letter.
114
 *
114
 *
115
 *****************************************************************************/
115
 *****************************************************************************/
116
 
116
 
117
#define YYDEBUG 1
-
 
118
#define YYERROR_VERBOSE 1
-
 
119
 
-
 
120
/*
-
 
121
 * State stack - compiler will fault if it overflows.   (Default was 200)
-
 
122
 */
-
 
123
#define YYINITDEPTH 600
-
 
124
 
-
 
125
#include "aslcompiler.h"
117
#include "aslcompiler.h"
126
#include 
118
#include 
127
#include 
119
#include 
128
#include 
120
#include 
129
#include "acpi.h"
121
#include "acpi.h"
130
#include "accommon.h"
122
#include "accommon.h"
131
 
123
 
132
#define _COMPONENT          ACPI_COMPILER
124
#define _COMPONENT          ACPI_COMPILER
133
        ACPI_MODULE_NAME    ("aslparse")
125
        ACPI_MODULE_NAME    ("aslparse")
134
 
126
 
135
/*
127
/*
136
 * Global Notes:
128
 * Global Notes:
137
 *
129
 *
138
 * October 2005: The following list terms have been optimized (from the
130
 * October 2005: The following list terms have been optimized (from the
139
 * original ASL grammar in the ACPI specification) to force the immediate
131
 * original ASL grammar in the ACPI specification) to force the immediate
140
 * reduction of each list item so that the parse stack use doesn't increase on
132
 * reduction of each list item so that the parse stack use doesn't increase on
141
 * each list element and possibly overflow on very large lists (>4000 items).
133
 * each list element and possibly overflow on very large lists (>4000 items).
142
 * This dramatically reduces use of the parse stack overall.
134
 * This dramatically reduces use of the parse stack overall.
143
 *
135
 *
144
 *      ArgList, TermList, Objectlist, ByteList, DWordList, PackageList,
136
 *      ArgList, TermList, Objectlist, ByteList, DWordList, PackageList,
145
 *      ResourceMacroList, and FieldUnitList
137
 *      ResourceMacroList, and FieldUnitList
146
 */
138
 */
147
 
139
 
-
 
140
void *                      AslLocalAllocate (unsigned int Size);
-
 
141
 
-
 
142
/* Bison/yacc configuration */
148
 
-
 
149
/*
-
 
150
 * Next statement is important - this makes everything public so that
-
 
151
 * we can access some of the parser tables from other modules
-
 
152
 */
143
 
153
#define static
144
#define static
154
#undef alloca
145
#undef alloca
155
#define alloca      AslLocalAllocate
146
#define alloca              AslLocalAllocate
156
#define YYERROR_VERBOSE     1
147
#define yytname             AslCompilername
157
 
148
 
158
void *
-
 
159
AslLocalAllocate (unsigned int Size);
149
#define YYINITDEPTH         600             /* State stack depth */
-
 
150
#define YYDEBUG             1               /* Enable debug output */
-
 
151
#define YYERROR_VERBOSE     1               /* Verbose error messages */
160
 
152
 
161
/*
153
/*
162
 * The windows version of bison defines this incorrectly as "32768" (Not negative).
154
 * The windows version of bison defines this incorrectly as "32768" (Not negative).
163
 * Using a custom (edited binary) version of bison that defines YYFLAG as YYFBAD
155
 * We use a custom (edited binary) version of bison that defines YYFLAG as YYFBAD
164
 * instead (#define YYFBAD      32768), so we can define it correctly here.
156
 * instead (#define YYFBAD 32768), so we can define it correctly here.
165
 *
157
 *
166
 * The problem is that if YYFLAG is positive, the extended syntax error messages
158
 * The problem is that if YYFLAG is positive, the extended syntax error messages
167
 * are disabled.
159
 * are disabled.
168
 */
160
 */
169
 
161
#define YYFLAG              -32768
170
#define YYFLAG              -32768
-
 
171
 
162
 
172
 
-
 
173
%}
163
%}
174
 
-
 
175
 
164
 
176
/*
165
/*
177
 * Declare the type of values in the grammar
166
 * Declare the type of values in the grammar
178
 */
167
 */
179
 
168
%union {
180
%union {
-
 
181
    UINT64              i;
169
    UINT64              i;
182
    char                *s;
170
    char                *s;
183
    ACPI_PARSE_OBJECT   *n;
171
    ACPI_PARSE_OBJECT   *n;
184
}
172
}
185
 
173
 
186
 
-
 
187
/*! [Begin] no source code translation */
174
/*! [Begin] no source code translation */
188
 
175
 
189
/*
176
/*
190
 * These shift/reduce conflicts are expected. There should be zero
177
 * These shift/reduce conflicts are expected. There should be zero
191
 * reduce/reduce conflicts.
178
 * reduce/reduce conflicts.
192
 */
179
 */
193
%expect 60
180
%expect 60
194
 
181
 
195
 
-
 
196
/*
182
/*
197
 * Token types: These are returned by the lexer
183
 * Token types: These are returned by the lexer
198
 *
184
 *
199
 * NOTE: This list MUST match the AslKeywordMapping table found
185
 * NOTE: This list MUST match the AslKeywordMapping table found
200
 *       in aslmap.c EXACTLY!  Double check any changes!
186
 *       in aslmap.c EXACTLY!  Double check any changes!
201
 */
187
 */
202
 
188
%token  PARSEOP_ACCESSAS
203
%token  PARSEOP_ACCESSAS
-
 
204
%token  PARSEOP_ACCESSATTRIB_BLOCK
189
%token  PARSEOP_ACCESSATTRIB_BLOCK
205
%token  PARSEOP_ACCESSATTRIB_BLOCK_CALL
190
%token  PARSEOP_ACCESSATTRIB_BLOCK_CALL
206
%token  PARSEOP_ACCESSATTRIB_BYTE
191
%token  PARSEOP_ACCESSATTRIB_BYTE
207
%token  PARSEOP_ACCESSATTRIB_WORD_CALL
192
%token  PARSEOP_ACCESSATTRIB_WORD_CALL
208
%token  PARSEOP_ACCESSATTRIB_QUICK
193
%token  PARSEOP_ACCESSATTRIB_QUICK
209
%token  PARSEOP_ACCESSATTRIB_SND_RCV
194
%token  PARSEOP_ACCESSATTRIB_SND_RCV
210
%token  PARSEOP_ACCESSATTRIB_WORD
195
%token  PARSEOP_ACCESSATTRIB_WORD
211
%token  PARSEOP_ACCESSTYPE_ANY
196
%token  PARSEOP_ACCESSTYPE_ANY
212
%token  PARSEOP_ACCESSTYPE_BUF
197
%token  PARSEOP_ACCESSTYPE_BUF
213
%token  PARSEOP_ACCESSTYPE_BYTE
198
%token  PARSEOP_ACCESSTYPE_BYTE
214
%token  PARSEOP_ACCESSTYPE_DWORD
199
%token  PARSEOP_ACCESSTYPE_DWORD
215
%token  PARSEOP_ACCESSTYPE_QWORD
200
%token  PARSEOP_ACCESSTYPE_QWORD
216
%token  PARSEOP_ACCESSTYPE_WORD
201
%token  PARSEOP_ACCESSTYPE_WORD
217
%token  PARSEOP_ACQUIRE
202
%token  PARSEOP_ACQUIRE
218
%token  PARSEOP_ADD
203
%token  PARSEOP_ADD
219
%token  PARSEOP_ADDRESSSPACE_FFIXEDHW
204
%token  PARSEOP_ADDRESSSPACE_FFIXEDHW
220
%token  PARSEOP_ADDRESSTYPE_ACPI
205
%token  PARSEOP_ADDRESSTYPE_ACPI
221
%token  PARSEOP_ADDRESSTYPE_MEMORY
206
%token  PARSEOP_ADDRESSTYPE_MEMORY
222
%token  PARSEOP_ADDRESSTYPE_NVS
207
%token  PARSEOP_ADDRESSTYPE_NVS
223
%token  PARSEOP_ADDRESSTYPE_RESERVED
208
%token  PARSEOP_ADDRESSTYPE_RESERVED
224
%token  PARSEOP_ALIAS
209
%token  PARSEOP_ALIAS
225
%token  PARSEOP_AND
210
%token  PARSEOP_AND
226
%token  PARSEOP_ARG0
211
%token  PARSEOP_ARG0
227
%token  PARSEOP_ARG1
212
%token  PARSEOP_ARG1
228
%token  PARSEOP_ARG2
213
%token  PARSEOP_ARG2
229
%token  PARSEOP_ARG3
214
%token  PARSEOP_ARG3
230
%token  PARSEOP_ARG4
215
%token  PARSEOP_ARG4
231
%token  PARSEOP_ARG5
216
%token  PARSEOP_ARG5
232
%token  PARSEOP_ARG6
217
%token  PARSEOP_ARG6
233
%token  PARSEOP_BANKFIELD
218
%token  PARSEOP_BANKFIELD
234
%token  PARSEOP_BREAK
219
%token  PARSEOP_BREAK
235
%token  PARSEOP_BREAKPOINT
220
%token  PARSEOP_BREAKPOINT
236
%token  PARSEOP_BUFFER
221
%token  PARSEOP_BUFFER
237
%token  PARSEOP_BUSMASTERTYPE_MASTER
222
%token  PARSEOP_BUSMASTERTYPE_MASTER
238
%token  PARSEOP_BUSMASTERTYPE_NOTMASTER
223
%token  PARSEOP_BUSMASTERTYPE_NOTMASTER
239
%token  PARSEOP_BYTECONST
224
%token  PARSEOP_BYTECONST
240
%token  PARSEOP_CASE
225
%token  PARSEOP_CASE
241
%token  PARSEOP_CONCATENATE
226
%token  PARSEOP_CONCATENATE
242
%token  PARSEOP_CONCATENATERESTEMPLATE
227
%token  PARSEOP_CONCATENATERESTEMPLATE
243
%token  PARSEOP_CONDREFOF
228
%token  PARSEOP_CONDREFOF
244
%token  PARSEOP_CONTINUE
229
%token  PARSEOP_CONTINUE
245
%token  PARSEOP_COPYOBJECT
230
%token  PARSEOP_COPYOBJECT
246
%token  PARSEOP_CREATEBITFIELD
231
%token  PARSEOP_CREATEBITFIELD
247
%token  PARSEOP_CREATEBYTEFIELD
232
%token  PARSEOP_CREATEBYTEFIELD
248
%token  PARSEOP_CREATEDWORDFIELD
233
%token  PARSEOP_CREATEDWORDFIELD
249
%token  PARSEOP_CREATEFIELD
234
%token  PARSEOP_CREATEFIELD
250
%token  PARSEOP_CREATEQWORDFIELD
235
%token  PARSEOP_CREATEQWORDFIELD
251
%token  PARSEOP_CREATEWORDFIELD
236
%token  PARSEOP_CREATEWORDFIELD
252
%token  PARSEOP_DATATABLEREGION
237
%token  PARSEOP_DATATABLEREGION
253
%token  PARSEOP_DEBUG
238
%token  PARSEOP_DEBUG
254
%token  PARSEOP_DECODETYPE_POS
239
%token  PARSEOP_DECODETYPE_POS
255
%token  PARSEOP_DECODETYPE_SUB
240
%token  PARSEOP_DECODETYPE_SUB
256
%token  PARSEOP_DECREMENT
241
%token  PARSEOP_DECREMENT
257
%token  PARSEOP_DEFAULT
242
%token  PARSEOP_DEFAULT
258
%token  PARSEOP_DEFAULT_ARG
243
%token  PARSEOP_DEFAULT_ARG
259
%token  PARSEOP_DEFINITIONBLOCK
244
%token  PARSEOP_DEFINITIONBLOCK
260
%token  PARSEOP_DEREFOF
245
%token  PARSEOP_DEREFOF
261
%token  PARSEOP_DEVICE
246
%token  PARSEOP_DEVICE
262
%token  PARSEOP_DIVIDE
247
%token  PARSEOP_DIVIDE
263
%token  PARSEOP_DMA
248
%token  PARSEOP_DMA
264
%token  PARSEOP_DMATYPE_A
249
%token  PARSEOP_DMATYPE_A
265
%token  PARSEOP_DMATYPE_COMPATIBILITY
250
%token  PARSEOP_DMATYPE_COMPATIBILITY
266
%token  PARSEOP_DMATYPE_B
251
%token  PARSEOP_DMATYPE_B
267
%token  PARSEOP_DMATYPE_F
252
%token  PARSEOP_DMATYPE_F
268
%token  PARSEOP_DWORDCONST
253
%token  PARSEOP_DWORDCONST
269
%token  PARSEOP_DWORDIO
254
%token  PARSEOP_DWORDIO
270
%token  PARSEOP_DWORDMEMORY
255
%token  PARSEOP_DWORDMEMORY
271
%token  PARSEOP_DWORDSPACE
256
%token  PARSEOP_DWORDSPACE
272
%token  PARSEOP_EISAID
257
%token  PARSEOP_EISAID
273
%token  PARSEOP_ELSE
258
%token  PARSEOP_ELSE
274
%token  PARSEOP_ELSEIF
259
%token  PARSEOP_ELSEIF
275
%token  PARSEOP_ENDDEPENDENTFN
260
%token  PARSEOP_ENDDEPENDENTFN
276
%token  PARSEOP_ENDTAG
261
%token  PARSEOP_ENDTAG
277
%token  PARSEOP_ERRORNODE
262
%token  PARSEOP_ERRORNODE
278
%token  PARSEOP_EVENT
263
%token  PARSEOP_EVENT
279
%token  PARSEOP_EXTENDEDIO
264
%token  PARSEOP_EXTENDEDIO
280
%token  PARSEOP_EXTENDEDMEMORY
265
%token  PARSEOP_EXTENDEDMEMORY
281
%token  PARSEOP_EXTENDEDSPACE
266
%token  PARSEOP_EXTENDEDSPACE
282
%token  PARSEOP_EXTERNAL
267
%token  PARSEOP_EXTERNAL
283
%token  PARSEOP_FATAL
268
%token  PARSEOP_FATAL
284
%token  PARSEOP_FIELD
269
%token  PARSEOP_FIELD
285
%token  PARSEOP_FINDSETLEFTBIT
270
%token  PARSEOP_FINDSETLEFTBIT
286
%token  PARSEOP_FINDSETRIGHTBIT
271
%token  PARSEOP_FINDSETRIGHTBIT
287
%token  PARSEOP_FIXEDIO
272
%token  PARSEOP_FIXEDIO
288
%token  PARSEOP_FROMBCD
273
%token  PARSEOP_FROMBCD
289
%token  PARSEOP_FUNCTION
274
%token  PARSEOP_FUNCTION
290
%token  PARSEOP_IF
275
%token  PARSEOP_IF
291
%token  PARSEOP_INCLUDE
276
%token  PARSEOP_INCLUDE
292
%token  PARSEOP_INCLUDE_CSTYLE
277
%token  PARSEOP_INCLUDE_CSTYLE
293
%token  PARSEOP_INCLUDE_END
278
%token  PARSEOP_INCLUDE_END
294
%token  PARSEOP_INCREMENT
279
%token  PARSEOP_INCREMENT
295
%token  PARSEOP_INDEX
280
%token  PARSEOP_INDEX
296
%token  PARSEOP_INDEXFIELD
281
%token  PARSEOP_INDEXFIELD
297
%token  PARSEOP_INTEGER
282
%token  PARSEOP_INTEGER
298
%token  PARSEOP_INTERRUPT
283
%token  PARSEOP_INTERRUPT
299
%token  PARSEOP_INTLEVEL_ACTIVEHIGH
284
%token  PARSEOP_INTLEVEL_ACTIVEHIGH
300
%token  PARSEOP_INTLEVEL_ACTIVELOW
285
%token  PARSEOP_INTLEVEL_ACTIVELOW
301
%token  PARSEOP_INTTYPE_EDGE
286
%token  PARSEOP_INTTYPE_EDGE
302
%token  PARSEOP_INTTYPE_LEVEL
287
%token  PARSEOP_INTTYPE_LEVEL
303
%token  PARSEOP_IO
288
%token  PARSEOP_IO
304
%token  PARSEOP_IODECODETYPE_10
289
%token  PARSEOP_IODECODETYPE_10
305
%token  PARSEOP_IODECODETYPE_16
290
%token  PARSEOP_IODECODETYPE_16
306
%token  PARSEOP_IRQ
291
%token  PARSEOP_IRQ
307
%token  PARSEOP_IRQNOFLAGS
292
%token  PARSEOP_IRQNOFLAGS
308
%token  PARSEOP_LAND
293
%token  PARSEOP_LAND
309
%token  PARSEOP_LEQUAL
294
%token  PARSEOP_LEQUAL
310
%token  PARSEOP_LGREATER
295
%token  PARSEOP_LGREATER
311
%token  PARSEOP_LGREATEREQUAL
296
%token  PARSEOP_LGREATEREQUAL
312
%token  PARSEOP_LINE_CSTYLE
297
%token  PARSEOP_LINE_CSTYLE
313
%token  PARSEOP_LLESS
298
%token  PARSEOP_LLESS
314
%token  PARSEOP_LLESSEQUAL
299
%token  PARSEOP_LLESSEQUAL
315
%token  PARSEOP_LNOT
300
%token  PARSEOP_LNOT
316
%token  PARSEOP_LNOTEQUAL
301
%token  PARSEOP_LNOTEQUAL
317
%token  PARSEOP_LOAD
302
%token  PARSEOP_LOAD
318
%token  PARSEOP_LOADTABLE
303
%token  PARSEOP_LOADTABLE
319
%token  PARSEOP_LOCAL0
304
%token  PARSEOP_LOCAL0
320
%token  PARSEOP_LOCAL1
305
%token  PARSEOP_LOCAL1
321
%token  PARSEOP_LOCAL2
306
%token  PARSEOP_LOCAL2
322
%token  PARSEOP_LOCAL3
307
%token  PARSEOP_LOCAL3
323
%token  PARSEOP_LOCAL4
308
%token  PARSEOP_LOCAL4
324
%token  PARSEOP_LOCAL5
309
%token  PARSEOP_LOCAL5
325
%token  PARSEOP_LOCAL6
310
%token  PARSEOP_LOCAL6
326
%token  PARSEOP_LOCAL7
311
%token  PARSEOP_LOCAL7
327
%token  PARSEOP_LOCKRULE_LOCK
312
%token  PARSEOP_LOCKRULE_LOCK
328
%token  PARSEOP_LOCKRULE_NOLOCK
313
%token  PARSEOP_LOCKRULE_NOLOCK
329
%token  PARSEOP_LOR
314
%token  PARSEOP_LOR
330
%token  PARSEOP_MATCH
315
%token  PARSEOP_MATCH
331
%token  PARSEOP_MATCHTYPE_MEQ
316
%token  PARSEOP_MATCHTYPE_MEQ
332
%token  PARSEOP_MATCHTYPE_MGE
317
%token  PARSEOP_MATCHTYPE_MGE
333
%token  PARSEOP_MATCHTYPE_MGT
318
%token  PARSEOP_MATCHTYPE_MGT
334
%token  PARSEOP_MATCHTYPE_MLE
319
%token  PARSEOP_MATCHTYPE_MLE
335
%token  PARSEOP_MATCHTYPE_MLT
320
%token  PARSEOP_MATCHTYPE_MLT
336
%token  PARSEOP_MATCHTYPE_MTR
321
%token  PARSEOP_MATCHTYPE_MTR
337
%token  PARSEOP_MAXTYPE_FIXED
322
%token  PARSEOP_MAXTYPE_FIXED
338
%token  PARSEOP_MAXTYPE_NOTFIXED
323
%token  PARSEOP_MAXTYPE_NOTFIXED
339
%token  PARSEOP_MEMORY24
324
%token  PARSEOP_MEMORY24
340
%token  PARSEOP_MEMORY32
325
%token  PARSEOP_MEMORY32
341
%token  PARSEOP_MEMORY32FIXED
326
%token  PARSEOP_MEMORY32FIXED
342
%token  PARSEOP_MEMTYPE_CACHEABLE
327
%token  PARSEOP_MEMTYPE_CACHEABLE
343
%token  PARSEOP_MEMTYPE_NONCACHEABLE
328
%token  PARSEOP_MEMTYPE_NONCACHEABLE
344
%token  PARSEOP_MEMTYPE_PREFETCHABLE
329
%token  PARSEOP_MEMTYPE_PREFETCHABLE
345
%token  PARSEOP_MEMTYPE_WRITECOMBINING
330
%token  PARSEOP_MEMTYPE_WRITECOMBINING
346
%token  PARSEOP_METHOD
331
%token  PARSEOP_METHOD
347
%token  PARSEOP_METHODCALL
332
%token  PARSEOP_METHODCALL
348
%token  PARSEOP_MID
333
%token  PARSEOP_MID
349
%token  PARSEOP_MINTYPE_FIXED
334
%token  PARSEOP_MINTYPE_FIXED
350
%token  PARSEOP_MINTYPE_NOTFIXED
335
%token  PARSEOP_MINTYPE_NOTFIXED
351
%token  PARSEOP_MOD
336
%token  PARSEOP_MOD
352
%token  PARSEOP_MULTIPLY
337
%token  PARSEOP_MULTIPLY
353
%token  PARSEOP_MUTEX
338
%token  PARSEOP_MUTEX
354
%token  PARSEOP_NAME
339
%token  PARSEOP_NAME
355
%token  PARSEOP_NAMESEG
340
%token  PARSEOP_NAMESEG
356
%token  PARSEOP_NAMESTRING
341
%token  PARSEOP_NAMESTRING
357
%token  PARSEOP_NAND
342
%token  PARSEOP_NAND
358
%token  PARSEOP_NOOP
343
%token  PARSEOP_NOOP
359
%token  PARSEOP_NOR
344
%token  PARSEOP_NOR
360
%token  PARSEOP_NOT
345
%token  PARSEOP_NOT
361
%token  PARSEOP_NOTIFY
346
%token  PARSEOP_NOTIFY
362
%token  PARSEOP_OBJECTTYPE
347
%token  PARSEOP_OBJECTTYPE
363
%token  PARSEOP_OBJECTTYPE_BFF
348
%token  PARSEOP_OBJECTTYPE_BFF
364
%token  PARSEOP_OBJECTTYPE_BUF
349
%token  PARSEOP_OBJECTTYPE_BUF
365
%token  PARSEOP_OBJECTTYPE_DDB
350
%token  PARSEOP_OBJECTTYPE_DDB
366
%token  PARSEOP_OBJECTTYPE_DEV
351
%token  PARSEOP_OBJECTTYPE_DEV
367
%token  PARSEOP_OBJECTTYPE_EVT
352
%token  PARSEOP_OBJECTTYPE_EVT
368
%token  PARSEOP_OBJECTTYPE_FLD
353
%token  PARSEOP_OBJECTTYPE_FLD
369
%token  PARSEOP_OBJECTTYPE_INT
354
%token  PARSEOP_OBJECTTYPE_INT
370
%token  PARSEOP_OBJECTTYPE_MTH
355
%token  PARSEOP_OBJECTTYPE_MTH
371
%token  PARSEOP_OBJECTTYPE_MTX
356
%token  PARSEOP_OBJECTTYPE_MTX
372
%token  PARSEOP_OBJECTTYPE_OPR
357
%token  PARSEOP_OBJECTTYPE_OPR
373
%token  PARSEOP_OBJECTTYPE_PKG
358
%token  PARSEOP_OBJECTTYPE_PKG
374
%token  PARSEOP_OBJECTTYPE_POW
359
%token  PARSEOP_OBJECTTYPE_POW
375
%token  PARSEOP_OBJECTTYPE_PRO
360
%token  PARSEOP_OBJECTTYPE_PRO
376
%token  PARSEOP_OBJECTTYPE_STR
361
%token  PARSEOP_OBJECTTYPE_STR
377
%token  PARSEOP_OBJECTTYPE_THZ
362
%token  PARSEOP_OBJECTTYPE_THZ
378
%token  PARSEOP_OBJECTTYPE_UNK
363
%token  PARSEOP_OBJECTTYPE_UNK
379
%token  PARSEOP_OFFSET
364
%token  PARSEOP_OFFSET
380
%token  PARSEOP_ONE
365
%token  PARSEOP_ONE
381
%token  PARSEOP_ONES
366
%token  PARSEOP_ONES
382
%token  PARSEOP_OPERATIONREGION
367
%token  PARSEOP_OPERATIONREGION
383
%token  PARSEOP_OR
368
%token  PARSEOP_OR
384
%token  PARSEOP_PACKAGE
369
%token  PARSEOP_PACKAGE
385
%token  PARSEOP_PACKAGE_LENGTH
370
%token  PARSEOP_PACKAGE_LENGTH
386
%token  PARSEOP_POWERRESOURCE
371
%token  PARSEOP_POWERRESOURCE
387
%token  PARSEOP_PROCESSOR
372
%token  PARSEOP_PROCESSOR
388
%token  PARSEOP_QWORDCONST
373
%token  PARSEOP_QWORDCONST
389
%token  PARSEOP_QWORDIO
374
%token  PARSEOP_QWORDIO
390
%token  PARSEOP_QWORDMEMORY
375
%token  PARSEOP_QWORDMEMORY
391
%token  PARSEOP_QWORDSPACE
376
%token  PARSEOP_QWORDSPACE
392
%token  PARSEOP_RANGETYPE_ENTIRE
377
%token  PARSEOP_RANGETYPE_ENTIRE
393
%token  PARSEOP_RANGETYPE_ISAONLY
378
%token  PARSEOP_RANGETYPE_ISAONLY
394
%token  PARSEOP_RANGETYPE_NONISAONLY
379
%token  PARSEOP_RANGETYPE_NONISAONLY
395
%token  PARSEOP_RAW_DATA
380
%token  PARSEOP_RAW_DATA
396
%token  PARSEOP_READWRITETYPE_BOTH
381
%token  PARSEOP_READWRITETYPE_BOTH
397
%token  PARSEOP_READWRITETYPE_READONLY
382
%token  PARSEOP_READWRITETYPE_READONLY
398
%token  PARSEOP_REFOF
383
%token  PARSEOP_REFOF
399
%token  PARSEOP_REGIONSPACE_CMOS
384
%token  PARSEOP_REGIONSPACE_CMOS
400
%token  PARSEOP_REGIONSPACE_EC
385
%token  PARSEOP_REGIONSPACE_EC
401
%token  PARSEOP_REGIONSPACE_IO
386
%token  PARSEOP_REGIONSPACE_IO
402
%token  PARSEOP_REGIONSPACE_IPMI
387
%token  PARSEOP_REGIONSPACE_IPMI
403
%token  PARSEOP_REGIONSPACE_MEM
388
%token  PARSEOP_REGIONSPACE_MEM
404
%token  PARSEOP_REGIONSPACE_PCI
389
%token  PARSEOP_REGIONSPACE_PCI
405
%token  PARSEOP_REGIONSPACE_PCIBAR
390
%token  PARSEOP_REGIONSPACE_PCIBAR
406
%token  PARSEOP_REGIONSPACE_SMBUS
391
%token  PARSEOP_REGIONSPACE_SMBUS
407
%token  PARSEOP_REGISTER
392
%token  PARSEOP_REGISTER
408
%token  PARSEOP_RELEASE
393
%token  PARSEOP_RELEASE
409
%token  PARSEOP_RESERVED_BYTES
394
%token  PARSEOP_RESERVED_BYTES
410
%token  PARSEOP_RESET
395
%token  PARSEOP_RESET
411
%token  PARSEOP_RESOURCETEMPLATE
396
%token  PARSEOP_RESOURCETEMPLATE
412
%token  PARSEOP_RESOURCETYPE_CONSUMER
397
%token  PARSEOP_RESOURCETYPE_CONSUMER
413
%token  PARSEOP_RESOURCETYPE_PRODUCER
398
%token  PARSEOP_RESOURCETYPE_PRODUCER
414
%token  PARSEOP_RETURN
399
%token  PARSEOP_RETURN
415
%token  PARSEOP_REVISION
400
%token  PARSEOP_REVISION
416
%token  PARSEOP_SCOPE
401
%token  PARSEOP_SCOPE
417
%token  PARSEOP_SERIALIZERULE_NOTSERIAL
402
%token  PARSEOP_SERIALIZERULE_NOTSERIAL
418
%token  PARSEOP_SERIALIZERULE_SERIAL
403
%token  PARSEOP_SERIALIZERULE_SERIAL
419
%token  PARSEOP_SHARETYPE_EXCLUSIVE
404
%token  PARSEOP_SHARETYPE_EXCLUSIVE
420
%token  PARSEOP_SHARETYPE_SHARED
405
%token  PARSEOP_SHARETYPE_SHARED
421
%token  PARSEOP_SHIFTLEFT
406
%token  PARSEOP_SHIFTLEFT
422
%token  PARSEOP_SHIFTRIGHT
407
%token  PARSEOP_SHIFTRIGHT
423
%token  PARSEOP_SIGNAL
408
%token  PARSEOP_SIGNAL
424
%token  PARSEOP_SIZEOF
409
%token  PARSEOP_SIZEOF
425
%token  PARSEOP_SLEEP
410
%token  PARSEOP_SLEEP
426
%token  PARSEOP_STALL
411
%token  PARSEOP_STALL
427
%token  PARSEOP_STARTDEPENDENTFN
412
%token  PARSEOP_STARTDEPENDENTFN
428
%token  PARSEOP_STARTDEPENDENTFN_NOPRI
413
%token  PARSEOP_STARTDEPENDENTFN_NOPRI
429
%token  PARSEOP_STORE
414
%token  PARSEOP_STORE
430
%token  PARSEOP_STRING_LITERAL
415
%token  PARSEOP_STRING_LITERAL
431
%token  PARSEOP_SUBTRACT
416
%token  PARSEOP_SUBTRACT
432
%token  PARSEOP_SWITCH
417
%token  PARSEOP_SWITCH
433
%token  PARSEOP_THERMALZONE
418
%token  PARSEOP_THERMALZONE
434
%token  PARSEOP_TIMER
419
%token  PARSEOP_TIMER
435
%token  PARSEOP_TOBCD
420
%token  PARSEOP_TOBCD
436
%token  PARSEOP_TOBUFFER
421
%token  PARSEOP_TOBUFFER
437
%token  PARSEOP_TODECIMALSTRING
422
%token  PARSEOP_TODECIMALSTRING
438
%token  PARSEOP_TOHEXSTRING
423
%token  PARSEOP_TOHEXSTRING
439
%token  PARSEOP_TOINTEGER
424
%token  PARSEOP_TOINTEGER
440
%token  PARSEOP_TOSTRING
425
%token  PARSEOP_TOSTRING
441
%token  PARSEOP_TOUUID
426
%token  PARSEOP_TOUUID
442
%token  PARSEOP_TRANSLATIONTYPE_DENSE
427
%token  PARSEOP_TRANSLATIONTYPE_DENSE
443
%token  PARSEOP_TRANSLATIONTYPE_SPARSE
428
%token  PARSEOP_TRANSLATIONTYPE_SPARSE
444
%token  PARSEOP_TYPE_STATIC
429
%token  PARSEOP_TYPE_STATIC
445
%token  PARSEOP_TYPE_TRANSLATION
430
%token  PARSEOP_TYPE_TRANSLATION
446
%token  PARSEOP_UNICODE
431
%token  PARSEOP_UNICODE
447
%token  PARSEOP_UNLOAD
432
%token  PARSEOP_UNLOAD
448
%token  PARSEOP_UPDATERULE_ONES
433
%token  PARSEOP_UPDATERULE_ONES
449
%token  PARSEOP_UPDATERULE_PRESERVE
434
%token  PARSEOP_UPDATERULE_PRESERVE
450
%token  PARSEOP_UPDATERULE_ZEROS
435
%token  PARSEOP_UPDATERULE_ZEROS
451
%token  PARSEOP_VAR_PACKAGE
436
%token  PARSEOP_VAR_PACKAGE
452
%token  PARSEOP_VENDORLONG
437
%token  PARSEOP_VENDORLONG
453
%token  PARSEOP_VENDORSHORT
438
%token  PARSEOP_VENDORSHORT
454
%token  PARSEOP_WAIT
439
%token  PARSEOP_WAIT
455
%token  PARSEOP_WHILE
440
%token  PARSEOP_WHILE
456
%token  PARSEOP_WORDBUSNUMBER
441
%token  PARSEOP_WORDBUSNUMBER
457
%token  PARSEOP_WORDCONST
442
%token  PARSEOP_WORDCONST
458
%token  PARSEOP_WORDIO
443
%token  PARSEOP_WORDIO
459
%token  PARSEOP_WORDSPACE
444
%token  PARSEOP_WORDSPACE
460
%token  PARSEOP_XFERTYPE_8
445
%token  PARSEOP_XFERTYPE_8
461
%token  PARSEOP_XFERTYPE_8_16
446
%token  PARSEOP_XFERTYPE_8_16
462
%token  PARSEOP_XFERTYPE_16
447
%token  PARSEOP_XFERTYPE_16
463
%token  PARSEOP_XOR
448
%token  PARSEOP_XOR
464
%token  PARSEOP_ZERO
449
%token  PARSEOP_ZERO
465
 
450
 
-
 
451
/*
-
 
452
 * Special functions. These should probably stay at the end of this
-
 
453
 * table.
-
 
454
 */
-
 
455
%token  PARSEOP___DATE__
-
 
456
%token  PARSEOP___FILE__
-
 
457
%token  PARSEOP___LINE__
466
 
458
 
467
/*
459
/*
468
 * Production names
460
 * Production names
469
 */
461
 */
470
 
462
 
471
%type  ASLCode
463
%type  ASLCode
472
%type  DefinitionBlockTerm
464
%type  DefinitionBlockTerm
473
%type  TermList
465
%type  TermList
474
%type  Term
466
%type  Term
475
%type  CompilerDirective
467
%type  CompilerDirective
476
%type  ObjectList
468
%type  ObjectList
477
%type  Object
469
%type  Object
478
%type  DataObject
470
%type  DataObject
479
%type  BufferData
471
%type  BufferData
480
%type  PackageData
472
%type  PackageData
481
%type  IntegerData
473
%type  IntegerData
482
%type  StringData
474
%type  StringData
483
%type  NamedObject
475
%type  NamedObject
484
%type  NameSpaceModifier
476
%type  NameSpaceModifier
485
%type  UserTerm
477
%type  UserTerm
486
%type  ArgList
478
%type  ArgList
487
%type  TermArg
479
%type  TermArg
488
%type  Target
480
%type  Target
489
%type  RequiredTarget
481
%type  RequiredTarget
490
%type  SimpleTarget
482
%type  SimpleTarget
491
%type  BufferTermData
483
%type  BufferTermData
492
%type  ParameterTypePackage
484
%type  ParameterTypePackage
493
%type  ParameterTypePackageList
485
%type  ParameterTypePackageList
494
%type  ParameterTypesPackage
486
%type  ParameterTypesPackage
495
%type  ParameterTypesPackageList
487
%type  ParameterTypesPackageList
496
 
488
 
497
%type  Type1Opcode
489
%type  Type1Opcode
498
%type  Type2Opcode
490
%type  Type2Opcode
499
%type  Type2IntegerOpcode
491
%type  Type2IntegerOpcode
500
%type  Type2StringOpcode
492
%type  Type2StringOpcode
501
%type  Type2BufferOpcode
493
%type  Type2BufferOpcode
502
%type  Type2BufferOrStringOpcode
494
%type  Type2BufferOrStringOpcode
503
%type  Type3Opcode
495
%type  Type3Opcode
504
 
496
 
505
/* Obsolete %type  Type4Opcode */
497
/* Obsolete %type  Type4Opcode */
506
 
498
 
507
%type  Type5Opcode
499
%type  Type5Opcode
508
%type  Type6Opcode
500
%type  Type6Opcode
509
 
501
 
510
%type  LineTerm
502
%type  LineTerm
511
%type  IncludeTerm
503
%type  IncludeTerm
512
%type  IncludeCStyleTerm
504
%type  IncludeCStyleTerm
513
%type  ExternalTerm
505
%type  ExternalTerm
514
 
506
 
515
%type  FieldUnitList
507
%type  FieldUnitList
516
%type  FieldUnit
508
%type  FieldUnit
517
%type  FieldUnitEntry
509
%type  FieldUnitEntry
518
 
510
 
519
%type  OffsetTerm
511
%type  OffsetTerm
520
%type  AccessAsTerm
512
%type  AccessAsTerm
521
%type  OptionalAccessAttribTerm
513
%type  OptionalAccessAttribTerm
522
 
514
 
523
 
515
 
524
/* Named Objects */
516
/* Named Objects */
525
 
517
 
526
%type  BankFieldTerm
518
%type  BankFieldTerm
527
%type  CreateBitFieldTerm
519
%type  CreateBitFieldTerm
528
%type  CreateByteFieldTerm
520
%type  CreateByteFieldTerm
529
%type  CreateDWordFieldTerm
521
%type  CreateDWordFieldTerm
530
%type  CreateFieldTerm
522
%type  CreateFieldTerm
531
%type  CreateQWordFieldTerm
523
%type  CreateQWordFieldTerm
532
%type  CreateWordFieldTerm
524
%type  CreateWordFieldTerm
533
%type  DataRegionTerm
525
%type  DataRegionTerm
534
%type  DeviceTerm
526
%type  DeviceTerm
535
%type  EventTerm
527
%type  EventTerm
536
%type  FieldTerm
528
%type  FieldTerm
537
%type  FunctionTerm
529
%type  FunctionTerm
538
%type  IndexFieldTerm
530
%type  IndexFieldTerm
539
%type  MethodTerm
531
%type  MethodTerm
540
%type  MutexTerm
532
%type  MutexTerm
541
%type  OpRegionTerm
533
%type  OpRegionTerm
542
%type  OpRegionSpaceIdTerm
534
%type  OpRegionSpaceIdTerm
543
%type  PowerResTerm
535
%type  PowerResTerm
544
%type  ProcessorTerm
536
%type  ProcessorTerm
545
%type  ThermalZoneTerm
537
%type  ThermalZoneTerm
546
 
538
 
547
 
539
 
548
/* Namespace modifiers */
540
/* Namespace modifiers */
549
 
541
 
550
%type  AliasTerm
542
%type  AliasTerm
551
%type  NameTerm
543
%type  NameTerm
552
%type  ScopeTerm
544
%type  ScopeTerm
553
 
545
 
554
/* Type 1 opcodes */
546
/* Type 1 opcodes */
555
 
547
 
556
%type  BreakTerm
548
%type  BreakTerm
557
%type  BreakPointTerm
549
%type  BreakPointTerm
558
%type  ContinueTerm
550
%type  ContinueTerm
559
%type  FatalTerm
551
%type  FatalTerm
560
%type  IfElseTerm
552
%type  IfElseTerm
561
%type  IfTerm
553
%type  IfTerm
562
%type  ElseTerm
554
%type  ElseTerm
563
%type  LoadTerm
555
%type  LoadTerm
564
%type  NoOpTerm
556
%type  NoOpTerm
565
%type  NotifyTerm
557
%type  NotifyTerm
566
%type  ReleaseTerm
558
%type  ReleaseTerm
567
%type  ResetTerm
559
%type  ResetTerm
568
%type  ReturnTerm
560
%type  ReturnTerm
569
%type  SignalTerm
561
%type  SignalTerm
570
%type  SleepTerm
562
%type  SleepTerm
571
%type  StallTerm
563
%type  StallTerm
572
%type  SwitchTerm
564
%type  SwitchTerm
573
%type  CaseDefaultTermList
565
%type  CaseDefaultTermList
574
//%type  CaseTermList
566
//%type  CaseTermList
575
%type  CaseTerm
567
%type  CaseTerm
576
%type  DefaultTerm
568
%type  DefaultTerm
577
%type  UnloadTerm
569
%type  UnloadTerm
578
%type  WhileTerm
570
%type  WhileTerm
579
 
571
 
580
/* Type 2 opcodes */
572
/* Type 2 opcodes */
581
 
573
 
582
%type  AcquireTerm
574
%type  AcquireTerm
583
%type  AddTerm
575
%type  AddTerm
584
%type  AndTerm
576
%type  AndTerm
585
%type  ConcatTerm
577
%type  ConcatTerm
586
%type  ConcatResTerm
578
%type  ConcatResTerm
587
%type  CondRefOfTerm
579
%type  CondRefOfTerm
588
%type  CopyObjectTerm
580
%type  CopyObjectTerm
589
%type  DecTerm
581
%type  DecTerm
590
%type  DerefOfTerm
582
%type  DerefOfTerm
591
%type  DivideTerm
583
%type  DivideTerm
592
%type  FindSetLeftBitTerm
584
%type  FindSetLeftBitTerm
593
%type  FindSetRightBitTerm
585
%type  FindSetRightBitTerm
594
%type  FromBCDTerm
586
%type  FromBCDTerm
595
%type  IncTerm
587
%type  IncTerm
596
%type  IndexTerm
588
%type  IndexTerm
597
%type  LAndTerm
589
%type  LAndTerm
598
%type  LEqualTerm
590
%type  LEqualTerm
599
%type  LGreaterTerm
591
%type  LGreaterTerm
600
%type  LGreaterEqualTerm
592
%type  LGreaterEqualTerm
601
%type  LLessTerm
593
%type  LLessTerm
602
%type  LLessEqualTerm
594
%type  LLessEqualTerm
603
%type  LNotTerm
595
%type  LNotTerm
604
%type  LNotEqualTerm
596
%type  LNotEqualTerm
605
%type  LoadTableTerm
597
%type  LoadTableTerm
606
%type  LOrTerm
598
%type  LOrTerm
607
%type  MatchTerm
599
%type  MatchTerm
608
%type  MidTerm
600
%type  MidTerm
609
%type  ModTerm
601
%type  ModTerm
610
%type  MultiplyTerm
602
%type  MultiplyTerm
611
%type  NAndTerm
603
%type  NAndTerm
612
%type  NOrTerm
604
%type  NOrTerm
613
%type  NotTerm
605
%type  NotTerm
614
%type  ObjectTypeTerm
606
%type  ObjectTypeTerm
615
%type  OrTerm
607
%type  OrTerm
616
%type  RefOfTerm
608
%type  RefOfTerm
617
%type  ShiftLeftTerm
609
%type  ShiftLeftTerm
618
%type  ShiftRightTerm
610
%type  ShiftRightTerm
619
%type  SizeOfTerm
611
%type  SizeOfTerm
620
%type  StoreTerm
612
%type  StoreTerm
621
%type  SubtractTerm
613
%type  SubtractTerm
622
%type  TimerTerm
614
%type  TimerTerm
623
%type  ToBCDTerm
615
%type  ToBCDTerm
624
%type  ToBufferTerm
616
%type  ToBufferTerm
625
%type  ToDecimalStringTerm
617
%type  ToDecimalStringTerm
626
%type  ToHexStringTerm
618
%type  ToHexStringTerm
627
%type  ToIntegerTerm
619
%type  ToIntegerTerm
628
%type  ToStringTerm
620
%type  ToStringTerm
629
%type  WaitTerm
621
%type  WaitTerm
630
%type  XOrTerm
622
%type  XOrTerm
631
 
623
 
632
%type  OptionalTermArg
624
%type  OptionalTermArg
633
%type  OptionalReturnArg
625
%type  OptionalReturnArg
634
%type  OptionalListString
626
%type  OptionalListString
635
 
627
 
636
 
628
 
637
/* Keywords */
629
/* Keywords */
638
 
630
 
639
%type  ObjectTypeKeyword
631
%type  ObjectTypeKeyword
640
%type  AccessTypeKeyword
632
%type  AccessTypeKeyword
641
%type  AccessAttribKeyword
633
%type  AccessAttribKeyword
642
%type  LockRuleKeyword
634
%type  LockRuleKeyword
643
%type  UpdateRuleKeyword
635
%type  UpdateRuleKeyword
644
%type  RegionSpaceKeyword
636
%type  RegionSpaceKeyword
645
%type  AddressSpaceKeyword
637
%type  AddressSpaceKeyword
646
%type  MatchOpKeyword
638
%type  MatchOpKeyword
647
%type  SerializeRuleKeyword
639
%type  SerializeRuleKeyword
648
%type  DMATypeKeyword
640
%type  DMATypeKeyword
649
%type  OptionalBusMasterKeyword
641
%type  OptionalBusMasterKeyword
650
%type  XferTypeKeyword
642
%type  XferTypeKeyword
651
%type  ResourceTypeKeyword
643
%type  ResourceTypeKeyword
652
%type  MinKeyword
644
%type  MinKeyword
653
%type  MaxKeyword
645
%type  MaxKeyword
654
%type  DecodeKeyword
646
%type  DecodeKeyword
655
%type  RangeTypeKeyword
647
%type  RangeTypeKeyword
656
%type  MemTypeKeyword
648
%type  MemTypeKeyword
657
%type  OptionalReadWriteKeyword
649
%type  OptionalReadWriteKeyword
658
%type  InterruptTypeKeyword
650
%type  InterruptTypeKeyword
659
%type  InterruptLevel
651
%type  InterruptLevel
660
%type  ShareTypeKeyword
652
%type  ShareTypeKeyword
661
%type  IODecodeKeyword
653
%type  IODecodeKeyword
662
%type  TypeKeyword
654
%type  TypeKeyword
663
%type  TranslationKeyword
655
%type  TranslationKeyword
664
%type  AddressKeyword
656
%type  AddressKeyword
665
 
657
 
666
/* Types */
658
/* Types */
667
 
659
 
668
%type  SuperName
660
%type  SuperName
669
%type  ArgTerm
661
%type  ArgTerm
670
%type  LocalTerm
662
%type  LocalTerm
671
%type  DebugTerm
663
%type  DebugTerm
672
 
664
 
673
%type  Integer
665
%type  Integer
674
%type  ByteConst
666
%type  ByteConst
675
%type  WordConst
667
%type  WordConst
676
%type  DWordConst
668
%type  DWordConst
677
%type  QWordConst
669
%type  QWordConst
678
%type  String
670
%type  String
679
 
671
 
680
%type  ConstTerm
672
%type  ConstTerm
681
%type  ByteConstExpr
673
%type  ByteConstExpr
682
%type  WordConstExpr
674
%type  WordConstExpr
683
%type  DWordConstExpr
675
%type  DWordConstExpr
684
%type  QWordConstExpr
676
%type  QWordConstExpr
685
%type  ConstExprTerm
677
%type  ConstExprTerm
686
 
678
 
687
%type  BufferTerm
679
%type  BufferTerm
688
%type  ByteList
680
%type  ByteList
689
%type  DWordList
681
%type  DWordList
690
 
682
 
691
%type  PackageTerm
683
%type  PackageTerm
692
%type  PackageList
684
%type  PackageList
693
%type  PackageElement
685
%type  PackageElement
694
 
686
 
695
%type  VarPackageLengthTerm
687
%type  VarPackageLengthTerm
696
 
688
 
697
/* Macros */
689
/* Macros */
698
 
690
 
699
%type  EISAIDTerm
691
%type  EISAIDTerm
700
%type  ResourceTemplateTerm
692
%type  ResourceTemplateTerm
701
%type  ToUUIDTerm
693
%type  ToUUIDTerm
702
%type  UnicodeTerm
694
%type  UnicodeTerm
703
%type  ResourceMacroList
695
%type  ResourceMacroList
704
%type  ResourceMacroTerm
696
%type  ResourceMacroTerm
705
 
697
 
706
%type  DMATerm
698
%type  DMATerm
707
%type  DWordIOTerm
699
%type  DWordIOTerm
708
%type  DWordMemoryTerm
700
%type  DWordMemoryTerm
709
%type  DWordSpaceTerm
701
%type  DWordSpaceTerm
710
%type  EndDependentFnTerm
702
%type  EndDependentFnTerm
711
%type  ExtendedIOTerm
703
%type  ExtendedIOTerm
712
%type  ExtendedMemoryTerm
704
%type  ExtendedMemoryTerm
713
%type  ExtendedSpaceTerm
705
%type  ExtendedSpaceTerm
714
%type  FixedIOTerm
706
%type  FixedIOTerm
715
%type  InterruptTerm
707
%type  InterruptTerm
716
%type  IOTerm
708
%type  IOTerm
717
%type  IRQNoFlagsTerm
709
%type  IRQNoFlagsTerm
718
%type  IRQTerm
710
%type  IRQTerm
719
%type  Memory24Term
711
%type  Memory24Term
720
%type  Memory32FixedTerm
712
%type  Memory32FixedTerm
721
%type  Memory32Term
713
%type  Memory32Term
722
%type  QWordIOTerm
714
%type  QWordIOTerm
723
%type  QWordMemoryTerm
715
%type  QWordMemoryTerm
724
%type  QWordSpaceTerm
716
%type  QWordSpaceTerm
725
%type  RegisterTerm
717
%type  RegisterTerm
726
%type  StartDependentFnTerm
718
%type  StartDependentFnTerm
727
%type  StartDependentFnNoPriTerm
719
%type  StartDependentFnNoPriTerm
728
%type  VendorLongTerm
720
%type  VendorLongTerm
729
%type  VendorShortTerm
721
%type  VendorShortTerm
730
%type  WordBusNumberTerm
722
%type  WordBusNumberTerm
731
%type  WordIOTerm
723
%type  WordIOTerm
732
%type  WordSpaceTerm
724
%type  WordSpaceTerm
733
 
725
 
734
%type  NameString
726
%type  NameString
735
%type  NameSeg
727
%type  NameSeg
736
 
728
 
737
 
729
 
738
/* Local types that help construct the AML, not in ACPI spec */
730
/* Local types that help construct the AML, not in ACPI spec */
739
 
731
 
740
%type  IncludeEndTerm
732
%type  IncludeEndTerm
741
%type  AmlPackageLengthTerm
733
%type  AmlPackageLengthTerm
742
%type  OptionalByteConstExpr
734
%type  OptionalByteConstExpr
743
%type  OptionalDWordConstExpr
735
%type  OptionalDWordConstExpr
744
%type  OptionalQWordConstExpr
736
%type  OptionalQWordConstExpr
745
%type  OptionalSerializeRuleKeyword
737
%type  OptionalSerializeRuleKeyword
746
%type  OptionalResourceType_First
738
%type  OptionalResourceType_First
747
%type  OptionalResourceType
739
%type  OptionalResourceType
748
%type  OptionalMinType
740
%type  OptionalMinType
749
%type  OptionalMaxType
741
%type  OptionalMaxType
750
%type  OptionalMemType
742
%type  OptionalMemType
751
%type  OptionalCount
743
%type  OptionalCount
752
%type  OptionalDecodeType
744
%type  OptionalDecodeType
753
%type  OptionalRangeType
745
%type  OptionalRangeType
754
%type  OptionalShareType
746
%type  OptionalShareType
755
%type  OptionalType
747
%type  OptionalType
756
%type  OptionalType_Last
748
%type  OptionalType_Last
757
%type  OptionalTranslationType_Last
749
%type  OptionalTranslationType_Last
758
%type  OptionalStringData
750
%type  OptionalStringData
759
%type  OptionalNameString
751
%type  OptionalNameString
760
%type  OptionalNameString_First
752
%type  OptionalNameString_First
761
%type  OptionalNameString_Last
753
%type  OptionalNameString_Last
762
%type  OptionalAddressRange
754
%type  OptionalAddressRange
763
%type  OptionalObjectTypeKeyword
755
%type  OptionalObjectTypeKeyword
764
%type  OptionalParameterTypePackage
756
%type  OptionalParameterTypePackage
765
%type  OptionalParameterTypesPackage
757
%type  OptionalParameterTypesPackage
766
%type  OptionalReference
758
%type  OptionalReference
767
%type  OptionalAccessSize
759
%type  OptionalAccessSize
768
 
760
 
769
 
-
 
770
%type  TermArgItem
761
%type  TermArgItem
771
%type  NameStringItem
762
%type  NameStringItem
772
 
763
 
773
%%
764
%%
774
 
765
 
775
 
766
 
776
/*******************************************************************************
767
/*******************************************************************************
777
 *
768
 *
778
 * Production rules start here
769
 * Production rules start here
779
 *
770
 *
780
 ******************************************************************************/
771
 ******************************************************************************/
781
 
772
 
782
/*
773
/*
783
 * ASL Names
774
 * ASL Names
784
 */
775
 */
785
 
776
 
786
 
777
 
787
/*
778
/*
788
 * Blocks, Data, and Opcodes
779
 * Blocks, Data, and Opcodes
789
 */
780
 */
790
 
781
 
791
ASLCode
782
ASLCode
792
    : DefinitionBlockTerm
783
    : DefinitionBlockTerm
793
    | error                         {YYABORT; $$ = NULL;}
784
    | error                         {YYABORT; $$ = NULL;}
794
    ;
785
    ;
795
 
786
 
-
 
787
/*
-
 
788
 * Note concerning support for "module-level code".
-
 
789
 *
-
 
790
 * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
-
 
791
 * methods (the so-called module-level code.) This support was explicitly
-
 
792
 * removed in ACPI 2.0, but this type of code continues to be created by
-
 
793
 * BIOS vendors. In order to support the disassembly and recompilation of
-
 
794
 * such code (and the porting of ASL code to iASL), iASL supports this
-
 
795
 * code in violation of the current ACPI specification.
-
 
796
 *
-
 
797
 * The grammar change to support module-level code is to revert the
-
 
798
 * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
-
 
799
 * original use of {TermList} instead (see below.) This allows the use
-
 
800
 * of Type1 and Type2 opcodes at module level.
-
 
801
 */
796
DefinitionBlockTerm
802
DefinitionBlockTerm
797
    : PARSEOP_DEFINITIONBLOCK '('	{$$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
803
    : PARSEOP_DEFINITIONBLOCK '('	{$$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
798
        String ','
804
        String ','
799
        String ','
805
        String ','
800
        ByteConst ','
806
        ByteConst ','
801
        String ','
807
        String ','
802
        String ','
808
        String ','
803
        DWordConst
809
        DWordConst
804
        ')'                         {TrSetEndLineNumber ($3);}
810
        ')'                         {TrSetEndLineNumber ($3);}
805
            '{' TermList '}'        {$$ = TrLinkChildren ($3,7,$4,$6,$8,$10,$12,$14,$18);}
811
            '{' TermList '}'        {$$ = TrLinkChildren ($3,7,$4,$6,$8,$10,$12,$14,$18);}
806
    ;
812
    ;
807
 
813
 
808
/* ACPI 3.0 -- allow semicolons between terms */
814
/* ACPI 3.0 -- allow semicolons between terms */
809
 
815
 
810
TermList
816
TermList
811
    :                               {$$ = NULL;}
817
    :                               {$$ = NULL;}
812
    | TermList Term                 {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
818
    | TermList Term                 {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
813
    | TermList ';' Term             {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
819
    | TermList ';' Term             {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
814
    ;
820
    ;
815
 
821
 
816
Term
822
Term
817
    : Object                        {}
823
    : Object                        {}
818
    | Type1Opcode                   {}
824
    | Type1Opcode                   {}
819
    | Type2Opcode                   {}
825
    | Type2Opcode                   {}
820
    | Type2IntegerOpcode            {}
826
    | Type2IntegerOpcode            {}
821
    | Type2StringOpcode             {}
827
    | Type2StringOpcode             {}
822
    | Type2BufferOpcode             {}
828
    | Type2BufferOpcode             {}
823
    | Type2BufferOrStringOpcode     {}
829
    | Type2BufferOrStringOpcode     {}
824
    | error                         {$$ = AslDoError(); yyclearin;}
830
    | error                         {$$ = AslDoError(); yyclearin;}
825
    ;
831
    ;
826
 
832
 
827
CompilerDirective
833
CompilerDirective
828
    : IncludeTerm                   {}
834
    : IncludeTerm                   {}
829
    | IncludeCStyleTerm             {$$ = NULL;}
835
    | IncludeCStyleTerm             {$$ = NULL;}
830
    | LineTerm						{$$ = NULL;}
836
    | LineTerm						{$$ = NULL;}
831
    | ExternalTerm                  {}
837
    | ExternalTerm                  {}
832
    ;
838
    ;
833
 
839
 
834
ObjectList
840
ObjectList
835
    :                               {$$ = NULL;}
841
    :                               {$$ = NULL;}
836
    | ObjectList Object             {$$ = TrLinkPeerNode ($1,$2);}
842
    | ObjectList Object             {$$ = TrLinkPeerNode ($1,$2);}
837
    | error                         {$$ = AslDoError(); yyclearin;}
843
    | error                         {$$ = AslDoError(); yyclearin;}
838
    ;
844
    ;
839
 
845
 
840
Object
846
Object
841
    : CompilerDirective             {}
847
    : CompilerDirective             {}
842
    | NamedObject                   {}
848
    | NamedObject                   {}
843
    | NameSpaceModifier             {}
849
    | NameSpaceModifier             {}
844
    ;
850
    ;
845
 
851
 
846
DataObject
852
DataObject
847
    : BufferData                    {}
853
    : BufferData                    {}
848
    | PackageData                   {}
854
    | PackageData                   {}
849
    | IntegerData                   {}
855
    | IntegerData                   {}
850
    | StringData                    {}
856
    | StringData                    {}
851
    ;
857
    ;
852
 
858
 
853
BufferData
859
BufferData
854
    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
860
    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
855
    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
861
    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
856
    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
862
    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
857
    | BufferTerm                    {}
863
    | BufferTerm                    {}
858
    ;
864
    ;
859
 
865
 
860
PackageData
866
PackageData
861
    : PackageTerm                   {}
867
    : PackageTerm                   {}
862
    ;
868
    ;
863
 
869
 
864
IntegerData
870
IntegerData
865
    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
871
    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
866
    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
872
    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
867
    | Integer                       {}
873
    | Integer                       {}
868
    | ConstTerm                     {}
874
    | ConstTerm                     {}
869
    ;
875
    ;
870
 
876
 
871
StringData
877
StringData
872
    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
878
    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
873
    | String                        {}
879
    | String                        {}
874
    ;
880
    ;
875
 
881
 
876
NamedObject
882
NamedObject
877
    : BankFieldTerm                 {}
883
    : BankFieldTerm                 {}
878
    | CreateBitFieldTerm            {}
884
    | CreateBitFieldTerm            {}
879
    | CreateByteFieldTerm           {}
885
    | CreateByteFieldTerm           {}
880
    | CreateDWordFieldTerm          {}
886
    | CreateDWordFieldTerm          {}
881
    | CreateFieldTerm               {}
887
    | CreateFieldTerm               {}
882
    | CreateQWordFieldTerm          {}
888
    | CreateQWordFieldTerm          {}
883
    | CreateWordFieldTerm           {}
889
    | CreateWordFieldTerm           {}
884
    | DataRegionTerm                {}
890
    | DataRegionTerm                {}
885
    | DeviceTerm                    {}
891
    | DeviceTerm                    {}
886
    | EventTerm                     {}
892
    | EventTerm                     {}
887
    | FieldTerm                     {}
893
    | FieldTerm                     {}
888
    | FunctionTerm                  {}
894
    | FunctionTerm                  {}
889
    | IndexFieldTerm                {}
895
    | IndexFieldTerm                {}
890
    | MethodTerm                    {}
896
    | MethodTerm                    {}
891
    | MutexTerm                     {}
897
    | MutexTerm                     {}
892
    | OpRegionTerm                  {}
898
    | OpRegionTerm                  {}
893
    | PowerResTerm                  {}
899
    | PowerResTerm                  {}
894
    | ProcessorTerm                 {}
900
    | ProcessorTerm                 {}
895
    | ThermalZoneTerm               {}
901
    | ThermalZoneTerm               {}
896
    ;
902
    ;
897
 
903
 
898
NameSpaceModifier
904
NameSpaceModifier
899
    : AliasTerm                     {}
905
    : AliasTerm                     {}
900
    | NameTerm                      {}
906
    | NameTerm                      {}
901
    | ScopeTerm                     {}
907
    | ScopeTerm                     {}
902
    ;
908
    ;
903
 
909
 
904
UserTerm
910
UserTerm
905
    : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
911
    : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
906
        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
912
        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
907
    ;
913
    ;
908
 
914
 
909
ArgList
915
ArgList
910
    :                               {$$ = NULL;}
916
    :                               {$$ = NULL;}
911
    | TermArg
917
    | TermArg
912
    | ArgList ','                   /* Allows a trailing comma at list end */
918
    | ArgList ','                   /* Allows a trailing comma at list end */
913
    | ArgList ','
919
    | ArgList ','
914
        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
920
        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
915
    ;
921
    ;
916
 
922
 
917
/*
923
/*
918
Removed from TermArg due to reduce/reduce conflicts
924
Removed from TermArg due to reduce/reduce conflicts
919
    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
925
    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
920
    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
926
    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
921
    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
927
    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
922
    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
928
    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
923
 
929
 
924
*/
930
*/
925
 
931
 
926
TermArg
932
TermArg
927
    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
933
    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
928
    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
934
    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
929
    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
935
    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
930
    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
936
    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
931
    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
937
    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
932
    ;
938
    ;
933
 
939
 
934
Target
940
Target
935
    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
941
    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
936
    | ','                           {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
942
    | ','                           {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
937
    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
943
    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
938
    ;
944
    ;
939
 
945
 
940
RequiredTarget
946
RequiredTarget
941
    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
947
    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
942
    ;
948
    ;
943
 
949
 
944
SimpleTarget
950
SimpleTarget
945
    : NameString                    {}
951
    : NameString                    {}
946
    | LocalTerm                     {}
952
    | LocalTerm                     {}
947
    | ArgTerm                       {}
953
    | ArgTerm                       {}
948
    ;
954
    ;
949
 
955
 
950
/* Rules for specifying the type of one method argument or return value */
956
/* Rules for specifying the type of one method argument or return value */
951
 
957
 
952
ParameterTypePackage
958
ParameterTypePackage
953
    :                               {$$ = NULL;}
959
    :                               {$$ = NULL;}
954
    | ObjectTypeKeyword             {$$ = $1;}
960
    | ObjectTypeKeyword             {$$ = $1;}
955
    | ParameterTypePackage ','
961
    | ParameterTypePackage ','
956
        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
962
        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
957
    ;
963
    ;
958
 
964
 
959
ParameterTypePackageList
965
ParameterTypePackageList
960
    :                               {$$ = NULL;}
966
    :                               {$$ = NULL;}
961
    | ObjectTypeKeyword             {$$ = $1;}
967
    | ObjectTypeKeyword             {$$ = $1;}
962
    | '{' ParameterTypePackage '}'  {$$ = $2;}
968
    | '{' ParameterTypePackage '}'  {$$ = $2;}
963
    ;
969
    ;
964
 
970
 
965
OptionalParameterTypePackage
971
OptionalParameterTypePackage
966
    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
972
    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
967
    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
973
    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
968
    ;
974
    ;
969
 
975
 
970
/* Rules for specifying the types for method arguments */
976
/* Rules for specifying the types for method arguments */
971
 
977
 
972
ParameterTypesPackage
978
ParameterTypesPackage
973
    : ParameterTypePackageList      {$$ = $1;}
979
    : ParameterTypePackageList      {$$ = $1;}
974
    | ParameterTypesPackage ','
980
    | ParameterTypesPackage ','
975
        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
981
        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
976
    ;
982
    ;
977
 
983
 
978
ParameterTypesPackageList
984
ParameterTypesPackageList
979
    :                               {$$ = NULL;}
985
    :                               {$$ = NULL;}
980
    | ObjectTypeKeyword             {$$ = $1;}
986
    | ObjectTypeKeyword             {$$ = $1;}
981
    | '{' ParameterTypesPackage '}' {$$ = $2;}
987
    | '{' ParameterTypesPackage '}' {$$ = $2;}
982
    ;
988
    ;
983
 
989
 
984
OptionalParameterTypesPackage
990
OptionalParameterTypesPackage
985
    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
991
    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
986
    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
992
    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
987
    ;
993
    ;
988
 
994
 
989
 
995
 
990
/* Opcode types */
996
/* Opcode types */
991
 
997
 
992
Type1Opcode
998
Type1Opcode
993
    : BreakTerm                     {}
999
    : BreakTerm                     {}
994
    | BreakPointTerm                {}
1000
    | BreakPointTerm                {}
995
    | ContinueTerm                  {}
1001
    | ContinueTerm                  {}
996
    | FatalTerm                     {}
1002
    | FatalTerm                     {}
997
    | IfElseTerm                    {}
1003
    | IfElseTerm                    {}
998
    | LoadTerm                      {}
1004
    | LoadTerm                      {}
999
    | NoOpTerm                      {}
1005
    | NoOpTerm                      {}
1000
    | NotifyTerm                    {}
1006
    | NotifyTerm                    {}
1001
    | ReleaseTerm                   {}
1007
    | ReleaseTerm                   {}
1002
    | ResetTerm                     {}
1008
    | ResetTerm                     {}
1003
    | ReturnTerm                    {}
1009
    | ReturnTerm                    {}
1004
    | SignalTerm                    {}
1010
    | SignalTerm                    {}
1005
    | SleepTerm                     {}
1011
    | SleepTerm                     {}
1006
    | StallTerm                     {}
1012
    | StallTerm                     {}
1007
    | SwitchTerm                    {}
1013
    | SwitchTerm                    {}
1008
    | UnloadTerm                    {}
1014
    | UnloadTerm                    {}
1009
    | WhileTerm                     {}
1015
    | WhileTerm                     {}
1010
    ;
1016
    ;
1011
 
1017
 
1012
Type2Opcode
1018
Type2Opcode
1013
    : AcquireTerm                   {}
1019
    : AcquireTerm                   {}
1014
    | CondRefOfTerm                 {}
1020
    | CondRefOfTerm                 {}
1015
    | CopyObjectTerm                {}
1021
    | CopyObjectTerm                {}
1016
    | DerefOfTerm                   {}
1022
    | DerefOfTerm                   {}
1017
    | ObjectTypeTerm                {}
1023
    | ObjectTypeTerm                {}
1018
    | RefOfTerm                     {}
1024
    | RefOfTerm                     {}
1019
    | SizeOfTerm                    {}
1025
    | SizeOfTerm                    {}
1020
    | StoreTerm                     {}
1026
    | StoreTerm                     {}
1021
    | TimerTerm                     {}
1027
    | TimerTerm                     {}
1022
    | WaitTerm                      {}
1028
    | WaitTerm                      {}
1023
    | UserTerm                      {}
1029
    | UserTerm                      {}
1024
    ;
1030
    ;
1025
 
1031
 
1026
/*
1032
/*
1027
 * Type 3/4/5 opcodes
1033
 * Type 3/4/5 opcodes
1028
 */
1034
 */
1029
 
1035
 
1030
Type2IntegerOpcode                  /* "Type3" opcodes */
1036
Type2IntegerOpcode                  /* "Type3" opcodes */
1031
    : AddTerm                       {}
1037
    : AddTerm                       {}
1032
    | AndTerm                       {}
1038
    | AndTerm                       {}
1033
    | DecTerm                       {}
1039
    | DecTerm                       {}
1034
    | DivideTerm                    {}
1040
    | DivideTerm                    {}
1035
    | FindSetLeftBitTerm            {}
1041
    | FindSetLeftBitTerm            {}
1036
    | FindSetRightBitTerm           {}
1042
    | FindSetRightBitTerm           {}
1037
    | FromBCDTerm                   {}
1043
    | FromBCDTerm                   {}
1038
    | IncTerm                       {}
1044
    | IncTerm                       {}
1039
    | IndexTerm                     {}
1045
    | IndexTerm                     {}
1040
    | LAndTerm                      {}
1046
    | LAndTerm                      {}
1041
    | LEqualTerm                    {}
1047
    | LEqualTerm                    {}
1042
    | LGreaterTerm                  {}
1048
    | LGreaterTerm                  {}
1043
    | LGreaterEqualTerm             {}
1049
    | LGreaterEqualTerm             {}
1044
    | LLessTerm                     {}
1050
    | LLessTerm                     {}
1045
    | LLessEqualTerm                {}
1051
    | LLessEqualTerm                {}
1046
    | LNotTerm                      {}
1052
    | LNotTerm                      {}
1047
    | LNotEqualTerm                 {}
1053
    | LNotEqualTerm                 {}
1048
    | LoadTableTerm                 {}
1054
    | LoadTableTerm                 {}
1049
    | LOrTerm                       {}
1055
    | LOrTerm                       {}
1050
    | MatchTerm                     {}
1056
    | MatchTerm                     {}
1051
    | ModTerm                       {}
1057
    | ModTerm                       {}
1052
    | MultiplyTerm                  {}
1058
    | MultiplyTerm                  {}
1053
    | NAndTerm                      {}
1059
    | NAndTerm                      {}
1054
    | NOrTerm                       {}
1060
    | NOrTerm                       {}
1055
    | NotTerm                       {}
1061
    | NotTerm                       {}
1056
    | OrTerm                        {}
1062
    | OrTerm                        {}
1057
    | ShiftLeftTerm                 {}
1063
    | ShiftLeftTerm                 {}
1058
    | ShiftRightTerm                {}
1064
    | ShiftRightTerm                {}
1059
    | SubtractTerm                  {}
1065
    | SubtractTerm                  {}
1060
    | ToBCDTerm                     {}
1066
    | ToBCDTerm                     {}
1061
    | ToIntegerTerm                 {}
1067
    | ToIntegerTerm                 {}
1062
    | XOrTerm                       {}
1068
    | XOrTerm                       {}
1063
    ;
1069
    ;
1064
 
1070
 
1065
Type2StringOpcode                   /* "Type4" Opcodes */
1071
Type2StringOpcode                   /* "Type4" Opcodes */
1066
    : ToDecimalStringTerm           {}
1072
    : ToDecimalStringTerm           {}
1067
    | ToHexStringTerm               {}
1073
    | ToHexStringTerm               {}
1068
    | ToStringTerm                  {}
1074
    | ToStringTerm                  {}
1069
    ;
1075
    ;
1070
 
1076
 
1071
Type2BufferOpcode                   /* "Type5" Opcodes */
1077
Type2BufferOpcode                   /* "Type5" Opcodes */
1072
    : ToBufferTerm                  {}
1078
    : ToBufferTerm                  {}
1073
    | ConcatResTerm                 {}
1079
    | ConcatResTerm                 {}
1074
    ;
1080
    ;
1075
 
1081
 
1076
Type2BufferOrStringOpcode
1082
Type2BufferOrStringOpcode
1077
    : ConcatTerm                    {}
1083
    : ConcatTerm                    {}
1078
    | MidTerm                       {}
1084
    | MidTerm                       {}
1079
    ;
1085
    ;
1080
 
1086
 
1081
/*
1087
/*
1082
 * A type 3 opcode evaluates to an Integer and cannot have a destination operand
1088
 * A type 3 opcode evaluates to an Integer and cannot have a destination operand
1083
 */
1089
 */
1084
 
1090
 
1085
Type3Opcode
1091
Type3Opcode
1086
    : EISAIDTerm                    {}
1092
    : EISAIDTerm                    {}
1087
    ;
1093
    ;
1088
 
1094
 
1089
/* Obsolete
1095
/* Obsolete
1090
Type4Opcode
1096
Type4Opcode
1091
    : ConcatTerm                    {}
1097
    : ConcatTerm                    {}
1092
    | ToDecimalStringTerm           {}
1098
    | ToDecimalStringTerm           {}
1093
    | ToHexStringTerm               {}
1099
    | ToHexStringTerm               {}
1094
    | MidTerm                       {}
1100
    | MidTerm                       {}
1095
    | ToStringTerm                  {}
1101
    | ToStringTerm                  {}
1096
    ;
1102
    ;
1097
*/
1103
*/
1098
 
1104
 
1099
 
1105
 
1100
Type5Opcode
1106
Type5Opcode
1101
    : ResourceTemplateTerm          {}
1107
    : ResourceTemplateTerm          {}
1102
    | UnicodeTerm                   {}
1108
    | UnicodeTerm                   {}
1103
    | ToUUIDTerm                    {}
1109
    | ToUUIDTerm                    {}
1104
    ;
1110
    ;
1105
 
1111
 
1106
Type6Opcode
1112
Type6Opcode
1107
    : RefOfTerm                     {}
1113
    : RefOfTerm                     {}
1108
    | DerefOfTerm                   {}
1114
    | DerefOfTerm                   {}
1109
    | IndexTerm                     {}
1115
    | IndexTerm                     {}
1110
    | UserTerm                      {}
1116
    | UserTerm                      {}
1111
    ;
1117
    ;
1112
 
1118
 
1113
IncludeTerm
1119
IncludeTerm
1114
    : PARSEOP_INCLUDE '('			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
1120
    : PARSEOP_INCLUDE '('			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
1115
        String  ')'                 {TrLinkChildren ($3,1,$4);FlOpenIncludeFile ($4);}
1121
        String  ')'                 {TrLinkChildren ($3,1,$4);FlOpenIncludeFile ($4);}
1116
        TermList
1122
        TermList
1117
        IncludeEndTerm              {$$ = TrLinkPeerNodes (3,$3,$7,$8);}
1123
        IncludeEndTerm              {$$ = TrLinkPeerNodes (3,$3,$7,$8);}
1118
    ;
1124
    ;
1119
 
1125
 
1120
IncludeEndTerm
1126
IncludeEndTerm
1121
    : PARSEOP_INCLUDE_END			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
1127
    : PARSEOP_INCLUDE_END			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
1122
    ;
1128
    ;
1123
 
1129
 
1124
IncludeCStyleTerm
1130
IncludeCStyleTerm
1125
    : PARSEOP_INCLUDE_CSTYLE
1131
    : PARSEOP_INCLUDE_CSTYLE
1126
        String                      {FlOpenIncludeFile ($2);}
1132
        String                      {FlOpenIncludeFile ($2);}
1127
    ;
1133
    ;
1128
 
1134
 
1129
LineTerm
1135
LineTerm
1130
	: PARSEOP_LINE_CSTYLE
1136
	: PARSEOP_LINE_CSTYLE
1131
		Integer						{FlSetLineNumber ($2);}
1137
		Integer						{FlSetLineNumber ($2);}
1132
	;
1138
	;
1133
 
1139
 
1134
ExternalTerm
1140
ExternalTerm
1135
    : PARSEOP_EXTERNAL '('
1141
    : PARSEOP_EXTERNAL '('
1136
        NameString
1142
        NameString
1137
        OptionalObjectTypeKeyword
1143
        OptionalObjectTypeKeyword
1138
        OptionalParameterTypePackage
1144
        OptionalParameterTypePackage
1139
        OptionalParameterTypesPackage
1145
        OptionalParameterTypesPackage
1140
        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
1146
        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
1141
    | PARSEOP_EXTERNAL '('
1147
    | PARSEOP_EXTERNAL '('
1142
        error ')'                   {$$ = AslDoError(); yyclearin;}
1148
        error ')'                   {$$ = AslDoError(); yyclearin;}
1143
    ;
1149
    ;
1144
 
1150
 
1145
 
1151
 
1146
/******* Named Objects *******************************************************/
1152
/******* Named Objects *******************************************************/
1147
 
1153
 
1148
 
1154
 
1149
BankFieldTerm
1155
BankFieldTerm
1150
    : PARSEOP_BANKFIELD '('			{$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
1156
    : PARSEOP_BANKFIELD '('			{$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
1151
        NameString
1157
        NameString
1152
        NameStringItem
1158
        NameStringItem
1153
        TermArgItem
1159
        TermArgItem
1154
        ',' AccessTypeKeyword
1160
        ',' AccessTypeKeyword
1155
        ',' LockRuleKeyword
1161
        ',' LockRuleKeyword
1156
        ',' UpdateRuleKeyword
1162
        ',' UpdateRuleKeyword
1157
        ')' '{'
1163
        ')' '{'
1158
            FieldUnitList '}'       {$$ = TrLinkChildren ($3,7,$4,$5,$6,$8,$10,$12,$15);}
1164
            FieldUnitList '}'       {$$ = TrLinkChildren ($3,7,$4,$5,$6,$8,$10,$12,$15);}
1159
    | PARSEOP_BANKFIELD '('
1165
    | PARSEOP_BANKFIELD '('
1160
        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
1166
        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
1161
    ;
1167
    ;
1162
 
1168
 
1163
FieldUnitList
1169
FieldUnitList
1164
    :                               {$$ = NULL;}
1170
    :                               {$$ = NULL;}
1165
    | FieldUnit
1171
    | FieldUnit
1166
    | FieldUnitList ','             /* Allows a trailing comma at list end */
1172
    | FieldUnitList ','             /* Allows a trailing comma at list end */
1167
    | FieldUnitList ','
1173
    | FieldUnitList ','
1168
        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
1174
        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
1169
    ;
1175
    ;
1170
 
1176
 
1171
FieldUnit
1177
FieldUnit
1172
    : FieldUnitEntry                {}
1178
    : FieldUnitEntry                {}
1173
    | OffsetTerm                    {}
1179
    | OffsetTerm                    {}
1174
    | AccessAsTerm                  {}
1180
    | AccessAsTerm                  {}
1175
    ;
1181
    ;
1176
 
1182
 
1177
FieldUnitEntry
1183
FieldUnitEntry
1178
    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
1184
    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
1179
    | NameSeg ','
1185
    | NameSeg ','
1180
        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
1186
        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
1181
    ;
1187
    ;
1182
 
1188
 
1183
OffsetTerm
1189
OffsetTerm
1184
    : PARSEOP_OFFSET '('
1190
    : PARSEOP_OFFSET '('
1185
        AmlPackageLengthTerm
1191
        AmlPackageLengthTerm
1186
        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
1192
        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
1187
    | PARSEOP_OFFSET '('
1193
    | PARSEOP_OFFSET '('
1188
        error ')'                   {$$ = AslDoError(); yyclearin;}
1194
        error ')'                   {$$ = AslDoError(); yyclearin;}
1189
    ;
1195
    ;
1190
 
1196
 
1191
AccessAsTerm
1197
AccessAsTerm
1192
    : PARSEOP_ACCESSAS '('
1198
    : PARSEOP_ACCESSAS '('
1193
        AccessTypeKeyword
1199
        AccessTypeKeyword
1194
        OptionalAccessAttribTerm
1200
        OptionalAccessAttribTerm
1195
        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
1201
        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
1196
    | PARSEOP_ACCESSAS '('
1202
    | PARSEOP_ACCESSAS '('
1197
        error ')'                   {$$ = AslDoError(); yyclearin;}
1203
        error ')'                   {$$ = AslDoError(); yyclearin;}
1198
    ;
1204
    ;
1199
 
1205
 
1200
CreateBitFieldTerm
1206
CreateBitFieldTerm
1201
    : PARSEOP_CREATEBITFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
1207
    : PARSEOP_CREATEBITFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
1202
        TermArg
1208
        TermArg
1203
        TermArgItem
1209
        TermArgItem
1204
        NameStringItem
1210
        NameStringItem
1205
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1211
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1206
    | PARSEOP_CREATEBITFIELD '('
1212
    | PARSEOP_CREATEBITFIELD '('
1207
        error ')'                   {$$ = AslDoError(); yyclearin;}
1213
        error ')'                   {$$ = AslDoError(); yyclearin;}
1208
    ;
1214
    ;
1209
 
1215
 
1210
CreateByteFieldTerm
1216
CreateByteFieldTerm
1211
    : PARSEOP_CREATEBYTEFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
1217
    : PARSEOP_CREATEBYTEFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
1212
        TermArg
1218
        TermArg
1213
        TermArgItem
1219
        TermArgItem
1214
        NameStringItem
1220
        NameStringItem
1215
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1221
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1216
    | PARSEOP_CREATEBYTEFIELD '('
1222
    | PARSEOP_CREATEBYTEFIELD '('
1217
        error ')'                   {$$ = AslDoError(); yyclearin;}
1223
        error ')'                   {$$ = AslDoError(); yyclearin;}
1218
    ;
1224
    ;
1219
 
1225
 
1220
CreateDWordFieldTerm
1226
CreateDWordFieldTerm
1221
    : PARSEOP_CREATEDWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
1227
    : PARSEOP_CREATEDWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
1222
        TermArg
1228
        TermArg
1223
        TermArgItem
1229
        TermArgItem
1224
        NameStringItem
1230
        NameStringItem
1225
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1231
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1226
    | PARSEOP_CREATEDWORDFIELD '('
1232
    | PARSEOP_CREATEDWORDFIELD '('
1227
        error ')'                   {$$ = AslDoError(); yyclearin;}
1233
        error ')'                   {$$ = AslDoError(); yyclearin;}
1228
    ;
1234
    ;
1229
 
1235
 
1230
CreateFieldTerm
1236
CreateFieldTerm
1231
    : PARSEOP_CREATEFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
1237
    : PARSEOP_CREATEFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
1232
        TermArg
1238
        TermArg
1233
        TermArgItem
1239
        TermArgItem
1234
        TermArgItem
1240
        TermArgItem
1235
        NameStringItem
1241
        NameStringItem
1236
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
1242
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
1237
    | PARSEOP_CREATEFIELD '('
1243
    | PARSEOP_CREATEFIELD '('
1238
        error ')'                   {$$ = AslDoError(); yyclearin;}
1244
        error ')'                   {$$ = AslDoError(); yyclearin;}
1239
    ;
1245
    ;
1240
 
1246
 
1241
CreateQWordFieldTerm
1247
CreateQWordFieldTerm
1242
    : PARSEOP_CREATEQWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
1248
    : PARSEOP_CREATEQWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
1243
        TermArg
1249
        TermArg
1244
        TermArgItem
1250
        TermArgItem
1245
        NameStringItem
1251
        NameStringItem
1246
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1252
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1247
    | PARSEOP_CREATEQWORDFIELD '('
1253
    | PARSEOP_CREATEQWORDFIELD '('
1248
        error ')'                   {$$ = AslDoError(); yyclearin;}
1254
        error ')'                   {$$ = AslDoError(); yyclearin;}
1249
    ;
1255
    ;
1250
 
1256
 
1251
CreateWordFieldTerm
1257
CreateWordFieldTerm
1252
    : PARSEOP_CREATEWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
1258
    : PARSEOP_CREATEWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
1253
        TermArg
1259
        TermArg
1254
        TermArgItem
1260
        TermArgItem
1255
        NameStringItem
1261
        NameStringItem
1256
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1262
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
1257
    | PARSEOP_CREATEWORDFIELD '('
1263
    | PARSEOP_CREATEWORDFIELD '('
1258
        error ')'                   {$$ = AslDoError(); yyclearin;}
1264
        error ')'                   {$$ = AslDoError(); yyclearin;}
1259
    ;
1265
    ;
1260
 
1266
 
1261
DataRegionTerm
1267
DataRegionTerm
1262
    : PARSEOP_DATATABLEREGION '('	{$$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
1268
    : PARSEOP_DATATABLEREGION '('	{$$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
1263
        NameString
1269
        NameString
1264
        TermArgItem
1270
        TermArgItem
1265
        TermArgItem
1271
        TermArgItem
1266
        TermArgItem
1272
        TermArgItem
1267
        ')'                         {$$ = TrLinkChildren ($3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
1273
        ')'                         {$$ = TrLinkChildren ($3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
1268
    | PARSEOP_DATATABLEREGION '('
1274
    | PARSEOP_DATATABLEREGION '('
1269
        error ')'                   {$$ = AslDoError(); yyclearin;}
1275
        error ')'                   {$$ = AslDoError(); yyclearin;}
1270
    ;
1276
    ;
1271
 
1277
 
1272
DeviceTerm
1278
DeviceTerm
1273
    : PARSEOP_DEVICE '('			{$$ = TrCreateLeafNode (PARSEOP_DEVICE);}
1279
    : PARSEOP_DEVICE '('			{$$ = TrCreateLeafNode (PARSEOP_DEVICE);}
1274
        NameString
1280
        NameString
1275
        ')' '{'
1281
        ')' '{'
1276
            ObjectList '}'          {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1282
            ObjectList '}'          {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1277
    | PARSEOP_DEVICE '('
1283
    | PARSEOP_DEVICE '('
1278
        error ')'                   {$$ = AslDoError(); yyclearin;}
1284
        error ')'                   {$$ = AslDoError(); yyclearin;}
1279
    ;
1285
    ;
1280
 
1286
 
1281
EventTerm
1287
EventTerm
1282
    : PARSEOP_EVENT '('				{$$ = TrCreateLeafNode (PARSEOP_EVENT);}
1288
    : PARSEOP_EVENT '('				{$$ = TrCreateLeafNode (PARSEOP_EVENT);}
1283
        NameString
1289
        NameString
1284
        ')'                         {$$ = TrLinkChildren ($3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
1290
        ')'                         {$$ = TrLinkChildren ($3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
1285
    | PARSEOP_EVENT '('
1291
    | PARSEOP_EVENT '('
1286
        error ')'                   {$$ = AslDoError(); yyclearin;}
1292
        error ')'                   {$$ = AslDoError(); yyclearin;}
1287
    ;
1293
    ;
1288
 
1294
 
1289
FieldTerm
1295
FieldTerm
1290
    : PARSEOP_FIELD '('				{$$ = TrCreateLeafNode (PARSEOP_FIELD);}
1296
    : PARSEOP_FIELD '('				{$$ = TrCreateLeafNode (PARSEOP_FIELD);}
1291
        NameString
1297
        NameString
1292
        ',' AccessTypeKeyword
1298
        ',' AccessTypeKeyword
1293
        ',' LockRuleKeyword
1299
        ',' LockRuleKeyword
1294
        ',' UpdateRuleKeyword
1300
        ',' UpdateRuleKeyword
1295
        ')' '{'
1301
        ')' '{'
1296
            FieldUnitList '}'       {$$ = TrLinkChildren ($3,5,$4,$6,$8,$10,$13);}
1302
            FieldUnitList '}'       {$$ = TrLinkChildren ($3,5,$4,$6,$8,$10,$13);}
1297
    | PARSEOP_FIELD '('
1303
    | PARSEOP_FIELD '('
1298
        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
1304
        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
1299
    ;
1305
    ;
1300
 
1306
 
1301
FunctionTerm
1307
FunctionTerm
1302
    : PARSEOP_FUNCTION '('			{$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1308
    : PARSEOP_FUNCTION '('			{$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1303
        NameString
1309
        NameString
1304
        OptionalParameterTypePackage
1310
        OptionalParameterTypePackage
1305
        OptionalParameterTypesPackage
1311
        OptionalParameterTypesPackage
1306
        ')' '{'
1312
        ')' '{'
1307
            TermList '}'            {$$ = TrLinkChildren ($3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
1313
            TermList '}'            {$$ = TrLinkChildren ($3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
1308
                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
1314
                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
1309
                                        TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
1315
                                        TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
1310
                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
1316
                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
1311
    | PARSEOP_FUNCTION '('
1317
    | PARSEOP_FUNCTION '('
1312
        error ')'                   {$$ = AslDoError(); yyclearin;}
1318
        error ')'                   {$$ = AslDoError(); yyclearin;}
1313
    ;
1319
    ;
1314
 
1320
 
1315
IndexFieldTerm
1321
IndexFieldTerm
1316
    : PARSEOP_INDEXFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
1322
    : PARSEOP_INDEXFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
1317
        NameString
1323
        NameString
1318
        NameStringItem
1324
        NameStringItem
1319
        ',' AccessTypeKeyword
1325
        ',' AccessTypeKeyword
1320
        ',' LockRuleKeyword
1326
        ',' LockRuleKeyword
1321
        ',' UpdateRuleKeyword
1327
        ',' UpdateRuleKeyword
1322
        ')' '{'
1328
        ')' '{'
1323
            FieldUnitList '}'       {$$ = TrLinkChildren ($3,6,$4,$5,$7,$9,$11,$14);}
1329
            FieldUnitList '}'       {$$ = TrLinkChildren ($3,6,$4,$5,$7,$9,$11,$14);}
1324
    | PARSEOP_INDEXFIELD '('
1330
    | PARSEOP_INDEXFIELD '('
1325
        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
1331
        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
1326
    ;
1332
    ;
1327
 
1333
 
1328
MethodTerm
1334
MethodTerm
1329
    : PARSEOP_METHOD  '('			{$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1335
    : PARSEOP_METHOD  '('			{$$ = TrCreateLeafNode (PARSEOP_METHOD);}
1330
        NameString
1336
        NameString
1331
        OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
1337
        OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
1332
        OptionalSerializeRuleKeyword
1338
        OptionalSerializeRuleKeyword
1333
        OptionalByteConstExpr
1339
        OptionalByteConstExpr
1334
        OptionalParameterTypePackage
1340
        OptionalParameterTypePackage
1335
        OptionalParameterTypesPackage
1341
        OptionalParameterTypesPackage
1336
        ')' '{'
1342
        ')' '{'
1337
            TermList '}'            {$$ = TrLinkChildren ($3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
1343
            TermList '}'            {$$ = TrLinkChildren ($3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
1338
    | PARSEOP_METHOD '('
1344
    | PARSEOP_METHOD '('
1339
        error ')'                   {$$ = AslDoError(); yyclearin;}
1345
        error ')'                   {$$ = AslDoError(); yyclearin;}
1340
    ;
1346
    ;
1341
 
1347
 
1342
MutexTerm
1348
MutexTerm
1343
    : PARSEOP_MUTEX '('				{$$ = TrCreateLeafNode (PARSEOP_MUTEX);}
1349
    : PARSEOP_MUTEX '('				{$$ = TrCreateLeafNode (PARSEOP_MUTEX);}
1344
        NameString
1350
        NameString
1345
        ',' ByteConstExpr
1351
        ',' ByteConstExpr
1346
        ')'                         {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1352
        ')'                         {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1347
    | PARSEOP_MUTEX '('
1353
    | PARSEOP_MUTEX '('
1348
        error ')'                   {$$ = AslDoError(); yyclearin;}
1354
        error ')'                   {$$ = AslDoError(); yyclearin;}
1349
    ;
1355
    ;
1350
 
1356
 
1351
OpRegionTerm
1357
OpRegionTerm
1352
    : PARSEOP_OPERATIONREGION '('	{$$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
1358
    : PARSEOP_OPERATIONREGION '('	{$$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
1353
        NameString
1359
        NameString
1354
        ',' OpRegionSpaceIdTerm
1360
        ',' OpRegionSpaceIdTerm
1355
        TermArgItem
1361
        TermArgItem
1356
        TermArgItem
1362
        TermArgItem
1357
        ')'                         {$$ = TrLinkChildren ($3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
1363
        ')'                         {$$ = TrLinkChildren ($3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
1358
    | PARSEOP_OPERATIONREGION '('
1364
    | PARSEOP_OPERATIONREGION '('
1359
        error ')'                   {$$ = AslDoError(); yyclearin;}
1365
        error ')'                   {$$ = AslDoError(); yyclearin;}
1360
    ;
1366
    ;
1361
 
1367
 
1362
OpRegionSpaceIdTerm
1368
OpRegionSpaceIdTerm
1363
    : RegionSpaceKeyword            {}
1369
    : RegionSpaceKeyword            {}
1364
    | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1370
    | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1365
    ;
1371
    ;
1366
 
1372
 
1367
PowerResTerm
1373
PowerResTerm
1368
    : PARSEOP_POWERRESOURCE '('		{$$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
1374
    : PARSEOP_POWERRESOURCE '('		{$$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
1369
        NameString
1375
        NameString
1370
        ',' ByteConstExpr
1376
        ',' ByteConstExpr
1371
        ',' WordConstExpr
1377
        ',' WordConstExpr
1372
        ')' '{'
1378
        ')' '{'
1373
            ObjectList '}'          {$$ = TrLinkChildren ($3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
1379
            ObjectList '}'          {$$ = TrLinkChildren ($3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
1374
    | PARSEOP_POWERRESOURCE '('
1380
    | PARSEOP_POWERRESOURCE '('
1375
        error ')'                   {$$ = AslDoError(); yyclearin;}
1381
        error ')'                   {$$ = AslDoError(); yyclearin;}
1376
    ;
1382
    ;
1377
 
1383
 
1378
ProcessorTerm
1384
ProcessorTerm
1379
    : PARSEOP_PROCESSOR '('			{$$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1385
    : PARSEOP_PROCESSOR '('			{$$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1380
        NameString
1386
        NameString
1381
        ',' ByteConstExpr
1387
        ',' ByteConstExpr
1382
        OptionalDWordConstExpr
1388
        OptionalDWordConstExpr
1383
        OptionalByteConstExpr
1389
        OptionalByteConstExpr
1384
        ')' '{'
1390
        ')' '{'
1385
            ObjectList '}'          {$$ = TrLinkChildren ($3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
1391
            ObjectList '}'          {$$ = TrLinkChildren ($3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
1386
    | PARSEOP_PROCESSOR '('
1392
    | PARSEOP_PROCESSOR '('
1387
        error ')'                   {$$ = AslDoError(); yyclearin;}
1393
        error ')'                   {$$ = AslDoError(); yyclearin;}
1388
    ;
1394
    ;
1389
 
1395
 
1390
ThermalZoneTerm
1396
ThermalZoneTerm
1391
    : PARSEOP_THERMALZONE '('		{$$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1397
    : PARSEOP_THERMALZONE '('		{$$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1392
        NameString
1398
        NameString
1393
        ')' '{'
1399
        ')' '{'
1394
            ObjectList '}'          {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1400
            ObjectList '}'          {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1395
    | PARSEOP_THERMALZONE '('
1401
    | PARSEOP_THERMALZONE '('
1396
        error ')'                   {$$ = AslDoError(); yyclearin;}
1402
        error ')'                   {$$ = AslDoError(); yyclearin;}
1397
    ;
1403
    ;
1398
 
1404
 
1399
 
1405
 
1400
/******* Namespace modifiers *************************************************/
1406
/******* Namespace modifiers *************************************************/
1401
 
1407
 
1402
 
1408
 
1403
AliasTerm
1409
AliasTerm
1404
    : PARSEOP_ALIAS '('				{$$ = TrCreateLeafNode (PARSEOP_ALIAS);}
1410
    : PARSEOP_ALIAS '('				{$$ = TrCreateLeafNode (PARSEOP_ALIAS);}
1405
        NameString
1411
        NameString
1406
        NameStringItem
1412
        NameStringItem
1407
        ')'                         {$$ = TrLinkChildren ($3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
1413
        ')'                         {$$ = TrLinkChildren ($3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
1408
    | PARSEOP_ALIAS '('
1414
    | PARSEOP_ALIAS '('
1409
        error ')'                   {$$ = AslDoError(); yyclearin;}
1415
        error ')'                   {$$ = AslDoError(); yyclearin;}
1410
    ;
1416
    ;
1411
 
1417
 
1412
NameTerm
1418
NameTerm
1413
    : PARSEOP_NAME '('				{$$ = TrCreateLeafNode (PARSEOP_NAME);}
1419
    : PARSEOP_NAME '('				{$$ = TrCreateLeafNode (PARSEOP_NAME);}
1414
        NameString
1420
        NameString
1415
        ',' DataObject
1421
        ',' DataObject
1416
        ')'                         {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1422
        ')'                         {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1417
    | PARSEOP_NAME '('
1423
    | PARSEOP_NAME '('
1418
        error ')'                   {$$ = AslDoError(); yyclearin;}
1424
        error ')'                   {$$ = AslDoError(); yyclearin;}
1419
    ;
1425
    ;
1420
 
1426
 
1421
ScopeTerm
1427
ScopeTerm
1422
    : PARSEOP_SCOPE '('				{$$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1428
    : PARSEOP_SCOPE '('				{$$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1423
        NameString
1429
        NameString
1424
        ')' '{'
1430
        ')' '{'
1425
            ObjectList '}'          {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1431
            ObjectList '}'          {$$ = TrLinkChildren ($3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1426
    | PARSEOP_SCOPE '('
1432
    | PARSEOP_SCOPE '('
1427
        error ')'                   {$$ = AslDoError(); yyclearin;}
1433
        error ')'                   {$$ = AslDoError(); yyclearin;}
1428
    ;
1434
    ;
1429
 
1435
 
1430
 
1436
 
1431
/******* Type 1 opcodes *******************************************************/
1437
/******* Type 1 opcodes *******************************************************/
1432
 
1438
 
1433
 
1439
 
1434
BreakTerm
1440
BreakTerm
1435
    : PARSEOP_BREAK					{$$ = TrCreateNode (PARSEOP_BREAK, 0);}
1441
    : PARSEOP_BREAK					{$$ = TrCreateNode (PARSEOP_BREAK, 0);}
1436
    ;
1442
    ;
1437
 
1443
 
1438
BreakPointTerm
1444
BreakPointTerm
1439
    : PARSEOP_BREAKPOINT			{$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
1445
    : PARSEOP_BREAKPOINT			{$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
1440
    ;
1446
    ;
1441
 
1447
 
1442
ContinueTerm
1448
ContinueTerm
1443
    : PARSEOP_CONTINUE				{$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
1449
    : PARSEOP_CONTINUE				{$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
1444
    ;
1450
    ;
1445
 
1451
 
1446
FatalTerm
1452
FatalTerm
1447
    : PARSEOP_FATAL '('				{$$ = TrCreateLeafNode (PARSEOP_FATAL);}
1453
    : PARSEOP_FATAL '('				{$$ = TrCreateLeafNode (PARSEOP_FATAL);}
1448
        ByteConstExpr
1454
        ByteConstExpr
1449
        ',' DWordConstExpr
1455
        ',' DWordConstExpr
1450
        TermArgItem
1456
        TermArgItem
1451
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$6,$7);}
1457
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$6,$7);}
1452
    | PARSEOP_FATAL '('
1458
    | PARSEOP_FATAL '('
1453
        error ')'                   {$$ = AslDoError(); yyclearin;}
1459
        error ')'                   {$$ = AslDoError(); yyclearin;}
1454
    ;
1460
    ;
1455
 
1461
 
1456
IfElseTerm
1462
IfElseTerm
1457
    : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
1463
    : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
1458
    ;
1464
    ;
1459
 
1465
 
1460
IfTerm
1466
IfTerm
1461
    : PARSEOP_IF '('				{$$ = TrCreateLeafNode (PARSEOP_IF);}
1467
    : PARSEOP_IF '('				{$$ = TrCreateLeafNode (PARSEOP_IF);}
1462
        TermArg
1468
        TermArg
1463
        ')' '{'
1469
        ')' '{'
1464
            TermList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
1470
            TermList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
1465
 
1471
 
1466
    | PARSEOP_IF '('
1472
    | PARSEOP_IF '('
1467
        error ')'                   {$$ = AslDoError(); yyclearin;}
1473
        error ')'                   {$$ = AslDoError(); yyclearin;}
1468
    ;
1474
    ;
1469
 
1475
 
1470
ElseTerm
1476
ElseTerm
1471
    :                               {$$ = NULL;}
1477
    :                               {$$ = NULL;}
1472
    | PARSEOP_ELSE '{'				{$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1478
    | PARSEOP_ELSE '{'				{$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1473
        TermList '}'                {$$ = TrLinkChildren ($3,1,$4);}
1479
        TermList '}'                {$$ = TrLinkChildren ($3,1,$4);}
1474
 
1480
 
1475
    | PARSEOP_ELSE '{'
1481
    | PARSEOP_ELSE '{'
1476
        error '}'                   {$$ = AslDoError(); yyclearin;}
1482
        error '}'                   {$$ = AslDoError(); yyclearin;}
1477
 
1483
 
1478
    | PARSEOP_ELSE
1484
    | PARSEOP_ELSE
1479
        error                       {$$ = AslDoError(); yyclearin;}
1485
        error                       {$$ = AslDoError(); yyclearin;}
1480
 
1486
 
1481
    | PARSEOP_ELSEIF '('			{$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1487
    | PARSEOP_ELSEIF '('			{$$ = TrCreateLeafNode (PARSEOP_ELSE);}
1482
        TermArg						{$$ = TrCreateLeafNode (PARSEOP_IF);}
1488
        TermArg						{$$ = TrCreateLeafNode (PARSEOP_IF);}
1483
        ')' '{'
1489
        ')' '{'
1484
            TermList '}'		    {TrLinkChildren ($5,2,$4,$8);}
1490
            TermList '}'		    {TrLinkChildren ($5,2,$4,$8);}
1485
        ElseTerm                    {TrLinkPeerNode ($5,$11);}
1491
        ElseTerm                    {TrLinkPeerNode ($5,$11);}
1486
                                    {$$ = TrLinkChildren ($3,1,$5);}
1492
                                    {$$ = TrLinkChildren ($3,1,$5);}
1487
 
1493
 
1488
    | PARSEOP_ELSEIF '('
1494
    | PARSEOP_ELSEIF '('
1489
        error ')'                   {$$ = AslDoError(); yyclearin;}
1495
        error ')'                   {$$ = AslDoError(); yyclearin;}
1490
 
1496
 
1491
    | PARSEOP_ELSEIF
1497
    | PARSEOP_ELSEIF
1492
        error                       {$$ = AslDoError(); yyclearin;}
1498
        error                       {$$ = AslDoError(); yyclearin;}
1493
    ;
1499
    ;
1494
 
1500
 
1495
LoadTerm
1501
LoadTerm
1496
    : PARSEOP_LOAD '('				{$$ = TrCreateLeafNode (PARSEOP_LOAD);}
1502
    : PARSEOP_LOAD '('				{$$ = TrCreateLeafNode (PARSEOP_LOAD);}
1497
        NameString
1503
        NameString
1498
        RequiredTarget
1504
        RequiredTarget
1499
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1505
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1500
    | PARSEOP_LOAD '('
1506
    | PARSEOP_LOAD '('
1501
        error ')'                   {$$ = AslDoError(); yyclearin;}
1507
        error ')'                   {$$ = AslDoError(); yyclearin;}
1502
    ;
1508
    ;
1503
 
1509
 
1504
NoOpTerm
1510
NoOpTerm
1505
    : PARSEOP_NOOP					{$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1511
    : PARSEOP_NOOP					{$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1506
    ;
1512
    ;
1507
 
1513
 
1508
NotifyTerm
1514
NotifyTerm
1509
    : PARSEOP_NOTIFY '('			{$$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1515
    : PARSEOP_NOTIFY '('			{$$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1510
        SuperName
1516
        SuperName
1511
        TermArgItem
1517
        TermArgItem
1512
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1518
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1513
    | PARSEOP_NOTIFY '('
1519
    | PARSEOP_NOTIFY '('
1514
        error ')'                   {$$ = AslDoError(); yyclearin;}
1520
        error ')'                   {$$ = AslDoError(); yyclearin;}
1515
    ;
1521
    ;
1516
 
1522
 
1517
ReleaseTerm
1523
ReleaseTerm
1518
    : PARSEOP_RELEASE '('			{$$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1524
    : PARSEOP_RELEASE '('			{$$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1519
        SuperName
1525
        SuperName
1520
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1526
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1521
    | PARSEOP_RELEASE '('
1527
    | PARSEOP_RELEASE '('
1522
        error ')'                   {$$ = AslDoError(); yyclearin;}
1528
        error ')'                   {$$ = AslDoError(); yyclearin;}
1523
    ;
1529
    ;
1524
 
1530
 
1525
ResetTerm
1531
ResetTerm
1526
    : PARSEOP_RESET '('				{$$ = TrCreateLeafNode (PARSEOP_RESET);}
1532
    : PARSEOP_RESET '('				{$$ = TrCreateLeafNode (PARSEOP_RESET);}
1527
        SuperName
1533
        SuperName
1528
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1534
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1529
    | PARSEOP_RESET '('
1535
    | PARSEOP_RESET '('
1530
        error ')'                   {$$ = AslDoError(); yyclearin;}
1536
        error ')'                   {$$ = AslDoError(); yyclearin;}
1531
    ;
1537
    ;
1532
 
1538
 
1533
ReturnTerm
1539
ReturnTerm
1534
    : PARSEOP_RETURN '('			{$$ = TrCreateLeafNode (PARSEOP_RETURN);}
1540
    : PARSEOP_RETURN '('			{$$ = TrCreateLeafNode (PARSEOP_RETURN);}
1535
        OptionalReturnArg
1541
        OptionalReturnArg
1536
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1542
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1537
    | PARSEOP_RETURN 				{$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrCreateLeafNode (PARSEOP_ZERO));}
1543
    | PARSEOP_RETURN 				{$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));}
1538
    | PARSEOP_RETURN '('
1544
    | PARSEOP_RETURN '('
1539
        error ')'                   {$$ = AslDoError(); yyclearin;}
1545
        error ')'                   {$$ = AslDoError(); yyclearin;}
1540
    ;
1546
    ;
1541
 
1547
 
1542
SignalTerm
1548
SignalTerm
1543
    : PARSEOP_SIGNAL '('			{$$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1549
    : PARSEOP_SIGNAL '('			{$$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1544
        SuperName
1550
        SuperName
1545
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1551
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1546
    | PARSEOP_SIGNAL '('
1552
    | PARSEOP_SIGNAL '('
1547
        error ')'                   {$$ = AslDoError(); yyclearin;}
1553
        error ')'                   {$$ = AslDoError(); yyclearin;}
1548
    ;
1554
    ;
1549
 
1555
 
1550
SleepTerm
1556
SleepTerm
1551
    : PARSEOP_SLEEP '('				{$$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1557
    : PARSEOP_SLEEP '('				{$$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1552
        TermArg
1558
        TermArg
1553
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1559
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1554
    | PARSEOP_SLEEP '('
1560
    | PARSEOP_SLEEP '('
1555
        error ')'                   {$$ = AslDoError(); yyclearin;}
1561
        error ')'                   {$$ = AslDoError(); yyclearin;}
1556
    ;
1562
    ;
1557
 
1563
 
1558
StallTerm
1564
StallTerm
1559
    : PARSEOP_STALL '('				{$$ = TrCreateLeafNode (PARSEOP_STALL);}
1565
    : PARSEOP_STALL '('				{$$ = TrCreateLeafNode (PARSEOP_STALL);}
1560
        TermArg
1566
        TermArg
1561
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1567
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1562
    | PARSEOP_STALL '('
1568
    | PARSEOP_STALL '('
1563
        error ')'                   {$$ = AslDoError(); yyclearin;}
1569
        error ')'                   {$$ = AslDoError(); yyclearin;}
1564
    ;
1570
    ;
1565
 
1571
 
1566
SwitchTerm
1572
SwitchTerm
1567
    : PARSEOP_SWITCH '('			{$$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1573
    : PARSEOP_SWITCH '('			{$$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1568
        TermArg
1574
        TermArg
1569
        ')' '{'
1575
        ')' '{'
1570
            CaseDefaultTermList '}'
1576
            CaseDefaultTermList '}'
1571
                                    {$$ = TrLinkChildren ($3,2,$4,$7);}
1577
                                    {$$ = TrLinkChildren ($3,2,$4,$7);}
1572
    | PARSEOP_SWITCH '('
1578
    | PARSEOP_SWITCH '('
1573
        error ')'                   {$$ = AslDoError(); yyclearin;}
1579
        error ')'                   {$$ = AslDoError(); yyclearin;}
1574
    ;
1580
    ;
1575
 
1581
 
1576
/*
1582
/*
1577
 * Case-Default list; allow only one Default term and unlimited Case terms
1583
 * Case-Default list; allow only one Default term and unlimited Case terms
1578
 */
1584
 */
1579
 
1585
 
1580
CaseDefaultTermList
1586
CaseDefaultTermList
1581
    :                               {$$ = NULL;}
1587
    :                               {$$ = NULL;}
1582
    | CaseTerm  {}
1588
    | CaseTerm  {}
1583
    | DefaultTerm   {}
1589
    | DefaultTerm   {}
1584
    | CaseDefaultTermList
1590
    | CaseDefaultTermList
1585
        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
1591
        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
1586
    | CaseDefaultTermList
1592
    | CaseDefaultTermList
1587
        DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
1593
        DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
1588
 
1594
 
1589
/* Original - attempts to force zero or one default term within the switch */
1595
/* Original - attempts to force zero or one default term within the switch */
1590
 
1596
 
1591
/*
1597
/*
1592
CaseDefaultTermList
1598
CaseDefaultTermList
1593
    :                               {$$ = NULL;}
1599
    :                               {$$ = NULL;}
1594
    | CaseTermList
1600
    | CaseTermList
1595
        DefaultTerm
1601
        DefaultTerm
1596
        CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
1602
        CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
1597
    | CaseTermList
1603
    | CaseTermList
1598
        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
1604
        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
1599
    ;
1605
    ;
1600
 
1606
 
1601
CaseTermList
1607
CaseTermList
1602
    :                               {$$ = NULL;}
1608
    :                               {$$ = NULL;}
1603
    | CaseTerm                      {}
1609
    | CaseTerm                      {}
1604
    | CaseTermList
1610
    | CaseTermList
1605
        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
1611
        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
1606
    ;
1612
    ;
1607
*/
1613
*/
1608
 
1614
 
1609
CaseTerm
1615
CaseTerm
1610
    : PARSEOP_CASE '('				{$$ = TrCreateLeafNode (PARSEOP_CASE);}
1616
    : PARSEOP_CASE '('				{$$ = TrCreateLeafNode (PARSEOP_CASE);}
1611
        DataObject
1617
        DataObject
1612
        ')' '{'
1618
        ')' '{'
1613
            TermList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
1619
            TermList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
1614
    | PARSEOP_CASE '('
1620
    | PARSEOP_CASE '('
1615
        error ')'                   {$$ = AslDoError(); yyclearin;}
1621
        error ')'                   {$$ = AslDoError(); yyclearin;}
1616
    ;
1622
    ;
1617
 
1623
 
1618
DefaultTerm
1624
DefaultTerm
1619
    : PARSEOP_DEFAULT '{'			{$$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
1625
    : PARSEOP_DEFAULT '{'			{$$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
1620
        TermList '}'                {$$ = TrLinkChildren ($3,1,$4);}
1626
        TermList '}'                {$$ = TrLinkChildren ($3,1,$4);}
1621
    | PARSEOP_DEFAULT '{'
1627
    | PARSEOP_DEFAULT '{'
1622
        error '}'                   {$$ = AslDoError(); yyclearin;}
1628
        error '}'                   {$$ = AslDoError(); yyclearin;}
1623
    ;
1629
    ;
1624
 
1630
 
1625
UnloadTerm
1631
UnloadTerm
1626
    : PARSEOP_UNLOAD '('			{$$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1632
    : PARSEOP_UNLOAD '('			{$$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1627
        SuperName
1633
        SuperName
1628
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1634
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1629
    | PARSEOP_UNLOAD '('
1635
    | PARSEOP_UNLOAD '('
1630
        error ')'                   {$$ = AslDoError(); yyclearin;}
1636
        error ')'                   {$$ = AslDoError(); yyclearin;}
1631
    ;
1637
    ;
1632
 
1638
 
1633
WhileTerm
1639
WhileTerm
1634
    : PARSEOP_WHILE '('				{$$ = TrCreateLeafNode (PARSEOP_WHILE);}
1640
    : PARSEOP_WHILE '('				{$$ = TrCreateLeafNode (PARSEOP_WHILE);}
1635
        TermArg
1641
        TermArg
1636
        ')' '{' TermList '}'
1642
        ')' '{' TermList '}'
1637
                                    {$$ = TrLinkChildren ($3,2,$4,$7);}
1643
                                    {$$ = TrLinkChildren ($3,2,$4,$7);}
1638
    | PARSEOP_WHILE '('
1644
    | PARSEOP_WHILE '('
1639
        error ')'                   {$$ = AslDoError(); yyclearin;}
1645
        error ')'                   {$$ = AslDoError(); yyclearin;}
1640
    ;
1646
    ;
1641
 
1647
 
1642
 
1648
 
1643
/******* Type 2 opcodes *******************************************************/
1649
/******* Type 2 opcodes *******************************************************/
1644
 
1650
 
1645
AcquireTerm
1651
AcquireTerm
1646
    : PARSEOP_ACQUIRE '('			{$$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
1652
    : PARSEOP_ACQUIRE '('			{$$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
1647
        SuperName
1653
        SuperName
1648
        ',' WordConstExpr
1654
        ',' WordConstExpr
1649
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$6);}
1655
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$6);}
1650
    | PARSEOP_ACQUIRE '('
1656
    | PARSEOP_ACQUIRE '('
1651
        error ')'                   {$$ = AslDoError(); yyclearin;}
1657
        error ')'                   {$$ = AslDoError(); yyclearin;}
1652
    ;
1658
    ;
1653
 
1659
 
1654
AddTerm
1660
AddTerm
1655
    : PARSEOP_ADD '('				{$$ = TrCreateLeafNode (PARSEOP_ADD);}
1661
    : PARSEOP_ADD '('				{$$ = TrCreateLeafNode (PARSEOP_ADD);}
1656
        TermArg
1662
        TermArg
1657
        TermArgItem
1663
        TermArgItem
1658
        Target
1664
        Target
1659
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1665
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1660
    | PARSEOP_ADD '('
1666
    | PARSEOP_ADD '('
1661
        error ')'                   {$$ = AslDoError(); yyclearin;}
1667
        error ')'                   {$$ = AslDoError(); yyclearin;}
1662
    ;
1668
    ;
1663
 
1669
 
1664
AndTerm
1670
AndTerm
1665
    : PARSEOP_AND '('				{$$ = TrCreateLeafNode (PARSEOP_AND);}
1671
    : PARSEOP_AND '('				{$$ = TrCreateLeafNode (PARSEOP_AND);}
1666
        TermArg
1672
        TermArg
1667
        TermArgItem
1673
        TermArgItem
1668
        Target
1674
        Target
1669
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1675
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1670
    | PARSEOP_AND '('
1676
    | PARSEOP_AND '('
1671
        error ')'                   {$$ = AslDoError(); yyclearin;}
1677
        error ')'                   {$$ = AslDoError(); yyclearin;}
1672
    ;
1678
    ;
1673
 
1679
 
1674
ConcatTerm
1680
ConcatTerm
1675
    : PARSEOP_CONCATENATE '('		{$$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
1681
    : PARSEOP_CONCATENATE '('		{$$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
1676
        TermArg
1682
        TermArg
1677
        TermArgItem
1683
        TermArgItem
1678
        Target
1684
        Target
1679
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1685
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1680
    | PARSEOP_CONCATENATE '('
1686
    | PARSEOP_CONCATENATE '('
1681
        error ')'                   {$$ = AslDoError(); yyclearin;}
1687
        error ')'                   {$$ = AslDoError(); yyclearin;}
1682
    ;
1688
    ;
1683
 
1689
 
1684
ConcatResTerm
1690
ConcatResTerm
1685
    : PARSEOP_CONCATENATERESTEMPLATE '('    {$$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
1691
    : PARSEOP_CONCATENATERESTEMPLATE '('    {$$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
1686
        TermArg
1692
        TermArg
1687
        TermArgItem
1693
        TermArgItem
1688
        Target
1694
        Target
1689
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1695
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1690
    | PARSEOP_CONCATENATERESTEMPLATE '('
1696
    | PARSEOP_CONCATENATERESTEMPLATE '('
1691
        error ')'                   {$$ = AslDoError(); yyclearin;}
1697
        error ')'                   {$$ = AslDoError(); yyclearin;}
1692
    ;
1698
    ;
1693
 
1699
 
1694
CondRefOfTerm
1700
CondRefOfTerm
1695
    : PARSEOP_CONDREFOF '('			{$$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
1701
    : PARSEOP_CONDREFOF '('			{$$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
1696
        SuperName
1702
        SuperName
1697
        Target
1703
        Target
1698
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1704
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1699
    | PARSEOP_CONDREFOF '('
1705
    | PARSEOP_CONDREFOF '('
1700
        error ')'                   {$$ = AslDoError(); yyclearin;}
1706
        error ')'                   {$$ = AslDoError(); yyclearin;}
1701
    ;
1707
    ;
1702
 
1708
 
1703
CopyObjectTerm
1709
CopyObjectTerm
1704
    : PARSEOP_COPYOBJECT '('		{$$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
1710
    : PARSEOP_COPYOBJECT '('		{$$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
1705
        TermArg
1711
        TermArg
1706
        ',' SimpleTarget
1712
        ',' SimpleTarget
1707
        ')'                         {$$ = TrLinkChildren ($3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1713
        ')'                         {$$ = TrLinkChildren ($3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1708
    | PARSEOP_COPYOBJECT '('
1714
    | PARSEOP_COPYOBJECT '('
1709
        error ')'                   {$$ = AslDoError(); yyclearin;}
1715
        error ')'                   {$$ = AslDoError(); yyclearin;}
1710
    ;
1716
    ;
1711
 
1717
 
1712
DecTerm
1718
DecTerm
1713
    : PARSEOP_DECREMENT '('			{$$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
1719
    : PARSEOP_DECREMENT '('			{$$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
1714
        SuperName
1720
        SuperName
1715
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1721
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1716
    | PARSEOP_DECREMENT '('
1722
    | PARSEOP_DECREMENT '('
1717
        error ')'                   {$$ = AslDoError(); yyclearin;}
1723
        error ')'                   {$$ = AslDoError(); yyclearin;}
1718
    ;
1724
    ;
1719
 
1725
 
1720
DerefOfTerm
1726
DerefOfTerm
1721
    : PARSEOP_DEREFOF '('			{$$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
1727
    : PARSEOP_DEREFOF '('			{$$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
1722
        TermArg
1728
        TermArg
1723
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1729
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1724
    | PARSEOP_DEREFOF '('
1730
    | PARSEOP_DEREFOF '('
1725
        error ')'                   {$$ = AslDoError(); yyclearin;}
1731
        error ')'                   {$$ = AslDoError(); yyclearin;}
1726
    ;
1732
    ;
1727
 
1733
 
1728
DivideTerm
1734
DivideTerm
1729
    : PARSEOP_DIVIDE '('			{$$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
1735
    : PARSEOP_DIVIDE '('			{$$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
1730
        TermArg
1736
        TermArg
1731
        TermArgItem
1737
        TermArgItem
1732
        Target
1738
        Target
1733
        Target
1739
        Target
1734
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$5,$6,$7);}
1740
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$5,$6,$7);}
1735
    | PARSEOP_DIVIDE '('
1741
    | PARSEOP_DIVIDE '('
1736
        error ')'                   {$$ = AslDoError(); yyclearin;}
1742
        error ')'                   {$$ = AslDoError(); yyclearin;}
1737
    ;
1743
    ;
1738
 
1744
 
1739
FindSetLeftBitTerm
1745
FindSetLeftBitTerm
1740
    : PARSEOP_FINDSETLEFTBIT '('	{$$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
1746
    : PARSEOP_FINDSETLEFTBIT '('	{$$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
1741
        TermArg
1747
        TermArg
1742
        Target
1748
        Target
1743
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1749
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1744
    | PARSEOP_FINDSETLEFTBIT '('
1750
    | PARSEOP_FINDSETLEFTBIT '('
1745
        error ')'                   {$$ = AslDoError(); yyclearin;}
1751
        error ')'                   {$$ = AslDoError(); yyclearin;}
1746
    ;
1752
    ;
1747
 
1753
 
1748
FindSetRightBitTerm
1754
FindSetRightBitTerm
1749
    : PARSEOP_FINDSETRIGHTBIT '('	{$$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
1755
    : PARSEOP_FINDSETRIGHTBIT '('	{$$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
1750
        TermArg
1756
        TermArg
1751
        Target
1757
        Target
1752
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1758
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1753
    | PARSEOP_FINDSETRIGHTBIT '('
1759
    | PARSEOP_FINDSETRIGHTBIT '('
1754
        error ')'                   {$$ = AslDoError(); yyclearin;}
1760
        error ')'                   {$$ = AslDoError(); yyclearin;}
1755
    ;
1761
    ;
1756
 
1762
 
1757
FromBCDTerm
1763
FromBCDTerm
1758
    : PARSEOP_FROMBCD '('			{$$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1764
    : PARSEOP_FROMBCD '('			{$$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1759
        TermArg
1765
        TermArg
1760
        Target
1766
        Target
1761
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1767
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1762
    | PARSEOP_FROMBCD '('
1768
    | PARSEOP_FROMBCD '('
1763
        error ')'                   {$$ = AslDoError(); yyclearin;}
1769
        error ')'                   {$$ = AslDoError(); yyclearin;}
1764
    ;
1770
    ;
1765
 
1771
 
1766
IncTerm
1772
IncTerm
1767
    : PARSEOP_INCREMENT '('			{$$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1773
    : PARSEOP_INCREMENT '('			{$$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1768
        SuperName
1774
        SuperName
1769
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1775
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1770
    | PARSEOP_INCREMENT '('
1776
    | PARSEOP_INCREMENT '('
1771
        error ')'                   {$$ = AslDoError(); yyclearin;}
1777
        error ')'                   {$$ = AslDoError(); yyclearin;}
1772
    ;
1778
    ;
1773
 
1779
 
1774
IndexTerm
1780
IndexTerm
1775
    : PARSEOP_INDEX '('				{$$ = TrCreateLeafNode (PARSEOP_INDEX);}
1781
    : PARSEOP_INDEX '('				{$$ = TrCreateLeafNode (PARSEOP_INDEX);}
1776
        TermArg
1782
        TermArg
1777
        TermArgItem
1783
        TermArgItem
1778
        Target
1784
        Target
1779
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1785
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1780
    | PARSEOP_INDEX '('
1786
    | PARSEOP_INDEX '('
1781
        error ')'                   {$$ = AslDoError(); yyclearin;}
1787
        error ')'                   {$$ = AslDoError(); yyclearin;}
1782
    ;
1788
    ;
1783
 
1789
 
1784
LAndTerm
1790
LAndTerm
1785
    : PARSEOP_LAND '('				{$$ = TrCreateLeafNode (PARSEOP_LAND);}
1791
    : PARSEOP_LAND '('				{$$ = TrCreateLeafNode (PARSEOP_LAND);}
1786
        TermArg
1792
        TermArg
1787
        TermArgItem
1793
        TermArgItem
1788
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1794
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1789
    | PARSEOP_LAND '('
1795
    | PARSEOP_LAND '('
1790
        error ')'                   {$$ = AslDoError(); yyclearin;}
1796
        error ')'                   {$$ = AslDoError(); yyclearin;}
1791
    ;
1797
    ;
1792
 
1798
 
1793
LEqualTerm
1799
LEqualTerm
1794
    : PARSEOP_LEQUAL '('			{$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1800
    : PARSEOP_LEQUAL '('			{$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1795
        TermArg
1801
        TermArg
1796
        TermArgItem
1802
        TermArgItem
1797
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1803
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1798
    | PARSEOP_LEQUAL '('
1804
    | PARSEOP_LEQUAL '('
1799
        error ')'                   {$$ = AslDoError(); yyclearin;}
1805
        error ')'                   {$$ = AslDoError(); yyclearin;}
1800
    ;
1806
    ;
1801
 
1807
 
1802
LGreaterTerm
1808
LGreaterTerm
1803
    : PARSEOP_LGREATER '('			{$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1809
    : PARSEOP_LGREATER '('			{$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1804
        TermArg
1810
        TermArg
1805
        TermArgItem
1811
        TermArgItem
1806
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1812
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1807
    | PARSEOP_LGREATER '('
1813
    | PARSEOP_LGREATER '('
1808
        error ')'                   {$$ = AslDoError(); yyclearin;}
1814
        error ')'                   {$$ = AslDoError(); yyclearin;}
1809
    ;
1815
    ;
1810
 
1816
 
1811
LGreaterEqualTerm
1817
LGreaterEqualTerm
1812
    : PARSEOP_LGREATEREQUAL '('		{$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1818
    : PARSEOP_LGREATEREQUAL '('		{$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1813
        TermArg
1819
        TermArg
1814
        TermArgItem
1820
        TermArgItem
1815
        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($3,2,$4,$5));}
1821
        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($3,2,$4,$5));}
1816
    | PARSEOP_LGREATEREQUAL '('
1822
    | PARSEOP_LGREATEREQUAL '('
1817
        error ')'                   {$$ = AslDoError(); yyclearin;}
1823
        error ')'                   {$$ = AslDoError(); yyclearin;}
1818
    ;
1824
    ;
1819
 
1825
 
1820
LLessTerm
1826
LLessTerm
1821
    : PARSEOP_LLESS '('				{$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1827
    : PARSEOP_LLESS '('				{$$ = TrCreateLeafNode (PARSEOP_LLESS);}
1822
        TermArg
1828
        TermArg
1823
        TermArgItem
1829
        TermArgItem
1824
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1830
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1825
    | PARSEOP_LLESS '('
1831
    | PARSEOP_LLESS '('
1826
        error ')'                   {$$ = AslDoError(); yyclearin;}
1832
        error ')'                   {$$ = AslDoError(); yyclearin;}
1827
    ;
1833
    ;
1828
 
1834
 
1829
LLessEqualTerm
1835
LLessEqualTerm
1830
    : PARSEOP_LLESSEQUAL '('		{$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1836
    : PARSEOP_LLESSEQUAL '('		{$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1831
        TermArg
1837
        TermArg
1832
        TermArgItem
1838
        TermArgItem
1833
        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($3,2,$4,$5));}
1839
        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($3,2,$4,$5));}
1834
    | PARSEOP_LLESSEQUAL '('
1840
    | PARSEOP_LLESSEQUAL '('
1835
        error ')'                   {$$ = AslDoError(); yyclearin;}
1841
        error ')'                   {$$ = AslDoError(); yyclearin;}
1836
    ;
1842
    ;
1837
 
1843
 
1838
LNotTerm
1844
LNotTerm
1839
    : PARSEOP_LNOT '('				{$$ = TrCreateLeafNode (PARSEOP_LNOT);}
1845
    : PARSEOP_LNOT '('				{$$ = TrCreateLeafNode (PARSEOP_LNOT);}
1840
        TermArg
1846
        TermArg
1841
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1847
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1842
    | PARSEOP_LNOT '('
1848
    | PARSEOP_LNOT '('
1843
        error ')'                   {$$ = AslDoError(); yyclearin;}
1849
        error ')'                   {$$ = AslDoError(); yyclearin;}
1844
    ;
1850
    ;
1845
 
1851
 
1846
LNotEqualTerm
1852
LNotEqualTerm
1847
    : PARSEOP_LNOTEQUAL '('			{$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1853
    : PARSEOP_LNOTEQUAL '('			{$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1848
        TermArg
1854
        TermArg
1849
        TermArgItem
1855
        TermArgItem
1850
        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($3,2,$4,$5));}
1856
        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($3,2,$4,$5));}
1851
    | PARSEOP_LNOTEQUAL '('
1857
    | PARSEOP_LNOTEQUAL '('
1852
        error ')'                   {$$ = AslDoError(); yyclearin;}
1858
        error ')'                   {$$ = AslDoError(); yyclearin;}
1853
    ;
1859
    ;
1854
 
1860
 
1855
LoadTableTerm
1861
LoadTableTerm
1856
    : PARSEOP_LOADTABLE '('			{$$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1862
    : PARSEOP_LOADTABLE '('			{$$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1857
        TermArg
1863
        TermArg
1858
        TermArgItem
1864
        TermArgItem
1859
        TermArgItem
1865
        TermArgItem
1860
        OptionalListString
1866
        OptionalListString
1861
        OptionalListString
1867
        OptionalListString
1862
        OptionalReference
1868
        OptionalReference
1863
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$5,$6,$7,$8,$9);}
1869
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$5,$6,$7,$8,$9);}
1864
    | PARSEOP_LOADTABLE '('
1870
    | PARSEOP_LOADTABLE '('
1865
        error ')'                   {$$ = AslDoError(); yyclearin;}
1871
        error ')'                   {$$ = AslDoError(); yyclearin;}
1866
    ;
1872
    ;
1867
 
1873
 
1868
LOrTerm
1874
LOrTerm
1869
    : PARSEOP_LOR '('				{$$ = TrCreateLeafNode (PARSEOP_LOR);}
1875
    : PARSEOP_LOR '('				{$$ = TrCreateLeafNode (PARSEOP_LOR);}
1870
        TermArg
1876
        TermArg
1871
        TermArgItem
1877
        TermArgItem
1872
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1878
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1873
    | PARSEOP_LOR '('
1879
    | PARSEOP_LOR '('
1874
        error ')'                   {$$ = AslDoError(); yyclearin;}
1880
        error ')'                   {$$ = AslDoError(); yyclearin;}
1875
    ;
1881
    ;
1876
 
1882
 
1877
MatchTerm
1883
MatchTerm
1878
    : PARSEOP_MATCH '('				{$$ = TrCreateLeafNode (PARSEOP_MATCH);}
1884
    : PARSEOP_MATCH '('				{$$ = TrCreateLeafNode (PARSEOP_MATCH);}
1879
        TermArg
1885
        TermArg
1880
        ',' MatchOpKeyword
1886
        ',' MatchOpKeyword
1881
        TermArgItem
1887
        TermArgItem
1882
        ',' MatchOpKeyword
1888
        ',' MatchOpKeyword
1883
        TermArgItem
1889
        TermArgItem
1884
        TermArgItem
1890
        TermArgItem
1885
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$7,$9,$10,$11);}
1891
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$7,$9,$10,$11);}
1886
    | PARSEOP_MATCH '('
1892
    | PARSEOP_MATCH '('
1887
        error ')'                   {$$ = AslDoError(); yyclearin;}
1893
        error ')'                   {$$ = AslDoError(); yyclearin;}
1888
    ;
1894
    ;
1889
 
1895
 
1890
MidTerm
1896
MidTerm
1891
    : PARSEOP_MID '('				{$$ = TrCreateLeafNode (PARSEOP_MID);}
1897
    : PARSEOP_MID '('				{$$ = TrCreateLeafNode (PARSEOP_MID);}
1892
        TermArg
1898
        TermArg
1893
        TermArgItem
1899
        TermArgItem
1894
        TermArgItem
1900
        TermArgItem
1895
        Target
1901
        Target
1896
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$5,$6,$7);}
1902
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$5,$6,$7);}
1897
    | PARSEOP_MID '('
1903
    | PARSEOP_MID '('
1898
        error ')'                   {$$ = AslDoError(); yyclearin;}
1904
        error ')'                   {$$ = AslDoError(); yyclearin;}
1899
    ;
1905
    ;
1900
 
1906
 
1901
ModTerm
1907
ModTerm
1902
    : PARSEOP_MOD '('				{$$ = TrCreateLeafNode (PARSEOP_MOD);}
1908
    : PARSEOP_MOD '('				{$$ = TrCreateLeafNode (PARSEOP_MOD);}
1903
        TermArg
1909
        TermArg
1904
        TermArgItem
1910
        TermArgItem
1905
        Target
1911
        Target
1906
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1912
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1907
    | PARSEOP_MOD '('
1913
    | PARSEOP_MOD '('
1908
        error ')'                   {$$ = AslDoError(); yyclearin;}
1914
        error ')'                   {$$ = AslDoError(); yyclearin;}
1909
    ;
1915
    ;
1910
 
1916
 
1911
MultiplyTerm
1917
MultiplyTerm
1912
    : PARSEOP_MULTIPLY '('			{$$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1918
    : PARSEOP_MULTIPLY '('			{$$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1913
        TermArg
1919
        TermArg
1914
        TermArgItem
1920
        TermArgItem
1915
        Target
1921
        Target
1916
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1922
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1917
    | PARSEOP_MULTIPLY '('
1923
    | PARSEOP_MULTIPLY '('
1918
        error ')'                   {$$ = AslDoError(); yyclearin;}
1924
        error ')'                   {$$ = AslDoError(); yyclearin;}
1919
    ;
1925
    ;
1920
 
1926
 
1921
NAndTerm
1927
NAndTerm
1922
    : PARSEOP_NAND '('				{$$ = TrCreateLeafNode (PARSEOP_NAND);}
1928
    : PARSEOP_NAND '('				{$$ = TrCreateLeafNode (PARSEOP_NAND);}
1923
        TermArg
1929
        TermArg
1924
        TermArgItem
1930
        TermArgItem
1925
        Target
1931
        Target
1926
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1932
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1927
    | PARSEOP_NAND '('
1933
    | PARSEOP_NAND '('
1928
        error ')'                   {$$ = AslDoError(); yyclearin;}
1934
        error ')'                   {$$ = AslDoError(); yyclearin;}
1929
    ;
1935
    ;
1930
 
1936
 
1931
NOrTerm
1937
NOrTerm
1932
    : PARSEOP_NOR '('				{$$ = TrCreateLeafNode (PARSEOP_NOR);}
1938
    : PARSEOP_NOR '('				{$$ = TrCreateLeafNode (PARSEOP_NOR);}
1933
        TermArg
1939
        TermArg
1934
        TermArgItem
1940
        TermArgItem
1935
        Target
1941
        Target
1936
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1942
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1937
    | PARSEOP_NOR '('
1943
    | PARSEOP_NOR '('
1938
        error ')'                   {$$ = AslDoError(); yyclearin;}
1944
        error ')'                   {$$ = AslDoError(); yyclearin;}
1939
    ;
1945
    ;
1940
 
1946
 
1941
NotTerm
1947
NotTerm
1942
    : PARSEOP_NOT '('				{$$ = TrCreateLeafNode (PARSEOP_NOT);}
1948
    : PARSEOP_NOT '('				{$$ = TrCreateLeafNode (PARSEOP_NOT);}
1943
        TermArg
1949
        TermArg
1944
        Target
1950
        Target
1945
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1951
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
1946
    | PARSEOP_NOT '('
1952
    | PARSEOP_NOT '('
1947
        error ')'                   {$$ = AslDoError(); yyclearin;}
1953
        error ')'                   {$$ = AslDoError(); yyclearin;}
1948
    ;
1954
    ;
1949
 
1955
 
1950
ObjectTypeTerm
1956
ObjectTypeTerm
1951
    : PARSEOP_OBJECTTYPE '('		{$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1957
    : PARSEOP_OBJECTTYPE '('		{$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1952
        SuperName
1958
        SuperName
1953
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1959
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
1954
    | PARSEOP_OBJECTTYPE '('
1960
    | PARSEOP_OBJECTTYPE '('
1955
        error ')'                   {$$ = AslDoError(); yyclearin;}
1961
        error ')'                   {$$ = AslDoError(); yyclearin;}
1956
    ;
1962
    ;
1957
 
1963
 
1958
OrTerm
1964
OrTerm
1959
    : PARSEOP_OR '('				{$$ = TrCreateLeafNode (PARSEOP_OR);}
1965
    : PARSEOP_OR '('				{$$ = TrCreateLeafNode (PARSEOP_OR);}
1960
        TermArg
1966
        TermArg
1961
        TermArgItem
1967
        TermArgItem
1962
        Target
1968
        Target
1963
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1969
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1964
    | PARSEOP_OR '('
1970
    | PARSEOP_OR '('
1965
        error ')'                   {$$ = AslDoError(); yyclearin;}
1971
        error ')'                   {$$ = AslDoError(); yyclearin;}
1966
    ;
1972
    ;
1967
 
1973
 
1968
/*
1974
/*
1969
 * In RefOf, the node isn't really a target, but we can't keep track of it after
1975
 * In RefOf, the node isn't really a target, but we can't keep track of it after
1970
 * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1976
 * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1971
 */
1977
 */
1972
RefOfTerm
1978
RefOfTerm
1973
    : PARSEOP_REFOF '('				{$$ = TrCreateLeafNode (PARSEOP_REFOF);}
1979
    : PARSEOP_REFOF '('				{$$ = TrCreateLeafNode (PARSEOP_REFOF);}
1974
        SuperName
1980
        SuperName
1975
        ')'                         {$$ = TrLinkChildren ($3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1981
        ')'                         {$$ = TrLinkChildren ($3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1976
    | PARSEOP_REFOF '('
1982
    | PARSEOP_REFOF '('
1977
        error ')'                   {$$ = AslDoError(); yyclearin;}
1983
        error ')'                   {$$ = AslDoError(); yyclearin;}
1978
    ;
1984
    ;
1979
 
1985
 
1980
ShiftLeftTerm
1986
ShiftLeftTerm
1981
    : PARSEOP_SHIFTLEFT '('			{$$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1987
    : PARSEOP_SHIFTLEFT '('			{$$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1982
        TermArg
1988
        TermArg
1983
        TermArgItem
1989
        TermArgItem
1984
        Target
1990
        Target
1985
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1991
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1986
    | PARSEOP_SHIFTLEFT '('
1992
    | PARSEOP_SHIFTLEFT '('
1987
        error ')'                   {$$ = AslDoError(); yyclearin;}
1993
        error ')'                   {$$ = AslDoError(); yyclearin;}
1988
    ;
1994
    ;
1989
 
1995
 
1990
ShiftRightTerm
1996
ShiftRightTerm
1991
    : PARSEOP_SHIFTRIGHT '('		{$$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1997
    : PARSEOP_SHIFTRIGHT '('		{$$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1992
        TermArg
1998
        TermArg
1993
        TermArgItem
1999
        TermArgItem
1994
        Target
2000
        Target
1995
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2001
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
1996
    | PARSEOP_SHIFTRIGHT '('
2002
    | PARSEOP_SHIFTRIGHT '('
1997
        error ')'                   {$$ = AslDoError(); yyclearin;}
2003
        error ')'                   {$$ = AslDoError(); yyclearin;}
1998
    ;
2004
    ;
1999
 
2005
 
2000
SizeOfTerm
2006
SizeOfTerm
2001
    : PARSEOP_SIZEOF '('			{$$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
2007
    : PARSEOP_SIZEOF '('			{$$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
2002
        SuperName
2008
        SuperName
2003
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
2009
        ')'                         {$$ = TrLinkChildren ($3,1,$4);}
2004
    | PARSEOP_SIZEOF '('
2010
    | PARSEOP_SIZEOF '('
2005
        error ')'                   {$$ = AslDoError(); yyclearin;}
2011
        error ')'                   {$$ = AslDoError(); yyclearin;}
2006
    ;
2012
    ;
2007
 
2013
 
2008
StoreTerm
2014
StoreTerm
2009
    : PARSEOP_STORE '('				{$$ = TrCreateLeafNode (PARSEOP_STORE);}
2015
    : PARSEOP_STORE '('				{$$ = TrCreateLeafNode (PARSEOP_STORE);}
2010
        TermArg
2016
        TermArg
2011
        ',' SuperName
2017
        ',' SuperName
2012
        ')'                         {$$ = TrLinkChildren ($3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
2018
        ')'                         {$$ = TrLinkChildren ($3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
2013
    | PARSEOP_STORE '('
2019
    | PARSEOP_STORE '('
2014
        error ')'                   {$$ = AslDoError(); yyclearin;}
2020
        error ')'                   {$$ = AslDoError(); yyclearin;}
2015
    ;
2021
    ;
2016
 
2022
 
2017
SubtractTerm
2023
SubtractTerm
2018
    : PARSEOP_SUBTRACT '('			{$$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
2024
    : PARSEOP_SUBTRACT '('			{$$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
2019
        TermArg
2025
        TermArg
2020
        TermArgItem
2026
        TermArgItem
2021
        Target
2027
        Target
2022
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2028
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2023
    | PARSEOP_SUBTRACT '('
2029
    | PARSEOP_SUBTRACT '('
2024
        error ')'                   {$$ = AslDoError(); yyclearin;}
2030
        error ')'                   {$$ = AslDoError(); yyclearin;}
2025
    ;
2031
    ;
2026
 
2032
 
2027
TimerTerm
2033
TimerTerm
2028
    : PARSEOP_TIMER '('			    {$$ = TrCreateLeafNode (PARSEOP_TIMER);}
2034
    : PARSEOP_TIMER '('			    {$$ = TrCreateLeafNode (PARSEOP_TIMER);}
2029
        ')'                         {$$ = TrLinkChildren ($3,0);}
2035
        ')'                         {$$ = TrLinkChildren ($3,0);}
2030
    | PARSEOP_TIMER		            {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
2036
    | PARSEOP_TIMER		            {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
2031
    | PARSEOP_TIMER '('
2037
    | PARSEOP_TIMER '('
2032
        error ')'                   {$$ = AslDoError(); yyclearin;}
2038
        error ')'                   {$$ = AslDoError(); yyclearin;}
2033
    ;
2039
    ;
2034
 
2040
 
2035
ToBCDTerm
2041
ToBCDTerm
2036
    : PARSEOP_TOBCD '('				{$$ = TrCreateLeafNode (PARSEOP_TOBCD);}
2042
    : PARSEOP_TOBCD '('				{$$ = TrCreateLeafNode (PARSEOP_TOBCD);}
2037
        TermArg
2043
        TermArg
2038
        Target
2044
        Target
2039
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2045
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2040
    | PARSEOP_TOBCD '('
2046
    | PARSEOP_TOBCD '('
2041
        error ')'                   {$$ = AslDoError(); yyclearin;}
2047
        error ')'                   {$$ = AslDoError(); yyclearin;}
2042
    ;
2048
    ;
2043
 
2049
 
2044
ToBufferTerm
2050
ToBufferTerm
2045
    : PARSEOP_TOBUFFER '('			{$$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
2051
    : PARSEOP_TOBUFFER '('			{$$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
2046
        TermArg
2052
        TermArg
2047
        Target
2053
        Target
2048
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2054
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2049
    | PARSEOP_TOBUFFER '('
2055
    | PARSEOP_TOBUFFER '('
2050
        error ')'                   {$$ = AslDoError(); yyclearin;}
2056
        error ')'                   {$$ = AslDoError(); yyclearin;}
2051
    ;
2057
    ;
2052
 
2058
 
2053
ToDecimalStringTerm
2059
ToDecimalStringTerm
2054
    : PARSEOP_TODECIMALSTRING '('	{$$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
2060
    : PARSEOP_TODECIMALSTRING '('	{$$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
2055
        TermArg
2061
        TermArg
2056
        Target
2062
        Target
2057
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2063
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2058
    | PARSEOP_TODECIMALSTRING '('
2064
    | PARSEOP_TODECIMALSTRING '('
2059
        error ')'                   {$$ = AslDoError(); yyclearin;}
2065
        error ')'                   {$$ = AslDoError(); yyclearin;}
2060
    ;
2066
    ;
2061
 
2067
 
2062
ToHexStringTerm
2068
ToHexStringTerm
2063
    : PARSEOP_TOHEXSTRING '('		{$$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
2069
    : PARSEOP_TOHEXSTRING '('		{$$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
2064
        TermArg
2070
        TermArg
2065
        Target
2071
        Target
2066
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2072
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2067
    | PARSEOP_TOHEXSTRING '('
2073
    | PARSEOP_TOHEXSTRING '('
2068
        error ')'                   {$$ = AslDoError(); yyclearin;}
2074
        error ')'                   {$$ = AslDoError(); yyclearin;}
2069
    ;
2075
    ;
2070
 
2076
 
2071
ToIntegerTerm
2077
ToIntegerTerm
2072
    : PARSEOP_TOINTEGER '('			{$$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
2078
    : PARSEOP_TOINTEGER '('			{$$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
2073
        TermArg
2079
        TermArg
2074
        Target
2080
        Target
2075
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2081
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2076
    | PARSEOP_TOINTEGER '('
2082
    | PARSEOP_TOINTEGER '('
2077
        error ')'                   {$$ = AslDoError(); yyclearin;}
2083
        error ')'                   {$$ = AslDoError(); yyclearin;}
2078
    ;
2084
    ;
2079
 
2085
 
2080
ToStringTerm
2086
ToStringTerm
2081
    : PARSEOP_TOSTRING '('			{$$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
2087
    : PARSEOP_TOSTRING '('			{$$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
2082
        TermArg
2088
        TermArg
2083
        OptionalCount
2089
        OptionalCount
2084
        Target
2090
        Target
2085
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2091
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2086
    | PARSEOP_TOSTRING '('
2092
    | PARSEOP_TOSTRING '('
2087
        error ')'                   {$$ = AslDoError(); yyclearin;}
2093
        error ')'                   {$$ = AslDoError(); yyclearin;}
2088
    ;
2094
    ;
2089
 
2095
 
2090
ToUUIDTerm
2096
ToUUIDTerm
2091
    : PARSEOP_TOUUID '('
2097
    : PARSEOP_TOUUID '('
2092
        StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
2098
        StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
2093
    | PARSEOP_TOUUID '('
2099
    | PARSEOP_TOUUID '('
2094
        error ')'                   {$$ = AslDoError(); yyclearin;}
2100
        error ')'                   {$$ = AslDoError(); yyclearin;}
2095
    ;
2101
    ;
2096
 
2102
 
2097
WaitTerm
2103
WaitTerm
2098
    : PARSEOP_WAIT '('				{$$ = TrCreateLeafNode (PARSEOP_WAIT);}
2104
    : PARSEOP_WAIT '('				{$$ = TrCreateLeafNode (PARSEOP_WAIT);}
2099
        SuperName
2105
        SuperName
2100
        TermArgItem
2106
        TermArgItem
2101
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2107
        ')'                         {$$ = TrLinkChildren ($3,2,$4,$5);}
2102
    | PARSEOP_WAIT '('
2108
    | PARSEOP_WAIT '('
2103
        error ')'                   {$$ = AslDoError(); yyclearin;}
2109
        error ')'                   {$$ = AslDoError(); yyclearin;}
2104
    ;
2110
    ;
2105
 
2111
 
2106
XOrTerm
2112
XOrTerm
2107
    : PARSEOP_XOR '('				{$$ = TrCreateLeafNode (PARSEOP_XOR);}
2113
    : PARSEOP_XOR '('				{$$ = TrCreateLeafNode (PARSEOP_XOR);}
2108
        TermArg
2114
        TermArg
2109
        TermArgItem
2115
        TermArgItem
2110
        Target
2116
        Target
2111
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2117
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$5,$6);}
2112
    | PARSEOP_XOR '('
2118
    | PARSEOP_XOR '('
2113
        error ')'                   {$$ = AslDoError(); yyclearin;}
2119
        error ')'                   {$$ = AslDoError(); yyclearin;}
2114
    ;
2120
    ;
2115
 
2121
 
2116
 
2122
 
2117
/******* Keywords *************************************************************/
2123
/******* Keywords *************************************************************/
2118
 
2124
 
2119
 
2125
 
2120
ObjectTypeKeyword
2126
ObjectTypeKeyword
2121
    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
2127
    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
2122
    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
2128
    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
2123
    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
2129
    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
2124
    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
2130
    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
2125
    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
2131
    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
2126
    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
2132
    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
2127
    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
2133
    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
2128
    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
2134
    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
2129
    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
2135
    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
2130
    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
2136
    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
2131
    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
2137
    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
2132
    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
2138
    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
2133
    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
2139
    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
2134
    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
2140
    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
2135
    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
2141
    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
2136
    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
2142
    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
2137
    ;
2143
    ;
2138
 
2144
 
2139
AccessTypeKeyword
2145
AccessTypeKeyword
2140
    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
2146
    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
2141
    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
2147
    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
2142
    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
2148
    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
2143
    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
2149
    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
2144
    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
2150
    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
2145
    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
2151
    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
2146
    ;
2152
    ;
2147
 
2153
 
2148
AccessAttribKeyword
2154
AccessAttribKeyword
2149
    : PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
2155
    : PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
2150
    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
2156
    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
2151
    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
2157
    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
2152
    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
2158
    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
2153
    | PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
2159
    | PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
2154
    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
2160
    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
2155
    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
2161
    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
2156
    ;
2162
    ;
2157
 
2163
 
2158
LockRuleKeyword
2164
LockRuleKeyword
2159
    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
2165
    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
2160
    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
2166
    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
2161
    ;
2167
    ;
2162
 
2168
 
2163
UpdateRuleKeyword
2169
UpdateRuleKeyword
2164
    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
2170
    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
2165
    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
2171
    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
2166
    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
2172
    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
2167
    ;
2173
    ;
2168
 
2174
 
2169
 
2175
 
2170
RegionSpaceKeyword
2176
RegionSpaceKeyword
2171
    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
2177
    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
2172
    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
2178
    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
2173
    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
2179
    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
2174
    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
2180
    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
2175
    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
2181
    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
2176
    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
2182
    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
2177
    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
2183
    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
2178
    | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
2184
    | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
2179
    ;
2185
    ;
2180
 
2186
 
2181
AddressSpaceKeyword
2187
AddressSpaceKeyword
2182
    : ByteConst								{$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
2188
    : ByteConst								{$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
2183
    | RegionSpaceKeyword					{}
2189
    | RegionSpaceKeyword					{}
2184
    | PARSEOP_ADDRESSSPACE_FFIXEDHW         {$$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
2190
    | PARSEOP_ADDRESSSPACE_FFIXEDHW         {$$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
2185
    ;
2191
    ;
2186
 
2192
 
2187
 
2193
 
2188
SerializeRuleKeyword
2194
SerializeRuleKeyword
2189
    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
2195
    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
2190
    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
2196
    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
2191
    ;
2197
    ;
2192
 
2198
 
2193
MatchOpKeyword
2199
MatchOpKeyword
2194
    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
2200
    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
2195
    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
2201
    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
2196
    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
2202
    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
2197
    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
2203
    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
2198
    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
2204
    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
2199
    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
2205
    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
2200
    ;
2206
    ;
2201
 
2207
 
2202
DMATypeKeyword
2208
DMATypeKeyword
2203
    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
2209
    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
2204
    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
2210
    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
2205
    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
2211
    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
2206
    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
2212
    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
2207
    ;
2213
    ;
2208
 
2214
 
2209
XferTypeKeyword
2215
XferTypeKeyword
2210
    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
2216
    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
2211
    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
2217
    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
2212
    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
2218
    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
2213
    ;
2219
    ;
2214
 
2220
 
2215
ResourceTypeKeyword
2221
ResourceTypeKeyword
2216
    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2222
    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2217
    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
2223
    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
2218
    ;
2224
    ;
2219
 
2225
 
2220
MinKeyword
2226
MinKeyword
2221
    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
2227
    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
2222
    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
2228
    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
2223
    ;
2229
    ;
2224
 
2230
 
2225
MaxKeyword
2231
MaxKeyword
2226
    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
2232
    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
2227
    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
2233
    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
2228
    ;
2234
    ;
2229
 
2235
 
2230
DecodeKeyword
2236
DecodeKeyword
2231
    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
2237
    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
2232
    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
2238
    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
2233
    ;
2239
    ;
2234
 
2240
 
2235
RangeTypeKeyword
2241
RangeTypeKeyword
2236
    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
2242
    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
2237
    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
2243
    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
2238
    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
2244
    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
2239
    ;
2245
    ;
2240
 
2246
 
2241
MemTypeKeyword
2247
MemTypeKeyword
2242
    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
2248
    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
2243
    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
2249
    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
2244
    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
2250
    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
2245
    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
2251
    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
2246
    ;
2252
    ;
2247
 
2253
 
2248
OptionalReadWriteKeyword
2254
OptionalReadWriteKeyword
2249
    :                                       {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2255
    :                                       {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2250
    | PARSEOP_READWRITETYPE_BOTH            {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2256
    | PARSEOP_READWRITETYPE_BOTH            {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2251
    | PARSEOP_READWRITETYPE_READONLY        {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
2257
    | PARSEOP_READWRITETYPE_READONLY        {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
2252
    ;
2258
    ;
2253
 
2259
 
2254
InterruptTypeKeyword
2260
InterruptTypeKeyword
2255
    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
2261
    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
2256
    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
2262
    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
2257
    ;
2263
    ;
2258
 
2264
 
2259
InterruptLevel
2265
InterruptLevel
2260
    : PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
2266
    : PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
2261
    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
2267
    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
2262
    ;
2268
    ;
2263
 
2269
 
2264
ShareTypeKeyword
2270
ShareTypeKeyword
2265
    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
2271
    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
2266
    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
2272
    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
2267
    ;
2273
    ;
2268
 
2274
 
2269
IODecodeKeyword
2275
IODecodeKeyword
2270
    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
2276
    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
2271
    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
2277
    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
2272
    ;
2278
    ;
2273
 
2279
 
2274
TypeKeyword
2280
TypeKeyword
2275
    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
2281
    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
2276
    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
2282
    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
2277
    ;
2283
    ;
2278
 
2284
 
2279
TranslationKeyword
2285
TranslationKeyword
2280
    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
2286
    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
2281
    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
2287
    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
2282
    ;
2288
    ;
2283
 
2289
 
2284
AddressKeyword
2290
AddressKeyword
2285
    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
2291
    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
2286
    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
2292
    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
2287
    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
2293
    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
2288
    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
2294
    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
2289
    ;
2295
    ;
2290
 
2296
 
2291
 
2297
 
2292
/******* Miscellaneous Types **************************************************/
2298
/******* Miscellaneous Types **************************************************/
2293
 
2299
 
2294
 
2300
 
2295
SuperName
2301
SuperName
2296
    : NameString                    {}
2302
    : NameString                    {}
2297
    | ArgTerm                       {}
2303
    | ArgTerm                       {}
2298
    | LocalTerm                     {}
2304
    | LocalTerm                     {}
2299
    | DebugTerm                     {}
2305
    | DebugTerm                     {}
2300
    | Type6Opcode                   {}
2306
    | Type6Opcode                   {}
2301
/*    | UserTerm                      {} */  /* Caused reduce/reduce with Type6Opcode->UserTerm */
2307
/*    | UserTerm                      {} */  /* Caused reduce/reduce with Type6Opcode->UserTerm */
2302
    ;
2308
    ;
2303
 
2309
 
2304
ArgTerm
2310
ArgTerm
2305
    : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
2311
    : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
2306
    | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
2312
    | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
2307
    | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
2313
    | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
2308
    | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
2314
    | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
2309
    | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
2315
    | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
2310
    | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
2316
    | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
2311
    | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
2317
    | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
2312
    ;
2318
    ;
2313
 
2319
 
2314
LocalTerm
2320
LocalTerm
2315
    : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
2321
    : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
2316
    | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
2322
    | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
2317
    | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
2323
    | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
2318
    | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
2324
    | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
2319
    | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
2325
    | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
2320
    | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
2326
    | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
2321
    | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
2327
    | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
2322
    | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
2328
    | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
2323
    ;
2329
    ;
2324
 
2330
 
2325
DebugTerm
2331
DebugTerm
2326
    : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
2332
    : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
2327
    ;
2333
    ;
2328
 
2334
 
2329
 
2335
 
2330
ByteConst
2336
ByteConst
2331
    : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2337
    : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2332
    ;
2338
    ;
2333
 
2339
 
2334
WordConst
2340
WordConst
2335
    : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2341
    : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2336
    ;
2342
    ;
2337
 
2343
 
2338
DWordConst
2344
DWordConst
2339
    : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2345
    : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2340
    ;
2346
    ;
2341
 
2347
 
2342
QWordConst
2348
QWordConst
2343
    : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2349
    : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2344
    ;
2350
    ;
2345
 
2351
 
2346
Integer
2352
Integer
2347
    : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
2353
    : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
2348
    ;
2354
    ;
2349
 
2355
 
2350
String
2356
String
2351
    : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2357
    : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2352
    ;
2358
    ;
2353
 
2359
 
2354
ConstTerm
2360
ConstTerm
2355
    : ConstExprTerm                 {}
2361
    : ConstExprTerm                 {}
2356
    | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
2362
    | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
2357
    ;
2363
    ;
2358
 
2364
 
2359
ByteConstExpr
2365
ByteConstExpr
2360
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2366
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2361
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2367
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2362
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2368
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2363
    | ByteConst                     {}
2369
    | ByteConst                     {}
2364
    ;
2370
    ;
2365
 
2371
 
2366
WordConstExpr
2372
WordConstExpr
2367
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2373
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2368
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2374
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2369
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2375
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2370
    | WordConst                     {}
2376
    | WordConst                     {}
2371
    ;
2377
    ;
2372
 
2378
 
2373
DWordConstExpr
2379
DWordConstExpr
2374
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2380
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2375
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2381
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2376
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2382
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2377
    | DWordConst                    {}
2383
    | DWordConst                    {}
2378
    ;
2384
    ;
2379
 
2385
 
2380
QWordConstExpr
2386
QWordConstExpr
2381
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2387
    : Type3Opcode                   {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2382
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2388
    | Type2IntegerOpcode            {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2383
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2389
    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2384
    | QWordConst                    {}
2390
    | QWordConst                    {}
2385
    ;
2391
    ;
2386
 
2392
 
2387
ConstExprTerm
2393
ConstExprTerm
2388
    : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
2394
    : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
2389
    | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
2395
    | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
2390
    | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
2396
    | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
2391
    ;
2397
    | PARSEOP___DATE__              {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
-
 
2398
    | PARSEOP___FILE__              {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
-
 
2399
    | PARSEOP___LINE__              {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
-
 
2400
    ;
2392
 
2401
 
2393
/* OptionalCount must appear before ByteList or an incorrect reduction will result */
2402
/* OptionalCount must appear before ByteList or an incorrect reduction will result */
2394
 
2403
 
2395
OptionalCount
2404
OptionalCount
2396
    :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
2405
    :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
2397
    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
2406
    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
2398
    | ',' TermArg                   {$$ = $2;}
2407
    | ',' TermArg                   {$$ = $2;}
2399
    ;
2408
    ;
2400
 
2409
 
2401
 
2410
 
2402
BufferTerm
2411
BufferTerm
2403
    : PARSEOP_BUFFER '('            {$$ = TrCreateLeafNode (PARSEOP_BUFFER);}
2412
    : PARSEOP_BUFFER '('            {$$ = TrCreateLeafNode (PARSEOP_BUFFER);}
2404
        OptionalTermArg
2413
        OptionalTermArg
2405
        ')' '{'
2414
        ')' '{'
2406
            BufferTermData '}'      {$$ = TrLinkChildren ($3,2,$4,$7);}
2415
            BufferTermData '}'      {$$ = TrLinkChildren ($3,2,$4,$7);}
2407
    | PARSEOP_BUFFER '('
2416
    | PARSEOP_BUFFER '('
2408
        error ')'                   {$$ = AslDoError(); yyclearin;}
2417
        error ')'                   {$$ = AslDoError(); yyclearin;}
2409
    ;
2418
    ;
2410
 
2419
 
2411
BufferTermData
2420
BufferTermData
2412
    : ByteList                      {}
2421
    : ByteList                      {}
2413
    | StringData                    {}
2422
    | StringData                    {}
2414
    ;
2423
    ;
2415
 
2424
 
2416
ByteList
2425
ByteList
2417
    :                               {$$ = NULL;}
2426
    :                               {$$ = NULL;}
2418
    | ByteConstExpr
2427
    | ByteConstExpr
2419
    | ByteList ','                  /* Allows a trailing comma at list end */
2428
    | ByteList ','                  /* Allows a trailing comma at list end */
2420
    | ByteList ','
2429
    | ByteList ','
2421
        ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
2430
        ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
2422
    ;
2431
    ;
2423
 
2432
 
2424
DWordList
2433
DWordList
2425
    :                               {$$ = NULL;}
2434
    :                               {$$ = NULL;}
2426
    | DWordConstExpr
2435
    | DWordConstExpr
2427
    | DWordList ','                 /* Allows a trailing comma at list end */
2436
    | DWordList ','                 /* Allows a trailing comma at list end */
2428
    | DWordList ','
2437
    | DWordList ','
2429
        DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
2438
        DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
2430
    ;
2439
    ;
2431
 
2440
 
2432
PackageTerm
2441
PackageTerm
2433
    : PARSEOP_PACKAGE '('           {$$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
2442
    : PARSEOP_PACKAGE '('           {$$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
2434
        VarPackageLengthTerm
2443
        VarPackageLengthTerm
2435
        ')' '{'
2444
        ')' '{'
2436
            PackageList '}'         {$$ = TrLinkChildren ($3,2,$4,$7);}
2445
            PackageList '}'         {$$ = TrLinkChildren ($3,2,$4,$7);}
2437
    | PARSEOP_PACKAGE '('
2446
    | PARSEOP_PACKAGE '('
2438
        error ')'                   {$$ = AslDoError(); yyclearin;}
2447
        error ')'                   {$$ = AslDoError(); yyclearin;}
2439
    ;
2448
    ;
2440
 
2449
 
2441
VarPackageLengthTerm
2450
VarPackageLengthTerm
2442
    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
2451
    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
2443
    | TermArg                       {$$ = $1;}
2452
    | TermArg                       {$$ = $1;}
2444
    ;
2453
    ;
2445
 
2454
 
2446
PackageList
2455
PackageList
2447
    :                               {$$ = NULL;}
2456
    :                               {$$ = NULL;}
2448
    | PackageElement
2457
    | PackageElement
2449
    | PackageList ','               /* Allows a trailing comma at list end */
2458
    | PackageList ','               /* Allows a trailing comma at list end */
2450
    | PackageList ','
2459
    | PackageList ','
2451
        PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
2460
        PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
2452
    ;
2461
    ;
2453
 
2462
 
2454
PackageElement
2463
PackageElement
2455
    : DataObject                    {}
2464
    : DataObject                    {}
2456
    | NameString                    {}
2465
    | NameString                    {}
2457
    ;
2466
    ;
2458
 
2467
 
2459
EISAIDTerm
2468
EISAIDTerm
2460
    : PARSEOP_EISAID '('
2469
    : PARSEOP_EISAID '('
2461
        StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
2470
        StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
2462
    | PARSEOP_EISAID '('
2471
    | PARSEOP_EISAID '('
2463
        error ')'                   {$$ = AslDoError(); yyclearin;}
2472
        error ')'                   {$$ = AslDoError(); yyclearin;}
2464
    ;
2473
    ;
2465
 
2474
 
2466
 
2475
 
2467
/******* Resources and Memory ***********************************************/
2476
/******* Resources and Memory ***********************************************/
2468
 
2477
 
2469
 
2478
 
2470
/*
2479
/*
2471
 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
2480
 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
2472
 * Also, insert the EndTag at the end of the template.
2481
 * Also, insert the EndTag at the end of the template.
2473
 */
2482
 */
2474
ResourceTemplateTerm
2483
ResourceTemplateTerm
2475
    : PARSEOP_RESOURCETEMPLATE '(' ')'
2484
    : PARSEOP_RESOURCETEMPLATE '(' ')'
2476
        '{'
2485
        '{'
2477
        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
2486
        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
2478
                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2487
                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2479
                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2488
                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2480
                                          $5,
2489
                                          $5,
2481
                                          TrCreateLeafNode (PARSEOP_ENDTAG));}
2490
                                          TrCreateLeafNode (PARSEOP_ENDTAG));}
2482
    ;
2491
    ;
2483
 
2492
 
2484
UnicodeTerm
2493
UnicodeTerm
2485
    : PARSEOP_UNICODE '('           {$$ = TrCreateLeafNode (PARSEOP_UNICODE);}
2494
    : PARSEOP_UNICODE '('           {$$ = TrCreateLeafNode (PARSEOP_UNICODE);}
2486
        StringData
2495
        StringData
2487
        ')'                         {$$ = TrLinkChildren ($3,2,0,$4);}
2496
        ')'                         {$$ = TrLinkChildren ($3,2,0,$4);}
2488
    | PARSEOP_UNICODE '('
2497
    | PARSEOP_UNICODE '('
2489
        error ')'                   {$$ = AslDoError(); yyclearin;}
2498
        error ')'                   {$$ = AslDoError(); yyclearin;}
2490
    ;
2499
    ;
2491
 
2500
 
2492
ResourceMacroList
2501
ResourceMacroList
2493
    :                               {$$ = NULL;}
2502
    :                               {$$ = NULL;}
2494
    | ResourceMacroList
2503
    | ResourceMacroList
2495
        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
2504
        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
2496
    ;
2505
    ;
2497
 
2506
 
2498
ResourceMacroTerm
2507
ResourceMacroTerm
2499
    : DMATerm                       {}
2508
    : DMATerm                       {}
2500
    | DWordIOTerm                   {}
2509
    | DWordIOTerm                   {}
2501
    | DWordMemoryTerm               {}
2510
    | DWordMemoryTerm               {}
2502
    | DWordSpaceTerm                {}
2511
    | DWordSpaceTerm                {}
2503
    | EndDependentFnTerm            {}
2512
    | EndDependentFnTerm            {}
2504
    | ExtendedIOTerm                {}
2513
    | ExtendedIOTerm                {}
2505
    | ExtendedMemoryTerm            {}
2514
    | ExtendedMemoryTerm            {}
2506
    | ExtendedSpaceTerm             {}
2515
    | ExtendedSpaceTerm             {}
2507
    | FixedIOTerm                   {}
2516
    | FixedIOTerm                   {}
2508
    | InterruptTerm                 {}
2517
    | InterruptTerm                 {}
2509
    | IOTerm                        {}
2518
    | IOTerm                        {}
2510
    | IRQNoFlagsTerm                {}
2519
    | IRQNoFlagsTerm                {}
2511
    | IRQTerm                       {}
2520
    | IRQTerm                       {}
2512
    | Memory24Term                  {}
2521
    | Memory24Term                  {}
2513
    | Memory32FixedTerm             {}
2522
    | Memory32FixedTerm             {}
2514
    | Memory32Term                  {}
2523
    | Memory32Term                  {}
2515
    | QWordIOTerm                   {}
2524
    | QWordIOTerm                   {}
2516
    | QWordMemoryTerm               {}
2525
    | QWordMemoryTerm               {}
2517
    | QWordSpaceTerm                {}
2526
    | QWordSpaceTerm                {}
2518
    | RegisterTerm                  {}
2527
    | RegisterTerm                  {}
2519
    | StartDependentFnTerm          {}
2528
    | StartDependentFnTerm          {}
2520
    | StartDependentFnNoPriTerm     {}
2529
    | StartDependentFnNoPriTerm     {}
2521
    | VendorLongTerm                {}
2530
    | VendorLongTerm                {}
2522
    | VendorShortTerm               {}
2531
    | VendorShortTerm               {}
2523
    | WordBusNumberTerm             {}
2532
    | WordBusNumberTerm             {}
2524
    | WordIOTerm                    {}
2533
    | WordIOTerm                    {}
2525
    | WordSpaceTerm                 {}
2534
    | WordSpaceTerm                 {}
2526
    ;
2535
    ;
2527
 
2536
 
2528
DMATerm
2537
DMATerm
2529
    : PARSEOP_DMA '('               {$$ = TrCreateLeafNode (PARSEOP_DMA);}
2538
    : PARSEOP_DMA '('               {$$ = TrCreateLeafNode (PARSEOP_DMA);}
2530
        DMATypeKeyword
2539
        DMATypeKeyword
2531
        OptionalBusMasterKeyword
2540
        OptionalBusMasterKeyword
2532
        ',' XferTypeKeyword
2541
        ',' XferTypeKeyword
2533
        OptionalNameString_Last
2542
        OptionalNameString_Last
2534
        ')' '{'
2543
        ')' '{'
2535
            ByteList '}'            {$$ = TrLinkChildren ($3,5,$4,$5,$7,$8,$11);}
2544
            ByteList '}'            {$$ = TrLinkChildren ($3,5,$4,$5,$7,$8,$11);}
2536
    | PARSEOP_DMA '('
2545
    | PARSEOP_DMA '('
2537
        error ')'                   {$$ = AslDoError(); yyclearin;}
2546
        error ')'                   {$$ = AslDoError(); yyclearin;}
2538
    ;
2547
    ;
2539
 
2548
 
2540
DWordIOTerm
2549
DWordIOTerm
2541
    : PARSEOP_DWORDIO '('           {$$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
2550
    : PARSEOP_DWORDIO '('           {$$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
2542
        OptionalResourceType_First
2551
        OptionalResourceType_First
2543
        OptionalMinType
2552
        OptionalMinType
2544
        OptionalMaxType
2553
        OptionalMaxType
2545
        OptionalDecodeType
2554
        OptionalDecodeType
2546
        OptionalRangeType
2555
        OptionalRangeType
2547
        ',' DWordConstExpr
2556
        ',' DWordConstExpr
2548
        ',' DWordConstExpr
2557
        ',' DWordConstExpr
2549
        ',' DWordConstExpr
2558
        ',' DWordConstExpr
2550
        ',' DWordConstExpr
2559
        ',' DWordConstExpr
2551
        ',' DWordConstExpr
2560
        ',' DWordConstExpr
2552
        OptionalByteConstExpr
2561
        OptionalByteConstExpr
2553
        OptionalStringData
2562
        OptionalStringData
2554
        OptionalNameString
2563
        OptionalNameString
2555
        OptionalType
2564
        OptionalType
2556
        OptionalTranslationType_Last
2565
        OptionalTranslationType_Last
2557
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2566
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2558
    | PARSEOP_DWORDIO '('
2567
    | PARSEOP_DWORDIO '('
2559
        error ')'                   {$$ = AslDoError(); yyclearin;}
2568
        error ')'                   {$$ = AslDoError(); yyclearin;}
2560
    ;
2569
    ;
2561
 
2570
 
2562
DWordMemoryTerm
2571
DWordMemoryTerm
2563
    : PARSEOP_DWORDMEMORY '('       {$$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
2572
    : PARSEOP_DWORDMEMORY '('       {$$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
2564
        OptionalResourceType_First
2573
        OptionalResourceType_First
2565
        OptionalDecodeType
2574
        OptionalDecodeType
2566
        OptionalMinType
2575
        OptionalMinType
2567
        OptionalMaxType
2576
        OptionalMaxType
2568
        OptionalMemType
2577
        OptionalMemType
2569
        ',' OptionalReadWriteKeyword
2578
        ',' OptionalReadWriteKeyword
2570
        ',' DWordConstExpr
2579
        ',' DWordConstExpr
2571
        ',' DWordConstExpr
2580
        ',' DWordConstExpr
2572
        ',' DWordConstExpr
2581
        ',' DWordConstExpr
2573
        ',' DWordConstExpr
2582
        ',' DWordConstExpr
2574
        ',' DWordConstExpr
2583
        ',' DWordConstExpr
2575
        OptionalByteConstExpr
2584
        OptionalByteConstExpr
2576
        OptionalStringData
2585
        OptionalStringData
2577
        OptionalNameString
2586
        OptionalNameString
2578
        OptionalAddressRange
2587
        OptionalAddressRange
2579
        OptionalType_Last
2588
        OptionalType_Last
2580
        ')'                         {$$ = TrLinkChildren ($3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2589
        ')'                         {$$ = TrLinkChildren ($3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2581
    | PARSEOP_DWORDMEMORY '('
2590
    | PARSEOP_DWORDMEMORY '('
2582
        error ')'                   {$$ = AslDoError(); yyclearin;}
2591
        error ')'                   {$$ = AslDoError(); yyclearin;}
2583
    ;
2592
    ;
2584
 
2593
 
2585
DWordSpaceTerm
2594
DWordSpaceTerm
2586
    : PARSEOP_DWORDSPACE '('        {$$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
2595
    : PARSEOP_DWORDSPACE '('        {$$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
2587
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2596
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2588
        OptionalResourceType
2597
        OptionalResourceType
2589
        OptionalDecodeType
2598
        OptionalDecodeType
2590
        OptionalMinType
2599
        OptionalMinType
2591
        OptionalMaxType
2600
        OptionalMaxType
2592
        ',' ByteConstExpr
2601
        ',' ByteConstExpr
2593
        ',' DWordConstExpr
2602
        ',' DWordConstExpr
2594
        ',' DWordConstExpr
2603
        ',' DWordConstExpr
2595
        ',' DWordConstExpr
2604
        ',' DWordConstExpr
2596
        ',' DWordConstExpr
2605
        ',' DWordConstExpr
2597
        ',' DWordConstExpr
2606
        ',' DWordConstExpr
2598
        OptionalByteConstExpr
2607
        OptionalByteConstExpr
2599
        OptionalStringData
2608
        OptionalStringData
2600
        OptionalNameString_Last
2609
        OptionalNameString_Last
2601
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2610
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2602
    | PARSEOP_DWORDSPACE '('
2611
    | PARSEOP_DWORDSPACE '('
2603
        error ')'                   {$$ = AslDoError(); yyclearin;}
2612
        error ')'                   {$$ = AslDoError(); yyclearin;}
2604
    ;
2613
    ;
2605
 
2614
 
2606
 
2615
 
2607
EndDependentFnTerm
2616
EndDependentFnTerm
2608
    : PARSEOP_ENDDEPENDENTFN '('
2617
    : PARSEOP_ENDDEPENDENTFN '('
2609
        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
2618
        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
2610
    | PARSEOP_ENDDEPENDENTFN '('
2619
    | PARSEOP_ENDDEPENDENTFN '('
2611
        error ')'                   {$$ = AslDoError(); yyclearin;}
2620
        error ')'                   {$$ = AslDoError(); yyclearin;}
2612
    ;
2621
    ;
2613
 
2622
 
2614
ExtendedIOTerm
2623
ExtendedIOTerm
2615
    : PARSEOP_EXTENDEDIO '('        {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
2624
    : PARSEOP_EXTENDEDIO '('        {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
2616
        OptionalResourceType_First
2625
        OptionalResourceType_First
2617
        OptionalMinType
2626
        OptionalMinType
2618
        OptionalMaxType
2627
        OptionalMaxType
2619
        OptionalDecodeType
2628
        OptionalDecodeType
2620
        OptionalRangeType
2629
        OptionalRangeType
2621
        ',' QWordConstExpr
2630
        ',' QWordConstExpr
2622
        ',' QWordConstExpr
2631
        ',' QWordConstExpr
2623
        ',' QWordConstExpr
2632
        ',' QWordConstExpr
2624
        ',' QWordConstExpr
2633
        ',' QWordConstExpr
2625
        ',' QWordConstExpr
2634
        ',' QWordConstExpr
2626
        OptionalQWordConstExpr
2635
        OptionalQWordConstExpr
2627
        OptionalNameString
2636
        OptionalNameString
2628
        OptionalType
2637
        OptionalType
2629
        OptionalTranslationType_Last
2638
        OptionalTranslationType_Last
2630
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
2639
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
2631
    | PARSEOP_EXTENDEDIO '('
2640
    | PARSEOP_EXTENDEDIO '('
2632
        error ')'                   {$$ = AslDoError(); yyclearin;}
2641
        error ')'                   {$$ = AslDoError(); yyclearin;}
2633
    ;
2642
    ;
2634
 
2643
 
2635
ExtendedMemoryTerm
2644
ExtendedMemoryTerm
2636
    : PARSEOP_EXTENDEDMEMORY '('    {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
2645
    : PARSEOP_EXTENDEDMEMORY '('    {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
2637
        OptionalResourceType_First
2646
        OptionalResourceType_First
2638
        OptionalDecodeType
2647
        OptionalDecodeType
2639
        OptionalMinType
2648
        OptionalMinType
2640
        OptionalMaxType
2649
        OptionalMaxType
2641
        OptionalMemType
2650
        OptionalMemType
2642
        ',' OptionalReadWriteKeyword
2651
        ',' OptionalReadWriteKeyword
2643
        ',' QWordConstExpr
2652
        ',' QWordConstExpr
2644
        ',' QWordConstExpr
2653
        ',' QWordConstExpr
2645
        ',' QWordConstExpr
2654
        ',' QWordConstExpr
2646
        ',' QWordConstExpr
2655
        ',' QWordConstExpr
2647
        ',' QWordConstExpr
2656
        ',' QWordConstExpr
2648
        OptionalQWordConstExpr
2657
        OptionalQWordConstExpr
2649
        OptionalNameString
2658
        OptionalNameString
2650
        OptionalAddressRange
2659
        OptionalAddressRange
2651
        OptionalType_Last
2660
        OptionalType_Last
2652
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
2661
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
2653
    | PARSEOP_EXTENDEDMEMORY '('
2662
    | PARSEOP_EXTENDEDMEMORY '('
2654
        error ')'                   {$$ = AslDoError(); yyclearin;}
2663
        error ')'                   {$$ = AslDoError(); yyclearin;}
2655
    ;
2664
    ;
2656
 
2665
 
2657
ExtendedSpaceTerm
2666
ExtendedSpaceTerm
2658
    : PARSEOP_EXTENDEDSPACE '('     {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
2667
    : PARSEOP_EXTENDEDSPACE '('     {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
2659
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2668
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2660
        OptionalResourceType
2669
        OptionalResourceType
2661
        OptionalDecodeType
2670
        OptionalDecodeType
2662
        OptionalMinType
2671
        OptionalMinType
2663
        OptionalMaxType
2672
        OptionalMaxType
2664
        ',' ByteConstExpr
2673
        ',' ByteConstExpr
2665
        ',' QWordConstExpr
2674
        ',' QWordConstExpr
2666
        ',' QWordConstExpr
2675
        ',' QWordConstExpr
2667
        ',' QWordConstExpr
2676
        ',' QWordConstExpr
2668
        ',' QWordConstExpr
2677
        ',' QWordConstExpr
2669
        ',' QWordConstExpr
2678
        ',' QWordConstExpr
2670
        OptionalQWordConstExpr
2679
        OptionalQWordConstExpr
2671
        OptionalNameString_Last
2680
        OptionalNameString_Last
2672
        ')'                         {$$ = TrLinkChildren ($3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
2681
        ')'                         {$$ = TrLinkChildren ($3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
2673
    | PARSEOP_EXTENDEDSPACE '('
2682
    | PARSEOP_EXTENDEDSPACE '('
2674
        error ')'                   {$$ = AslDoError(); yyclearin;}
2683
        error ')'                   {$$ = AslDoError(); yyclearin;}
2675
    ;
2684
    ;
2676
 
2685
 
2677
FixedIOTerm
2686
FixedIOTerm
2678
    : PARSEOP_FIXEDIO '('           {$$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
2687
    : PARSEOP_FIXEDIO '('           {$$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
2679
        WordConstExpr
2688
        WordConstExpr
2680
        ',' ByteConstExpr
2689
        ',' ByteConstExpr
2681
        OptionalNameString_Last
2690
        OptionalNameString_Last
2682
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$6,$7);}
2691
        ')'                         {$$ = TrLinkChildren ($3,3,$4,$6,$7);}
2683
    | PARSEOP_FIXEDIO '('
2692
    | PARSEOP_FIXEDIO '('
2684
        error ')'                   {$$ = AslDoError(); yyclearin;}
2693
        error ')'                   {$$ = AslDoError(); yyclearin;}
2685
    ;
2694
    ;
2686
 
2695
 
2687
InterruptTerm
2696
InterruptTerm
2688
    : PARSEOP_INTERRUPT '('         {$$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
2697
    : PARSEOP_INTERRUPT '('         {$$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
2689
        OptionalResourceType_First
2698
        OptionalResourceType_First
2690
        ',' InterruptTypeKeyword
2699
        ',' InterruptTypeKeyword
2691
        ',' InterruptLevel
2700
        ',' InterruptLevel
2692
        OptionalShareType
2701
        OptionalShareType
2693
        OptionalByteConstExpr
2702
        OptionalByteConstExpr
2694
        OptionalStringData
2703
        OptionalStringData
2695
        OptionalNameString_Last
2704
        OptionalNameString_Last
2696
        ')' '{'
2705
        ')' '{'
2697
            DWordList '}'           {$$ = TrLinkChildren ($3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
2706
            DWordList '}'           {$$ = TrLinkChildren ($3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
2698
    | PARSEOP_INTERRUPT '('
2707
    | PARSEOP_INTERRUPT '('
2699
        error ')'                   {$$ = AslDoError(); yyclearin;}
2708
        error ')'                   {$$ = AslDoError(); yyclearin;}
2700
    ;
2709
    ;
2701
 
2710
 
2702
IOTerm
2711
IOTerm
2703
    : PARSEOP_IO '('                {$$ = TrCreateLeafNode (PARSEOP_IO);}
2712
    : PARSEOP_IO '('                {$$ = TrCreateLeafNode (PARSEOP_IO);}
2704
        IODecodeKeyword
2713
        IODecodeKeyword
2705
        ',' WordConstExpr
2714
        ',' WordConstExpr
2706
        ',' WordConstExpr
2715
        ',' WordConstExpr
2707
        ',' ByteConstExpr
2716
        ',' ByteConstExpr
2708
        ',' ByteConstExpr
2717
        ',' ByteConstExpr
2709
        OptionalNameString_Last
2718
        OptionalNameString_Last
2710
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$12,$13);}
2719
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$12,$13);}
2711
    | PARSEOP_IO '('
2720
    | PARSEOP_IO '('
2712
        error ')'                   {$$ = AslDoError(); yyclearin;}
2721
        error ')'                   {$$ = AslDoError(); yyclearin;}
2713
    ;
2722
    ;
2714
 
2723
 
2715
IRQNoFlagsTerm
2724
IRQNoFlagsTerm
2716
    : PARSEOP_IRQNOFLAGS '('        {$$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
2725
    : PARSEOP_IRQNOFLAGS '('        {$$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
2717
        OptionalNameString_First
2726
        OptionalNameString_First
2718
        ')' '{'
2727
        ')' '{'
2719
            ByteList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
2728
            ByteList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
2720
    | PARSEOP_IRQNOFLAGS '('
2729
    | PARSEOP_IRQNOFLAGS '('
2721
        error ')'                   {$$ = AslDoError(); yyclearin;}
2730
        error ')'                   {$$ = AslDoError(); yyclearin;}
2722
    ;
2731
    ;
2723
 
2732
 
2724
IRQTerm
2733
IRQTerm
2725
    : PARSEOP_IRQ '('               {$$ = TrCreateLeafNode (PARSEOP_IRQ);}
2734
    : PARSEOP_IRQ '('               {$$ = TrCreateLeafNode (PARSEOP_IRQ);}
2726
        InterruptTypeKeyword
2735
        InterruptTypeKeyword
2727
        ',' InterruptLevel
2736
        ',' InterruptLevel
2728
        OptionalShareType
2737
        OptionalShareType
2729
        OptionalNameString_Last
2738
        OptionalNameString_Last
2730
        ')' '{'
2739
        ')' '{'
2731
            ByteList '}'            {$$ = TrLinkChildren ($3,5,$4,$6,$7,$8,$11);}
2740
            ByteList '}'            {$$ = TrLinkChildren ($3,5,$4,$6,$7,$8,$11);}
2732
    | PARSEOP_IRQ '('
2741
    | PARSEOP_IRQ '('
2733
        error ')'                   {$$ = AslDoError(); yyclearin;}
2742
        error ')'                   {$$ = AslDoError(); yyclearin;}
2734
    ;
2743
    ;
2735
 
2744
 
2736
Memory24Term
2745
Memory24Term
2737
    : PARSEOP_MEMORY24 '('          {$$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
2746
    : PARSEOP_MEMORY24 '('          {$$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
2738
        OptionalReadWriteKeyword
2747
        OptionalReadWriteKeyword
2739
        ',' WordConstExpr
2748
        ',' WordConstExpr
2740
        ',' WordConstExpr
2749
        ',' WordConstExpr
2741
        ',' WordConstExpr
2750
        ',' WordConstExpr
2742
        ',' WordConstExpr
2751
        ',' WordConstExpr
2743
        OptionalNameString_Last
2752
        OptionalNameString_Last
2744
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$12,$13);}
2753
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$12,$13);}
2745
    | PARSEOP_MEMORY24 '('
2754
    | PARSEOP_MEMORY24 '('
2746
        error ')'                   {$$ = AslDoError(); yyclearin;}
2755
        error ')'                   {$$ = AslDoError(); yyclearin;}
2747
    ;
2756
    ;
2748
 
2757
 
2749
Memory32FixedTerm
2758
Memory32FixedTerm
2750
    : PARSEOP_MEMORY32FIXED '('     {$$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
2759
    : PARSEOP_MEMORY32FIXED '('     {$$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
2751
        OptionalReadWriteKeyword
2760
        OptionalReadWriteKeyword
2752
        ',' DWordConstExpr
2761
        ',' DWordConstExpr
2753
        ',' DWordConstExpr
2762
        ',' DWordConstExpr
2754
        OptionalNameString_Last
2763
        OptionalNameString_Last
2755
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$6,$8,$9);}
2764
        ')'                         {$$ = TrLinkChildren ($3,4,$4,$6,$8,$9);}
2756
    | PARSEOP_MEMORY32FIXED '('
2765
    | PARSEOP_MEMORY32FIXED '('
2757
        error ')'                   {$$ = AslDoError(); yyclearin;}
2766
        error ')'                   {$$ = AslDoError(); yyclearin;}
2758
    ;
2767
    ;
2759
 
2768
 
2760
Memory32Term
2769
Memory32Term
2761
    : PARSEOP_MEMORY32 '('          {$$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
2770
    : PARSEOP_MEMORY32 '('          {$$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
2762
        OptionalReadWriteKeyword
2771
        OptionalReadWriteKeyword
2763
        ',' DWordConstExpr
2772
        ',' DWordConstExpr
2764
        ',' DWordConstExpr
2773
        ',' DWordConstExpr
2765
        ',' DWordConstExpr
2774
        ',' DWordConstExpr
2766
        ',' DWordConstExpr
2775
        ',' DWordConstExpr
2767
        OptionalNameString_Last
2776
        OptionalNameString_Last
2768
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$12,$13);}
2777
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$12,$13);}
2769
    | PARSEOP_MEMORY32 '('
2778
    | PARSEOP_MEMORY32 '('
2770
        error ')'                   {$$ = AslDoError(); yyclearin;}
2779
        error ')'                   {$$ = AslDoError(); yyclearin;}
2771
    ;
2780
    ;
2772
 
2781
 
2773
QWordIOTerm
2782
QWordIOTerm
2774
    : PARSEOP_QWORDIO '('           {$$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
2783
    : PARSEOP_QWORDIO '('           {$$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
2775
        OptionalResourceType_First
2784
        OptionalResourceType_First
2776
        OptionalMinType
2785
        OptionalMinType
2777
        OptionalMaxType
2786
        OptionalMaxType
2778
        OptionalDecodeType
2787
        OptionalDecodeType
2779
        OptionalRangeType
2788
        OptionalRangeType
2780
        ',' QWordConstExpr
2789
        ',' QWordConstExpr
2781
        ',' QWordConstExpr
2790
        ',' QWordConstExpr
2782
        ',' QWordConstExpr
2791
        ',' QWordConstExpr
2783
        ',' QWordConstExpr
2792
        ',' QWordConstExpr
2784
        ',' QWordConstExpr
2793
        ',' QWordConstExpr
2785
        OptionalByteConstExpr
2794
        OptionalByteConstExpr
2786
        OptionalStringData
2795
        OptionalStringData
2787
        OptionalNameString
2796
        OptionalNameString
2788
        OptionalType
2797
        OptionalType
2789
        OptionalTranslationType_Last
2798
        OptionalTranslationType_Last
2790
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2799
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2791
    | PARSEOP_QWORDIO '('
2800
    | PARSEOP_QWORDIO '('
2792
        error ')'                   {$$ = AslDoError(); yyclearin;}
2801
        error ')'                   {$$ = AslDoError(); yyclearin;}
2793
    ;
2802
    ;
2794
 
2803
 
2795
QWordMemoryTerm
2804
QWordMemoryTerm
2796
    : PARSEOP_QWORDMEMORY '('       {$$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
2805
    : PARSEOP_QWORDMEMORY '('       {$$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
2797
        OptionalResourceType_First
2806
        OptionalResourceType_First
2798
        OptionalDecodeType
2807
        OptionalDecodeType
2799
        OptionalMinType
2808
        OptionalMinType
2800
        OptionalMaxType
2809
        OptionalMaxType
2801
        OptionalMemType
2810
        OptionalMemType
2802
        ',' OptionalReadWriteKeyword
2811
        ',' OptionalReadWriteKeyword
2803
        ',' QWordConstExpr
2812
        ',' QWordConstExpr
2804
        ',' QWordConstExpr
2813
        ',' QWordConstExpr
2805
        ',' QWordConstExpr
2814
        ',' QWordConstExpr
2806
        ',' QWordConstExpr
2815
        ',' QWordConstExpr
2807
        ',' QWordConstExpr
2816
        ',' QWordConstExpr
2808
        OptionalByteConstExpr
2817
        OptionalByteConstExpr
2809
        OptionalStringData
2818
        OptionalStringData
2810
        OptionalNameString
2819
        OptionalNameString
2811
        OptionalAddressRange
2820
        OptionalAddressRange
2812
        OptionalType_Last
2821
        OptionalType_Last
2813
        ')'                         {$$ = TrLinkChildren ($3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2822
        ')'                         {$$ = TrLinkChildren ($3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2814
    | PARSEOP_QWORDMEMORY '('
2823
    | PARSEOP_QWORDMEMORY '('
2815
        error ')'                   {$$ = AslDoError(); yyclearin;}
2824
        error ')'                   {$$ = AslDoError(); yyclearin;}
2816
    ;
2825
    ;
2817
 
2826
 
2818
QWordSpaceTerm
2827
QWordSpaceTerm
2819
    : PARSEOP_QWORDSPACE '('        {$$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
2828
    : PARSEOP_QWORDSPACE '('        {$$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
2820
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2829
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2821
        OptionalResourceType
2830
        OptionalResourceType
2822
        OptionalDecodeType
2831
        OptionalDecodeType
2823
        OptionalMinType
2832
        OptionalMinType
2824
        OptionalMaxType
2833
        OptionalMaxType
2825
        ',' ByteConstExpr
2834
        ',' ByteConstExpr
2826
        ',' QWordConstExpr
2835
        ',' QWordConstExpr
2827
        ',' QWordConstExpr
2836
        ',' QWordConstExpr
2828
        ',' QWordConstExpr
2837
        ',' QWordConstExpr
2829
        ',' QWordConstExpr
2838
        ',' QWordConstExpr
2830
        ',' QWordConstExpr
2839
        ',' QWordConstExpr
2831
        OptionalByteConstExpr
2840
        OptionalByteConstExpr
2832
        OptionalStringData
2841
        OptionalStringData
2833
        OptionalNameString_Last
2842
        OptionalNameString_Last
2834
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2843
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2835
    | PARSEOP_QWORDSPACE '('
2844
    | PARSEOP_QWORDSPACE '('
2836
        error ')'                   {$$ = AslDoError(); yyclearin;}
2845
        error ')'                   {$$ = AslDoError(); yyclearin;}
2837
    ;
2846
    ;
2838
 
2847
 
2839
RegisterTerm
2848
RegisterTerm
2840
    : PARSEOP_REGISTER '('          {$$ = TrCreateLeafNode (PARSEOP_REGISTER);}
2849
    : PARSEOP_REGISTER '('          {$$ = TrCreateLeafNode (PARSEOP_REGISTER);}
2841
        AddressSpaceKeyword
2850
        AddressSpaceKeyword
2842
        ',' ByteConstExpr
2851
        ',' ByteConstExpr
2843
        ',' ByteConstExpr
2852
        ',' ByteConstExpr
2844
        ',' QWordConstExpr
2853
        ',' QWordConstExpr
2845
        OptionalAccessSize
2854
        OptionalAccessSize
2846
        OptionalNameString_Last
2855
        OptionalNameString_Last
2847
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$11,$12);}
2856
        ')'                         {$$ = TrLinkChildren ($3,6,$4,$6,$8,$10,$11,$12);}
2848
    | PARSEOP_REGISTER '('
2857
    | PARSEOP_REGISTER '('
2849
        error ')'                   {$$ = AslDoError(); yyclearin;}
2858
        error ')'                   {$$ = AslDoError(); yyclearin;}
2850
    ;
2859
    ;
2851
 
2860
 
2852
StartDependentFnTerm
2861
StartDependentFnTerm
2853
    : PARSEOP_STARTDEPENDENTFN '('  {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
2862
    : PARSEOP_STARTDEPENDENTFN '('  {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
2854
        ByteConstExpr
2863
        ByteConstExpr
2855
        ',' ByteConstExpr
2864
        ',' ByteConstExpr
2856
        ')' '{'
2865
        ')' '{'
2857
        ResourceMacroList '}'       {$$ = TrLinkChildren ($3,3,$4,$6,$9);}
2866
        ResourceMacroList '}'       {$$ = TrLinkChildren ($3,3,$4,$6,$9);}
2858
    | PARSEOP_STARTDEPENDENTFN '('
2867
    | PARSEOP_STARTDEPENDENTFN '('
2859
        error ')'                   {$$ = AslDoError(); yyclearin;}
2868
        error ')'                   {$$ = AslDoError(); yyclearin;}
2860
    ;
2869
    ;
2861
 
2870
 
2862
StartDependentFnNoPriTerm
2871
StartDependentFnNoPriTerm
2863
    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
2872
    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
2864
        ')' '{'
2873
        ')' '{'
2865
        ResourceMacroList '}'       {$$ = TrLinkChildren ($3,1,$6);}
2874
        ResourceMacroList '}'       {$$ = TrLinkChildren ($3,1,$6);}
2866
    | PARSEOP_STARTDEPENDENTFN_NOPRI '('
2875
    | PARSEOP_STARTDEPENDENTFN_NOPRI '('
2867
        error ')'                   {$$ = AslDoError(); yyclearin;}
2876
        error ')'                   {$$ = AslDoError(); yyclearin;}
2868
    ;
2877
    ;
2869
 
2878
 
2870
VendorLongTerm
2879
VendorLongTerm
2871
    : PARSEOP_VENDORLONG '('        {$$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
2880
    : PARSEOP_VENDORLONG '('        {$$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
2872
        OptionalNameString_First
2881
        OptionalNameString_First
2873
        ')' '{'
2882
        ')' '{'
2874
            ByteList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
2883
            ByteList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
2875
    | PARSEOP_VENDORLONG '('
2884
    | PARSEOP_VENDORLONG '('
2876
        error ')'                   {$$ = AslDoError(); yyclearin;}
2885
        error ')'                   {$$ = AslDoError(); yyclearin;}
2877
    ;
2886
    ;
2878
 
2887
 
2879
VendorShortTerm
2888
VendorShortTerm
2880
    : PARSEOP_VENDORSHORT '('       {$$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
2889
    : PARSEOP_VENDORSHORT '('       {$$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
2881
        OptionalNameString_First
2890
        OptionalNameString_First
2882
        ')' '{'
2891
        ')' '{'
2883
            ByteList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
2892
            ByteList '}'            {$$ = TrLinkChildren ($3,2,$4,$7);}
2884
    | PARSEOP_VENDORSHORT '('
2893
    | PARSEOP_VENDORSHORT '('
2885
        error ')'                   {$$ = AslDoError(); yyclearin;}
2894
        error ')'                   {$$ = AslDoError(); yyclearin;}
2886
    ;
2895
    ;
2887
 
2896
 
2888
WordBusNumberTerm
2897
WordBusNumberTerm
2889
    : PARSEOP_WORDBUSNUMBER '('     {$$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
2898
    : PARSEOP_WORDBUSNUMBER '('     {$$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
2890
        OptionalResourceType_First
2899
        OptionalResourceType_First
2891
        OptionalMinType
2900
        OptionalMinType
2892
        OptionalMaxType
2901
        OptionalMaxType
2893
        OptionalDecodeType
2902
        OptionalDecodeType
2894
        ',' WordConstExpr
2903
        ',' WordConstExpr
2895
        ',' WordConstExpr
2904
        ',' WordConstExpr
2896
        ',' WordConstExpr
2905
        ',' WordConstExpr
2897
        ',' WordConstExpr
2906
        ',' WordConstExpr
2898
        ',' WordConstExpr
2907
        ',' WordConstExpr
2899
        OptionalByteConstExpr
2908
        OptionalByteConstExpr
2900
        OptionalStringData
2909
        OptionalStringData
2901
        OptionalNameString_Last
2910
        OptionalNameString_Last
2902
        ')'                         {$$ = TrLinkChildren ($3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
2911
        ')'                         {$$ = TrLinkChildren ($3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
2903
    | PARSEOP_WORDBUSNUMBER '('
2912
    | PARSEOP_WORDBUSNUMBER '('
2904
        error ')'                   {$$ = AslDoError(); yyclearin;}
2913
        error ')'                   {$$ = AslDoError(); yyclearin;}
2905
    ;
2914
    ;
2906
 
2915
 
2907
WordIOTerm
2916
WordIOTerm
2908
    : PARSEOP_WORDIO '('            {$$ = TrCreateLeafNode (PARSEOP_WORDIO);}
2917
    : PARSEOP_WORDIO '('            {$$ = TrCreateLeafNode (PARSEOP_WORDIO);}
2909
        OptionalResourceType_First
2918
        OptionalResourceType_First
2910
        OptionalMinType
2919
        OptionalMinType
2911
        OptionalMaxType
2920
        OptionalMaxType
2912
        OptionalDecodeType
2921
        OptionalDecodeType
2913
        OptionalRangeType
2922
        OptionalRangeType
2914
        ',' WordConstExpr
2923
        ',' WordConstExpr
2915
        ',' WordConstExpr
2924
        ',' WordConstExpr
2916
        ',' WordConstExpr
2925
        ',' WordConstExpr
2917
        ',' WordConstExpr
2926
        ',' WordConstExpr
2918
        ',' WordConstExpr
2927
        ',' WordConstExpr
2919
        OptionalByteConstExpr
2928
        OptionalByteConstExpr
2920
        OptionalStringData
2929
        OptionalStringData
2921
        OptionalNameString
2930
        OptionalNameString
2922
        OptionalType
2931
        OptionalType
2923
        OptionalTranslationType_Last
2932
        OptionalTranslationType_Last
2924
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2933
        ')'                         {$$ = TrLinkChildren ($3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2925
    | PARSEOP_WORDIO '('
2934
    | PARSEOP_WORDIO '('
2926
        error ')'                   {$$ = AslDoError(); yyclearin;}
2935
        error ')'                   {$$ = AslDoError(); yyclearin;}
2927
    ;
2936
    ;
2928
 
2937
 
2929
WordSpaceTerm
2938
WordSpaceTerm
2930
    : PARSEOP_WORDSPACE '('         {$$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
2939
    : PARSEOP_WORDSPACE '('         {$$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
2931
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2940
        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2932
        OptionalResourceType
2941
        OptionalResourceType
2933
        OptionalDecodeType
2942
        OptionalDecodeType
2934
        OptionalMinType
2943
        OptionalMinType
2935
        OptionalMaxType
2944
        OptionalMaxType
2936
        ',' ByteConstExpr
2945
        ',' ByteConstExpr
2937
        ',' WordConstExpr
2946
        ',' WordConstExpr
2938
        ',' WordConstExpr
2947
        ',' WordConstExpr
2939
        ',' WordConstExpr
2948
        ',' WordConstExpr
2940
        ',' WordConstExpr
2949
        ',' WordConstExpr
2941
        ',' WordConstExpr
2950
        ',' WordConstExpr
2942
        OptionalByteConstExpr
2951
        OptionalByteConstExpr
2943
        OptionalStringData
2952
        OptionalStringData
2944
        OptionalNameString_Last
2953
        OptionalNameString_Last
2945
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2954
        ')'                         {$$ = TrLinkChildren ($3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2946
    | PARSEOP_WORDSPACE '('
2955
    | PARSEOP_WORDSPACE '('
2947
        error ')'                   {$$ = AslDoError(); yyclearin;}
2956
        error ')'                   {$$ = AslDoError(); yyclearin;}
2948
    ;
2957
    ;
2949
 
2958
 
2950
 
2959
 
2951
/******* Object References ***********************************************/
2960
/******* Object References ***********************************************/
2952
 
2961
 
2953
/* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
2962
/* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
2954
 
2963
 
2955
NameString
2964
NameString
2956
    : NameSeg                       {}
2965
    : NameSeg                       {}
2957
    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2966
    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2958
    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
2967
    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
2959
    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
2968
    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
2960
    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
2969
    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
2961
    ;
2970
    ;
2962
 
2971
 
2963
NameSeg
2972
NameSeg
2964
    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2973
    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2965
    ;
2974
    ;
2966
 
2975
 
2967
 
2976
 
2968
/******* Helper rules ****************************************************/
2977
/******* Helper rules ****************************************************/
2969
 
2978
 
2970
 
2979
 
2971
AmlPackageLengthTerm
2980
AmlPackageLengthTerm
2972
    : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
2981
    : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
2973
    ;
2982
    ;
2974
 
2983
 
2975
OptionalBusMasterKeyword
2984
OptionalBusMasterKeyword
2976
    : ','                                       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2985
    : ','                                       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2977
    | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2986
    | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2978
    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
2987
    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
2979
    ;
2988
    ;
2980
 
2989
 
2981
OptionalAccessAttribTerm
2990
OptionalAccessAttribTerm
2982
    :                               {$$ = NULL;}
2991
    :                               {$$ = NULL;}
2983
    | ','                           {$$ = NULL;}
2992
    | ','                           {$$ = NULL;}
2984
    | ',' ByteConstExpr             {$$ = $2;}
2993
    | ',' ByteConstExpr             {$$ = $2;}
2985
    | ',' AccessAttribKeyword       {$$ = $2;}
2994
    | ',' AccessAttribKeyword       {$$ = $2;}
2986
    ;
2995
    ;
2987
 
2996
 
2988
OptionalAccessSize
2997
OptionalAccessSize
2989
    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2998
    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2990
    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2999
    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2991
    | ',' ByteConstExpr             {$$ = $2;}
3000
    | ',' ByteConstExpr             {$$ = $2;}
2992
    ;
3001
    ;
2993
 
3002
 
2994
OptionalAddressRange
3003
OptionalAddressRange
2995
    :                               {$$ = NULL;}
3004
    :                               {$$ = NULL;}
2996
    | ','                           {$$ = NULL;}
3005
    | ','                           {$$ = NULL;}
2997
    | ',' AddressKeyword            {$$ = $2;}
3006
    | ',' AddressKeyword            {$$ = $2;}
2998
    ;
3007
    ;
2999
 
3008
 
3000
OptionalByteConstExpr
3009
OptionalByteConstExpr
3001
    :                               {$$ = NULL;}
3010
    :                               {$$ = NULL;}
3002
    | ','                           {$$ = NULL;}
3011
    | ','                           {$$ = NULL;}
3003
    | ',' ByteConstExpr             {$$ = $2;}
3012
    | ',' ByteConstExpr             {$$ = $2;}
3004
    ;
3013
    ;
3005
 
3014
 
3006
OptionalDecodeType
3015
OptionalDecodeType
3007
    : ','                           {$$ = NULL;}
3016
    : ','                           {$$ = NULL;}
3008
    | ',' DecodeKeyword             {$$ = $2;}
3017
    | ',' DecodeKeyword             {$$ = $2;}
3009
    ;
3018
    ;
3010
 
3019
 
3011
OptionalDWordConstExpr
3020
OptionalDWordConstExpr
3012
    :                               {$$ = NULL;}
3021
    :                               {$$ = NULL;}
3013
    | ','                           {$$ = NULL;}
3022
    | ','                           {$$ = NULL;}
3014
    | ',' DWordConstExpr            {$$ = $2;}
3023
    | ',' DWordConstExpr            {$$ = $2;}
3015
    ;
3024
    ;
3016
 
3025
 
3017
OptionalListString
3026
OptionalListString
3018
    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
3027
    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
3019
    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
3028
    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
3020
    | ',' TermArg                   {$$ = $2;}
3029
    | ',' TermArg                   {$$ = $2;}
3021
    ;
3030
    ;
3022
 
3031
 
3023
OptionalMaxType
3032
OptionalMaxType
3024
    : ','                           {$$ = NULL;}
3033
    : ','                           {$$ = NULL;}
3025
    | ',' MaxKeyword                {$$ = $2;}
3034
    | ',' MaxKeyword                {$$ = $2;}
3026
    ;
3035
    ;
3027
 
3036
 
3028
OptionalMemType
3037
OptionalMemType
3029
    : ','                           {$$ = NULL;}
3038
    : ','                           {$$ = NULL;}
3030
    | ',' MemTypeKeyword            {$$ = $2;}
3039
    | ',' MemTypeKeyword            {$$ = $2;}
3031
    ;
3040
    ;
3032
 
3041
 
3033
OptionalMinType
3042
OptionalMinType
3034
    : ','                           {$$ = NULL;}
3043
    : ','                           {$$ = NULL;}
3035
    | ',' MinKeyword                {$$ = $2;}
3044
    | ',' MinKeyword                {$$ = $2;}
3036
    ;
3045
    ;
3037
 
3046
 
3038
OptionalNameString
3047
OptionalNameString
3039
    :                               {$$ = NULL;}
3048
    :                               {$$ = NULL;}
3040
    | ','                           {$$ = NULL;}
3049
    | ','                           {$$ = NULL;}
3041
    | ',' NameString                {$$ = $2;}
3050
    | ',' NameString                {$$ = $2;}
3042
    ;
3051
    ;
3043
 
3052
 
3044
OptionalNameString_Last
3053
OptionalNameString_Last
3045
    :                               {$$ = NULL;}
3054
    :                               {$$ = NULL;}
3046
    | ','                           {$$ = NULL;}
3055
    | ','                           {$$ = NULL;}
3047
    | ',' NameString                {$$ = $2;}
3056
    | ',' NameString                {$$ = $2;}
3048
    ;
3057
    ;
3049
 
3058
 
3050
OptionalNameString_First
3059
OptionalNameString_First
3051
    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
3060
    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
3052
    | NameString                    {$$ = $1;}
3061
    | NameString                    {$$ = $1;}
3053
    ;
3062
    ;
3054
 
3063
 
3055
OptionalObjectTypeKeyword
3064
OptionalObjectTypeKeyword
3056
    :                               {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
3065
    :                               {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
3057
    | ',' ObjectTypeKeyword         {$$ = $2;}
3066
    | ',' ObjectTypeKeyword         {$$ = $2;}
3058
    ;
3067
    ;
3059
 
3068
 
3060
OptionalQWordConstExpr
3069
OptionalQWordConstExpr
3061
    :                               {$$ = NULL;}
3070
    :                               {$$ = NULL;}
3062
    | ','                           {$$ = NULL;}
3071
    | ','                           {$$ = NULL;}
3063
    | ',' QWordConstExpr            {$$ = $2;}
3072
    | ',' QWordConstExpr            {$$ = $2;}
3064
    ;
3073
    ;
3065
 
3074
 
3066
OptionalRangeType
3075
OptionalRangeType
3067
    : ','                           {$$ = NULL;}
3076
    : ','                           {$$ = NULL;}
3068
    | ',' RangeTypeKeyword          {$$ = $2;}
3077
    | ',' RangeTypeKeyword          {$$ = $2;}
3069
    ;
3078
    ;
3070
 
3079
 
3071
OptionalReference
3080
OptionalReference
3072
    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
3081
    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
3073
    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
3082
    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
3074
    | ',' TermArg                   {$$ = $2;}
3083
    | ',' TermArg                   {$$ = $2;}
3075
    ;
3084
    ;
3076
 
3085
 
3077
OptionalResourceType_First
3086
OptionalResourceType_First
3078
    :                               {$$ = NULL;}
3087
    :                               {$$ = NULL;}
3079
    | ResourceTypeKeyword           {$$ = $1;}
3088
    | ResourceTypeKeyword           {$$ = $1;}
3080
    ;
3089
    ;
3081
 
3090
 
3082
OptionalResourceType
3091
OptionalResourceType
3083
    : ','                           {$$ = NULL;}
3092
    : ','                           {$$ = NULL;}
3084
    | ',' ResourceTypeKeyword       {$$ = $2;}
3093
    | ',' ResourceTypeKeyword       {$$ = $2;}
3085
    ;
3094
    ;
3086
 
3095
 
3087
OptionalSerializeRuleKeyword
3096
OptionalSerializeRuleKeyword
3088
    :                               {$$ = NULL;}
3097
    :                               {$$ = NULL;}
3089
    | ','                           {$$ = NULL;}
3098
    | ','                           {$$ = NULL;}
3090
    | ',' SerializeRuleKeyword      {$$ = $2;}
3099
    | ',' SerializeRuleKeyword      {$$ = $2;}
3091
    ;
3100
    ;
3092
 
3101
 
3093
OptionalShareType
3102
OptionalShareType
3094
    :                               {$$ = NULL;}
3103
    :                               {$$ = NULL;}
3095
    | ','                           {$$ = NULL;}
3104
    | ','                           {$$ = NULL;}
3096
    | ',' ShareTypeKeyword          {$$ = $2;}
3105
    | ',' ShareTypeKeyword          {$$ = $2;}
3097
    ;
3106
    ;
3098
 
3107
 
3099
OptionalStringData
3108
OptionalStringData
3100
    :                               {$$ = NULL;}
3109
    :                               {$$ = NULL;}
3101
    | ','                           {$$ = NULL;}
3110
    | ','                           {$$ = NULL;}
3102
    | ',' StringData                {$$ = $2;}
3111
    | ',' StringData                {$$ = $2;}
3103
    ;
3112
    ;
3104
 
3113
 
3105
OptionalTermArg
3114
OptionalTermArg
3106
    :                               {$$ = NULL;}
3115
    :                               {$$ = NULL;}
3107
    | TermArg                       {$$ = $1;}
3116
    | TermArg                       {$$ = $1;}
3108
    ;
3117
    ;
3109
 
3118
 
3110
OptionalReturnArg
3119
OptionalReturnArg
3111
    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
3120
    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);}       /* Placeholder is a ZeroOp object */
3112
    | TermArg                       {$$ = $1;}
3121
    | TermArg                       {$$ = $1;}
3113
    ;
3122
    ;
3114
 
3123
 
3115
OptionalType
3124
OptionalType
3116
    :                               {$$ = NULL;}
3125
    :                               {$$ = NULL;}
3117
    | ','                           {$$ = NULL;}
3126
    | ','                           {$$ = NULL;}
3118
    | ',' TypeKeyword               {$$ = $2;}
3127
    | ',' TypeKeyword               {$$ = $2;}
3119
    ;
3128
    ;
3120
 
3129
 
3121
OptionalType_Last
3130
OptionalType_Last
3122
    :                               {$$ = NULL;}
3131
    :                               {$$ = NULL;}
3123
    | ','                           {$$ = NULL;}
3132
    | ','                           {$$ = NULL;}
3124
    | ',' TypeKeyword               {$$ = $2;}
3133
    | ',' TypeKeyword               {$$ = $2;}
3125
    ;
3134
    ;
3126
 
3135
 
3127
OptionalTranslationType_Last
3136
OptionalTranslationType_Last
3128
    :                               {$$ = NULL;}
3137
    :                               {$$ = NULL;}
3129
    | ','                           {$$ = NULL;}
3138
    | ','                           {$$ = NULL;}
3130
    | ',' TranslationKeyword        {$$ = $2;}
3139
    | ',' TranslationKeyword        {$$ = $2;}
3131
    ;
3140
    ;
3132
 
3141
 
3133
 
3142
 
3134
TermArgItem
3143
TermArgItem
3135
    : ',' TermArg                   {$$ = $2;}
3144
    : ',' TermArg                   {$$ = $2;}
3136
    | ',' error                     {$$ = AslDoError (); yyclearin;}
3145
    | ',' error                     {$$ = AslDoError (); yyclearin;}
3137
    ;
3146
    ;
3138
 
3147
 
3139
NameStringItem
3148
NameStringItem
3140
    : ',' NameString                {$$ = $2;}
3149
    : ',' NameString                {$$ = $2;}
3141
    | ',' error                     {$$ = AslDoError (); yyclearin;}
3150
    | ',' error                     {$$ = AslDoError (); yyclearin;}
3142
    ;
3151
    ;
3143
 
3152
 
3144
 
-
 
3145
%%
3153
%%
3146
 
3154
 
3147
 
3155
 
3148
/*
3156
/*
3149
 * Local support functions
3157
 * Local support functions
3150
 */
3158
 */
3151
 
3159
 
3152
int
3160
int
3153
AslCompilerwrap(void)
3161
AslCompilerwrap(void)
3154
{
3162
{
3155
  return 1;
3163
  return 1;
3156
}
3164
}
3157
 
3165
 
3158
/*! [End] no source code translation !*/
3166
/*! [End] no source code translation !*/
3159
 
3167
 
3160
void *
3168
void *
3161
AslLocalAllocate (unsigned int Size)
3169
AslLocalAllocate (unsigned int Size)
3162
{
3170
{
3163
    void                *Mem;
3171
    void                *Mem;
3164
 
3172
 
3165
 
3173
 
3166
    DbgPrint (ASL_PARSE_OUTPUT, "\nAslLocalAllocate: Expanding Stack to %u\n\n", Size);
3174
    DbgPrint (ASL_PARSE_OUTPUT, "\nAslLocalAllocate: Expanding Stack to %u\n\n", Size);
3167
 
3175
 
3168
    Mem = ACPI_ALLOCATE_ZEROED (Size);
3176
    Mem = ACPI_ALLOCATE_ZEROED (Size);
3169
    if (!Mem)
3177
    if (!Mem)
3170
    {
3178
    {
3171
        AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
3179
        AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
3172
                        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
3180
                        Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
3173
                        Gbl_InputByteCount, Gbl_CurrentColumn,
3181
                        Gbl_InputByteCount, Gbl_CurrentColumn,
3174
                        Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
3182
                        Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
3175
        exit (1);
3183
        exit (1);
3176
    }
3184
    }
3177
 
3185
 
3178
    return (Mem);
3186
    return (Mem);
3179
}
3187
}
3180
 
3188
 
3181
ACPI_PARSE_OBJECT *
3189
ACPI_PARSE_OBJECT *
3182
AslDoError (void)
3190
AslDoError (void)
3183
{
3191
{
3184
 
3192
 
3185
 
3193
 
3186
    return (TrCreateLeafNode (PARSEOP_ERRORNODE));
3194
    return (TrCreateLeafNode (PARSEOP_ERRORNODE));
3187
 
3195
 
3188
}
3196
}
3189
3197
 
-
 
3198
 
-
 
3199
/*******************************************************************************
-
 
3200
 *
-
 
3201
 * FUNCTION:    UtGetOpName
-
 
3202
 *
-
 
3203
 * PARAMETERS:  ParseOpcode         - Parser keyword ID
-
 
3204
 *
-
 
3205
 * RETURN:      Pointer to the opcode name
-
 
3206
 *
-
 
3207
 * DESCRIPTION: Get the ascii name of the parse opcode
-
 
3208
 *
-
 
3209
 ******************************************************************************/
-
 
3210
 
-
 
3211
char *
-
 
3212
UtGetOpName (
-
 
3213
    UINT32                  ParseOpcode)
-
 
3214
{
-
 
3215
#ifdef ASL_YYTNAME_START
-
 
3216
    /*
-
 
3217
     * First entries (ASL_YYTNAME_START) in yytname are special reserved names.
-
 
3218
     * Ignore first 8 characters of the name
-
 
3219
     */
-
 
3220
    return ((char *) yytname
-
 
3221
        [(ParseOpcode - ASL_FIRST_PARSE_OPCODE) + ASL_YYTNAME_START] + 8);
-
 
3222
#else
-
 
3223
    return ("[Unknown parser generator]");
-
 
3224
#endif
-
 
3225
}
-
 
3226