This repository has been archived by the owner on Sep 16, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
zig_grammar.txt
307 lines (307 loc) · 18.7 KB
/
zig_grammar.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
0: $accept[#0] <- Root[#1] $eof[1]
1: Root[#1] <- MaybeRootDocComment[#4] MaybeContainerMembers[#6]
2: MaybeDocComment[#2] <- $epsilon[0]
3: MaybeDocComment[#2] <- DocCommentLines[#3]
4: DocCommentLines[#3] <- DocCommentLines[#3] DocComment[2]
5: DocCommentLines[#3] <- DocComment[2]
6: MaybeRootDocComment[#4] <- $epsilon[0]
7: MaybeRootDocComment[#4] <- RootDocCommentLines[#5]
8: RootDocCommentLines[#5] <- RootDocCommentLines[#5] RootDocComment[3]
9: RootDocCommentLines[#5] <- RootDocComment[3]
10: MaybeContainerMembers[#6] <- $epsilon[0]
11: MaybeContainerMembers[#6] <- ContainerMembers[#7]
12: ContainerMembers[#7] <- ContainerMembers[#7] ContainerMember[#8]
13: ContainerMembers[#7] <- ContainerMember[#8]
14: ContainerMember[#8] <- MaybeDocComment[#2] TestDecl[#9]
15: ContainerMember[#8] <- MaybeDocComment[#2] TopLevelComptime[#10]
16: ContainerMember[#8] <- MaybeDocComment[#2] MaybePub[#74] TopLevelDecl[#11]
17: ContainerMember[#8] <- MaybeDocComment[#2] MaybePub[#74] ContainerField[#15] Comma[4]
18: TestDecl[#9] <- Keyword_test[5] StringLiteral[6] Block[#30]
19: TopLevelComptime[#10] <- Keyword_comptime[7] BlockExpr[#29]
20: TopLevelDecl[#11] <- FnProto[#13] Semicolon[8]
21: TopLevelDecl[#11] <- FnProto[#13] Block[#30]
22: TopLevelDecl[#11] <- Keyword_extern[9] StringLiteral[6] FnProto[#13] Semicolon[8]
23: TopLevelDecl[#11] <- Keyword_extern[9] StringLiteral[6] FnProto[#13] Block[#30]
24: TopLevelDecl[#11] <- Keyword_export[10] FnProto[#13] Semicolon[8]
25: TopLevelDecl[#11] <- Keyword_inline[11] FnProto[#13] Semicolon[8]
26: TopLevelDecl[#11] <- Keyword_export[10] FnProto[#13] Block[#30]
27: TopLevelDecl[#11] <- Keyword_inline[11] FnProto[#13] Block[#30]
28: TopLevelDecl[#11] <- MaybeThreadlocal[#12] VarDecl[#14]
29: TopLevelDecl[#11] <- Keyword_extern[9] StringLiteral[6] MaybeThreadlocal[#12] VarDecl[#14]
30: TopLevelDecl[#11] <- Keyword_export[10] MaybeThreadlocal[#12] VarDecl[#14]
31: TopLevelDecl[#11] <- Keyword_extern[9] MaybeThreadlocal[#12] VarDecl[#14]
32: TopLevelDecl[#11] <- Keyword_usingnamespace[12] Expr[#28] Semicolon[8]
33: TopLevelDecl[#11] <- Keyword_use[13] Expr[#28] Semicolon[8]
34: MaybeThreadlocal[#12] <- $epsilon[0]
35: MaybeThreadlocal[#12] <- Keyword_threadlocal[14]
36: FnProto[#13] <- MaybeFnCC[#44] Keyword_fn[15] MaybeIdentifier[#79] LParen[16] MaybeParamDeclList[#69] RParen[17] MaybeByteAlign[#62] MaybeLinkSection[#43] Expr[#28]
37: FnProto[#13] <- MaybeFnCC[#44] Keyword_fn[15] MaybeIdentifier[#79] LParen[16] MaybeParamDeclList[#69] RParen[17] MaybeByteAlign[#62] MaybeLinkSection[#43] Bang[18] Expr[#28]
38: FnProto[#13] <- MaybeFnCC[#44] Keyword_fn[15] MaybeIdentifier[#79] LParen[16] MaybeParamDeclList[#69] RParen[17] MaybeByteAlign[#62] MaybeLinkSection[#43] Keyword_var[19]
39: FnProto[#13] <- MaybeFnCC[#44] Keyword_fn[15] MaybeIdentifier[#79] LParen[16] MaybeParamDeclList[#69] RParen[17] MaybeByteAlign[#62] MaybeLinkSection[#43] Bang[18] Keyword_var[19]
40: VarDecl[#14] <- Keyword_const[20] Identifier[21] MaybeColonTypeExpr[#75] MaybeByteAlign[#62] MaybeLinkSection[#43] MaybeEqualExpr[#27] Semicolon[8]
41: VarDecl[#14] <- Keyword_var[19] Identifier[21] MaybeColonTypeExpr[#75] MaybeByteAlign[#62] MaybeLinkSection[#43] MaybeEqualExpr[#27] Semicolon[8]
42: ContainerField[#15] <- Identifier[21] MaybeColonTypeExpr[#75] MaybeEqualExpr[#27]
43: MaybeStatements[#16] <- $epsilon[0]
44: MaybeStatements[#16] <- Statements[#17]
45: Statements[#17] <- Statement[#18]
46: Statements[#17] <- Statements[#17] Statement[#18]
47: Statement[#18] <- Keyword_comptime[7] VarDecl[#14]
48: Statement[#18] <- VarDecl[#14]
49: Statement[#18] <- Keyword_comptime[7] BlockExpr[#29]
50: Statement[#18] <- Keyword_suspend[22] Semicolon[8]
51: Statement[#18] <- Keyword_suspend[22] BlockExprStatement[#25]
52: Statement[#18] <- Keyword_defer[23] BlockExprStatement[#25]
53: Statement[#18] <- Keyword_errdefer[24] BlockExprStatement[#25]
54: Statement[#18] <- IfStatement[#19]
55: Statement[#18] <- MaybeInline[#78] ForStatement[#22]
56: Statement[#18] <- MaybeInline[#78] WhileStatement[#24]
57: Statement[#18] <- LabeledStatement[#21]
58: Statement[#18] <- SwitchExpr[#34]
59: Statement[#18] <- AssignExpr[#26] Semicolon[8]
60: IfStatement[#19] <- IfPrefix[#47] BlockExpr[#29]
61: IfStatement[#19] <- IfPrefix[#47] BlockExpr[#29] ElseStatement[#20]
62: IfStatement[#19] <- IfPrefix[#47] AssignExpr[#26] Semicolon[8]
63: IfStatement[#19] <- IfPrefix[#47] AssignExpr[#26] ElseStatement[#20]
64: ElseStatement[#20] <- Keyword_else[25] MaybePayload[#50] Statement[#18]
65: LabeledStatement[#21] <- BlockLabel[#31] MaybeInline[#78] ForStatement[#22]
66: LabeledStatement[#21] <- BlockLabel[#31] MaybeInline[#78] WhileStatement[#24]
67: LabeledStatement[#21] <- BlockExpr[#29]
68: ForStatement[#22] <- ForPrefix[#48] BlockExpr[#29]
69: ForStatement[#22] <- ForPrefix[#48] BlockExpr[#29] ElseNoPayloadStatement[#23]
70: ForStatement[#22] <- ForPrefix[#48] AssignExpr[#26] Semicolon[8]
71: ForStatement[#22] <- ForPrefix[#48] AssignExpr[#26] ElseNoPayloadStatement[#23]
72: ElseNoPayloadStatement[#23] <- Keyword_else[25] Statement[#18]
73: WhileStatement[#24] <- WhilePrefix[#49] BlockExpr[#29]
74: WhileStatement[#24] <- WhilePrefix[#49] BlockExpr[#29] ElseStatement[#20]
75: WhileStatement[#24] <- WhilePrefix[#49] AssignExpr[#26] Semicolon[8]
76: WhileStatement[#24] <- WhilePrefix[#49] AssignExpr[#26] ElseStatement[#20]
77: BlockExprStatement[#25] <- BlockExpr[#29]
78: BlockExprStatement[#25] <- AssignExpr[#26] Semicolon[8]
79: AssignExpr[#26] <- Expr[#28] AsteriskEqual[26] Expr[#28]
80: AssignExpr[#26] <- Expr[#28] SlashEqual[27] Expr[#28]
81: AssignExpr[#26] <- Expr[#28] PercentEqual[28] Expr[#28]
82: AssignExpr[#26] <- Expr[#28] PlusEqual[29] Expr[#28]
83: AssignExpr[#26] <- Expr[#28] MinusEqual[30] Expr[#28]
84: AssignExpr[#26] <- Expr[#28] AngleBracketAngleBracketLeftEqual[31] Expr[#28]
85: AssignExpr[#26] <- Expr[#28] AngleBracketAngleBracketRightEqual[32] Expr[#28]
86: AssignExpr[#26] <- Expr[#28] AmpersandEqual[33] Expr[#28]
87: AssignExpr[#26] <- Expr[#28] CaretEqual[34] Expr[#28]
88: AssignExpr[#26] <- Expr[#28] PipeEqual[35] Expr[#28]
89: AssignExpr[#26] <- Expr[#28] AsteriskPercentEqual[36] Expr[#28]
90: AssignExpr[#26] <- Expr[#28] PlusPercentEqual[37] Expr[#28]
91: AssignExpr[#26] <- Expr[#28] MinusPercentEqual[38] Expr[#28]
92: AssignExpr[#26] <- Expr[#28] Equal[39] Expr[#28]
93: AssignExpr[#26] <- Expr[#28]
94: MaybeEqualExpr[#27] <- $epsilon[0]
95: MaybeEqualExpr[#27] <- Equal[39] Expr[#28]
96: Expr[#28] <- Recovery[40]
97: Expr[#28] <- LParen[16] Expr[#28] RParen[17]
98: Expr[#28] <- Expr[#28] Keyword_orelse[41] Expr[#28]
99: Expr[#28] <- Expr[#28] Keyword_catch[42] MaybePayload[#50] Expr[#28]
100: Expr[#28] <- Expr[#28] Keyword_or[43] Expr[#28]
101: Expr[#28] <- Expr[#28] AmpersandAmpersand[44] Expr[#28]
102: Expr[#28] <- Expr[#28] Keyword_and[45] Expr[#28]
103: Expr[#28] <- Expr[#28] EqualEqual[46] Expr[#28]
104: Expr[#28] <- Expr[#28] BangEqual[47] Expr[#28]
105: Expr[#28] <- Expr[#28] AngleBracketLeft[48] Expr[#28]
106: Expr[#28] <- Expr[#28] AngleBracketRight[49] Expr[#28]
107: Expr[#28] <- Expr[#28] AngleBracketLeftEqual[50] Expr[#28]
108: Expr[#28] <- Expr[#28] AngleBracketRightEqual[51] Expr[#28]
109: Expr[#28] <- Expr[#28] Pipe[52] Expr[#28]
110: Expr[#28] <- Expr[#28] Caret[53] Expr[#28]
111: Expr[#28] <- Expr[#28] Ampersand[54] Expr[#28]
112: Expr[#28] <- Expr[#28] AngleBracketAngleBracketLeft[55] Expr[#28]
113: Expr[#28] <- Expr[#28] AngleBracketAngleBracketRight[56] Expr[#28]
114: Expr[#28] <- Expr[#28] Plus[57] Expr[#28]
115: Expr[#28] <- Expr[#28] Minus[58] Expr[#28]
116: Expr[#28] <- Expr[#28] PlusPlus[59] Expr[#28]
117: Expr[#28] <- Expr[#28] PlusPercent[60] Expr[#28]
118: Expr[#28] <- Expr[#28] MinusPercent[61] Expr[#28]
119: Expr[#28] <- Expr[#28] Asterisk[62] Expr[#28]
120: Expr[#28] <- Expr[#28] Slash[63] Expr[#28]
121: Expr[#28] <- Expr[#28] Percent[64] Expr[#28]
122: Expr[#28] <- Expr[#28] AsteriskAsterisk[65] Expr[#28]
123: Expr[#28] <- Expr[#28] AsteriskPercent[66] Expr[#28]
124: Expr[#28] <- Expr[#28] PipePipe[67] Expr[#28]
125: Expr[#28] <- Bang[18] Expr[#28]
126: Expr[#28] <- Minus[58] Expr[#28]
127: Expr[#28] <- MinusPercent[61] Expr[#28]
128: Expr[#28] <- Tilde[68] Expr[#28]
129: Expr[#28] <- Ampersand[54] Expr[#28]
130: Expr[#28] <- Keyword_async[69] Expr[#28]
131: Expr[#28] <- Keyword_try[70] Expr[#28]
132: Expr[#28] <- Keyword_await[71] Expr[#28]
133: Expr[#28] <- Keyword_comptime[7] Expr[#28]
134: Expr[#28] <- AsmExpr[#36]
135: Expr[#28] <- Keyword_resume[72] Expr[#28]
136: Expr[#28] <- Keyword_cancel[73] Expr[#28]
137: Expr[#28] <- Keyword_break[74]
138: Expr[#28] <- Keyword_break[74] BreakLabel[#42]
139: Expr[#28] <- Keyword_break[74] Expr[#28]
140: Expr[#28] <- Keyword_break[74] BreakLabel[#42] Expr[#28]
141: Expr[#28] <- Keyword_continue[75]
142: Expr[#28] <- Keyword_continue[75] BreakLabel[#42]
143: Expr[#28] <- Keyword_return[76]
144: Expr[#28] <- Keyword_return[76] Expr[#28]
145: Expr[#28] <- Expr[#28] LCurly[77] RBrace[78]
146: Expr[#28] <- Expr[#28] LCurly[77] InitList[#73] MaybeComma[#80] RBrace[78]
147: Expr[#28] <- QuestionMark[79] Expr[#28]
148: Expr[#28] <- Keyword_promise[80]
149: Expr[#28] <- Keyword_promise[80] MinusAngleBracketRight[81] Expr[#28]
150: Expr[#28] <- LBracket[82] Expr[#28] RBracket[83] Expr[#28]
151: Expr[#28] <- LBracket[82] RBracket[83] MaybeAllowzero[#58] MaybeAlign[#63] MaybeConst[#81] MaybeVolatile[#57] Expr[#28]
152: Expr[#28] <- Asterisk[62] MaybeAllowzero[#58] MaybeAlign[#63] MaybeConst[#81] MaybeVolatile[#57] Expr[#28]
153: Expr[#28] <- AsteriskAsterisk[65] MaybeAllowzero[#58] MaybeAlign[#63] MaybeConst[#81] MaybeVolatile[#57] Expr[#28]
154: Expr[#28] <- BracketStarBracket[84] MaybeAllowzero[#58] MaybeAlign[#63] MaybeConst[#81] MaybeVolatile[#57] Expr[#28]
155: Expr[#28] <- BracketStarCBracket[85] MaybeAllowzero[#58] MaybeAlign[#63] MaybeConst[#81] MaybeVolatile[#57] Expr[#28]
156: Expr[#28] <- BlockExpr[#29]
157: BlockExpr[#29] <- Block[#30]
158: BlockExpr[#29] <- BlockLabel[#31] Block[#30]
159: Block[#30] <- LBrace[86] MaybeStatements[#16] RBrace[78]
160: BlockLabel[#31] <- Identifier[21] Colon[87]
161: Expr[#28] <- Expr[#28] Bang[18] Expr[#28]
162: Expr[#28] <- Identifier[21]
163: Expr[#28] <- CharLiteral[88]
164: Expr[#28] <- FloatLiteral[89]
165: Expr[#28] <- IntegerLiteral[90]
166: Expr[#28] <- StringLiteral[6]
167: Expr[#28] <- MultilineStringLiteral[#82]
168: Expr[#28] <- MultilineCStringLiteral[#83]
169: Expr[#28] <- Period[91] Identifier[21]
170: Expr[#28] <- Keyword_error[92] Period[91] Identifier[21]
171: Expr[#28] <- Keyword_error[92] LCurly[77] RBrace[78]
172: Expr[#28] <- Keyword_error[92] LCurly[77] ErrorTagList[#64] MaybeComma[#80] RBrace[78]
173: Expr[#28] <- Keyword_false[93]
174: Expr[#28] <- Keyword_true[94]
175: Expr[#28] <- Keyword_null[95]
176: Expr[#28] <- Keyword_undefined[96]
177: Expr[#28] <- Keyword_unreachable[97]
178: Expr[#28] <- SwitchExpr[#34]
179: Expr[#28] <- IfPrefix[#47] Expr[#28]
180: Expr[#28] <- IfPrefix[#47] Expr[#28] Keyword_else[25] MaybePayload[#50] Expr[#28]
181: Expr[#28] <- Builtin[98] LParen[16] MaybeExprList[#71] RParen[17]
182: Expr[#28] <- FnProto[#13]
183: Expr[#28] <- Expr[#28] LBracket[82] Expr[#28] RBracket[83]
184: Expr[#28] <- Expr[#28] LBracket[82] Expr[#28] Ellipsis2[99] RBracket[83]
185: Expr[#28] <- Expr[#28] LBracket[82] Expr[#28] Ellipsis2[99] Expr[#28] RBracket[83]
186: Expr[#28] <- Expr[#28] Period[91] Identifier[21]
187: Expr[#28] <- Expr[#28] PeriodAsterisk[100]
188: Expr[#28] <- Expr[#28] PeriodQuestionMark[101]
189: Expr[#28] <- Expr[#28] LParen[16] MaybeExprList[#71] RParen[17]
190: Expr[#28] <- ContainerDecl[#32]
191: ContainerDecl[#32] <- MaybeExternPacked[#33] ContainerDeclOp[#61] LBrace[86] MaybeContainerMembers[#6] RBrace[78]
192: ContainerDecl[#32] <- MaybeExternPacked[#33] Keyword_enum[102] ContainerDeclTypeType[#60] LBrace[86] MaybeContainerMembers[#6] RBrace[78]
193: ContainerDecl[#32] <- MaybeExternPacked[#33] Keyword_union[103] ContainerDeclTypeType[#60] LBrace[86] MaybeContainerMembers[#6] RBrace[78]
194: ContainerDecl[#32] <- MaybeExternPacked[#33] Keyword_union[103] ContainerDeclTypeEnum[#59] LBrace[86] MaybeContainerMembers[#6] RBrace[78]
195: MaybeExternPacked[#33] <- $epsilon[0]
196: MaybeExternPacked[#33] <- Keyword_extern[9]
197: MaybeExternPacked[#33] <- Keyword_packed[104]
198: SwitchExpr[#34] <- Keyword_switch[105] LParen[16] Expr[#28] RParen[17] LBrace[86] SwitchProngList[#65] MaybeComma[#80] RBrace[78]
199: String[#35] <- StringLiteral[6]
200: String[#35] <- MultilineStringLiteral[#82]
201: String[#35] <- MultilineCStringLiteral[#83]
202: AsmExpr[#36] <- Keyword_asm[106] MaybeVolatile[#57] LParen[16] String[#35] RParen[17]
203: AsmExpr[#36] <- Keyword_asm[106] MaybeVolatile[#57] LParen[16] String[#35] AsmOutput[#37] RParen[17]
204: AsmExpr[#36] <- Keyword_asm[106] MaybeVolatile[#57] LParen[16] String[#35] AsmOutput[#37] AsmInput[#39] RParen[17]
205: AsmExpr[#36] <- Keyword_asm[106] MaybeVolatile[#57] LParen[16] String[#35] AsmOutput[#37] AsmInput[#39] AsmClobber[#41] RParen[17]
206: AsmOutput[#37] <- Colon[87]
207: AsmOutput[#37] <- Colon[87] AsmOutputList[#66]
208: AsmOutputItem[#38] <- LBracket[82] Identifier[21] RBracket[83] String[#35] LParen[16] Identifier[21] RParen[17]
209: AsmOutputItem[#38] <- LBracket[82] Identifier[21] RBracket[83] String[#35] LParen[16] MinusAngleBracketRight[81] Expr[#28] RParen[17]
210: AsmInput[#39] <- Colon[87]
211: AsmInput[#39] <- Colon[87] AsmInputList[#67]
212: AsmInputItem[#40] <- LBracket[82] Identifier[21] RBracket[83] String[#35] LParen[16] Expr[#28] RParen[17]
213: AsmClobber[#41] <- Colon[87]
214: AsmClobber[#41] <- Colon[87] StringList[#68]
215: BreakLabel[#42] <- Colon[87] Identifier[21]
216: MaybeLinkSection[#43] <- $epsilon[0]
217: MaybeLinkSection[#43] <- Keyword_linksection[107] LParen[16] Expr[#28] RParen[17]
218: MaybeFnCC[#44] <- $epsilon[0]
219: MaybeFnCC[#44] <- Keyword_nakedcc[108]
220: MaybeFnCC[#44] <- Keyword_stdcallcc[109]
221: MaybeFnCC[#44] <- Keyword_extern[9]
222: MaybeFnCC[#44] <- Keyword_async[69]
223: ParamDecl[#45] <- MaybeNoalias[#77] ParamType[#46]
224: ParamDecl[#45] <- MaybeNoalias[#77] Identifier[21] Colon[87] ParamType[#46]
225: ParamDecl[#45] <- MaybeNoalias[#77] Keyword_comptime[7] Identifier[21] Colon[87] ParamType[#46]
226: ParamType[#46] <- Keyword_var[19]
227: ParamType[#46] <- Ellipsis3[110]
228: ParamType[#46] <- Expr[#28]
229: IfPrefix[#47] <- Keyword_if[111] LParen[16] Expr[#28] RParen[17] MaybePtrPayload[#51]
230: ForPrefix[#48] <- Keyword_for[112] LParen[16] Expr[#28] RParen[17] PtrIndexPayload[#52]
231: WhilePrefix[#49] <- Keyword_while[113] LParen[16] Expr[#28] RParen[17] MaybePtrPayload[#51]
232: WhilePrefix[#49] <- Keyword_while[113] LParen[16] Expr[#28] RParen[17] MaybePtrPayload[#51] Colon[87] LParen[16] AssignExpr[#26] RParen[17]
233: MaybePayload[#50] <- $epsilon[0]
234: MaybePayload[#50] <- Pipe[52] Identifier[21] Pipe[52]
235: MaybePtrPayload[#51] <- $epsilon[0]
236: MaybePtrPayload[#51] <- Pipe[52] Identifier[21] Pipe[52]
237: MaybePtrPayload[#51] <- Pipe[52] Asterisk[62] Identifier[21] Pipe[52]
238: PtrIndexPayload[#52] <- Pipe[52] Identifier[21] Pipe[52]
239: PtrIndexPayload[#52] <- Pipe[52] Asterisk[62] Identifier[21] Pipe[52]
240: PtrIndexPayload[#52] <- Pipe[52] Identifier[21] Comma[4] Identifier[21] Pipe[52]
241: PtrIndexPayload[#52] <- Pipe[52] Asterisk[62] Identifier[21] Comma[4] Identifier[21] Pipe[52]
242: SwitchProng[#53] <- SwitchCase[#54] EqualAngleBracketRight[114] MaybePtrPayload[#51] AssignExpr[#26]
243: SwitchCase[#54] <- Keyword_else[25]
244: SwitchCase[#54] <- SwitchItems[#55] MaybeComma[#80]
245: SwitchItems[#55] <- SwitchItem[#56]
246: SwitchItems[#55] <- SwitchItems[#55] Comma[4] SwitchItem[#56]
247: SwitchItem[#56] <- Expr[#28]
248: SwitchItem[#56] <- Expr[#28] Ellipsis3[110] Expr[#28]
249: MaybeVolatile[#57] <- $epsilon[0]
250: MaybeVolatile[#57] <- Keyword_volatile[115]
251: MaybeAllowzero[#58] <- $epsilon[0]
252: MaybeAllowzero[#58] <- Keyword_allowzero[116]
253: ContainerDeclTypeEnum[#59] <- LParen[16] Keyword_enum[102] RParen[17]
254: ContainerDeclTypeEnum[#59] <- LParen[16] Keyword_enum[102] LParen[16] Expr[#28] RParen[17] RParen[17]
255: ContainerDeclTypeType[#60] <- LParen[16] Expr[#28] RParen[17]
256: ContainerDeclOp[#61] <- Keyword_struct[117]
257: ContainerDeclOp[#61] <- Keyword_union[103]
258: ContainerDeclOp[#61] <- Keyword_enum[102]
259: MaybeByteAlign[#62] <- $epsilon[0]
260: MaybeByteAlign[#62] <- Keyword_align[118] LParen[16] Expr[#28] RParen[17]
261: MaybeAlign[#63] <- $epsilon[0]
262: MaybeAlign[#63] <- Keyword_align[118] LParen[16] Expr[#28] RParen[17]
263: MaybeAlign[#63] <- Keyword_align[118] LParen[16] Expr[#28] Colon[87] IntegerLiteral[90] Colon[87] IntegerLiteral[90] RParen[17]
264: MaybeAlign[#63] <- Keyword_align[118] LParen[16] Identifier[21] Colon[87] IntegerLiteral[90] Colon[87] IntegerLiteral[90] RParen[17]
265: ErrorTagList[#64] <- MaybeDocComment[#2] Identifier[21]
266: ErrorTagList[#64] <- ErrorTagList[#64] Comma[4] MaybeDocComment[#2] Identifier[21]
267: SwitchProngList[#65] <- SwitchProng[#53]
268: SwitchProngList[#65] <- SwitchProngList[#65] Comma[4] SwitchProng[#53]
269: AsmOutputList[#66] <- AsmOutputItem[#38]
270: AsmOutputList[#66] <- AsmOutputList[#66] Comma[4] AsmOutputItem[#38]
271: AsmInputList[#67] <- AsmInputItem[#40]
272: AsmInputList[#67] <- AsmInputList[#67] Comma[4] AsmInputItem[#40]
273: StringList[#68] <- StringLiteral[6]
274: StringList[#68] <- StringList[#68] Comma[4] StringLiteral[6]
275: MaybeParamDeclList[#69] <- $epsilon[0]
276: MaybeParamDeclList[#69] <- ParamDeclList[#70] MaybeComma[#80]
277: ParamDeclList[#70] <- MaybeDocComment[#2] ParamDecl[#45]
278: ParamDeclList[#70] <- ParamDeclList[#70] Comma[4] MaybeDocComment[#2] ParamDecl[#45]
279: MaybeExprList[#71] <- $epsilon[0]
280: MaybeExprList[#71] <- ExprList[#72] MaybeComma[#80]
281: ExprList[#72] <- Expr[#28]
282: ExprList[#72] <- ExprList[#72] Comma[4] Expr[#28]
283: InitList[#73] <- Expr[#28]
284: InitList[#73] <- Period[91] Identifier[21] Equal[39] Expr[#28]
285: InitList[#73] <- InitList[#73] Comma[4] Expr[#28]
286: InitList[#73] <- InitList[#73] Comma[4] Period[91] Identifier[21] Equal[39] Expr[#28]
287: MaybePub[#74] <- $epsilon[0]
288: MaybePub[#74] <- Keyword_pub[119]
289: MaybeColonTypeExpr[#75] <- $epsilon[0]
290: MaybeColonTypeExpr[#75] <- Colon[87] Expr[#28]
291: MaybeExpr[#76] <- $epsilon[0]
292: MaybeExpr[#76] <- Expr[#28]
293: MaybeNoalias[#77] <- $epsilon[0]
294: MaybeNoalias[#77] <- Keyword_noalias[120]
295: MaybeInline[#78] <- $epsilon[0]
296: MaybeInline[#78] <- Keyword_inline[11]
297: MaybeIdentifier[#79] <- $epsilon[0]
298: MaybeIdentifier[#79] <- Identifier[21]
299: MaybeComma[#80] <- $epsilon[0]
300: MaybeComma[#80] <- Comma[4]
301: MaybeConst[#81] <- $epsilon[0]
302: MaybeConst[#81] <- Keyword_const[20]
303: MultilineStringLiteral[#82] <- LineString[121]
304: MultilineStringLiteral[#82] <- MultilineStringLiteral[#82] LineString[121]
305: MultilineCStringLiteral[#83] <- LineCString[122]
306: MultilineCStringLiteral[#83] <- MultilineCStringLiteral[#83] LineCString[122]