]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/contrib/dev/acpica/compiler/asltypes.y
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / contrib / dev / acpica / compiler / asltypes.y
1 NoEcho('
2 /******************************************************************************
3  *
4  * Module Name: asltypes.y - Bison/Yacc production types/names
5  *
6  *****************************************************************************/
7
8 /*
9  * Copyright (C) 2000 - 2015, Intel Corp.
10  * All rights reserved.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions, and the following disclaimer,
17  *    without modification.
18  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19  *    substantially similar to the "NO WARRANTY" disclaimer below
20  *    ("Disclaimer") and any redistribution must be conditioned upon
21  *    including a substantially similar Disclaimer requirement for further
22  *    binary redistribution.
23  * 3. Neither the names of the above-listed copyright holders nor the names
24  *    of any contributors may be used to endorse or promote products derived
25  *    from this software without specific prior written permission.
26  *
27  * Alternatively, this software may be distributed under the terms of the
28  * GNU General Public License ("GPL") version 2 as published by the Free
29  * Software Foundation.
30  *
31  * NO WARRANTY
32  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42  * POSSIBILITY OF SUCH DAMAGES.
43  */
44
45 ')
46
47 /******************************************************************************
48  *
49  * Production names
50  *
51  *****************************************************************************/
52
53 %type <n> ArgList
54 %type <n> ASLCode
55 %type <n> BufferData
56 %type <n> BufferTermData
57 %type <n> CompilerDirective
58 %type <n> DataObject
59 %type <n> DefinitionBlockTerm
60 %type <n> IntegerData
61 %type <n> NamedObject
62 %type <n> NameSpaceModifier
63 %type <n> Object
64 %type <n> ObjectList
65 %type <n> PackageData
66 %type <n> ParameterTypePackage
67 %type <n> ParameterTypePackageList
68 %type <n> ParameterTypesPackage
69 %type <n> ParameterTypesPackageList
70 %type <n> RequiredTarget
71 %type <n> SimpleTarget
72 %type <n> StringData
73 %type <n> Target
74 %type <n> Term
75 %type <n> TermArg
76 %type <n> TermList
77 %type <n> MethodInvocationTerm
78
79 /* Type4Opcode is obsolete */
80
81 %type <n> Type1Opcode
82 %type <n> Type2BufferOpcode
83 %type <n> Type2BufferOrStringOpcode
84 %type <n> Type2IntegerOpcode
85 %type <n> Type2Opcode
86 %type <n> Type2StringOpcode
87 %type <n> Type3Opcode
88 %type <n> Type5Opcode
89 %type <n> Type6Opcode
90
91 %type <n> AccessAsTerm
92 %type <n> ExternalTerm
93 %type <n> FieldUnit
94 %type <n> FieldUnitEntry
95 %type <n> FieldUnitList
96 %type <n> IncludeTerm
97 %type <n> OffsetTerm
98 %type <n> OptionalAccessAttribTerm
99
100 /* Named Objects */
101
102 %type <n> BankFieldTerm
103 %type <n> CreateBitFieldTerm
104 %type <n> CreateByteFieldTerm
105 %type <n> CreateDWordFieldTerm
106 %type <n> CreateFieldTerm
107 %type <n> CreateQWordFieldTerm
108 %type <n> CreateWordFieldTerm
109 %type <n> DataRegionTerm
110 %type <n> DeviceTerm
111 %type <n> EventTerm
112 %type <n> FieldTerm
113 %type <n> FunctionTerm
114 %type <n> IndexFieldTerm
115 %type <n> MethodTerm
116 %type <n> MutexTerm
117 %type <n> OpRegionTerm
118 %type <n> OpRegionSpaceIdTerm
119 %type <n> PowerResTerm
120 %type <n> ProcessorTerm
121 %type <n> ThermalZoneTerm
122
123 /* Namespace modifiers */
124
125 %type <n> AliasTerm
126 %type <n> NameTerm
127 %type <n> ScopeTerm
128
129 /* Type 1 opcodes */
130
131 %type <n> BreakPointTerm
132 %type <n> BreakTerm
133 %type <n> CaseDefaultTermList
134 %type <n> CaseTerm
135 %type <n> ContinueTerm
136 %type <n> DefaultTerm
137 %type <n> ElseTerm
138 %type <n> FatalTerm
139 %type <n> IfElseTerm
140 %type <n> IfTerm
141 %type <n> LoadTerm
142 %type <n> NoOpTerm
143 %type <n> NotifyTerm
144 %type <n> ReleaseTerm
145 %type <n> ResetTerm
146 %type <n> ReturnTerm
147 %type <n> SignalTerm
148 %type <n> SleepTerm
149 %type <n> StallTerm
150 %type <n> SwitchTerm
151 %type <n> UnloadTerm
152 %type <n> WhileTerm
153 /* %type <n> CaseTermList */
154
155 /* Type 2 opcodes */
156
157 %type <n> AcquireTerm
158 %type <n> AddTerm
159 %type <n> AndTerm
160 %type <n> ConcatResTerm
161 %type <n> ConcatTerm
162 %type <n> CondRefOfTerm
163 %type <n> CopyObjectTerm
164 %type <n> DecTerm
165 %type <n> DerefOfTerm
166 %type <n> DivideTerm
167 %type <n> FindSetLeftBitTerm
168 %type <n> FindSetRightBitTerm
169 %type <n> FromBCDTerm
170 %type <n> IncTerm
171 %type <n> IndexTerm
172 %type <n> LAndTerm
173 %type <n> LEqualTerm
174 %type <n> LGreaterEqualTerm
175 %type <n> LGreaterTerm
176 %type <n> LLessEqualTerm
177 %type <n> LLessTerm
178 %type <n> LNotEqualTerm
179 %type <n> LNotTerm
180 %type <n> LoadTableTerm
181 %type <n> LOrTerm
182 %type <n> MatchTerm
183 %type <n> MidTerm
184 %type <n> ModTerm
185 %type <n> MultiplyTerm
186 %type <n> NAndTerm
187 %type <n> NOrTerm
188 %type <n> NotTerm
189 %type <n> ObjectTypeTerm
190 %type <n> OrTerm
191 %type <n> RefOfTerm
192 %type <n> ShiftLeftTerm
193 %type <n> ShiftRightTerm
194 %type <n> SizeOfTerm
195 %type <n> StoreTerm
196 %type <n> SubtractTerm
197 %type <n> TimerTerm
198 %type <n> ToBCDTerm
199 %type <n> ToBufferTerm
200 %type <n> ToDecimalStringTerm
201 %type <n> ToHexStringTerm
202 %type <n> ToIntegerTerm
203 %type <n> ToStringTerm
204 %type <n> WaitTerm
205 %type <n> XOrTerm
206
207 /* Keywords */
208
209 %type <n> AccessAttribKeyword
210 %type <n> AccessTypeKeyword
211 %type <n> AddressingModeKeyword
212 %type <n> AddressKeyword
213 %type <n> AddressSpaceKeyword
214 %type <n> BitsPerByteKeyword
215 %type <n> ClockPhaseKeyword
216 %type <n> ClockPolarityKeyword
217 %type <n> DecodeKeyword
218 %type <n> DevicePolarityKeyword
219 %type <n> DMATypeKeyword
220 %type <n> EndianKeyword
221 %type <n> FlowControlKeyword
222 %type <n> InterruptLevel
223 %type <n> InterruptTypeKeyword
224 %type <n> IODecodeKeyword
225 %type <n> IoRestrictionKeyword
226 %type <n> LockRuleKeyword
227 %type <n> MatchOpKeyword
228 %type <n> MaxKeyword
229 %type <n> MemTypeKeyword
230 %type <n> MinKeyword
231 %type <n> ObjectTypeKeyword
232 %type <n> OptionalBusMasterKeyword
233 %type <n> OptionalReadWriteKeyword
234 %type <n> ParityTypeKeyword
235 %type <n> PinConfigByte
236 %type <n> PinConfigKeyword
237 %type <n> RangeTypeKeyword
238 %type <n> RegionSpaceKeyword
239 %type <n> ResourceTypeKeyword
240 %type <n> SerializeRuleKeyword
241 %type <n> ShareTypeKeyword
242 %type <n> SlaveModeKeyword
243 %type <n> StopBitsKeyword
244 %type <n> TranslationKeyword
245 %type <n> TypeKeyword
246 %type <n> UpdateRuleKeyword
247 %type <n> WireModeKeyword
248 %type <n> XferSizeKeyword
249 %type <n> XferTypeKeyword
250
251 /* Types */
252
253 %type <n> SuperName
254 %type <n> ObjectTypeName
255 %type <n> ArgTerm
256 %type <n> LocalTerm
257 %type <n> DebugTerm
258
259 %type <n> Integer
260 %type <n> ByteConst
261 %type <n> WordConst
262 %type <n> DWordConst
263 %type <n> QWordConst
264 %type <n> String
265
266 %type <n> ConstTerm
267 %type <n> ConstExprTerm
268 %type <n> ByteConstExpr
269 %type <n> WordConstExpr
270 %type <n> DWordConstExpr
271 %type <n> QWordConstExpr
272
273 %type <n> DWordList
274 %type <n> BufferTerm
275 %type <n> ByteList
276
277 %type <n> PackageElement
278 %type <n> PackageList
279 %type <n> PackageTerm
280 %type <n> VarPackageLengthTerm
281
282 /* Macros */
283
284 %type <n> EISAIDTerm
285 %type <n> ResourceMacroList
286 %type <n> ResourceMacroTerm
287 %type <n> ResourceTemplateTerm
288 %type <n> PldKeyword
289 %type <n> PldKeywordList
290 %type <n> ToPLDTerm
291 %type <n> ToUUIDTerm
292 %type <n> UnicodeTerm
293 %type <n> PrintfArgList
294 %type <n> PrintfTerm
295 %type <n> FprintfTerm
296
297 /* Resource Descriptors */
298
299 %type <n> ConnectionTerm
300 %type <n> DataBufferTerm
301 %type <n> DMATerm
302 %type <n> DWordIOTerm
303 %type <n> DWordMemoryTerm
304 %type <n> DWordSpaceTerm
305 %type <n> EndDependentFnTerm
306 %type <n> ExtendedIOTerm
307 %type <n> ExtendedMemoryTerm
308 %type <n> ExtendedSpaceTerm
309 %type <n> FixedDmaTerm
310 %type <n> FixedIOTerm
311 %type <n> GpioIntTerm
312 %type <n> GpioIoTerm
313 %type <n> I2cSerialBusTerm
314 %type <n> InterruptTerm
315 %type <n> IOTerm
316 %type <n> IRQNoFlagsTerm
317 %type <n> IRQTerm
318 %type <n> Memory24Term
319 %type <n> Memory32FixedTerm
320 %type <n> Memory32Term
321 %type <n> NameSeg
322 %type <n> NameString
323 %type <n> QWordIOTerm
324 %type <n> QWordMemoryTerm
325 %type <n> QWordSpaceTerm
326 %type <n> RegisterTerm
327 %type <n> SpiSerialBusTerm
328 %type <n> StartDependentFnNoPriTerm
329 %type <n> StartDependentFnTerm
330 %type <n> UartSerialBusTerm
331 %type <n> VendorLongTerm
332 %type <n> VendorShortTerm
333 %type <n> WordBusNumberTerm
334 %type <n> WordIOTerm
335 %type <n> WordSpaceTerm
336
337 /* Local types that help construct the AML, not in ACPI spec */
338
339 %type <n> AmlPackageLengthTerm
340 %type <n> IncludeEndTerm
341 %type <n> NameStringItem
342 %type <n> TermArgItem
343
344 %type <n> OptionalAccessSize
345 %type <n> OptionalAddressingMode
346 %type <n> OptionalAddressRange
347 %type <n> OptionalBitsPerByte
348 %type <n> OptionalBuffer_Last
349 %type <n> OptionalByteConstExpr
350 %type <n> OptionalCount
351 %type <n> OptionalDecodeType
352 %type <n> OptionalDevicePolarity
353 %type <n> OptionalDWordConstExpr
354 %type <n> OptionalEndian
355 %type <n> OptionalFlowControl
356 %type <n> OptionalIoRestriction
357 %type <n> OptionalListString
358 %type <n> OptionalMaxType
359 %type <n> OptionalMemType
360 %type <n> OptionalMinType
361 %type <n> OptionalNameString
362 %type <n> OptionalNameString_First
363 %type <n> OptionalNameString_Last
364 %type <n> OptionalObjectTypeKeyword
365 %type <n> OptionalParameterTypePackage
366 %type <n> OptionalParameterTypesPackage
367 %type <n> OptionalParityType
368 %type <n> OptionalQWordConstExpr
369 %type <n> OptionalRangeType
370 %type <n> OptionalReference
371 %type <n> OptionalResourceType
372 %type <n> OptionalResourceType_First
373 %type <n> OptionalReturnArg
374 %type <n> OptionalSerializeRuleKeyword
375 %type <n> OptionalShareType
376 %type <n> OptionalShareType_First
377 %type <n> OptionalSlaveMode
378 %type <n> OptionalStopBits
379 %type <n> OptionalStringData
380 %type <n> OptionalTermArg
381 %type <n> OptionalTranslationType_Last
382 %type <n> OptionalType
383 %type <n> OptionalType_Last
384 %type <n> OptionalWireMode
385 %type <n> OptionalWordConst
386 %type <n> OptionalWordConstExpr
387 %type <n> OptionalXferSize
388
389 /*
390  * C-style expression parser
391  */
392 %type <n> Expression
393 %type <n> EqualsTerm