blob: 843df0192f1d2ae36450ea0f1756b56d404f4f93 [file] [log] [blame]
Zack Williamse940c7a2019-08-21 14:25:39 -07001// Code generated by goyacc -o proto.y.go -p proto proto.y. DO NOT EDIT.
2
3//line proto.y:2
4package protoparse
5
6import __yyfmt__ "fmt"
7
8//line proto.y:2
9
10//lint:file-ignore SA4006 generated parser has unused values
11
12import (
13 "fmt"
14 "math"
15 "unicode"
16
17 "github.com/jhump/protoreflect/desc/internal"
18)
19
20//line proto.y:18
21type protoSymType struct {
22 yys int
23 file *fileNode
24 fileDecls []*fileElement
25 syn *syntaxNode
26 pkg *packageNode
27 imprt *importNode
28 msg *messageNode
29 msgDecls []*messageElement
30 fld *fieldNode
31 mapFld *mapFieldNode
Scott Baker4a35a702019-11-26 08:17:33 -080032 mapType *mapTypeNode
Zack Williamse940c7a2019-08-21 14:25:39 -070033 grp *groupNode
34 oo *oneOfNode
35 ooDecls []*oneOfElement
36 ext *extensionRangeNode
37 resvd *reservedNode
38 en *enumNode
39 enDecls []*enumElement
40 env *enumValueNode
41 extend *extendNode
42 extDecls []*extendElement
43 svc *serviceNode
44 svcDecls []*serviceElement
45 mtd *methodNode
46 rpcType *rpcTypeNode
47 opts []*optionNode
48 optNm []*optionNamePartNode
Scott Baker4a35a702019-11-26 08:17:33 -080049 cmpctOpts *compactOptionsNode
Zack Williamse940c7a2019-08-21 14:25:39 -070050 rngs []*rangeNode
Scott Baker4a35a702019-11-26 08:17:33 -080051 names []*compoundStringNode
52 cid *compoundIdentNode
Zack Williamse940c7a2019-08-21 14:25:39 -070053 sl []valueNode
54 agg []*aggregateEntryNode
55 aggName *aggregateNameNode
56 v valueNode
Scott Baker4a35a702019-11-26 08:17:33 -080057 il *compoundIntNode
58 str *compoundStringNode
59 s *stringLiteralNode
60 i *intLiteralNode
Zack Williamse940c7a2019-08-21 14:25:39 -070061 f *floatLiteralNode
62 id *identNode
63 b *basicNode
64 err error
65}
66
67const _STRING_LIT = 57346
68const _INT_LIT = 57347
69const _FLOAT_LIT = 57348
70const _NAME = 57349
Scott Baker4a35a702019-11-26 08:17:33 -080071const _SYNTAX = 57350
72const _IMPORT = 57351
73const _WEAK = 57352
74const _PUBLIC = 57353
75const _PACKAGE = 57354
76const _OPTION = 57355
77const _TRUE = 57356
78const _FALSE = 57357
79const _INF = 57358
80const _NAN = 57359
81const _REPEATED = 57360
82const _OPTIONAL = 57361
83const _REQUIRED = 57362
84const _DOUBLE = 57363
85const _FLOAT = 57364
86const _INT32 = 57365
87const _INT64 = 57366
88const _UINT32 = 57367
89const _UINT64 = 57368
90const _SINT32 = 57369
91const _SINT64 = 57370
92const _FIXED32 = 57371
93const _FIXED64 = 57372
94const _SFIXED32 = 57373
95const _SFIXED64 = 57374
96const _BOOL = 57375
97const _STRING = 57376
98const _BYTES = 57377
99const _GROUP = 57378
100const _ONEOF = 57379
101const _MAP = 57380
102const _EXTENSIONS = 57381
103const _TO = 57382
104const _MAX = 57383
105const _RESERVED = 57384
106const _ENUM = 57385
107const _MESSAGE = 57386
108const _EXTEND = 57387
109const _SERVICE = 57388
110const _RPC = 57389
111const _STREAM = 57390
112const _RETURNS = 57391
113const _ERROR = 57392
Zack Williamse940c7a2019-08-21 14:25:39 -0700114
115var protoToknames = [...]string{
116 "$end",
117 "error",
118 "$unk",
119 "_STRING_LIT",
120 "_INT_LIT",
121 "_FLOAT_LIT",
122 "_NAME",
Zack Williamse940c7a2019-08-21 14:25:39 -0700123 "_SYNTAX",
124 "_IMPORT",
125 "_WEAK",
126 "_PUBLIC",
127 "_PACKAGE",
128 "_OPTION",
129 "_TRUE",
130 "_FALSE",
131 "_INF",
132 "_NAN",
133 "_REPEATED",
134 "_OPTIONAL",
135 "_REQUIRED",
136 "_DOUBLE",
137 "_FLOAT",
138 "_INT32",
139 "_INT64",
140 "_UINT32",
141 "_UINT64",
142 "_SINT32",
143 "_SINT64",
144 "_FIXED32",
145 "_FIXED64",
146 "_SFIXED32",
147 "_SFIXED64",
148 "_BOOL",
149 "_STRING",
150 "_BYTES",
151 "_GROUP",
152 "_ONEOF",
153 "_MAP",
154 "_EXTENSIONS",
155 "_TO",
156 "_MAX",
157 "_RESERVED",
158 "_ENUM",
159 "_MESSAGE",
160 "_EXTEND",
161 "_SERVICE",
162 "_RPC",
163 "_STREAM",
164 "_RETURNS",
165 "_ERROR",
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}
195var protoStatenames = [...]string{}
196
197const protoEofCode = 1
198const protoErrCode = 2
199const protoInitialStackSize = 16
200
Scott Baker4a35a702019-11-26 08:17:33 -0800201//line proto.y:1005
Zack Williamse940c7a2019-08-21 14:25:39 -0700202
203//line yacctab:1
204var protoExca = [...]int{
Scott Baker4a35a702019-11-26 08:17:33 -0800205 -1, 0,
206 1, 4,
207 -2, 0,
Zack Williamse940c7a2019-08-21 14:25:39 -0700208 -1, 1,
209 1, -1,
210 -2, 0,
Scott Baker4a35a702019-11-26 08:17:33 -0800211 -1, 2,
212 1, 1,
213 -2, 0,
214 -1, 3,
215 1, 2,
216 -2, 0,
217 -1, 22,
218 1, 3,
219 -2, 0,
220 -1, 93,
221 55, 162,
222 -2, 0,
223 -1, 94,
224 55, 150,
225 -2, 0,
226 -1, 95,
227 55, 179,
228 -2, 0,
229 -1, 97,
230 55, 188,
231 -2, 0,
232 -1, 110,
233 55, 54,
234 -2, 0,
235 -1, 229,
236 61, 54,
237 -2, 0,
238 -1, 246,
239 55, 103,
240 -2, 0,
241 -1, 272,
242 61, 54,
243 -2, 0,
244 -1, 316,
245 61, 54,
246 -2, 0,
247 -1, 354,
248 55, 162,
249 -2, 0,
250 -1, 357,
251 55, 162,
252 -2, 0,
253 -1, 360,
254 55, 162,
255 -2, 0,
256 -1, 370,
257 61, 54,
258 -2, 0,
259 -1, 372,
260 61, 54,
261 -2, 0,
262 -1, 393,
263 55, 162,
264 -2, 0,
265 -1, 404,
266 55, 200,
267 -2, 0,
Zack Williamse940c7a2019-08-21 14:25:39 -0700268}
269
270const protoPrivate = 57344
271
Scott Baker4a35a702019-11-26 08:17:33 -0800272const protoLast = 2634
Zack Williamse940c7a2019-08-21 14:25:39 -0700273
274var protoAct = [...]int{
275
Scott Baker4a35a702019-11-26 08:17:33 -0800276 31, 124, 8, 406, 8, 8, 116, 117, 169, 75,
277 309, 288, 293, 209, 196, 107, 210, 103, 181, 78,
278 79, 161, 83, 104, 8, 168, 123, 81, 133, 118,
279 155, 195, 102, 142, 105, 145, 391, 358, 346, 331,
280 241, 355, 352, 242, 30, 76, 345, 330, 243, 80,
281 26, 244, 244, 338, 344, 244, 244, 244, 328, 84,
282 347, 304, 87, 88, 276, 275, 401, 212, 244, 342,
283 321, 29, 212, 244, 115, 383, 244, 268, 212, 227,
284 110, 226, 203, 367, 303, 226, 90, 412, 229, 225,
285 398, 101, 109, 225, 396, 151, 146, 266, 393, 162,
286 226, 360, 399, 308, 226, 265, 92, 226, 225, 374,
287 96, 173, 225, 351, 357, 225, 320, 403, 354, 404,
288 89, 249, 157, 379, 186, 156, 213, 90, 153, 250,
289 248, 213, 377, 246, 194, 79, 78, 213, 243, 226,
290 198, 199, 224, 97, 183, 151, 146, 225, 95, 94,
291 223, 93, 165, 375, 366, 361, 86, 341, 335, 188,
292 190, 192, 162, 17, 14, 80, 76, 220, 211, 173,
293 4, 15, 165, 200, 16, 17, 202, 222, 153, 86,
294 205, 157, 218, 17, 156, 215, 86, 202, 409, 234,
295 235, 236, 237, 238, 239, 86, 228, 166, 285, 17,
296 219, 232, 164, 230, 100, 19, 18, 20, 21, 409,
297 216, 183, 96, 206, 13, 187, 167, 166, 25, 365,
298 17, 368, 164, 211, 264, 217, 14, 99, 109, 364,
299 173, 332, 283, 15, 98, 282, 16, 17, 408, 281,
300 280, 410, 290, 85, 279, 269, 278, 247, 294, 240,
301 207, 271, 91, 24, 289, 273, 267, 245, 286, 408,
302 29, 197, 277, 382, 381, 327, 326, 19, 18, 20,
303 21, 109, 76, 173, 173, 299, 13, 325, 291, 306,
304 324, 211, 222, 211, 307, 302, 121, 11, 323, 11,
305 11, 322, 119, 10, 294, 10, 10, 311, 317, 301,
306 336, 337, 5, 315, 197, 334, 23, 284, 305, 11,
307 178, 178, 179, 175, 176, 10, 86, 173, 173, 29,
308 163, 299, 180, 29, 177, 23, 222, 160, 329, 27,
309 28, 3, 340, 109, 22, 12, 154, 147, 144, 343,
310 122, 289, 348, 362, 208, 339, 109, 109, 148, 173,
311 127, 120, 9, 201, 9, 9, 292, 222, 140, 76,
312 126, 376, 296, 125, 378, 363, 353, 380, 356, 295,
313 359, 173, 170, 173, 9, 313, 172, 251, 369, 371,
314 108, 106, 182, 405, 186, 173, 186, 173, 186, 287,
315 7, 6, 2, 222, 394, 222, 384, 1, 386, 0,
316 400, 0, 0, 0, 0, 0, 407, 407, 186, 411,
317 0, 0, 311, 0, 0, 0, 0, 0, 0, 0,
318 0, 0, 0, 0, 314, 392, 29, 111, 114, 32,
319 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
320 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
321 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
322 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
323 73, 74, 0, 0, 0, 0, 110, 0, 0, 0,
324 0, 0, 0, 0, 316, 112, 113, 0, 0, 0,
325 312, 29, 111, 114, 32, 33, 34, 35, 36, 37,
326 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
327 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
328 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
329 68, 69, 70, 71, 72, 73, 74, 0, 0, 0,
330 0, 110, 0, 0, 0, 0, 0, 0, 0, 272,
331 112, 113, 0, 0, 270, 29, 111, 114, 32, 33,
Zack Williamse940c7a2019-08-21 14:25:39 -0700332 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
333 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
334 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
335 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
Scott Baker4a35a702019-11-26 08:17:33 -0800336 74, 0, 0, 0, 0, 110, 0, 0, 0, 0,
337 0, 0, 0, 372, 112, 113, 29, 111, 114, 32,
338 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
339 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
340 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
341 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
342 73, 74, 0, 0, 0, 0, 110, 0, 0, 0,
343 0, 0, 171, 0, 370, 112, 113, 32, 33, 34,
Zack Williamse940c7a2019-08-21 14:25:39 -0700344 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
345 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
346 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
Scott Baker4a35a702019-11-26 08:17:33 -0800347 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
Zack Williamse940c7a2019-08-21 14:25:39 -0700348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Scott Baker4a35a702019-11-26 08:17:33 -0800349 0, 397, 0, 171, 0, 0, 0, 174, 32, 33,
350 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
Zack Williamse940c7a2019-08-21 14:25:39 -0700351 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
352 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
353 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
Scott Baker4a35a702019-11-26 08:17:33 -0800354 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 395, 0, 171, 0, 0, 0, 174, 32,
356 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
357 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
Zack Williamse940c7a2019-08-21 14:25:39 -0700358 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
359 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
Scott Baker4a35a702019-11-26 08:17:33 -0800360 73, 74, 0, 0, 0, 0, 0, 0, 0, 0,
361 0, 0, 0, 373, 0, 0, 0, 0, 0, 174,
362 29, 111, 114, 32, 33, 34, 35, 36, 37, 38,
363 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
364 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
365 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
366 69, 70, 71, 72, 73, 74, 0, 0, 0, 0,
367 110, 0, 0, 0, 0, 0, 171, 0, 0, 112,
368 113, 32, 33, 34, 35, 36, 37, 38, 39, 40,
369 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
370 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
371 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
372 71, 72, 73, 74, 0, 0, 0, 0, 0, 0,
373 0, 0, 0, 0, 0, 350, 0, 171, 0, 0,
374 0, 174, 32, 33, 34, 35, 36, 37, 38, 39,
375 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
376 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
377 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
378 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 0, 319, 0, 171, 0,
380 0, 0, 174, 32, 33, 34, 35, 36, 37, 38,
381 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
382 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
383 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
384 69, 70, 71, 72, 73, 74, 0, 0, 0, 0,
385 0, 221, 0, 0, 0, 0, 0, 0, 0, 387,
386 0, 0, 0, 174, 32, 33, 34, 35, 36, 37,
387 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
388 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
389 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
390 68, 69, 70, 71, 72, 73, 74, 252, 253, 254,
391 255, 256, 257, 258, 259, 260, 261, 262, 263, 0,
392 385, 0, 0, 0, 174, 32, 33, 34, 35, 36,
393 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
Zack Williamse940c7a2019-08-21 14:25:39 -0700394 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
395 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
Scott Baker4a35a702019-11-26 08:17:33 -0800396 67, 68, 69, 70, 71, 72, 73, 74, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 349, 0, 0, 0, 174, 32, 33, 34, 35,
399 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
400 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
401 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
402 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
404 0, 0, 318, 0, 0, 0, 174, 32, 33, 34,
405 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
406 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
407 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
408 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 0, 0, 274, 0, 0, 0, 174, 32, 33,
411 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
412 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
413 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
414 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
415 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
416 0, 0, 0, 0, 171, 0, 0, 0, 174, 32,
417 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
418 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
419 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
420 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
421 73, 74, 0, 0, 0, 0, 0, 0, 0, 0,
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
423 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
Zack Williamse940c7a2019-08-21 14:25:39 -0700424 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
425 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
Scott Baker4a35a702019-11-26 08:17:33 -0800426 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
427 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0, 77, 32,
429 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
430 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
431 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
432 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
433 73, 74, 0, 0, 0, 0, 0, 0, 0, 0,
434 0, 0, 0, 129, 0, 0, 0, 233, 32, 33,
435 34, 35, 36, 37, 138, 39, 40, 41, 42, 132,
436 131, 130, 46, 47, 48, 49, 50, 51, 52, 53,
437 54, 55, 56, 57, 58, 59, 60, 61, 139, 143,
438 137, 65, 66, 141, 134, 135, 136, 71, 72, 73,
439 74, 0, 0, 128, 0, 0, 402, 129, 0, 0,
440 82, 0, 32, 33, 34, 35, 36, 37, 138, 39,
441 40, 41, 42, 132, 131, 130, 46, 47, 48, 49,
442 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
443 60, 61, 139, 143, 137, 65, 66, 141, 134, 135,
444 136, 71, 72, 73, 74, 0, 0, 128, 0, 0,
445 390, 129, 0, 0, 82, 0, 32, 33, 34, 35,
446 36, 37, 138, 39, 40, 41, 42, 132, 131, 130,
447 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
448 56, 57, 58, 59, 60, 61, 139, 143, 137, 65,
449 66, 141, 134, 135, 136, 71, 72, 73, 74, 0,
450 0, 128, 0, 0, 389, 129, 0, 0, 82, 0,
451 32, 33, 34, 35, 36, 37, 138, 39, 40, 41,
452 42, 132, 131, 130, 46, 47, 48, 49, 50, 51,
453 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
454 139, 143, 137, 65, 66, 141, 134, 135, 136, 71,
455 72, 73, 74, 0, 0, 128, 0, 0, 388, 298,
456 0, 0, 82, 0, 32, 33, 34, 35, 36, 37,
457 138, 39, 40, 41, 42, 43, 44, 45, 46, 47,
458 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
459 58, 59, 60, 300, 62, 63, 64, 65, 66, 67,
460 68, 69, 70, 71, 72, 73, 74, 0, 0, 297,
461 0, 0, 333, 159, 0, 0, 82, 0, 32, 33,
462 34, 35, 36, 37, 38, 39, 40, 41, 42, 132,
463 131, 130, 46, 47, 48, 49, 50, 51, 52, 53,
464 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
465 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
466 74, 0, 0, 158, 0, 0, 214, 129, 0, 0,
467 82, 0, 32, 33, 34, 35, 36, 37, 138, 39,
468 40, 41, 42, 132, 131, 130, 46, 47, 48, 49,
469 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
470 60, 61, 139, 143, 137, 65, 66, 141, 134, 135,
471 136, 71, 72, 73, 74, 0, 0, 128, 0, 0,
472 185, 129, 0, 0, 82, 0, 32, 33, 34, 35,
473 36, 37, 138, 39, 40, 41, 42, 132, 131, 130,
474 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
475 56, 57, 58, 59, 60, 61, 139, 143, 137, 65,
476 66, 141, 134, 135, 136, 71, 72, 73, 74, 0,
477 0, 128, 0, 0, 298, 0, 0, 0, 82, 32,
478 33, 34, 35, 36, 37, 138, 39, 40, 41, 42,
479 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
480 53, 54, 55, 56, 57, 58, 59, 60, 300, 62,
481 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
482 73, 74, 0, 0, 297, 0, 0, 159, 0, 0,
483 0, 82, 32, 33, 34, 35, 36, 37, 38, 39,
484 40, 41, 42, 132, 131, 130, 46, 47, 48, 49,
485 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
486 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
487 70, 71, 72, 73, 74, 0, 0, 158, 0, 0,
488 231, 0, 0, 0, 82, 32, 33, 34, 35, 36,
489 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
490 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
491 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
492 67, 68, 69, 70, 71, 72, 73, 74, 0, 0,
493 0, 0, 0, 0, 0, 0, 0, 82, 32, 33,
Zack Williamse940c7a2019-08-21 14:25:39 -0700494 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
495 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
496 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
Scott Baker4a35a702019-11-26 08:17:33 -0800497 64, 65, 66, 67, 68, 69, 70, 71, 72, 310,
498 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
499 82, 32, 33, 34, 35, 36, 37, 38, 39, 40,
500 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
501 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
502 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
503 71, 72, 73, 74, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 82, 32, 33, 34, 35, 36, 37,
505 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
506 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
507 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
508 68, 69, 70, 71, 72, 73, 74, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 184, 32, 33, 34,
510 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
511 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
512 55, 56, 57, 58, 59, 60, 193, 62, 63, 64,
513 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
515 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
516 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
517 52, 53, 54, 55, 56, 57, 58, 59, 60, 191,
518 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
519 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 82, 32, 33, 34, 35, 36, 37, 38,
Zack Williamse940c7a2019-08-21 14:25:39 -0700521 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
522 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
Scott Baker4a35a702019-11-26 08:17:33 -0800523 59, 60, 189, 62, 63, 64, 65, 66, 67, 68,
524 69, 70, 71, 72, 73, 74, 0, 0, 0, 0,
525 0, 150, 0, 0, 0, 82, 32, 33, 34, 35,
526 36, 37, 138, 39, 40, 41, 42, 43, 44, 45,
527 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
528 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
529 66, 152, 68, 69, 70, 71, 72, 73, 74, 0,
530 150, 149, 0, 0, 204, 32, 33, 34, 35, 36,
531 37, 138, 39, 40, 41, 42, 43, 44, 45, 46,
532 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
533 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
534 152, 68, 69, 70, 71, 72, 73, 74, 0, 0,
535 149, 32, 33, 34, 35, 36, 37, 38, 39, 40,
536 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
537 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
538 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
539 71, 72, 73, 74,
Zack Williamse940c7a2019-08-21 14:25:39 -0700540}
541var protoPact = [...]int{
542
Scott Baker4a35a702019-11-26 08:17:33 -0800543 162, -1000, 224, 224, 202, -1000, -1000, -1000, -1000, -1000,
544 -1000, -1000, -1000, -1000, 166, 319, 2584, 1463, 2584, 2584,
545 2224, 2584, 224, -1000, 315, -1000, 191, 315, 315, -1000,
546 68, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
Zack Williamse940c7a2019-08-21 14:25:39 -0700547 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
548 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
549 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
Scott Baker4a35a702019-11-26 08:17:33 -0800550 -1000, -1000, -1000, -1000, -1000, 201, 27, 2224, 97, 95,
551 94, 27, 2584, 89, 182, -1000, -1000, 175, 152, -1000,
552 2584, 856, 8, 1959, 2538, 2065, 27, 150, -1000, -1000,
553 -1000, -1000, 164, -1000, -1000, 312, -1000, -1000, -1000, -1000,
554 1402, -1000, 308, 306, -1000, 2277, 1905, -1000, -1000, -1000,
555 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 163,
556 2436, 2383, 2330, 2584, 2584, 2584, 2224, 299, 1463, 2584,
557 2584, 256, -1000, 20, 2489, -1000, -1000, -1000, -1000, -1000,
558 161, 199, 67, -1000, 1851, -1000, -1000, -1000, -1000, 158,
559 170, -1000, -1000, -1000, -1000, 148, 2584, -1000, 1036, -1000,
560 90, 87, 26, -1000, 2118, -1000, -1000, -1000, -1000, -1000,
561 -1000, -1000, 2277, -1000, 1522, -1000, -1000, -1000, 2584, 2584,
562 2584, 2584, 2584, 2584, 198, -12, -1000, 217, 79, 196,
563 78, 69, 312, 1124, -1000, -1000, -1000, 73, 45, -1000,
564 216, -1000, -1000, 305, -1000, -1000, -1000, -1000, -1000, -1000,
565 12, -1000, -1000, -1000, -1000, -1000, -1000, 487, -1000, 1341,
566 -3, -4, -1000, 2224, 195, 193, 189, 188, 184, 181,
567 302, -1000, 146, 299, 1463, 237, 2012, 294, -1000, -1000,
568 315, 24, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
569 -1000, -1000, -1000, -1000, 9, 73, -1000, 62, 2171, -1000,
570 422, -1000, 1280, 975, 55, -1000, -1000, 4, 286, 283,
571 275, 272, 261, 260, 6, -1000, -1000, -21, -1000, 180,
572 -1000, -1000, 1797, -1000, -1000, -1000, -1000, -1000, 106, 2584,
573 2584, 1, 312, 2224, -1000, 105, -1000, -1000, -1000, 3,
574 2224, -1000, -1000, -14, -8, -1000, 1219, 914, 52, -1000,
575 -1000, -1000, -10, 64, -11, 60, -15, 47, -1000, 103,
576 -1000, 1463, 856, -1000, -1000, -1000, 178, 168, -1000, 102,
577 22, -1000, 172, -1000, -1000, 612, 551, -1000, 792, 48,
578 -1000, -1000, -1000, 101, 1959, -1000, 80, 1959, -1000, 71,
579 1959, -1000, -1000, -1000, 259, 258, -1000, -1000, 10, -1000,
580 1158, -1000, 1097, -1000, -1000, -1000, 1743, -1000, 1689, -1000,
581 1635, -16, 44, 2171, 731, 33, 670, 29, -1000, -1000,
582 -1000, -1000, 50, 1959, 0, -1000, -1000, -1000, -1000, -1000,
583 1581, 65, -1000, -1000, 207, 186, -1000, -1000, -1000, 35,
Zack Williamse940c7a2019-08-21 14:25:39 -0700584 -1000, -1000, -1000,
585}
586var protoPgo = [...]int{
587
Scott Baker4a35a702019-11-26 08:17:33 -0800588 0, 397, 392, 302, 331, 391, 390, 1, 11, 389,
589 3, 383, 9, 18, 382, 43, 32, 17, 23, 381,
590 380, 16, 15, 0, 377, 27, 28, 376, 375, 25,
591 8, 372, 29, 369, 363, 26, 362, 360, 358, 351,
592 7, 6, 12, 356, 353, 350, 348, 33, 14, 31,
593 13, 344, 340, 292, 35, 338, 337, 286, 30, 336,
594 34, 335, 21, 327, 320, 10,
Zack Williamse940c7a2019-08-21 14:25:39 -0700595}
596var protoR1 = [...]int{
597
598 0, 1, 1, 1, 1, 4, 4, 3, 3, 3,
Scott Baker4a35a702019-11-26 08:17:33 -0800599 3, 3, 3, 3, 3, 3, 3, 2, 5, 5,
600 5, 6, 25, 25, 7, 12, 12, 12, 13, 13,
601 14, 14, 16, 16, 17, 17, 17, 17, 17, 19,
602 19, 22, 21, 21, 20, 20, 20, 20, 20, 60,
603 60, 18, 29, 29, 29, 30, 30, 30, 30, 30,
604 30, 31, 31, 31, 31, 31, 31, 31, 31, 31,
605 31, 27, 27, 27, 28, 28, 28, 28, 28, 28,
606 28, 28, 28, 26, 26, 32, 32, 32, 32, 32,
607 32, 32, 32, 15, 9, 9, 8, 35, 35, 35,
608 34, 43, 43, 43, 42, 42, 42, 42, 42, 42,
609 33, 33, 36, 37, 37, 38, 24, 24, 24, 24,
610 24, 24, 24, 24, 24, 24, 24, 24, 52, 52,
611 49, 49, 48, 48, 48, 51, 51, 50, 50, 50,
612 45, 45, 46, 46, 47, 44, 44, 53, 55, 55,
613 55, 54, 54, 54, 54, 54, 54, 56, 56, 39,
614 41, 41, 41, 40, 40, 40, 40, 40, 40, 40,
615 40, 40, 40, 40, 40, 40, 57, 59, 59, 59,
616 58, 58, 58, 58, 58, 61, 63, 63, 63, 62,
617 62, 62, 62, 62, 64, 64, 65, 65, 11, 11,
618 11, 10, 10, 10, 10, 23, 23, 23, 23, 23,
619 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
620 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
621 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
622 23, 23, 23, 23, 23, 23, 23, 23,
Zack Williamse940c7a2019-08-21 14:25:39 -0700623}
624var protoR2 = [...]int{
625
626 0, 1, 1, 2, 0, 2, 1, 1, 1, 1,
Scott Baker4a35a702019-11-26 08:17:33 -0800627 1, 1, 1, 1, 1, 2, 1, 4, 3, 4,
628 4, 3, 1, 3, 5, 1, 3, 4, 1, 2,
629 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
630 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
631 2, 3, 1, 2, 0, 1, 2, 2, 2, 2,
632 1, 3, 4, 5, 5, 3, 2, 5, 4, 5,
633 4, 1, 3, 3, 1, 3, 3, 3, 5, 5,
634 3, 5, 5, 1, 2, 6, 6, 6, 5, 7,
635 7, 7, 6, 3, 3, 1, 3, 8, 8, 8,
636 5, 2, 1, 0, 1, 1, 1, 1, 2, 1,
637 5, 6, 7, 5, 6, 6, 1, 1, 1, 1,
638 1, 1, 1, 1, 1, 1, 1, 1, 3, 4,
639 3, 1, 1, 3, 3, 3, 1, 1, 3, 3,
640 3, 1, 3, 1, 3, 3, 1, 5, 2, 1,
641 0, 1, 1, 1, 1, 2, 1, 4, 5, 5,
642 2, 1, 0, 1, 1, 1, 1, 1, 1, 1,
643 1, 1, 1, 1, 2, 1, 5, 2, 1, 0,
644 1, 1, 1, 2, 1, 5, 2, 1, 0, 1,
645 1, 1, 2, 1, 10, 12, 2, 1, 2, 1,
646 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
Zack Williamse940c7a2019-08-21 14:25:39 -0700647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Scott Baker4a35a702019-11-26 08:17:33 -0800650 1, 1, 1, 1, 1, 1, 1, 1,
Zack Williamse940c7a2019-08-21 14:25:39 -0700651}
652var protoChk = [...]int{
653
Scott Baker4a35a702019-11-26 08:17:33 -0800654 -1000, -1, -2, -4, 8, -3, -5, -6, -7, -39,
655 -53, -57, -61, 52, 2, 9, 12, 13, 44, 43,
656 45, 46, -4, -3, 51, 52, -60, 10, 11, 4,
657 -25, -23, 7, 8, 9, 10, 11, 12, 13, 14,
658 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
659 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
660 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
661 45, 46, 47, 48, 49, -12, -25, 65, -23, -23,
662 -26, -25, 59, -23, -60, 52, 4, -60, -60, 52,
663 59, 51, -26, 54, 54, 54, -25, 54, 52, 52,
664 52, -23, -16, -17, -18, -60, -19, -22, -20, -23,
665 54, 5, 63, 64, 6, 66, -41, -40, -32, -53,
666 -39, -57, -52, -35, -7, -34, -37, -45, 52, 2,
667 20, 19, 18, -26, 43, 44, 45, 39, 13, 37,
668 -38, 42, -47, 38, -55, -54, -7, -56, -46, 52,
669 2, -23, 42, -47, -59, -58, -32, -35, 52, 2,
670 -63, -62, -7, -64, 52, 2, 47, 52, -29, -30,
671 -31, 2, -27, -23, 67, 5, 6, 16, 5, 6,
672 16, -13, -14, -26, 59, 55, -40, 52, -26, 36,
673 -26, 36, -26, 36, -23, -49, -48, 5, -23, -23,
674 -49, -44, -60, 62, 55, -54, 52, 51, -51, -50,
675 -21, -22, 5, 64, 55, -58, 52, 55, -62, 52,
676 -23, 55, -30, 60, 52, 60, 52, 53, -18, 62,
677 -26, 2, -13, 65, -23, -23, -23, -23, -23, -23,
678 51, 52, -15, 60, 67, 40, 54, 51, 52, 52,
679 60, -24, 23, 24, 25, 26, 27, 28, 29, 30,
680 31, 32, 33, 34, -21, 60, 52, 40, 65, -17,
681 67, -18, 62, -29, 2, 68, 68, -26, 51, 51,
682 51, 51, 51, 51, 5, 52, -48, -9, -8, -12,
683 5, 41, -43, -42, -7, -33, -36, 52, 2, -26,
684 36, 5, -60, 60, 52, -15, -50, -21, 41, -65,
685 48, -26, 68, -28, 2, -16, 62, -29, 2, 61,
686 61, 66, 5, 5, 5, 5, 5, 5, 52, -15,
687 68, 60, 51, 55, -42, 52, -23, -23, 52, -15,
688 -26, 52, 66, -26, 68, 60, 52, 68, -29, 2,
689 61, 61, 52, -15, 54, 52, -15, 54, 52, -15,
690 54, 52, -8, -16, 51, 51, 52, 61, 49, -16,
691 62, -16, 62, 61, 61, 52, -41, 52, -41, 52,
692 -41, 5, 5, 65, -29, 2, -29, 2, 55, 55,
693 55, 52, -15, 54, -65, 61, 61, 61, 61, 52,
694 -41, 66, 55, 52, 54, -11, -10, -7, 52, 2,
695 55, -10, 52,
Zack Williamse940c7a2019-08-21 14:25:39 -0700696}
697var protoDef = [...]int{
698
Scott Baker4a35a702019-11-26 08:17:33 -0800699 -2, -2, -2, -2, 0, 6, 7, 8, 9, 10,
700 11, 12, 13, 14, 16, 0, 0, 0, 0, 0,
701 0, 0, -2, 5, 0, 15, 0, 0, 0, 49,
702 0, 22, 205, 206, 207, 208, 209, 210, 211, 212,
703 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
704 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
705 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
706 243, 244, 245, 246, 247, 0, 25, 0, 0, 0,
707 0, 83, 0, 0, 0, 18, 50, 0, 0, 21,
708 0, 0, 0, -2, -2, -2, 84, -2, 17, 19,
709 20, 23, 0, 32, 33, 34, 35, 36, 37, 38,
710 -2, 39, 0, 0, 44, 26, 0, 161, 163, 164,
711 165, 166, 167, 168, 169, 170, 171, 172, 173, 175,
712 0, 0, 0, 0, 241, 242, 0, 237, 211, 235,
713 0, 240, 141, 236, 0, 149, 151, 152, 153, 154,
714 156, 0, 240, 143, 0, 178, 180, 181, 182, 184,
715 0, 187, 189, 190, 191, 193, 0, 24, 0, 52,
716 55, 60, 0, 71, 0, 40, 46, 47, 41, 45,
717 48, 27, 28, 30, 0, 159, 160, 174, 0, 234,
718 0, 234, 0, 234, 0, 0, 131, 132, 0, 0,
719 0, 0, 146, 0, 147, 148, 155, 0, 0, 136,
720 137, 42, 43, 0, 176, 177, 183, 185, 186, 192,
721 0, 51, 53, 56, 57, 58, 59, 0, 66, -2,
722 0, 0, 29, 0, 0, 0, 0, 0, 0, 0,
723 0, 128, 0, 0, 0, 0, -2, 0, 140, 144,
724 0, 0, 116, 117, 118, 119, 120, 121, 122, 123,
725 124, 125, 126, 127, 0, 0, 142, 0, 0, 61,
726 0, 65, -2, 0, 60, 72, 73, 0, 0, 0,
727 0, 0, 0, 0, 0, 129, 130, 0, 95, 0,
728 133, 134, 0, 102, 104, 105, 106, 107, 109, 0,
729 234, 0, 145, 0, 157, 0, 135, 138, 139, 0,
730 246, 197, 62, 0, 0, 74, -2, 0, 60, 68,
731 70, 31, 0, 0, 0, 0, 0, 0, 88, 0,
732 93, 0, 0, 100, 101, 108, 0, 0, 113, 0,
733 0, 158, 0, 196, 63, 0, 0, 64, 0, 60,
734 67, 69, 85, 0, -2, 86, 0, -2, 87, 0,
735 -2, 92, 94, 96, 0, 0, 114, 115, 0, 75,
736 -2, 76, -2, 77, 80, 89, 0, 90, 0, 91,
737 0, 0, 0, 0, 0, 60, 0, 60, 97, 98,
738 99, 110, 0, -2, 0, 78, 81, 79, 82, 111,
739 0, 0, 112, 194, -2, 0, 199, 201, 202, 204,
740 195, 198, 203,
Zack Williamse940c7a2019-08-21 14:25:39 -0700741}
742var protoTok1 = [...]int{
743
744 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
745 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
746 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Scott Baker4a35a702019-11-26 08:17:33 -0800747 3, 3, 3, 76, 3, 74, 73, 72, 70, 3,
748 65, 66, 69, 63, 60, 64, 59, 57, 3, 3,
749 3, 3, 3, 3, 3, 3, 3, 3, 53, 52,
750 62, 51, 61, 58, 75, 3, 3, 3, 3, 3,
Zack Williamse940c7a2019-08-21 14:25:39 -0700751 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
752 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Scott Baker4a35a702019-11-26 08:17:33 -0800753 3, 67, 56, 68, 71, 3, 78, 3, 3, 3,
Zack Williamse940c7a2019-08-21 14:25:39 -0700754 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
755 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
Scott Baker4a35a702019-11-26 08:17:33 -0800756 3, 3, 3, 54, 3, 55, 77,
Zack Williamse940c7a2019-08-21 14:25:39 -0700757}
758var protoTok2 = [...]int{
759
760 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
761 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
762 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
763 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
Scott Baker4a35a702019-11-26 08:17:33 -0800764 42, 43, 44, 45, 46, 47, 48, 49, 50,
Zack Williamse940c7a2019-08-21 14:25:39 -0700765}
766var protoTok3 = [...]int{
767 0,
768}
769
770var protoErrorMessages = [...]struct {
771 state int
772 token int
773 msg string
774}{}
775
776//line yaccpar:1
777
778/* parser for yacc output */
779
780var (
781 protoDebug = 0
782 protoErrorVerbose = false
783)
784
785type protoLexer interface {
786 Lex(lval *protoSymType) int
787 Error(s string)
788}
789
790type protoParser interface {
791 Parse(protoLexer) int
792 Lookahead() int
793}
794
795type protoParserImpl struct {
796 lval protoSymType
797 stack [protoInitialStackSize]protoSymType
798 char int
799}
800
801func (p *protoParserImpl) Lookahead() int {
802 return p.char
803}
804
805func protoNewParser() protoParser {
806 return &protoParserImpl{}
807}
808
809const protoFlag = -1000
810
811func protoTokname(c int) string {
812 if c >= 1 && c-1 < len(protoToknames) {
813 if protoToknames[c-1] != "" {
814 return protoToknames[c-1]
815 }
816 }
817 return __yyfmt__.Sprintf("tok-%v", c)
818}
819
820func protoStatname(s int) string {
821 if s >= 0 && s < len(protoStatenames) {
822 if protoStatenames[s] != "" {
823 return protoStatenames[s]
824 }
825 }
826 return __yyfmt__.Sprintf("state-%v", s)
827}
828
829func protoErrorMessage(state, lookAhead int) string {
830 const TOKSTART = 4
831
832 if !protoErrorVerbose {
833 return "syntax error"
834 }
835
836 for _, e := range protoErrorMessages {
837 if e.state == state && e.token == lookAhead {
838 return "syntax error: " + e.msg
839 }
840 }
841
842 res := "syntax error: unexpected " + protoTokname(lookAhead)
843
844 // To match Bison, suggest at most four expected tokens.
845 expected := make([]int, 0, 4)
846
847 // Look for shiftable tokens.
848 base := protoPact[state]
849 for tok := TOKSTART; tok-1 < len(protoToknames); tok++ {
850 if n := base + tok; n >= 0 && n < protoLast && protoChk[protoAct[n]] == tok {
851 if len(expected) == cap(expected) {
852 return res
853 }
854 expected = append(expected, tok)
855 }
856 }
857
858 if protoDef[state] == -2 {
859 i := 0
860 for protoExca[i] != -1 || protoExca[i+1] != state {
861 i += 2
862 }
863
864 // Look for tokens that we accept or reduce.
865 for i += 2; protoExca[i] >= 0; i += 2 {
866 tok := protoExca[i]
867 if tok < TOKSTART || protoExca[i+1] == 0 {
868 continue
869 }
870 if len(expected) == cap(expected) {
871 return res
872 }
873 expected = append(expected, tok)
874 }
875
876 // If the default action is to accept or reduce, give up.
877 if protoExca[i+1] != 0 {
878 return res
879 }
880 }
881
882 for i, tok := range expected {
883 if i == 0 {
884 res += ", expecting "
885 } else {
886 res += " or "
887 }
888 res += protoTokname(tok)
889 }
890 return res
891}
892
893func protolex1(lex protoLexer, lval *protoSymType) (char, token int) {
894 token = 0
895 char = lex.Lex(lval)
896 if char <= 0 {
897 token = protoTok1[0]
898 goto out
899 }
900 if char < len(protoTok1) {
901 token = protoTok1[char]
902 goto out
903 }
904 if char >= protoPrivate {
905 if char < protoPrivate+len(protoTok2) {
906 token = protoTok2[char-protoPrivate]
907 goto out
908 }
909 }
910 for i := 0; i < len(protoTok3); i += 2 {
911 token = protoTok3[i+0]
912 if token == char {
913 token = protoTok3[i+1]
914 goto out
915 }
916 }
917
918out:
919 if token == 0 {
920 token = protoTok2[1] /* unknown char */
921 }
922 if protoDebug >= 3 {
923 __yyfmt__.Printf("lex %s(%d)\n", protoTokname(token), uint(char))
924 }
925 return char, token
926}
927
928func protoParse(protolex protoLexer) int {
929 return protoNewParser().Parse(protolex)
930}
931
932func (protorcvr *protoParserImpl) Parse(protolex protoLexer) int {
933 var proton int
934 var protoVAL protoSymType
935 var protoDollar []protoSymType
936 _ = protoDollar // silence set and not used
937 protoS := protorcvr.stack[:]
938
939 Nerrs := 0 /* number of errors */
940 Errflag := 0 /* error recovery flag */
941 protostate := 0
942 protorcvr.char = -1
943 prototoken := -1 // protorcvr.char translated into internal numbering
944 defer func() {
945 // Make sure we report no lookahead when not parsing.
946 protostate = -1
947 protorcvr.char = -1
948 prototoken = -1
949 }()
950 protop := -1
951 goto protostack
952
953ret0:
954 return 0
955
956ret1:
957 return 1
958
959protostack:
960 /* put a state and value onto the stack */
961 if protoDebug >= 4 {
962 __yyfmt__.Printf("char %v in %v\n", protoTokname(prototoken), protoStatname(protostate))
963 }
964
965 protop++
966 if protop >= len(protoS) {
967 nyys := make([]protoSymType, len(protoS)*2)
968 copy(nyys, protoS)
969 protoS = nyys
970 }
971 protoS[protop] = protoVAL
972 protoS[protop].yys = protostate
973
974protonewstate:
975 proton = protoPact[protostate]
976 if proton <= protoFlag {
977 goto protodefault /* simple state */
978 }
979 if protorcvr.char < 0 {
980 protorcvr.char, prototoken = protolex1(protolex, &protorcvr.lval)
981 }
982 proton += prototoken
983 if proton < 0 || proton >= protoLast {
984 goto protodefault
985 }
986 proton = protoAct[proton]
987 if protoChk[proton] == prototoken { /* valid shift */
988 protorcvr.char = -1
989 prototoken = -1
990 protoVAL = protorcvr.lval
991 protostate = proton
992 if Errflag > 0 {
993 Errflag--
994 }
995 goto protostack
996 }
997
998protodefault:
999 /* default state action */
1000 proton = protoDef[protostate]
1001 if proton == -2 {
1002 if protorcvr.char < 0 {
1003 protorcvr.char, prototoken = protolex1(protolex, &protorcvr.lval)
1004 }
1005
1006 /* look through exception table */
1007 xi := 0
1008 for {
1009 if protoExca[xi+0] == -1 && protoExca[xi+1] == protostate {
1010 break
1011 }
1012 xi += 2
1013 }
1014 for xi += 2; ; xi += 2 {
1015 proton = protoExca[xi+0]
1016 if proton < 0 || proton == prototoken {
1017 break
1018 }
1019 }
1020 proton = protoExca[xi+1]
1021 if proton < 0 {
1022 goto ret0
1023 }
1024 }
1025 if proton == 0 {
1026 /* error ... attempt to resume parsing */
1027 switch Errflag {
1028 case 0: /* brand new error */
1029 protolex.Error(protoErrorMessage(protostate, prototoken))
1030 Nerrs++
1031 if protoDebug >= 1 {
1032 __yyfmt__.Printf("%s", protoStatname(protostate))
1033 __yyfmt__.Printf(" saw %s\n", protoTokname(prototoken))
1034 }
1035 fallthrough
1036
1037 case 1, 2: /* incompletely recovered error ... try again */
1038 Errflag = 3
1039
1040 /* find a state where "error" is a legal shift action */
1041 for protop >= 0 {
1042 proton = protoPact[protoS[protop].yys] + protoErrCode
1043 if proton >= 0 && proton < protoLast {
1044 protostate = protoAct[proton] /* simulate a shift of "error" */
1045 if protoChk[protostate] == protoErrCode {
1046 goto protostack
1047 }
1048 }
1049
1050 /* the current p has no shift on "error", pop stack */
1051 if protoDebug >= 2 {
1052 __yyfmt__.Printf("error recovery pops state %d\n", protoS[protop].yys)
1053 }
1054 protop--
1055 }
1056 /* there is no state on the stack with an error shift ... abort */
1057 goto ret1
1058
1059 case 3: /* no shift yet; clobber input char */
1060 if protoDebug >= 2 {
1061 __yyfmt__.Printf("error recovery discards %s\n", protoTokname(prototoken))
1062 }
1063 if prototoken == protoEofCode {
1064 goto ret1
1065 }
1066 protorcvr.char = -1
1067 prototoken = -1
1068 goto protonewstate /* try again in the same state */
1069 }
1070 }
1071
1072 /* reduction by production proton */
1073 if protoDebug >= 2 {
1074 __yyfmt__.Printf("reduce %v in:\n\t%v\n", proton, protoStatname(protostate))
1075 }
1076
1077 protont := proton
1078 protopt := protop
1079 _ = protopt // guard against "declared and not used"
1080
1081 protop -= protoR2[proton]
1082 // protop is now the index of $0. Perform the default action. Iff the
1083 // reduced production is ε, $1 is possibly out of range.
1084 if protop+1 >= len(protoS) {
1085 nyys := make([]protoSymType, len(protoS)*2)
1086 copy(nyys, protoS)
1087 protoS = nyys
1088 }
1089 protoVAL = protoS[protop+1]
1090
1091 /* consult goto table to find next state */
1092 proton = protoR1[proton]
1093 protog := protoPgo[proton]
1094 protoj := protog + protoS[protop].yys + 1
1095
1096 if protoj >= protoLast {
1097 protostate = protoAct[protog]
1098 } else {
1099 protostate = protoAct[protoj]
1100 if protoChk[protostate] != -proton {
1101 protostate = protoAct[protog]
1102 }
1103 }
1104 // dummy call; replaced with literal code
1105 switch protont {
1106
1107 case 1:
1108 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001109//line proto.y:119
Zack Williamse940c7a2019-08-21 14:25:39 -07001110 {
1111 protoVAL.file = &fileNode{syntax: protoDollar[1].syn}
1112 protoVAL.file.setRange(protoDollar[1].syn, protoDollar[1].syn)
1113 protolex.(*protoLex).res = protoVAL.file
1114 }
1115 case 2:
1116 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001117//line proto.y:124
Zack Williamse940c7a2019-08-21 14:25:39 -07001118 {
1119 protoVAL.file = &fileNode{decls: protoDollar[1].fileDecls}
1120 if len(protoDollar[1].fileDecls) > 0 {
1121 protoVAL.file.setRange(protoDollar[1].fileDecls[0], protoDollar[1].fileDecls[len(protoDollar[1].fileDecls)-1])
1122 }
1123 protolex.(*protoLex).res = protoVAL.file
1124 }
1125 case 3:
1126 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001127//line proto.y:131
Zack Williamse940c7a2019-08-21 14:25:39 -07001128 {
1129 protoVAL.file = &fileNode{syntax: protoDollar[1].syn, decls: protoDollar[2].fileDecls}
1130 var end node
1131 if len(protoDollar[2].fileDecls) > 0 {
1132 end = protoDollar[2].fileDecls[len(protoDollar[2].fileDecls)-1]
1133 } else {
1134 end = protoDollar[1].syn
1135 }
1136 protoVAL.file.setRange(protoDollar[1].syn, end)
1137 protolex.(*protoLex).res = protoVAL.file
1138 }
1139 case 4:
1140 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001141//line proto.y:142
Zack Williamse940c7a2019-08-21 14:25:39 -07001142 {
1143 }
1144 case 5:
1145 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001146//line proto.y:145
Zack Williamse940c7a2019-08-21 14:25:39 -07001147 {
1148 protoVAL.fileDecls = append(protoDollar[1].fileDecls, protoDollar[2].fileDecls...)
1149 }
1150 case 7:
1151 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001152//line proto.y:150
Zack Williamse940c7a2019-08-21 14:25:39 -07001153 {
1154 protoVAL.fileDecls = []*fileElement{{imp: protoDollar[1].imprt}}
1155 }
1156 case 8:
1157 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001158//line proto.y:153
Zack Williamse940c7a2019-08-21 14:25:39 -07001159 {
1160 protoVAL.fileDecls = []*fileElement{{pkg: protoDollar[1].pkg}}
1161 }
1162 case 9:
1163 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001164//line proto.y:156
Zack Williamse940c7a2019-08-21 14:25:39 -07001165 {
1166 protoVAL.fileDecls = []*fileElement{{option: protoDollar[1].opts[0]}}
1167 }
1168 case 10:
1169 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001170//line proto.y:159
Zack Williamse940c7a2019-08-21 14:25:39 -07001171 {
1172 protoVAL.fileDecls = []*fileElement{{message: protoDollar[1].msg}}
1173 }
1174 case 11:
1175 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001176//line proto.y:162
Zack Williamse940c7a2019-08-21 14:25:39 -07001177 {
1178 protoVAL.fileDecls = []*fileElement{{enum: protoDollar[1].en}}
1179 }
1180 case 12:
1181 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001182//line proto.y:165
Zack Williamse940c7a2019-08-21 14:25:39 -07001183 {
1184 protoVAL.fileDecls = []*fileElement{{extend: protoDollar[1].extend}}
1185 }
1186 case 13:
1187 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001188//line proto.y:168
Zack Williamse940c7a2019-08-21 14:25:39 -07001189 {
1190 protoVAL.fileDecls = []*fileElement{{service: protoDollar[1].svc}}
1191 }
1192 case 14:
1193 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001194//line proto.y:171
Zack Williamse940c7a2019-08-21 14:25:39 -07001195 {
1196 protoVAL.fileDecls = []*fileElement{{empty: protoDollar[1].b}}
1197 }
1198 case 15:
Scott Baker4a35a702019-11-26 08:17:33 -08001199 protoDollar = protoS[protopt-2 : protopt+1]
1200//line proto.y:174
1201 {
1202 }
1203 case 16:
1204 protoDollar = protoS[protopt-1 : protopt+1]
1205//line proto.y:176
1206 {
1207 }
1208 case 17:
Zack Williamse940c7a2019-08-21 14:25:39 -07001209 protoDollar = protoS[protopt-4 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001210//line proto.y:179
Zack Williamse940c7a2019-08-21 14:25:39 -07001211 {
1212 if protoDollar[3].str.val != "proto2" && protoDollar[3].str.val != "proto3" {
1213 lexError(protolex, protoDollar[3].str.start(), "syntax value must be 'proto2' or 'proto3'")
1214 }
1215 protoVAL.syn = &syntaxNode{syntax: protoDollar[3].str}
1216 protoVAL.syn.setRange(protoDollar[1].id, protoDollar[4].b)
1217 }
Scott Baker4a35a702019-11-26 08:17:33 -08001218 case 18:
Zack Williamse940c7a2019-08-21 14:25:39 -07001219 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001220//line proto.y:187
Zack Williamse940c7a2019-08-21 14:25:39 -07001221 {
1222 protoVAL.imprt = &importNode{name: protoDollar[2].str}
1223 protoVAL.imprt.setRange(protoDollar[1].id, protoDollar[3].b)
1224 }
Scott Baker4a35a702019-11-26 08:17:33 -08001225 case 19:
Zack Williamse940c7a2019-08-21 14:25:39 -07001226 protoDollar = protoS[protopt-4 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001227//line proto.y:191
Zack Williamse940c7a2019-08-21 14:25:39 -07001228 {
1229 protoVAL.imprt = &importNode{name: protoDollar[3].str, weak: true}
1230 protoVAL.imprt.setRange(protoDollar[1].id, protoDollar[4].b)
1231 }
Scott Baker4a35a702019-11-26 08:17:33 -08001232 case 20:
Zack Williamse940c7a2019-08-21 14:25:39 -07001233 protoDollar = protoS[protopt-4 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001234//line proto.y:195
Zack Williamse940c7a2019-08-21 14:25:39 -07001235 {
1236 protoVAL.imprt = &importNode{name: protoDollar[3].str, public: true}
1237 protoVAL.imprt.setRange(protoDollar[1].id, protoDollar[4].b)
1238 }
Scott Baker4a35a702019-11-26 08:17:33 -08001239 case 21:
Zack Williamse940c7a2019-08-21 14:25:39 -07001240 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001241//line proto.y:200
Zack Williamse940c7a2019-08-21 14:25:39 -07001242 {
Scott Baker4a35a702019-11-26 08:17:33 -08001243 protoVAL.pkg = &packageNode{name: protoDollar[2].cid}
Zack Williamse940c7a2019-08-21 14:25:39 -07001244 protoVAL.pkg.setRange(protoDollar[1].id, protoDollar[3].b)
1245 }
1246 case 22:
Scott Baker4a35a702019-11-26 08:17:33 -08001247 protoDollar = protoS[protopt-1 : protopt+1]
1248//line proto.y:205
1249 {
1250 protoVAL.cid = &compoundIdentNode{val: protoDollar[1].id.val}
1251 protoVAL.cid.setRange(protoDollar[1].id, protoDollar[1].id)
1252 }
1253 case 23:
1254 protoDollar = protoS[protopt-3 : protopt+1]
1255//line proto.y:209
1256 {
1257 protoVAL.cid = &compoundIdentNode{val: protoDollar[1].cid.val + "." + protoDollar[3].id.val}
1258 protoVAL.cid.setRange(protoDollar[1].cid, protoDollar[3].id)
1259 }
1260 case 24:
Zack Williamse940c7a2019-08-21 14:25:39 -07001261 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001262//line proto.y:214
Zack Williamse940c7a2019-08-21 14:25:39 -07001263 {
1264 n := &optionNameNode{parts: protoDollar[2].optNm}
1265 n.setRange(protoDollar[2].optNm[0], protoDollar[2].optNm[len(protoDollar[2].optNm)-1])
1266 o := &optionNode{name: n, val: protoDollar[4].v}
1267 o.setRange(protoDollar[1].id, protoDollar[5].b)
1268 protoVAL.opts = []*optionNode{o}
1269 }
Scott Baker4a35a702019-11-26 08:17:33 -08001270 case 25:
Zack Williamse940c7a2019-08-21 14:25:39 -07001271 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001272//line proto.y:222
Zack Williamse940c7a2019-08-21 14:25:39 -07001273 {
Scott Baker4a35a702019-11-26 08:17:33 -08001274 protoVAL.optNm = toNameParts(protoDollar[1].cid, 0)
Zack Williamse940c7a2019-08-21 14:25:39 -07001275 }
Scott Baker4a35a702019-11-26 08:17:33 -08001276 case 26:
Zack Williamse940c7a2019-08-21 14:25:39 -07001277 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001278//line proto.y:225
Zack Williamse940c7a2019-08-21 14:25:39 -07001279 {
Scott Baker4a35a702019-11-26 08:17:33 -08001280 p := &optionNamePartNode{text: protoDollar[2].cid, isExtension: true}
Zack Williamse940c7a2019-08-21 14:25:39 -07001281 p.setRange(protoDollar[1].b, protoDollar[3].b)
1282 protoVAL.optNm = []*optionNamePartNode{p}
1283 }
Scott Baker4a35a702019-11-26 08:17:33 -08001284 case 27:
Zack Williamse940c7a2019-08-21 14:25:39 -07001285 protoDollar = protoS[protopt-4 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001286//line proto.y:230
Zack Williamse940c7a2019-08-21 14:25:39 -07001287 {
Scott Baker4a35a702019-11-26 08:17:33 -08001288 p := &optionNamePartNode{text: protoDollar[2].cid, isExtension: true}
Zack Williamse940c7a2019-08-21 14:25:39 -07001289 p.setRange(protoDollar[1].b, protoDollar[3].b)
1290 ps := make([]*optionNamePartNode, 1, len(protoDollar[4].optNm)+1)
1291 ps[0] = p
1292 protoVAL.optNm = append(ps, protoDollar[4].optNm...)
1293 }
Scott Baker4a35a702019-11-26 08:17:33 -08001294 case 29:
Zack Williamse940c7a2019-08-21 14:25:39 -07001295 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001296//line proto.y:239
Zack Williamse940c7a2019-08-21 14:25:39 -07001297 {
1298 protoVAL.optNm = append(protoDollar[1].optNm, protoDollar[2].optNm...)
1299 }
Scott Baker4a35a702019-11-26 08:17:33 -08001300 case 30:
Zack Williamse940c7a2019-08-21 14:25:39 -07001301 protoDollar = protoS[protopt-1 : protopt+1]
1302//line proto.y:243
1303 {
Scott Baker4a35a702019-11-26 08:17:33 -08001304 protoVAL.optNm = toNameParts(protoDollar[1].cid, 1 /* exclude leading dot */)
1305 }
1306 case 31:
1307 protoDollar = protoS[protopt-4 : protopt+1]
1308//line proto.y:246
1309 {
1310 p := &optionNamePartNode{text: protoDollar[3].cid, isExtension: true}
1311 p.setRange(protoDollar[2].b, protoDollar[4].b)
1312 protoVAL.optNm = []*optionNamePartNode{p}
Zack Williamse940c7a2019-08-21 14:25:39 -07001313 }
1314 case 34:
1315 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001316//line proto.y:255
Zack Williamse940c7a2019-08-21 14:25:39 -07001317 {
Scott Baker4a35a702019-11-26 08:17:33 -08001318 protoVAL.v = protoDollar[1].str
Zack Williamse940c7a2019-08-21 14:25:39 -07001319 }
1320 case 36:
1321 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001322//line proto.y:259
1323 {
1324 protoVAL.v = protoDollar[1].il
1325 }
1326 case 38:
1327 protoDollar = protoS[protopt-1 : protopt+1]
1328//line proto.y:263
Zack Williamse940c7a2019-08-21 14:25:39 -07001329 {
1330 if protoDollar[1].id.val == "true" {
Scott Baker4a35a702019-11-26 08:17:33 -08001331 protoVAL.v = &boolLiteralNode{identNode: protoDollar[1].id, val: true}
Zack Williamse940c7a2019-08-21 14:25:39 -07001332 } else if protoDollar[1].id.val == "false" {
Scott Baker4a35a702019-11-26 08:17:33 -08001333 protoVAL.v = &boolLiteralNode{identNode: protoDollar[1].id, val: false}
Zack Williamse940c7a2019-08-21 14:25:39 -07001334 } else if protoDollar[1].id.val == "inf" {
Scott Baker4a35a702019-11-26 08:17:33 -08001335 f := &compoundFloatNode{val: math.Inf(1)}
Zack Williamse940c7a2019-08-21 14:25:39 -07001336 f.setRange(protoDollar[1].id, protoDollar[1].id)
1337 protoVAL.v = f
1338 } else if protoDollar[1].id.val == "nan" {
Scott Baker4a35a702019-11-26 08:17:33 -08001339 f := &compoundFloatNode{val: math.NaN()}
Zack Williamse940c7a2019-08-21 14:25:39 -07001340 f.setRange(protoDollar[1].id, protoDollar[1].id)
1341 protoVAL.v = f
1342 } else {
1343 protoVAL.v = protoDollar[1].id
1344 }
1345 }
Zack Williamse940c7a2019-08-21 14:25:39 -07001346 case 39:
Scott Baker4a35a702019-11-26 08:17:33 -08001347 protoDollar = protoS[protopt-1 : protopt+1]
1348//line proto.y:281
Zack Williamse940c7a2019-08-21 14:25:39 -07001349 {
Scott Baker4a35a702019-11-26 08:17:33 -08001350 i := &compoundUintNode{val: protoDollar[1].i.val}
1351 i.setRange(protoDollar[1].i, protoDollar[1].i)
1352 protoVAL.v = i
1353 }
1354 case 40:
1355 protoDollar = protoS[protopt-2 : protopt+1]
1356//line proto.y:286
1357 {
1358 i := &compoundUintNode{val: protoDollar[2].i.val}
1359 i.setRange(protoDollar[1].b, protoDollar[2].i)
1360 protoVAL.v = i
Zack Williamse940c7a2019-08-21 14:25:39 -07001361 }
1362 case 41:
1363 protoDollar = protoS[protopt-2 : protopt+1]
Zack Williamse940c7a2019-08-21 14:25:39 -07001364//line proto.y:292
1365 {
Scott Baker4a35a702019-11-26 08:17:33 -08001366 if protoDollar[2].i.val > math.MaxInt64+1 {
1367 lexError(protolex, protoDollar[2].i.start(), fmt.Sprintf("numeric constant %d would underflow (allowed range is %d to %d)", protoDollar[2].i.val, int64(math.MinInt64), int64(math.MaxInt64)))
1368 }
1369 i := &compoundIntNode{val: -int64(protoDollar[2].i.val)}
1370 i.setRange(protoDollar[1].b, protoDollar[2].i)
1371 protoVAL.il = i
1372 }
1373 case 43:
1374 protoDollar = protoS[protopt-1 : protopt+1]
1375//line proto.y:302
1376 {
1377 // we don't allow uintLit because this is for enum numeric vals, which don't allow '+'
1378 checkUint64InInt32Range(protolex, protoDollar[1].i.start(), protoDollar[1].i.val)
1379 i := &compoundIntNode{val: int64(protoDollar[1].i.val)}
1380 i.setRange(protoDollar[1].i, protoDollar[1].i)
1381 protoVAL.il = i
Zack Williamse940c7a2019-08-21 14:25:39 -07001382 }
1383 case 44:
Scott Baker4a35a702019-11-26 08:17:33 -08001384 protoDollar = protoS[protopt-1 : protopt+1]
1385//line proto.y:310
Zack Williamse940c7a2019-08-21 14:25:39 -07001386 {
Scott Baker4a35a702019-11-26 08:17:33 -08001387 protoVAL.v = protoDollar[1].f
1388 }
1389 case 45:
1390 protoDollar = protoS[protopt-2 : protopt+1]
1391//line proto.y:313
1392 {
1393 f := &compoundFloatNode{val: -protoDollar[2].f.val}
1394 f.setRange(protoDollar[1].b, protoDollar[2].f)
1395 protoVAL.v = f
Zack Williamse940c7a2019-08-21 14:25:39 -07001396 }
1397 case 46:
1398 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001399//line proto.y:318
Zack Williamse940c7a2019-08-21 14:25:39 -07001400 {
Scott Baker4a35a702019-11-26 08:17:33 -08001401 f := &compoundFloatNode{val: protoDollar[2].f.val}
1402 f.setRange(protoDollar[1].b, protoDollar[2].f)
1403 protoVAL.v = f
Zack Williamse940c7a2019-08-21 14:25:39 -07001404 }
1405 case 47:
Scott Baker4a35a702019-11-26 08:17:33 -08001406 protoDollar = protoS[protopt-2 : protopt+1]
1407//line proto.y:323
1408 {
1409 f := &compoundFloatNode{val: math.Inf(1)}
1410 f.setRange(protoDollar[1].b, protoDollar[2].id)
1411 protoVAL.v = f
1412 }
1413 case 48:
1414 protoDollar = protoS[protopt-2 : protopt+1]
1415//line proto.y:328
1416 {
1417 f := &compoundFloatNode{val: math.Inf(-1)}
1418 f.setRange(protoDollar[1].b, protoDollar[2].id)
1419 protoVAL.v = f
1420 }
1421 case 49:
1422 protoDollar = protoS[protopt-1 : protopt+1]
1423//line proto.y:334
1424 {
1425 protoVAL.str = &compoundStringNode{val: protoDollar[1].s.val}
1426 protoVAL.str.setRange(protoDollar[1].s, protoDollar[1].s)
1427 }
1428 case 50:
1429 protoDollar = protoS[protopt-2 : protopt+1]
1430//line proto.y:338
1431 {
1432 protoVAL.str = &compoundStringNode{val: protoDollar[1].str.val + protoDollar[2].s.val}
1433 protoVAL.str.setRange(protoDollar[1].str, protoDollar[2].s)
1434 }
1435 case 51:
Zack Williamse940c7a2019-08-21 14:25:39 -07001436 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001437//line proto.y:343
Zack Williamse940c7a2019-08-21 14:25:39 -07001438 {
1439 a := &aggregateLiteralNode{elements: protoDollar[2].agg}
1440 a.setRange(protoDollar[1].b, protoDollar[3].b)
1441 protoVAL.v = a
1442 }
Scott Baker4a35a702019-11-26 08:17:33 -08001443 case 53:
Zack Williamse940c7a2019-08-21 14:25:39 -07001444 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001445//line proto.y:350
Zack Williamse940c7a2019-08-21 14:25:39 -07001446 {
1447 protoVAL.agg = append(protoDollar[1].agg, protoDollar[2].agg...)
1448 }
Scott Baker4a35a702019-11-26 08:17:33 -08001449 case 54:
Zack Williamse940c7a2019-08-21 14:25:39 -07001450 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001451//line proto.y:353
Zack Williamse940c7a2019-08-21 14:25:39 -07001452 {
1453 protoVAL.agg = nil
1454 }
Scott Baker4a35a702019-11-26 08:17:33 -08001455 case 56:
Zack Williamse940c7a2019-08-21 14:25:39 -07001456 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001457//line proto.y:358
Zack Williamse940c7a2019-08-21 14:25:39 -07001458 {
1459 protoVAL.agg = protoDollar[1].agg
1460 }
Scott Baker4a35a702019-11-26 08:17:33 -08001461 case 57:
Zack Williamse940c7a2019-08-21 14:25:39 -07001462 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001463//line proto.y:361
Zack Williamse940c7a2019-08-21 14:25:39 -07001464 {
1465 protoVAL.agg = protoDollar[1].agg
1466 }
Scott Baker4a35a702019-11-26 08:17:33 -08001467 case 58:
1468 protoDollar = protoS[protopt-2 : protopt+1]
1469//line proto.y:364
1470 {
1471 }
1472 case 59:
1473 protoDollar = protoS[protopt-2 : protopt+1]
1474//line proto.y:366
1475 {
1476 }
1477 case 60:
1478 protoDollar = protoS[protopt-1 : protopt+1]
1479//line proto.y:368
1480 {
1481 }
1482 case 61:
Zack Williamse940c7a2019-08-21 14:25:39 -07001483 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001484//line proto.y:371
Zack Williamse940c7a2019-08-21 14:25:39 -07001485 {
1486 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: protoDollar[3].v}
1487 a.setRange(protoDollar[1].aggName, protoDollar[3].v)
1488 protoVAL.agg = []*aggregateEntryNode{a}
1489 }
Scott Baker4a35a702019-11-26 08:17:33 -08001490 case 62:
Zack Williamse940c7a2019-08-21 14:25:39 -07001491 protoDollar = protoS[protopt-4 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001492//line proto.y:376
Zack Williamse940c7a2019-08-21 14:25:39 -07001493 {
1494 s := &sliceLiteralNode{}
1495 s.setRange(protoDollar[3].b, protoDollar[4].b)
1496 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s}
1497 a.setRange(protoDollar[1].aggName, protoDollar[4].b)
1498 protoVAL.agg = []*aggregateEntryNode{a}
1499 }
Scott Baker4a35a702019-11-26 08:17:33 -08001500 case 63:
Zack Williamse940c7a2019-08-21 14:25:39 -07001501 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001502//line proto.y:383
Zack Williamse940c7a2019-08-21 14:25:39 -07001503 {
1504 s := &sliceLiteralNode{elements: protoDollar[4].sl}
1505 s.setRange(protoDollar[3].b, protoDollar[5].b)
1506 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s}
1507 a.setRange(protoDollar[1].aggName, protoDollar[5].b)
1508 protoVAL.agg = []*aggregateEntryNode{a}
1509 }
Scott Baker4a35a702019-11-26 08:17:33 -08001510 case 64:
1511 protoDollar = protoS[protopt-5 : protopt+1]
1512//line proto.y:390
1513 {
1514 }
1515 case 65:
Zack Williamse940c7a2019-08-21 14:25:39 -07001516 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001517//line proto.y:392
Zack Williamse940c7a2019-08-21 14:25:39 -07001518 {
1519 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: protoDollar[3].v}
1520 a.setRange(protoDollar[1].aggName, protoDollar[3].v)
1521 protoVAL.agg = []*aggregateEntryNode{a}
1522 }
Scott Baker4a35a702019-11-26 08:17:33 -08001523 case 66:
Zack Williamse940c7a2019-08-21 14:25:39 -07001524 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001525//line proto.y:397
Zack Williamse940c7a2019-08-21 14:25:39 -07001526 {
1527 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: protoDollar[2].v}
1528 a.setRange(protoDollar[1].aggName, protoDollar[2].v)
1529 protoVAL.agg = []*aggregateEntryNode{a}
1530 }
Scott Baker4a35a702019-11-26 08:17:33 -08001531 case 67:
Zack Williamse940c7a2019-08-21 14:25:39 -07001532 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001533//line proto.y:402
Zack Williamse940c7a2019-08-21 14:25:39 -07001534 {
1535 s := &aggregateLiteralNode{elements: protoDollar[4].agg}
1536 s.setRange(protoDollar[3].b, protoDollar[5].b)
1537 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s}
1538 a.setRange(protoDollar[1].aggName, protoDollar[5].b)
1539 protoVAL.agg = []*aggregateEntryNode{a}
1540 }
Scott Baker4a35a702019-11-26 08:17:33 -08001541 case 68:
Zack Williamse940c7a2019-08-21 14:25:39 -07001542 protoDollar = protoS[protopt-4 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001543//line proto.y:409
Zack Williamse940c7a2019-08-21 14:25:39 -07001544 {
1545 s := &aggregateLiteralNode{elements: protoDollar[3].agg}
1546 s.setRange(protoDollar[2].b, protoDollar[4].b)
1547 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s}
1548 a.setRange(protoDollar[1].aggName, protoDollar[4].b)
1549 protoVAL.agg = []*aggregateEntryNode{a}
1550 }
Scott Baker4a35a702019-11-26 08:17:33 -08001551 case 69:
1552 protoDollar = protoS[protopt-5 : protopt+1]
1553//line proto.y:416
Zack Williamse940c7a2019-08-21 14:25:39 -07001554 {
Scott Baker4a35a702019-11-26 08:17:33 -08001555 }
1556 case 70:
1557 protoDollar = protoS[protopt-4 : protopt+1]
1558//line proto.y:418
1559 {
1560 }
1561 case 71:
1562 protoDollar = protoS[protopt-1 : protopt+1]
1563//line proto.y:421
1564 {
1565 n := &compoundIdentNode{val: protoDollar[1].id.val}
1566 n.setRange(protoDollar[1].id, protoDollar[1].id)
1567 protoVAL.aggName = &aggregateNameNode{name: n}
Zack Williamse940c7a2019-08-21 14:25:39 -07001568 protoVAL.aggName.setRange(protoDollar[1].id, protoDollar[1].id)
1569 }
Scott Baker4a35a702019-11-26 08:17:33 -08001570 case 72:
Zack Williamse940c7a2019-08-21 14:25:39 -07001571 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001572//line proto.y:427
Zack Williamse940c7a2019-08-21 14:25:39 -07001573 {
Scott Baker4a35a702019-11-26 08:17:33 -08001574 protoVAL.aggName = &aggregateNameNode{name: protoDollar[2].cid, isExtension: true}
Zack Williamse940c7a2019-08-21 14:25:39 -07001575 protoVAL.aggName.setRange(protoDollar[1].b, protoDollar[3].b)
1576 }
Scott Baker4a35a702019-11-26 08:17:33 -08001577 case 73:
1578 protoDollar = protoS[protopt-3 : protopt+1]
1579//line proto.y:431
1580 {
1581 }
1582 case 74:
Zack Williamse940c7a2019-08-21 14:25:39 -07001583 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001584//line proto.y:434
Zack Williamse940c7a2019-08-21 14:25:39 -07001585 {
1586 protoVAL.sl = []valueNode{protoDollar[1].v}
1587 }
Scott Baker4a35a702019-11-26 08:17:33 -08001588 case 75:
Zack Williamse940c7a2019-08-21 14:25:39 -07001589 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001590//line proto.y:437
Zack Williamse940c7a2019-08-21 14:25:39 -07001591 {
1592 protoVAL.sl = append(protoDollar[1].sl, protoDollar[3].v)
1593 }
Scott Baker4a35a702019-11-26 08:17:33 -08001594 case 76:
Zack Williamse940c7a2019-08-21 14:25:39 -07001595 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001596//line proto.y:440
Zack Williamse940c7a2019-08-21 14:25:39 -07001597 {
1598 protoVAL.sl = append(protoDollar[1].sl, protoDollar[3].v)
1599 }
Scott Baker4a35a702019-11-26 08:17:33 -08001600 case 77:
Zack Williamse940c7a2019-08-21 14:25:39 -07001601 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001602//line proto.y:443
Zack Williamse940c7a2019-08-21 14:25:39 -07001603 {
1604 s := &aggregateLiteralNode{elements: protoDollar[2].agg}
1605 s.setRange(protoDollar[1].b, protoDollar[3].b)
1606 protoVAL.sl = []valueNode{s}
1607 }
Zack Williamse940c7a2019-08-21 14:25:39 -07001608 case 78:
Scott Baker4a35a702019-11-26 08:17:33 -08001609 protoDollar = protoS[protopt-5 : protopt+1]
1610//line proto.y:448
Zack Williamse940c7a2019-08-21 14:25:39 -07001611 {
Scott Baker4a35a702019-11-26 08:17:33 -08001612 s := &aggregateLiteralNode{elements: protoDollar[4].agg}
1613 s.setRange(protoDollar[3].b, protoDollar[5].b)
1614 protoVAL.sl = append(protoDollar[1].sl, s)
Zack Williamse940c7a2019-08-21 14:25:39 -07001615 }
1616 case 79:
Scott Baker4a35a702019-11-26 08:17:33 -08001617 protoDollar = protoS[protopt-5 : protopt+1]
1618//line proto.y:453
1619 {
1620 s := &aggregateLiteralNode{elements: protoDollar[4].agg}
1621 s.setRange(protoDollar[3].b, protoDollar[5].b)
1622 protoVAL.sl = append(protoDollar[1].sl, s)
1623 }
1624 case 80:
Zack Williamse940c7a2019-08-21 14:25:39 -07001625 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001626//line proto.y:458
1627 {
1628 }
1629 case 81:
1630 protoDollar = protoS[protopt-5 : protopt+1]
1631//line proto.y:460
1632 {
1633 }
1634 case 82:
1635 protoDollar = protoS[protopt-5 : protopt+1]
1636//line proto.y:462
1637 {
1638 }
1639 case 84:
1640 protoDollar = protoS[protopt-2 : protopt+1]
1641//line proto.y:466
1642 {
1643 protoVAL.cid = &compoundIdentNode{val: "." + protoDollar[2].cid.val}
1644 protoVAL.cid.setRange(protoDollar[1].b, protoDollar[2].cid)
1645 }
1646 case 85:
1647 protoDollar = protoS[protopt-6 : protopt+1]
1648//line proto.y:471
1649 {
1650 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
1651 lbl := fieldLabel{identNode: protoDollar[1].id, required: true}
1652 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i}
1653 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[6].b)
1654 }
1655 case 86:
1656 protoDollar = protoS[protopt-6 : protopt+1]
1657//line proto.y:477
1658 {
1659 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
1660 lbl := fieldLabel{identNode: protoDollar[1].id}
1661 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i}
1662 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[6].b)
1663 }
1664 case 87:
1665 protoDollar = protoS[protopt-6 : protopt+1]
1666//line proto.y:483
1667 {
1668 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
1669 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true}
1670 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i}
1671 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[6].b)
1672 }
1673 case 88:
1674 protoDollar = protoS[protopt-5 : protopt+1]
1675//line proto.y:489
1676 {
1677 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1678 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i}
1679 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[5].b)
1680 }
1681 case 89:
1682 protoDollar = protoS[protopt-7 : protopt+1]
1683//line proto.y:494
1684 {
1685 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
1686 lbl := fieldLabel{identNode: protoDollar[1].id, required: true}
1687 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts}
1688 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[7].b)
1689 }
1690 case 90:
1691 protoDollar = protoS[protopt-7 : protopt+1]
1692//line proto.y:500
1693 {
1694 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
1695 lbl := fieldLabel{identNode: protoDollar[1].id}
1696 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts}
1697 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[7].b)
1698 }
1699 case 91:
1700 protoDollar = protoS[protopt-7 : protopt+1]
1701//line proto.y:506
1702 {
1703 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
1704 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true}
1705 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts}
1706 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[7].b)
1707 }
1708 case 92:
1709 protoDollar = protoS[protopt-6 : protopt+1]
1710//line proto.y:512
1711 {
1712 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1713 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts}
1714 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[6].b)
1715 }
1716 case 93:
1717 protoDollar = protoS[protopt-3 : protopt+1]
1718//line proto.y:518
1719 {
1720 protoVAL.cmpctOpts = &compactOptionsNode{decls: protoDollar[2].opts}
1721 protoVAL.cmpctOpts.setRange(protoDollar[1].b, protoDollar[3].b)
1722 }
1723 case 94:
1724 protoDollar = protoS[protopt-3 : protopt+1]
1725//line proto.y:523
Zack Williamse940c7a2019-08-21 14:25:39 -07001726 {
1727 protoVAL.opts = append(protoDollar[1].opts, protoDollar[3].opts...)
1728 }
Scott Baker4a35a702019-11-26 08:17:33 -08001729 case 96:
Zack Williamse940c7a2019-08-21 14:25:39 -07001730 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001731//line proto.y:528
Zack Williamse940c7a2019-08-21 14:25:39 -07001732 {
1733 n := &optionNameNode{parts: protoDollar[1].optNm}
1734 n.setRange(protoDollar[1].optNm[0], protoDollar[1].optNm[len(protoDollar[1].optNm)-1])
1735 o := &optionNode{name: n, val: protoDollar[3].v}
1736 o.setRange(protoDollar[1].optNm[0], protoDollar[3].v)
1737 protoVAL.opts = []*optionNode{o}
1738 }
Scott Baker4a35a702019-11-26 08:17:33 -08001739 case 97:
Zack Williamse940c7a2019-08-21 14:25:39 -07001740 protoDollar = protoS[protopt-8 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001741//line proto.y:536
Zack Williamse940c7a2019-08-21 14:25:39 -07001742 {
Scott Baker4a35a702019-11-26 08:17:33 -08001743 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
Zack Williamse940c7a2019-08-21 14:25:39 -07001744 if !unicode.IsUpper(rune(protoDollar[3].id.val[0])) {
1745 lexError(protolex, protoDollar[3].id.start(), fmt.Sprintf("group %s should have a name that starts with a capital letter", protoDollar[3].id.val))
1746 }
Scott Baker4a35a702019-11-26 08:17:33 -08001747 lbl := fieldLabel{identNode: protoDollar[1].id, required: true}
1748 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, decls: protoDollar[7].msgDecls}
Zack Williamse940c7a2019-08-21 14:25:39 -07001749 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b)
1750 }
Scott Baker4a35a702019-11-26 08:17:33 -08001751 case 98:
Zack Williamse940c7a2019-08-21 14:25:39 -07001752 protoDollar = protoS[protopt-8 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001753//line proto.y:545
Zack Williamse940c7a2019-08-21 14:25:39 -07001754 {
Scott Baker4a35a702019-11-26 08:17:33 -08001755 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
Zack Williamse940c7a2019-08-21 14:25:39 -07001756 if !unicode.IsUpper(rune(protoDollar[3].id.val[0])) {
1757 lexError(protolex, protoDollar[3].id.start(), fmt.Sprintf("group %s should have a name that starts with a capital letter", protoDollar[3].id.val))
1758 }
Scott Baker4a35a702019-11-26 08:17:33 -08001759 lbl := fieldLabel{identNode: protoDollar[1].id}
1760 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, decls: protoDollar[7].msgDecls}
Zack Williamse940c7a2019-08-21 14:25:39 -07001761 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b)
1762 }
Scott Baker4a35a702019-11-26 08:17:33 -08001763 case 99:
Zack Williamse940c7a2019-08-21 14:25:39 -07001764 protoDollar = protoS[protopt-8 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001765//line proto.y:554
Zack Williamse940c7a2019-08-21 14:25:39 -07001766 {
Scott Baker4a35a702019-11-26 08:17:33 -08001767 checkTag(protolex, protoDollar[5].i.start(), protoDollar[5].i.val)
Zack Williamse940c7a2019-08-21 14:25:39 -07001768 if !unicode.IsUpper(rune(protoDollar[3].id.val[0])) {
1769 lexError(protolex, protoDollar[3].id.start(), fmt.Sprintf("group %s should have a name that starts with a capital letter", protoDollar[3].id.val))
1770 }
Scott Baker4a35a702019-11-26 08:17:33 -08001771 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true}
1772 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, decls: protoDollar[7].msgDecls}
Zack Williamse940c7a2019-08-21 14:25:39 -07001773 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b)
1774 }
Scott Baker4a35a702019-11-26 08:17:33 -08001775 case 100:
Zack Williamse940c7a2019-08-21 14:25:39 -07001776 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001777//line proto.y:564
Zack Williamse940c7a2019-08-21 14:25:39 -07001778 {
1779 c := 0
1780 for _, el := range protoDollar[4].ooDecls {
1781 if el.field != nil {
1782 c++
1783 }
1784 }
1785 if c == 0 {
1786 lexError(protolex, protoDollar[1].id.start(), "oneof must contain at least one field")
1787 }
1788 protoVAL.oo = &oneOfNode{name: protoDollar[2].id, decls: protoDollar[4].ooDecls}
1789 protoVAL.oo.setRange(protoDollar[1].id, protoDollar[5].b)
1790 }
Scott Baker4a35a702019-11-26 08:17:33 -08001791 case 101:
Zack Williamse940c7a2019-08-21 14:25:39 -07001792 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001793//line proto.y:578
Zack Williamse940c7a2019-08-21 14:25:39 -07001794 {
1795 protoVAL.ooDecls = append(protoDollar[1].ooDecls, protoDollar[2].ooDecls...)
1796 }
Scott Baker4a35a702019-11-26 08:17:33 -08001797 case 103:
Zack Williamse940c7a2019-08-21 14:25:39 -07001798 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001799//line proto.y:582
Zack Williamse940c7a2019-08-21 14:25:39 -07001800 {
1801 protoVAL.ooDecls = nil
1802 }
Scott Baker4a35a702019-11-26 08:17:33 -08001803 case 104:
Zack Williamse940c7a2019-08-21 14:25:39 -07001804 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001805//line proto.y:586
Zack Williamse940c7a2019-08-21 14:25:39 -07001806 {
1807 protoVAL.ooDecls = []*oneOfElement{{option: protoDollar[1].opts[0]}}
1808 }
Scott Baker4a35a702019-11-26 08:17:33 -08001809 case 105:
Zack Williamse940c7a2019-08-21 14:25:39 -07001810 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001811//line proto.y:589
Zack Williamse940c7a2019-08-21 14:25:39 -07001812 {
1813 protoVAL.ooDecls = []*oneOfElement{{field: protoDollar[1].fld}}
1814 }
Scott Baker4a35a702019-11-26 08:17:33 -08001815 case 106:
Zack Williamse940c7a2019-08-21 14:25:39 -07001816 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001817//line proto.y:592
1818 {
1819 protoVAL.ooDecls = []*oneOfElement{{group: protoDollar[1].grp}}
1820 }
1821 case 107:
1822 protoDollar = protoS[protopt-1 : protopt+1]
1823//line proto.y:595
Zack Williamse940c7a2019-08-21 14:25:39 -07001824 {
1825 protoVAL.ooDecls = []*oneOfElement{{empty: protoDollar[1].b}}
1826 }
Zack Williamse940c7a2019-08-21 14:25:39 -07001827 case 108:
Scott Baker4a35a702019-11-26 08:17:33 -08001828 protoDollar = protoS[protopt-2 : protopt+1]
1829//line proto.y:598
1830 {
1831 }
1832 case 109:
1833 protoDollar = protoS[protopt-1 : protopt+1]
1834//line proto.y:600
1835 {
1836 }
1837 case 110:
1838 protoDollar = protoS[protopt-5 : protopt+1]
1839//line proto.y:603
1840 {
1841 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1842 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i}
1843 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[5].b)
1844 }
1845 case 111:
1846 protoDollar = protoS[protopt-6 : protopt+1]
1847//line proto.y:608
1848 {
1849 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1850 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts}
1851 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[6].b)
1852 }
1853 case 112:
1854 protoDollar = protoS[protopt-7 : protopt+1]
1855//line proto.y:614
1856 {
1857 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1858 if !unicode.IsUpper(rune(protoDollar[2].id.val[0])) {
1859 lexError(protolex, protoDollar[2].id.start(), fmt.Sprintf("group %s should have a name that starts with a capital letter", protoDollar[2].id.val))
1860 }
1861 protoVAL.grp = &groupNode{groupKeyword: protoDollar[1].id, name: protoDollar[2].id, tag: protoDollar[4].i, decls: protoDollar[6].msgDecls}
1862 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[7].b)
1863 }
1864 case 113:
1865 protoDollar = protoS[protopt-5 : protopt+1]
1866//line proto.y:623
1867 {
1868 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1869 protoVAL.mapFld = &mapFieldNode{mapType: protoDollar[1].mapType, name: protoDollar[2].id, tag: protoDollar[4].i}
1870 protoVAL.mapFld.setRange(protoDollar[1].mapType, protoDollar[5].b)
1871 }
1872 case 114:
1873 protoDollar = protoS[protopt-6 : protopt+1]
1874//line proto.y:628
1875 {
1876 checkTag(protolex, protoDollar[4].i.start(), protoDollar[4].i.val)
1877 protoVAL.mapFld = &mapFieldNode{mapType: protoDollar[1].mapType, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts}
1878 protoVAL.mapFld.setRange(protoDollar[1].mapType, protoDollar[6].b)
1879 }
1880 case 115:
1881 protoDollar = protoS[protopt-6 : protopt+1]
1882//line proto.y:634
1883 {
1884 protoVAL.mapType = &mapTypeNode{mapKeyword: protoDollar[1].id, keyType: protoDollar[3].id, valueType: protoDollar[5].cid}
1885 protoVAL.mapType.setRange(protoDollar[1].id, protoDollar[6].b)
1886 }
1887 case 128:
Zack Williamse940c7a2019-08-21 14:25:39 -07001888 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001889//line proto.y:652
Zack Williamse940c7a2019-08-21 14:25:39 -07001890 {
1891 protoVAL.ext = &extensionRangeNode{ranges: protoDollar[2].rngs}
1892 protoVAL.ext.setRange(protoDollar[1].id, protoDollar[3].b)
1893 }
Scott Baker4a35a702019-11-26 08:17:33 -08001894 case 129:
1895 protoDollar = protoS[protopt-4 : protopt+1]
1896//line proto.y:656
Zack Williamse940c7a2019-08-21 14:25:39 -07001897 {
Scott Baker4a35a702019-11-26 08:17:33 -08001898 protoVAL.ext = &extensionRangeNode{ranges: protoDollar[2].rngs, options: protoDollar[3].cmpctOpts}
1899 protoVAL.ext.setRange(protoDollar[1].id, protoDollar[4].b)
Zack Williamse940c7a2019-08-21 14:25:39 -07001900 }
Scott Baker4a35a702019-11-26 08:17:33 -08001901 case 130:
Zack Williamse940c7a2019-08-21 14:25:39 -07001902 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001903//line proto.y:661
Zack Williamse940c7a2019-08-21 14:25:39 -07001904 {
1905 protoVAL.rngs = append(protoDollar[1].rngs, protoDollar[3].rngs...)
1906 }
Scott Baker4a35a702019-11-26 08:17:33 -08001907 case 132:
Zack Williamse940c7a2019-08-21 14:25:39 -07001908 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001909//line proto.y:666
Zack Williamse940c7a2019-08-21 14:25:39 -07001910 {
Scott Baker4a35a702019-11-26 08:17:33 -08001911 if protoDollar[1].i.val > internal.MaxTag {
1912 lexError(protolex, protoDollar[1].i.start(), fmt.Sprintf("range includes out-of-range tag: %d (should be between 0 and %d)", protoDollar[1].i.val, internal.MaxTag))
Zack Williamse940c7a2019-08-21 14:25:39 -07001913 }
Zack Williamse940c7a2019-08-21 14:25:39 -07001914 r := &rangeNode{stNode: protoDollar[1].i, enNode: protoDollar[1].i, st: int32(protoDollar[1].i.val), en: int32(protoDollar[1].i.val)}
1915 r.setRange(protoDollar[1].i, protoDollar[1].i)
1916 protoVAL.rngs = []*rangeNode{r}
1917 }
Scott Baker4a35a702019-11-26 08:17:33 -08001918 case 133:
Zack Williamse940c7a2019-08-21 14:25:39 -07001919 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001920//line proto.y:674
Zack Williamse940c7a2019-08-21 14:25:39 -07001921 {
Scott Baker4a35a702019-11-26 08:17:33 -08001922 if protoDollar[1].i.val > internal.MaxTag {
1923 lexError(protolex, protoDollar[1].i.start(), fmt.Sprintf("range start is out-of-range tag: %d (should be between 0 and %d)", protoDollar[1].i.val, internal.MaxTag))
Zack Williamse940c7a2019-08-21 14:25:39 -07001924 }
Scott Baker4a35a702019-11-26 08:17:33 -08001925 if protoDollar[3].i.val > internal.MaxTag {
1926 lexError(protolex, protoDollar[3].i.start(), fmt.Sprintf("range end is out-of-range tag: %d (should be between 0 and %d)", protoDollar[3].i.val, internal.MaxTag))
1927 }
Zack Williamse940c7a2019-08-21 14:25:39 -07001928 if protoDollar[1].i.val > protoDollar[3].i.val {
1929 lexError(protolex, protoDollar[1].i.start(), fmt.Sprintf("range, %d to %d, is invalid: start must be <= end", protoDollar[1].i.val, protoDollar[3].i.val))
1930 }
1931 r := &rangeNode{stNode: protoDollar[1].i, enNode: protoDollar[3].i, st: int32(protoDollar[1].i.val), en: int32(protoDollar[3].i.val)}
1932 r.setRange(protoDollar[1].i, protoDollar[3].i)
1933 protoVAL.rngs = []*rangeNode{r}
1934 }
Scott Baker4a35a702019-11-26 08:17:33 -08001935 case 134:
Zack Williamse940c7a2019-08-21 14:25:39 -07001936 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001937//line proto.y:688
Zack Williamse940c7a2019-08-21 14:25:39 -07001938 {
Scott Baker4a35a702019-11-26 08:17:33 -08001939 if protoDollar[1].i.val > internal.MaxTag {
1940 lexError(protolex, protoDollar[1].i.start(), fmt.Sprintf("range start is out-of-range tag: %d (should be between 0 and %d)", protoDollar[1].i.val, internal.MaxTag))
1941 }
1942 r := &rangeNode{stNode: protoDollar[1].i, enNode: protoDollar[3].id, st: int32(protoDollar[1].i.val), en: internal.MaxTag}
Zack Williamse940c7a2019-08-21 14:25:39 -07001943 r.setRange(protoDollar[1].i, protoDollar[3].id)
1944 protoVAL.rngs = []*rangeNode{r}
1945 }
Scott Baker4a35a702019-11-26 08:17:33 -08001946 case 135:
Zack Williamse940c7a2019-08-21 14:25:39 -07001947 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001948//line proto.y:697
1949 {
1950 protoVAL.rngs = append(protoDollar[1].rngs, protoDollar[3].rngs...)
1951 }
1952 case 137:
1953 protoDollar = protoS[protopt-1 : protopt+1]
1954//line proto.y:702
1955 {
1956 checkInt64InInt32Range(protolex, protoDollar[1].il.start(), protoDollar[1].il.val)
1957 r := &rangeNode{stNode: protoDollar[1].il, enNode: protoDollar[1].il, st: int32(protoDollar[1].il.val), en: int32(protoDollar[1].il.val)}
1958 r.setRange(protoDollar[1].il, protoDollar[1].il)
1959 protoVAL.rngs = []*rangeNode{r}
1960 }
1961 case 138:
1962 protoDollar = protoS[protopt-3 : protopt+1]
1963//line proto.y:708
1964 {
1965 checkInt64InInt32Range(protolex, protoDollar[1].il.start(), protoDollar[1].il.val)
1966 checkInt64InInt32Range(protolex, protoDollar[3].il.start(), protoDollar[3].il.val)
1967 if protoDollar[1].il.val > protoDollar[3].il.val {
1968 lexError(protolex, protoDollar[1].il.start(), fmt.Sprintf("range, %d to %d, is invalid: start must be <= end", protoDollar[1].il.val, protoDollar[3].il.val))
1969 }
1970 r := &rangeNode{stNode: protoDollar[1].il, enNode: protoDollar[3].il, st: int32(protoDollar[1].il.val), en: int32(protoDollar[3].il.val)}
1971 r.setRange(protoDollar[1].il, protoDollar[3].il)
1972 protoVAL.rngs = []*rangeNode{r}
1973 }
1974 case 139:
1975 protoDollar = protoS[protopt-3 : protopt+1]
1976//line proto.y:718
1977 {
1978 checkInt64InInt32Range(protolex, protoDollar[1].il.start(), protoDollar[1].il.val)
1979 r := &rangeNode{stNode: protoDollar[1].il, enNode: protoDollar[3].id, st: int32(protoDollar[1].il.val), en: math.MaxInt32}
1980 r.setRange(protoDollar[1].il, protoDollar[3].id)
1981 protoVAL.rngs = []*rangeNode{r}
1982 }
1983 case 140:
1984 protoDollar = protoS[protopt-3 : protopt+1]
1985//line proto.y:725
Zack Williamse940c7a2019-08-21 14:25:39 -07001986 {
1987 protoVAL.resvd = &reservedNode{ranges: protoDollar[2].rngs}
1988 protoVAL.resvd.setRange(protoDollar[1].id, protoDollar[3].b)
1989 }
Scott Baker4a35a702019-11-26 08:17:33 -08001990 case 142:
Zack Williamse940c7a2019-08-21 14:25:39 -07001991 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001992//line proto.y:731
Zack Williamse940c7a2019-08-21 14:25:39 -07001993 {
1994 protoVAL.resvd = &reservedNode{ranges: protoDollar[2].rngs}
1995 protoVAL.resvd.setRange(protoDollar[1].id, protoDollar[3].b)
1996 }
Scott Baker4a35a702019-11-26 08:17:33 -08001997 case 144:
Zack Williamse940c7a2019-08-21 14:25:39 -07001998 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08001999//line proto.y:737
Zack Williamse940c7a2019-08-21 14:25:39 -07002000 {
2001 rsvd := map[string]struct{}{}
2002 for _, n := range protoDollar[2].names {
2003 if _, ok := rsvd[n.val]; ok {
2004 lexError(protolex, n.start(), fmt.Sprintf("name %q is reserved multiple times", n.val))
2005 break
2006 }
2007 rsvd[n.val] = struct{}{}
2008 }
2009 protoVAL.resvd = &reservedNode{names: protoDollar[2].names}
2010 protoVAL.resvd.setRange(protoDollar[1].id, protoDollar[3].b)
2011 }
Scott Baker4a35a702019-11-26 08:17:33 -08002012 case 145:
Zack Williamse940c7a2019-08-21 14:25:39 -07002013 protoDollar = protoS[protopt-3 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002014//line proto.y:750
Zack Williamse940c7a2019-08-21 14:25:39 -07002015 {
2016 protoVAL.names = append(protoDollar[1].names, protoDollar[3].str)
2017 }
Scott Baker4a35a702019-11-26 08:17:33 -08002018 case 146:
Zack Williamse940c7a2019-08-21 14:25:39 -07002019 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002020//line proto.y:753
Zack Williamse940c7a2019-08-21 14:25:39 -07002021 {
Scott Baker4a35a702019-11-26 08:17:33 -08002022 protoVAL.names = []*compoundStringNode{protoDollar[1].str}
Zack Williamse940c7a2019-08-21 14:25:39 -07002023 }
Scott Baker4a35a702019-11-26 08:17:33 -08002024 case 147:
Zack Williamse940c7a2019-08-21 14:25:39 -07002025 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002026//line proto.y:757
Zack Williamse940c7a2019-08-21 14:25:39 -07002027 {
2028 c := 0
2029 for _, el := range protoDollar[4].enDecls {
2030 if el.value != nil {
2031 c++
2032 }
2033 }
2034 if c == 0 {
2035 lexError(protolex, protoDollar[1].id.start(), "enums must define at least one value")
2036 }
2037 protoVAL.en = &enumNode{name: protoDollar[2].id, decls: protoDollar[4].enDecls}
2038 protoVAL.en.setRange(protoDollar[1].id, protoDollar[5].b)
2039 }
Scott Baker4a35a702019-11-26 08:17:33 -08002040 case 148:
Zack Williamse940c7a2019-08-21 14:25:39 -07002041 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002042//line proto.y:771
Zack Williamse940c7a2019-08-21 14:25:39 -07002043 {
2044 protoVAL.enDecls = append(protoDollar[1].enDecls, protoDollar[2].enDecls...)
2045 }
Scott Baker4a35a702019-11-26 08:17:33 -08002046 case 150:
Zack Williamse940c7a2019-08-21 14:25:39 -07002047 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002048//line proto.y:775
Zack Williamse940c7a2019-08-21 14:25:39 -07002049 {
2050 protoVAL.enDecls = nil
2051 }
Scott Baker4a35a702019-11-26 08:17:33 -08002052 case 151:
Zack Williamse940c7a2019-08-21 14:25:39 -07002053 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002054//line proto.y:779
Zack Williamse940c7a2019-08-21 14:25:39 -07002055 {
2056 protoVAL.enDecls = []*enumElement{{option: protoDollar[1].opts[0]}}
2057 }
Scott Baker4a35a702019-11-26 08:17:33 -08002058 case 152:
Zack Williamse940c7a2019-08-21 14:25:39 -07002059 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002060//line proto.y:782
Zack Williamse940c7a2019-08-21 14:25:39 -07002061 {
2062 protoVAL.enDecls = []*enumElement{{value: protoDollar[1].env}}
2063 }
Scott Baker4a35a702019-11-26 08:17:33 -08002064 case 153:
Zack Williamse940c7a2019-08-21 14:25:39 -07002065 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002066//line proto.y:785
Zack Williamse940c7a2019-08-21 14:25:39 -07002067 {
2068 protoVAL.enDecls = []*enumElement{{reserved: protoDollar[1].resvd}}
2069 }
Scott Baker4a35a702019-11-26 08:17:33 -08002070 case 154:
Zack Williamse940c7a2019-08-21 14:25:39 -07002071 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002072//line proto.y:788
Zack Williamse940c7a2019-08-21 14:25:39 -07002073 {
2074 protoVAL.enDecls = []*enumElement{{empty: protoDollar[1].b}}
2075 }
Scott Baker4a35a702019-11-26 08:17:33 -08002076 case 155:
2077 protoDollar = protoS[protopt-2 : protopt+1]
2078//line proto.y:791
Zack Williamse940c7a2019-08-21 14:25:39 -07002079 {
Scott Baker4a35a702019-11-26 08:17:33 -08002080 }
2081 case 156:
2082 protoDollar = protoS[protopt-1 : protopt+1]
2083//line proto.y:793
2084 {
2085 }
2086 case 157:
2087 protoDollar = protoS[protopt-4 : protopt+1]
2088//line proto.y:796
2089 {
2090 checkInt64InInt32Range(protolex, protoDollar[3].il.start(), protoDollar[3].il.val)
2091 protoVAL.env = &enumValueNode{name: protoDollar[1].id, number: protoDollar[3].il}
Zack Williamse940c7a2019-08-21 14:25:39 -07002092 protoVAL.env.setRange(protoDollar[1].id, protoDollar[4].b)
2093 }
Scott Baker4a35a702019-11-26 08:17:33 -08002094 case 158:
Zack Williamse940c7a2019-08-21 14:25:39 -07002095 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002096//line proto.y:801
2097 {
2098 checkInt64InInt32Range(protolex, protoDollar[3].il.start(), protoDollar[3].il.val)
2099 protoVAL.env = &enumValueNode{name: protoDollar[1].id, number: protoDollar[3].il, options: protoDollar[4].cmpctOpts}
2100 protoVAL.env.setRange(protoDollar[1].id, protoDollar[5].b)
2101 }
2102 case 159:
2103 protoDollar = protoS[protopt-5 : protopt+1]
2104//line proto.y:807
Zack Williamse940c7a2019-08-21 14:25:39 -07002105 {
2106 protoVAL.msg = &messageNode{name: protoDollar[2].id, decls: protoDollar[4].msgDecls}
2107 protoVAL.msg.setRange(protoDollar[1].id, protoDollar[5].b)
2108 }
Scott Baker4a35a702019-11-26 08:17:33 -08002109 case 160:
Zack Williamse940c7a2019-08-21 14:25:39 -07002110 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002111//line proto.y:812
Zack Williamse940c7a2019-08-21 14:25:39 -07002112 {
2113 protoVAL.msgDecls = append(protoDollar[1].msgDecls, protoDollar[2].msgDecls...)
2114 }
Scott Baker4a35a702019-11-26 08:17:33 -08002115 case 162:
Zack Williamse940c7a2019-08-21 14:25:39 -07002116 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002117//line proto.y:816
Zack Williamse940c7a2019-08-21 14:25:39 -07002118 {
2119 protoVAL.msgDecls = nil
2120 }
Scott Baker4a35a702019-11-26 08:17:33 -08002121 case 163:
Zack Williamse940c7a2019-08-21 14:25:39 -07002122 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002123//line proto.y:820
Zack Williamse940c7a2019-08-21 14:25:39 -07002124 {
2125 protoVAL.msgDecls = []*messageElement{{field: protoDollar[1].fld}}
2126 }
Scott Baker4a35a702019-11-26 08:17:33 -08002127 case 164:
Zack Williamse940c7a2019-08-21 14:25:39 -07002128 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002129//line proto.y:823
Zack Williamse940c7a2019-08-21 14:25:39 -07002130 {
2131 protoVAL.msgDecls = []*messageElement{{enum: protoDollar[1].en}}
2132 }
Scott Baker4a35a702019-11-26 08:17:33 -08002133 case 165:
Zack Williamse940c7a2019-08-21 14:25:39 -07002134 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002135//line proto.y:826
Zack Williamse940c7a2019-08-21 14:25:39 -07002136 {
2137 protoVAL.msgDecls = []*messageElement{{nested: protoDollar[1].msg}}
2138 }
Scott Baker4a35a702019-11-26 08:17:33 -08002139 case 166:
Zack Williamse940c7a2019-08-21 14:25:39 -07002140 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002141//line proto.y:829
Zack Williamse940c7a2019-08-21 14:25:39 -07002142 {
2143 protoVAL.msgDecls = []*messageElement{{extend: protoDollar[1].extend}}
2144 }
Scott Baker4a35a702019-11-26 08:17:33 -08002145 case 167:
Zack Williamse940c7a2019-08-21 14:25:39 -07002146 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002147//line proto.y:832
Zack Williamse940c7a2019-08-21 14:25:39 -07002148 {
2149 protoVAL.msgDecls = []*messageElement{{extensionRange: protoDollar[1].ext}}
2150 }
Scott Baker4a35a702019-11-26 08:17:33 -08002151 case 168:
Zack Williamse940c7a2019-08-21 14:25:39 -07002152 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002153//line proto.y:835
Zack Williamse940c7a2019-08-21 14:25:39 -07002154 {
2155 protoVAL.msgDecls = []*messageElement{{group: protoDollar[1].grp}}
2156 }
Scott Baker4a35a702019-11-26 08:17:33 -08002157 case 169:
Zack Williamse940c7a2019-08-21 14:25:39 -07002158 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002159//line proto.y:838
Zack Williamse940c7a2019-08-21 14:25:39 -07002160 {
2161 protoVAL.msgDecls = []*messageElement{{option: protoDollar[1].opts[0]}}
2162 }
Scott Baker4a35a702019-11-26 08:17:33 -08002163 case 170:
Zack Williamse940c7a2019-08-21 14:25:39 -07002164 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002165//line proto.y:841
Zack Williamse940c7a2019-08-21 14:25:39 -07002166 {
2167 protoVAL.msgDecls = []*messageElement{{oneOf: protoDollar[1].oo}}
2168 }
Scott Baker4a35a702019-11-26 08:17:33 -08002169 case 171:
Zack Williamse940c7a2019-08-21 14:25:39 -07002170 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002171//line proto.y:844
Zack Williamse940c7a2019-08-21 14:25:39 -07002172 {
2173 protoVAL.msgDecls = []*messageElement{{mapField: protoDollar[1].mapFld}}
2174 }
Scott Baker4a35a702019-11-26 08:17:33 -08002175 case 172:
Zack Williamse940c7a2019-08-21 14:25:39 -07002176 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002177//line proto.y:847
Zack Williamse940c7a2019-08-21 14:25:39 -07002178 {
2179 protoVAL.msgDecls = []*messageElement{{reserved: protoDollar[1].resvd}}
2180 }
Scott Baker4a35a702019-11-26 08:17:33 -08002181 case 173:
Zack Williamse940c7a2019-08-21 14:25:39 -07002182 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002183//line proto.y:850
Zack Williamse940c7a2019-08-21 14:25:39 -07002184 {
2185 protoVAL.msgDecls = []*messageElement{{empty: protoDollar[1].b}}
2186 }
Scott Baker4a35a702019-11-26 08:17:33 -08002187 case 174:
2188 protoDollar = protoS[protopt-2 : protopt+1]
2189//line proto.y:853
2190 {
2191 }
2192 case 175:
2193 protoDollar = protoS[protopt-1 : protopt+1]
2194//line proto.y:855
2195 {
2196 }
2197 case 176:
Zack Williamse940c7a2019-08-21 14:25:39 -07002198 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002199//line proto.y:858
Zack Williamse940c7a2019-08-21 14:25:39 -07002200 {
2201 c := 0
2202 for _, el := range protoDollar[4].extDecls {
2203 if el.field != nil || el.group != nil {
2204 c++
2205 }
2206 }
2207 if c == 0 {
2208 lexError(protolex, protoDollar[1].id.start(), "extend sections must define at least one extension")
2209 }
Scott Baker4a35a702019-11-26 08:17:33 -08002210 protoVAL.extend = &extendNode{extendee: protoDollar[2].cid, decls: protoDollar[4].extDecls}
Zack Williamse940c7a2019-08-21 14:25:39 -07002211 protoVAL.extend.setRange(protoDollar[1].id, protoDollar[5].b)
2212 }
Scott Baker4a35a702019-11-26 08:17:33 -08002213 case 177:
Zack Williamse940c7a2019-08-21 14:25:39 -07002214 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002215//line proto.y:872
Zack Williamse940c7a2019-08-21 14:25:39 -07002216 {
2217 protoVAL.extDecls = append(protoDollar[1].extDecls, protoDollar[2].extDecls...)
2218 }
Scott Baker4a35a702019-11-26 08:17:33 -08002219 case 179:
Zack Williamse940c7a2019-08-21 14:25:39 -07002220 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002221//line proto.y:876
Zack Williamse940c7a2019-08-21 14:25:39 -07002222 {
2223 protoVAL.extDecls = nil
2224 }
Scott Baker4a35a702019-11-26 08:17:33 -08002225 case 180:
Zack Williamse940c7a2019-08-21 14:25:39 -07002226 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002227//line proto.y:880
Zack Williamse940c7a2019-08-21 14:25:39 -07002228 {
2229 protoVAL.extDecls = []*extendElement{{field: protoDollar[1].fld}}
2230 }
Scott Baker4a35a702019-11-26 08:17:33 -08002231 case 181:
Zack Williamse940c7a2019-08-21 14:25:39 -07002232 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002233//line proto.y:883
Zack Williamse940c7a2019-08-21 14:25:39 -07002234 {
2235 protoVAL.extDecls = []*extendElement{{group: protoDollar[1].grp}}
2236 }
Scott Baker4a35a702019-11-26 08:17:33 -08002237 case 182:
Zack Williamse940c7a2019-08-21 14:25:39 -07002238 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002239//line proto.y:886
Zack Williamse940c7a2019-08-21 14:25:39 -07002240 {
2241 protoVAL.extDecls = []*extendElement{{empty: protoDollar[1].b}}
2242 }
Scott Baker4a35a702019-11-26 08:17:33 -08002243 case 183:
2244 protoDollar = protoS[protopt-2 : protopt+1]
2245//line proto.y:889
2246 {
2247 }
2248 case 184:
2249 protoDollar = protoS[protopt-1 : protopt+1]
2250//line proto.y:891
2251 {
2252 }
2253 case 185:
Zack Williamse940c7a2019-08-21 14:25:39 -07002254 protoDollar = protoS[protopt-5 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002255//line proto.y:894
Zack Williamse940c7a2019-08-21 14:25:39 -07002256 {
2257 protoVAL.svc = &serviceNode{name: protoDollar[2].id, decls: protoDollar[4].svcDecls}
2258 protoVAL.svc.setRange(protoDollar[1].id, protoDollar[5].b)
2259 }
Scott Baker4a35a702019-11-26 08:17:33 -08002260 case 186:
Zack Williamse940c7a2019-08-21 14:25:39 -07002261 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002262//line proto.y:899
Zack Williamse940c7a2019-08-21 14:25:39 -07002263 {
2264 protoVAL.svcDecls = append(protoDollar[1].svcDecls, protoDollar[2].svcDecls...)
2265 }
Scott Baker4a35a702019-11-26 08:17:33 -08002266 case 188:
Zack Williamse940c7a2019-08-21 14:25:39 -07002267 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002268//line proto.y:903
Zack Williamse940c7a2019-08-21 14:25:39 -07002269 {
2270 protoVAL.svcDecls = nil
2271 }
Scott Baker4a35a702019-11-26 08:17:33 -08002272 case 189:
Zack Williamse940c7a2019-08-21 14:25:39 -07002273 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002274//line proto.y:910
Zack Williamse940c7a2019-08-21 14:25:39 -07002275 {
2276 protoVAL.svcDecls = []*serviceElement{{option: protoDollar[1].opts[0]}}
2277 }
Scott Baker4a35a702019-11-26 08:17:33 -08002278 case 190:
Zack Williamse940c7a2019-08-21 14:25:39 -07002279 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002280//line proto.y:913
Zack Williamse940c7a2019-08-21 14:25:39 -07002281 {
2282 protoVAL.svcDecls = []*serviceElement{{rpc: protoDollar[1].mtd}}
2283 }
Scott Baker4a35a702019-11-26 08:17:33 -08002284 case 191:
Zack Williamse940c7a2019-08-21 14:25:39 -07002285 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002286//line proto.y:916
Zack Williamse940c7a2019-08-21 14:25:39 -07002287 {
2288 protoVAL.svcDecls = []*serviceElement{{empty: protoDollar[1].b}}
2289 }
Scott Baker4a35a702019-11-26 08:17:33 -08002290 case 192:
2291 protoDollar = protoS[protopt-2 : protopt+1]
2292//line proto.y:919
2293 {
2294 }
2295 case 193:
2296 protoDollar = protoS[protopt-1 : protopt+1]
2297//line proto.y:921
2298 {
2299 }
2300 case 194:
Zack Williamse940c7a2019-08-21 14:25:39 -07002301 protoDollar = protoS[protopt-10 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002302//line proto.y:924
Zack Williamse940c7a2019-08-21 14:25:39 -07002303 {
2304 protoVAL.mtd = &methodNode{name: protoDollar[2].id, input: protoDollar[4].rpcType, output: protoDollar[8].rpcType}
2305 protoVAL.mtd.setRange(protoDollar[1].id, protoDollar[10].b)
2306 }
Scott Baker4a35a702019-11-26 08:17:33 -08002307 case 195:
Zack Williamse940c7a2019-08-21 14:25:39 -07002308 protoDollar = protoS[protopt-12 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002309//line proto.y:928
Zack Williamse940c7a2019-08-21 14:25:39 -07002310 {
2311 protoVAL.mtd = &methodNode{name: protoDollar[2].id, input: protoDollar[4].rpcType, output: protoDollar[8].rpcType, options: protoDollar[11].opts}
2312 protoVAL.mtd.setRange(protoDollar[1].id, protoDollar[12].b)
2313 }
Scott Baker4a35a702019-11-26 08:17:33 -08002314 case 196:
Zack Williamse940c7a2019-08-21 14:25:39 -07002315 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002316//line proto.y:933
Zack Williamse940c7a2019-08-21 14:25:39 -07002317 {
Scott Baker4a35a702019-11-26 08:17:33 -08002318 protoVAL.rpcType = &rpcTypeNode{msgType: protoDollar[2].cid, streamKeyword: protoDollar[1].id}
2319 protoVAL.rpcType.setRange(protoDollar[1].id, protoDollar[2].cid)
Zack Williamse940c7a2019-08-21 14:25:39 -07002320 }
Scott Baker4a35a702019-11-26 08:17:33 -08002321 case 197:
Zack Williamse940c7a2019-08-21 14:25:39 -07002322 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002323//line proto.y:937
Zack Williamse940c7a2019-08-21 14:25:39 -07002324 {
Scott Baker4a35a702019-11-26 08:17:33 -08002325 protoVAL.rpcType = &rpcTypeNode{msgType: protoDollar[1].cid}
2326 protoVAL.rpcType.setRange(protoDollar[1].cid, protoDollar[1].cid)
Zack Williamse940c7a2019-08-21 14:25:39 -07002327 }
Scott Baker4a35a702019-11-26 08:17:33 -08002328 case 198:
Zack Williamse940c7a2019-08-21 14:25:39 -07002329 protoDollar = protoS[protopt-2 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002330//line proto.y:942
Zack Williamse940c7a2019-08-21 14:25:39 -07002331 {
2332 protoVAL.opts = append(protoDollar[1].opts, protoDollar[2].opts...)
2333 }
Scott Baker4a35a702019-11-26 08:17:33 -08002334 case 200:
Zack Williamse940c7a2019-08-21 14:25:39 -07002335 protoDollar = protoS[protopt-0 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002336//line proto.y:946
Zack Williamse940c7a2019-08-21 14:25:39 -07002337 {
2338 protoVAL.opts = []*optionNode{}
2339 }
Scott Baker4a35a702019-11-26 08:17:33 -08002340 case 201:
Zack Williamse940c7a2019-08-21 14:25:39 -07002341 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002342//line proto.y:950
Zack Williamse940c7a2019-08-21 14:25:39 -07002343 {
2344 protoVAL.opts = protoDollar[1].opts
2345 }
Scott Baker4a35a702019-11-26 08:17:33 -08002346 case 202:
Zack Williamse940c7a2019-08-21 14:25:39 -07002347 protoDollar = protoS[protopt-1 : protopt+1]
Scott Baker4a35a702019-11-26 08:17:33 -08002348//line proto.y:953
Zack Williamse940c7a2019-08-21 14:25:39 -07002349 {
2350 protoVAL.opts = []*optionNode{}
2351 }
Scott Baker4a35a702019-11-26 08:17:33 -08002352 case 203:
2353 protoDollar = protoS[protopt-2 : protopt+1]
2354//line proto.y:956
2355 {
2356 }
2357 case 204:
2358 protoDollar = protoS[protopt-1 : protopt+1]
2359//line proto.y:958
2360 {
2361 }
Zack Williamse940c7a2019-08-21 14:25:39 -07002362 }
2363 goto protostack /* stack new state and value */
2364}