github.com/syumai/protoreflect@v1.7.1-0.20200810020253-2ac7e3b3a321/desc/protoparse/proto.y.go (about) 1 // Code generated by goyacc -o proto.y.go -p proto proto.y. DO NOT EDIT. 2 3 //line proto.y:2 4 package protoparse 5 6 import __yyfmt__ "fmt" 7 8 //line proto.y:2 9 10 //lint:file-ignore SA4006 generated parser has unused values 11 12 import ( 13 "fmt" 14 "math" 15 ) 16 17 //line proto.y:15 18 type protoSymType struct { 19 yys int 20 file *fileNode 21 fileDecls []*fileElement 22 syn *syntaxNode 23 pkg *packageNode 24 imprt *importNode 25 msg *messageNode 26 msgDecls []*messageElement 27 fld *fieldNode 28 mapFld *mapFieldNode 29 mapType *mapTypeNode 30 grp *groupNode 31 oo *oneOfNode 32 ooDecls []*oneOfElement 33 ext *extensionRangeNode 34 resvd *reservedNode 35 en *enumNode 36 enDecls []*enumElement 37 env *enumValueNode 38 extend *extendNode 39 extDecls []*extendElement 40 svc *serviceNode 41 svcDecls []*serviceElement 42 mtd *methodNode 43 rpcType *rpcTypeNode 44 opts []*optionNode 45 optNm []*optionNamePartNode 46 cmpctOpts *compactOptionsNode 47 rngs []*rangeNode 48 names []*compoundStringNode 49 cid *compoundIdentNode 50 sl []valueNode 51 agg []*aggregateEntryNode 52 aggName *aggregateNameNode 53 v valueNode 54 il *compoundIntNode 55 str *compoundStringNode 56 s *stringLiteralNode 57 i *intLiteralNode 58 f *floatLiteralNode 59 id *identNode 60 b *basicNode 61 err error 62 } 63 64 const _STRING_LIT = 57346 65 const _INT_LIT = 57347 66 const _FLOAT_LIT = 57348 67 const _NAME = 57349 68 const _SYNTAX = 57350 69 const _IMPORT = 57351 70 const _WEAK = 57352 71 const _PUBLIC = 57353 72 const _PACKAGE = 57354 73 const _OPTION = 57355 74 const _TRUE = 57356 75 const _FALSE = 57357 76 const _INF = 57358 77 const _NAN = 57359 78 const _REPEATED = 57360 79 const _OPTIONAL = 57361 80 const _REQUIRED = 57362 81 const _DOUBLE = 57363 82 const _FLOAT = 57364 83 const _INT32 = 57365 84 const _INT64 = 57366 85 const _UINT32 = 57367 86 const _UINT64 = 57368 87 const _SINT32 = 57369 88 const _SINT64 = 57370 89 const _FIXED32 = 57371 90 const _FIXED64 = 57372 91 const _SFIXED32 = 57373 92 const _SFIXED64 = 57374 93 const _BOOL = 57375 94 const _STRING = 57376 95 const _BYTES = 57377 96 const _GROUP = 57378 97 const _ONEOF = 57379 98 const _MAP = 57380 99 const _EXTENSIONS = 57381 100 const _TO = 57382 101 const _MAX = 57383 102 const _RESERVED = 57384 103 const _ENUM = 57385 104 const _MESSAGE = 57386 105 const _EXTEND = 57387 106 const _SERVICE = 57388 107 const _RPC = 57389 108 const _STREAM = 57390 109 const _RETURNS = 57391 110 const _ERROR = 57392 111 112 var protoToknames = [...]string{ 113 "$end", 114 "error", 115 "$unk", 116 "_STRING_LIT", 117 "_INT_LIT", 118 "_FLOAT_LIT", 119 "_NAME", 120 "_SYNTAX", 121 "_IMPORT", 122 "_WEAK", 123 "_PUBLIC", 124 "_PACKAGE", 125 "_OPTION", 126 "_TRUE", 127 "_FALSE", 128 "_INF", 129 "_NAN", 130 "_REPEATED", 131 "_OPTIONAL", 132 "_REQUIRED", 133 "_DOUBLE", 134 "_FLOAT", 135 "_INT32", 136 "_INT64", 137 "_UINT32", 138 "_UINT64", 139 "_SINT32", 140 "_SINT64", 141 "_FIXED32", 142 "_FIXED64", 143 "_SFIXED32", 144 "_SFIXED64", 145 "_BOOL", 146 "_STRING", 147 "_BYTES", 148 "_GROUP", 149 "_ONEOF", 150 "_MAP", 151 "_EXTENSIONS", 152 "_TO", 153 "_MAX", 154 "_RESERVED", 155 "_ENUM", 156 "_MESSAGE", 157 "_EXTEND", 158 "_SERVICE", 159 "_RPC", 160 "_STREAM", 161 "_RETURNS", 162 "_ERROR", 163 "'='", 164 "';'", 165 "':'", 166 "'{'", 167 "'}'", 168 "'\\\\'", 169 "'/'", 170 "'?'", 171 "'.'", 172 "','", 173 "'>'", 174 "'<'", 175 "'+'", 176 "'-'", 177 "'('", 178 "')'", 179 "'['", 180 "']'", 181 "'*'", 182 "'&'", 183 "'^'", 184 "'%'", 185 "'$'", 186 "'#'", 187 "'@'", 188 "'!'", 189 "'~'", 190 "'`'", 191 } 192 193 var protoStatenames = [...]string{} 194 195 const protoEofCode = 1 196 const protoErrCode = 2 197 const protoInitialStackSize = 16 198 199 //line proto.y:920 200 201 //line yacctab:1 202 var protoExca = [...]int{ 203 -1, 0, 204 1, 4, 205 -2, 0, 206 -1, 1, 207 1, -1, 208 -2, 0, 209 -1, 2, 210 1, 1, 211 -2, 0, 212 -1, 3, 213 1, 2, 214 -2, 0, 215 -1, 22, 216 1, 3, 217 -2, 0, 218 -1, 95, 219 55, 161, 220 -2, 0, 221 -1, 96, 222 55, 149, 223 -2, 0, 224 -1, 97, 225 55, 178, 226 -2, 0, 227 -1, 99, 228 55, 187, 229 -2, 0, 230 -1, 110, 231 55, 47, 232 -2, 0, 233 -1, 225, 234 61, 47, 235 -2, 0, 236 -1, 240, 237 55, 99, 238 -2, 0, 239 -1, 267, 240 61, 47, 241 -2, 0, 242 -1, 310, 243 61, 47, 244 -2, 0, 245 -1, 347, 246 55, 161, 247 -2, 0, 248 -1, 351, 249 55, 161, 250 -2, 0, 251 -1, 355, 252 55, 161, 253 -2, 0, 254 -1, 366, 255 61, 47, 256 -2, 0, 257 -1, 368, 258 61, 47, 259 -2, 0, 260 -1, 373, 261 55, 161, 262 -2, 0, 263 -1, 376, 264 55, 161, 265 -2, 0, 266 -1, 379, 267 55, 161, 268 -2, 0, 269 -1, 395, 270 55, 161, 271 -2, 0, 272 -1, 407, 273 55, 161, 274 -2, 0, 275 -1, 412, 276 55, 199, 277 -2, 0, 278 } 279 280 const protoPrivate = 57344 281 282 const protoLast = 2738 283 284 var protoAct = [...]int{ 285 31, 125, 8, 415, 8, 8, 118, 303, 169, 104, 286 287, 236, 75, 282, 117, 207, 193, 134, 77, 79, 287 80, 106, 84, 206, 8, 105, 107, 124, 119, 156, 288 162, 143, 146, 192, 395, 76, 82, 324, 81, 170, 289 339, 340, 26, 393, 235, 323, 353, 238, 338, 355, 290 351, 85, 237, 30, 88, 89, 337, 349, 238, 238, 291 347, 238, 238, 238, 345, 331, 321, 298, 271, 270, 292 408, 208, 238, 238, 335, 116, 382, 297, 200, 238, 293 238, 238, 238, 29, 208, 208, 263, 363, 91, 407, 294 223, 110, 103, 109, 77, 222, 94, 152, 147, 225, 295 222, 163, 421, 221, 401, 222, 379, 302, 221, 399, 296 222, 174, 405, 221, 370, 90, 376, 377, 221, 344, 297 98, 373, 91, 222, 183, 158, 157, 240, 154, 115, 298 209, 221, 314, 87, 87, 191, 80, 79, 99, 97, 299 77, 195, 196, 209, 209, 260, 152, 147, 243, 185, 300 187, 189, 242, 259, 222, 81, 244, 220, 325, 92, 301 237, 166, 221, 163, 96, 219, 93, 93, 216, 199, 302 174, 411, 17, 412, 95, 87, 197, 154, 202, 87, 303 199, 102, 101, 158, 157, 211, 228, 229, 230, 231, 304 232, 233, 214, 226, 14, 224, 166, 418, 374, 371, 305 4, 15, 418, 362, 16, 17, 167, 17, 17, 218, 306 357, 165, 334, 17, 213, 328, 279, 215, 212, 203, 307 258, 184, 168, 100, 109, 25, 174, 86, 361, 360, 308 277, 276, 275, 274, 268, 19, 18, 20, 21, 77, 309 273, 167, 288, 284, 13, 266, 165, 417, 272, 264, 310 419, 283, 417, 241, 280, 234, 204, 24, 293, 364, 311 261, 239, 381, 5, 29, 194, 109, 23, 174, 174, 312 299, 296, 380, 181, 179, 309, 311, 301, 320, 285, 313 319, 305, 318, 300, 180, 29, 23, 317, 288, 316, 314 322, 27, 28, 315, 329, 330, 295, 327, 122, 11, 315 194, 11, 11, 14, 293, 178, 176, 332, 218, 278, 316 15, 174, 174, 16, 17, 333, 177, 262, 87, 341, 317 29, 11, 336, 164, 161, 77, 109, 346, 348, 350, 318 352, 354, 356, 3, 12, 359, 22, 283, 358, 109, 319 109, 155, 174, 148, 19, 18, 20, 21, 365, 367, 320 145, 218, 123, 13, 205, 120, 10, 149, 10, 10, 321 121, 9, 372, 9, 9, 128, 375, 174, 198, 174, 322 378, 286, 141, 127, 290, 383, 126, 385, 10, 183, 323 289, 218, 183, 9, 174, 183, 174, 171, 388, 307, 324 397, 390, 394, 396, 392, 183, 173, 183, 245, 183, 325 305, 108, 414, 281, 7, 6, 2, 1, 0, 0, 326 406, 0, 0, 183, 416, 0, 416, 183, 420, 0, 327 0, 0, 410, 218, 308, 218, 29, 114, 111, 32, 328 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 329 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 330 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 331 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 332 73, 74, 0, 0, 0, 0, 110, 0, 0, 0, 333 0, 0, 0, 0, 310, 113, 112, 0, 0, 0, 334 306, 29, 114, 111, 32, 33, 34, 35, 36, 37, 335 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 336 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 337 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 338 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, 339 0, 110, 0, 0, 0, 0, 0, 0, 0, 267, 340 113, 112, 0, 0, 265, 29, 114, 111, 32, 33, 341 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 342 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 343 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 344 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 345 74, 0, 0, 0, 0, 110, 0, 0, 0, 0, 346 0, 0, 0, 368, 113, 112, 29, 114, 111, 32, 347 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 348 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 349 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 350 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 351 73, 74, 0, 0, 0, 0, 110, 0, 0, 0, 352 0, 0, 172, 0, 366, 113, 112, 32, 33, 34, 353 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 354 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 355 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 356 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358 0, 400, 0, 172, 0, 0, 0, 175, 32, 33, 359 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 360 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 361 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 362 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 363 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364 0, 0, 398, 0, 172, 0, 0, 0, 175, 32, 365 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 366 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 367 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 368 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 369 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 370 0, 0, 0, 369, 0, 0, 0, 0, 0, 175, 371 29, 114, 111, 32, 33, 34, 35, 36, 37, 38, 372 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 373 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 374 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 375 69, 70, 71, 72, 73, 74, 0, 0, 0, 0, 376 110, 0, 0, 0, 0, 0, 172, 0, 0, 113, 377 112, 32, 33, 34, 35, 36, 37, 38, 39, 40, 378 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 379 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 380 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 381 71, 72, 73, 74, 0, 0, 0, 0, 0, 0, 382 0, 0, 0, 0, 0, 343, 0, 172, 0, 0, 383 0, 175, 32, 33, 34, 35, 36, 37, 38, 39, 384 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 385 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 386 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 387 70, 71, 72, 73, 74, 0, 0, 0, 0, 0, 388 0, 0, 0, 0, 0, 0, 313, 0, 172, 0, 389 0, 0, 175, 32, 33, 34, 35, 36, 37, 38, 390 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 391 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 392 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 393 69, 70, 71, 72, 73, 74, 0, 0, 0, 0, 394 0, 217, 0, 0, 0, 0, 0, 0, 0, 386, 395 0, 0, 0, 175, 32, 33, 34, 35, 36, 37, 396 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 397 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 398 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 399 68, 69, 70, 71, 72, 73, 74, 246, 247, 248, 400 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, 401 384, 0, 0, 0, 175, 32, 33, 34, 35, 36, 402 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 403 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 404 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 405 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407 0, 342, 0, 0, 0, 175, 32, 33, 34, 35, 408 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 409 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 410 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 411 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413 0, 0, 312, 0, 0, 0, 175, 32, 33, 34, 414 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 415 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 416 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 417 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419 0, 0, 0, 269, 0, 0, 0, 175, 32, 33, 420 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 421 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 422 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 423 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 424 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425 0, 0, 0, 0, 172, 0, 0, 0, 175, 32, 426 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 427 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 428 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 429 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 430 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 431 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 432 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 433 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 434 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 435 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 436 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 437 0, 0, 0, 0, 130, 0, 0, 0, 78, 32, 438 33, 34, 35, 36, 37, 139, 39, 40, 41, 42, 439 133, 132, 131, 46, 47, 48, 49, 50, 51, 52, 440 53, 54, 55, 56, 57, 58, 59, 60, 61, 140, 441 144, 138, 65, 66, 142, 135, 136, 137, 71, 72, 442 73, 74, 0, 0, 129, 0, 0, 413, 130, 0, 443 0, 83, 0, 32, 33, 34, 35, 36, 37, 139, 444 39, 40, 41, 42, 133, 132, 131, 46, 47, 48, 445 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 446 59, 60, 61, 140, 144, 138, 65, 66, 142, 135, 447 136, 137, 71, 72, 73, 74, 0, 0, 129, 0, 448 0, 409, 130, 0, 0, 83, 0, 32, 33, 34, 449 35, 36, 37, 139, 39, 40, 41, 42, 133, 132, 450 131, 46, 47, 48, 49, 50, 51, 52, 53, 54, 451 55, 56, 57, 58, 59, 60, 61, 140, 144, 138, 452 65, 66, 142, 135, 136, 137, 71, 72, 73, 74, 453 0, 0, 129, 0, 0, 404, 130, 0, 0, 83, 454 0, 32, 33, 34, 35, 36, 37, 139, 39, 40, 455 41, 42, 133, 132, 131, 46, 47, 48, 49, 50, 456 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 457 61, 140, 144, 138, 65, 66, 142, 135, 136, 137, 458 71, 72, 73, 74, 0, 0, 129, 0, 0, 403, 459 130, 0, 0, 83, 0, 32, 33, 34, 35, 36, 460 37, 139, 39, 40, 41, 42, 133, 132, 131, 46, 461 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 462 57, 58, 59, 60, 61, 140, 144, 138, 65, 66, 463 142, 135, 136, 137, 71, 72, 73, 74, 0, 0, 464 129, 0, 0, 402, 130, 0, 0, 83, 0, 32, 465 33, 34, 35, 36, 37, 139, 39, 40, 41, 42, 466 133, 132, 131, 46, 47, 48, 49, 50, 51, 52, 467 53, 54, 55, 56, 57, 58, 59, 60, 61, 140, 468 144, 138, 65, 66, 142, 135, 136, 137, 71, 72, 469 73, 74, 0, 0, 129, 0, 0, 391, 130, 0, 470 0, 83, 0, 32, 33, 34, 35, 36, 37, 139, 471 39, 40, 41, 42, 133, 132, 131, 46, 47, 48, 472 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 473 59, 60, 61, 140, 144, 138, 65, 66, 142, 135, 474 136, 137, 71, 72, 73, 74, 0, 0, 129, 0, 475 0, 389, 130, 0, 0, 83, 0, 32, 33, 34, 476 35, 36, 37, 139, 39, 40, 41, 42, 133, 132, 477 131, 46, 47, 48, 49, 50, 51, 52, 53, 54, 478 55, 56, 57, 58, 59, 60, 61, 140, 144, 138, 479 65, 66, 142, 135, 136, 137, 71, 72, 73, 74, 480 0, 0, 129, 0, 0, 387, 292, 0, 0, 83, 481 0, 32, 33, 34, 35, 36, 37, 139, 39, 40, 482 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 483 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 484 294, 62, 63, 64, 65, 66, 67, 68, 69, 70, 485 71, 72, 73, 74, 0, 0, 291, 0, 0, 326, 486 160, 0, 0, 83, 0, 32, 33, 34, 35, 36, 487 37, 38, 39, 40, 41, 42, 133, 132, 131, 46, 488 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 489 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 490 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 491 159, 0, 0, 210, 130, 0, 0, 83, 0, 32, 492 33, 34, 35, 36, 37, 139, 39, 40, 41, 42, 493 133, 132, 131, 46, 47, 48, 49, 50, 51, 52, 494 53, 54, 55, 56, 57, 58, 59, 60, 61, 140, 495 144, 138, 65, 66, 142, 135, 136, 137, 71, 72, 496 73, 74, 0, 0, 129, 0, 0, 182, 130, 0, 497 0, 83, 0, 32, 33, 34, 35, 36, 37, 139, 498 39, 40, 41, 42, 133, 132, 131, 46, 47, 48, 499 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 500 59, 60, 61, 140, 144, 138, 65, 66, 142, 135, 501 136, 137, 71, 72, 73, 74, 0, 0, 129, 0, 502 0, 292, 0, 0, 0, 83, 32, 33, 34, 35, 503 36, 37, 139, 39, 40, 41, 42, 43, 44, 45, 504 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 505 56, 57, 58, 59, 60, 294, 62, 63, 64, 65, 506 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 507 0, 291, 0, 0, 160, 0, 0, 0, 83, 32, 508 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 509 133, 132, 131, 46, 47, 48, 49, 50, 51, 52, 510 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 511 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 512 73, 74, 0, 0, 159, 0, 0, 227, 0, 0, 513 0, 83, 32, 33, 34, 35, 36, 37, 38, 39, 514 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 515 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 516 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 517 70, 71, 72, 73, 74, 0, 0, 0, 0, 0, 518 0, 0, 0, 0, 83, 32, 33, 34, 35, 36, 519 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 520 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 521 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 522 67, 68, 69, 70, 71, 72, 304, 74, 0, 0, 523 0, 0, 0, 0, 0, 0, 0, 83, 32, 33, 524 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 525 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 526 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 527 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 528 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529 83, 32, 33, 34, 35, 36, 37, 38, 39, 40, 530 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 531 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 532 190, 62, 63, 64, 65, 66, 67, 68, 69, 70, 533 71, 72, 73, 74, 0, 0, 0, 0, 0, 0, 534 0, 0, 0, 83, 32, 33, 34, 35, 36, 37, 535 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 536 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 537 58, 59, 60, 188, 62, 63, 64, 65, 66, 67, 538 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, 539 0, 0, 0, 0, 0, 0, 83, 32, 33, 34, 540 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 541 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 542 55, 56, 57, 58, 59, 60, 186, 62, 63, 64, 543 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 544 0, 0, 0, 0, 0, 151, 0, 0, 0, 83, 545 32, 33, 34, 35, 36, 37, 139, 39, 40, 41, 546 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 547 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 548 62, 63, 64, 65, 66, 153, 68, 69, 70, 71, 549 72, 73, 74, 0, 151, 150, 0, 0, 201, 32, 550 33, 34, 35, 36, 37, 139, 39, 40, 41, 42, 551 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 552 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 553 63, 64, 65, 66, 153, 68, 69, 70, 71, 72, 554 73, 74, 0, 0, 150, 32, 33, 34, 35, 36, 555 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 556 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 557 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 558 67, 68, 69, 70, 71, 72, 73, 74, 559 } 560 561 var protoPact = [...]int{ 562 192, -1000, 301, 301, 206, -1000, -1000, -1000, -1000, -1000, 563 -1000, -1000, -1000, -1000, 173, 281, 2688, 1463, 2688, 2688, 564 2381, 2688, 301, -1000, 316, -1000, 175, 316, 316, -1000, 565 63, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 566 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 567 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 568 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 569 -1000, -1000, -1000, -1000, -1000, 108, -1000, -1000, 2381, 120, 570 110, 85, 29, 2688, 84, 171, -1000, -1000, 130, 129, 571 -1000, 2688, 856, 1463, 9, 2116, 2642, 2222, 29, 194, 572 -1000, -1000, -1000, -1000, 170, -1000, -1000, 314, -1000, -1000, 573 1402, -1000, 300, 268, -1000, -1000, -1000, 2062, -1000, -1000, 574 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 575 169, 2540, 2487, 2434, 2688, 2688, 2688, 2381, 295, 1463, 576 2688, 2688, 260, -1000, 16, 2593, -1000, -1000, -1000, -1000, 577 -1000, 167, 205, 79, -1000, 2008, -1000, -1000, -1000, -1000, 578 166, 159, -1000, -1000, -1000, -1000, 165, 2688, -1000, 1036, 579 -1000, 105, 102, 37, -1000, 2275, -1000, -1000, -1000, -1000, 580 -1000, -1000, -1000, -1000, -1000, 2688, 2688, 2688, 2688, 2688, 581 2688, 204, -8, -1000, 221, 73, 202, 100, 96, 314, 582 1124, -1000, -1000, -1000, 80, 93, -1000, 220, -1000, 312, 583 -1000, -1000, -1000, -1000, -1000, -1000, 21, -1000, -1000, -1000, 584 -1000, -1000, -1000, 487, -1000, 1341, 1, 0, 197, 189, 585 182, 181, 180, 179, 304, -1000, 164, 295, 1463, 238, 586 2169, 291, -1000, -1000, 316, 17, -1000, -1000, -1000, -1000, 587 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15, 80, 588 -1000, 66, -1000, 2328, -1000, 422, -1000, 1280, 975, 71, 589 -1000, -1000, 288, 284, 282, 277, 275, 273, 14, -1000, 590 -1000, -23, -1000, 107, -1000, -1000, 1954, -1000, -1000, -1000, 591 -1000, -1000, 163, 2688, 2688, 13, 314, 2381, -1000, 160, 592 -1000, -1000, -1000, 8, 2381, -1000, -1000, -12, -27, -1000, 593 1219, 914, 58, -1000, -1000, 12, 6, 5, -4, -6, 594 -5, -1000, 158, -1000, 1463, 856, -1000, -1000, -1000, 178, 595 177, -1000, 151, 26, -1000, 210, -1000, -1000, 612, 551, 596 -1000, 792, 53, -1000, -1000, -1000, 147, 2116, 67, -1000, 597 146, 2116, 62, -1000, 65, 2116, 52, -1000, -1000, -1000, 598 267, 257, -1000, -1000, 11, -1000, 1158, -1000, 1097, -1000, 599 -1000, -1000, 1900, 2116, -1000, 1846, 2116, -1000, 1792, 2116, 600 -9, -20, 2328, 731, 48, 670, 43, -1000, 1738, -1000, 601 1684, -1000, 1630, -1000, 60, 2116, 35, 4, -1000, -1000, 602 -1000, -1000, -1000, -1000, -1000, -1000, 1576, 2116, 119, -1000, 603 1522, -1000, 200, -1000, 195, -1000, -1000, -1000, 50, -1000, 604 -1000, -1000, 605 } 606 607 var protoPgo = [...]int{ 608 0, 407, 406, 263, 333, 405, 404, 1, 13, 403, 609 3, 402, 12, 35, 11, 9, 25, 21, 401, 15, 610 0, 398, 36, 17, 396, 389, 8, 39, 387, 28, 611 380, 376, 27, 374, 373, 372, 360, 6, 14, 10, 612 371, 368, 365, 357, 31, 16, 33, 23, 354, 352, 613 355, 32, 350, 343, 298, 29, 341, 26, 334, 30, 614 324, 323, 7, 615 } 616 617 var protoR1 = [...]int{ 618 0, 1, 1, 1, 1, 4, 4, 3, 3, 3, 619 3, 3, 3, 3, 3, 3, 3, 2, 5, 5, 620 5, 6, 22, 22, 7, 12, 12, 13, 13, 15, 621 15, 16, 16, 16, 18, 18, 18, 18, 18, 18, 622 18, 18, 57, 57, 17, 26, 26, 26, 27, 27, 623 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 624 28, 28, 28, 28, 24, 24, 24, 25, 25, 25, 625 25, 25, 25, 25, 25, 25, 23, 23, 29, 29, 626 29, 29, 29, 29, 29, 29, 14, 9, 9, 8, 627 32, 32, 32, 32, 32, 32, 31, 40, 40, 40, 628 39, 39, 39, 39, 39, 39, 30, 30, 33, 33, 629 34, 34, 35, 21, 21, 21, 21, 21, 21, 21, 630 21, 21, 21, 21, 21, 49, 49, 46, 46, 45, 631 45, 45, 48, 48, 47, 47, 47, 19, 19, 42, 632 42, 43, 43, 44, 41, 41, 50, 52, 52, 52, 633 51, 51, 51, 51, 51, 51, 53, 53, 36, 38, 634 38, 38, 37, 37, 37, 37, 37, 37, 37, 37, 635 37, 37, 37, 37, 37, 54, 56, 56, 56, 55, 636 55, 55, 55, 55, 58, 60, 60, 60, 59, 59, 637 59, 59, 59, 61, 61, 62, 62, 11, 11, 11, 638 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 639 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 640 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 641 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 642 20, 20, 20, 20, 20, 20, 20, 643 } 644 645 var protoR2 = [...]int{ 646 0, 1, 1, 2, 0, 2, 1, 1, 1, 1, 647 1, 1, 1, 1, 1, 2, 1, 4, 3, 4, 648 4, 3, 1, 3, 5, 1, 3, 1, 3, 1, 649 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 650 2, 2, 1, 2, 3, 1, 2, 0, 1, 2, 651 2, 2, 2, 1, 3, 4, 5, 5, 3, 2, 652 5, 4, 5, 4, 1, 3, 3, 1, 3, 3, 653 3, 5, 5, 3, 5, 5, 1, 2, 6, 6, 654 6, 5, 7, 7, 7, 6, 3, 3, 1, 3, 655 8, 8, 8, 9, 9, 9, 5, 2, 1, 0, 656 1, 1, 1, 1, 2, 1, 5, 6, 7, 8, 657 5, 6, 6, 1, 1, 1, 1, 1, 1, 1, 658 1, 1, 1, 1, 1, 3, 4, 3, 1, 1, 659 3, 3, 3, 1, 1, 3, 3, 1, 2, 3, 660 1, 3, 1, 3, 3, 1, 5, 2, 1, 0, 661 1, 1, 1, 1, 2, 1, 4, 5, 5, 2, 662 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 663 1, 1, 1, 2, 1, 5, 2, 1, 0, 1, 664 1, 1, 2, 1, 5, 2, 1, 0, 1, 1, 665 1, 2, 1, 10, 12, 2, 1, 2, 1, 0, 666 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 670 1, 1, 1, 1, 1, 1, 1, 671 } 672 673 var protoChk = [...]int{ 674 -1000, -1, -2, -4, 8, -3, -5, -6, -7, -36, 675 -50, -54, -58, 52, 2, 9, 12, 13, 44, 43, 676 45, 46, -4, -3, 51, 52, -57, 10, 11, 4, 677 -22, -20, 7, 8, 9, 10, 11, 12, 13, 14, 678 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 679 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 680 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 681 45, 46, 47, 48, 49, -12, -13, -20, 65, -20, 682 -20, -23, -22, 59, -20, -57, 52, 4, -57, -57, 683 52, 59, 51, 59, -23, 54, 54, 54, -22, 54, 684 52, 52, 52, -20, -15, -16, -17, -57, -18, -20, 685 54, 6, 64, 63, 5, -13, 66, -38, -37, -29, 686 -50, -36, -54, -49, -32, -7, -31, -34, -42, 52, 687 2, 20, 19, 18, -23, 43, 44, 45, 39, 13, 688 37, -35, 42, -44, 38, -52, -51, -7, -53, -43, 689 52, 2, -20, 42, -44, -56, -55, -29, -32, 52, 690 2, -60, -59, -7, -61, 52, 2, 47, 52, -26, 691 -27, -28, 2, -24, -20, 67, 6, 16, 5, 6, 692 16, 5, 55, -37, 52, -23, 36, -23, 36, -23, 693 36, -20, -46, -45, 5, -20, -20, -46, -41, -57, 694 62, 55, -51, 52, 51, -48, -47, -19, 5, 64, 695 55, -55, 52, 55, -59, 52, -20, 55, -27, 60, 696 52, 60, 52, 53, -17, 62, -23, 2, -20, -20, 697 -20, -20, -20, -20, 51, 52, -14, 60, 67, 40, 698 54, 51, 52, 52, 60, -21, 23, 24, 25, 26, 699 27, 28, 29, 30, 31, 32, 33, 34, -19, 60, 700 52, 40, 5, 65, -16, 67, -17, 62, -26, 2, 701 68, 68, 51, 51, 51, 51, 51, 51, 5, 52, 702 -45, -9, -8, -12, 5, 41, -40, -39, -7, -30, 703 -33, 52, 2, -23, 36, 5, -57, 60, 52, -14, 704 -47, -19, 41, -62, 48, -23, 68, -25, 2, -15, 705 62, -26, 2, 61, 61, 5, 5, 5, 5, 5, 706 5, 52, -14, 68, 60, 51, 55, -39, 52, -20, 707 -20, 52, -14, -23, 52, 66, -23, 68, 60, 52, 708 68, -26, 2, 61, 61, 52, -14, 54, -14, 52, 709 -14, 54, -14, 52, -14, 54, -14, 52, -8, -15, 710 51, 51, 52, 61, 49, -15, 62, -15, 62, 61, 711 61, 52, -38, 54, 52, -38, 54, 52, -38, 54, 712 5, 5, 65, -26, 2, -26, 2, 55, -38, 55, 713 -38, 55, -38, 52, -14, 54, -14, -62, 61, 61, 714 61, 61, 55, 55, 55, 52, -38, 54, 66, 55, 715 -38, 52, 54, 55, -11, -10, -7, 52, 2, 55, 716 -10, 52, 717 } 718 719 var protoDef = [...]int{ 720 -2, -2, -2, -2, 0, 6, 7, 8, 9, 10, 721 11, 12, 13, 14, 16, 0, 0, 0, 0, 0, 722 0, 0, -2, 5, 0, 15, 0, 0, 0, 42, 723 0, 22, 204, 205, 206, 207, 208, 209, 210, 211, 724 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 725 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 726 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 727 242, 243, 244, 245, 246, 0, 25, 27, 0, 0, 728 0, 0, 76, 0, 0, 0, 18, 43, 0, 0, 729 21, 0, 0, 0, 0, -2, -2, -2, 77, -2, 730 17, 19, 20, 23, 0, 29, 30, 31, 32, 33, 731 -2, 34, 0, 0, 39, 26, 28, 0, 160, 162, 732 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 733 174, 0, 0, 0, 0, 240, 241, 0, 236, 210, 734 234, 0, 239, 140, 235, 0, 148, 150, 151, 152, 735 153, 155, 0, 239, 142, 0, 177, 179, 180, 181, 736 183, 0, 186, 188, 189, 190, 192, 0, 24, 0, 737 45, 48, 53, 0, 64, 0, 35, 38, 41, 36, 738 37, 40, 158, 159, 173, 0, 233, 0, 233, 0, 739 233, 0, 0, 128, 129, 0, 0, 0, 0, 145, 740 0, 146, 147, 154, 0, 0, 133, 134, 137, 0, 741 175, 176, 182, 184, 185, 191, 0, 44, 46, 49, 742 50, 51, 52, 0, 59, -2, 0, 0, 0, 0, 743 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 744 -2, 0, 139, 143, 0, 0, 113, 114, 115, 116, 745 117, 118, 119, 120, 121, 122, 123, 124, 0, 0, 746 141, 0, 138, 0, 54, 0, 58, -2, 0, 53, 747 65, 66, 0, 0, 0, 0, 0, 0, 0, 126, 748 127, 0, 88, 0, 130, 131, 0, 98, 100, 101, 749 102, 103, 105, 0, 233, 0, 144, 0, 156, 0, 750 132, 135, 136, 0, 245, 196, 55, 0, 0, 67, 751 -2, 0, 53, 61, 63, 0, 0, 0, 0, 0, 752 0, 81, 0, 86, 0, 0, 96, 97, 104, 0, 753 0, 110, 0, 0, 157, 0, 195, 56, 0, 0, 754 57, 0, 53, 60, 62, 78, 0, -2, 0, 79, 755 0, -2, 0, 80, 0, -2, 0, 85, 87, 89, 756 0, 0, 111, 112, 0, 68, -2, 69, -2, 70, 757 73, 82, 0, -2, 83, 0, -2, 84, 0, -2, 758 0, 0, 0, 0, 53, 0, 53, 90, 0, 91, 759 0, 92, 0, 106, 0, -2, 0, 0, 71, 74, 760 72, 75, 93, 94, 95, 107, 0, -2, 0, 108, 761 0, 193, -2, 109, 0, 198, 200, 201, 203, 194, 762 197, 202, 763 } 764 765 var protoTok1 = [...]int{ 766 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 767 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 768 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 769 3, 3, 3, 76, 3, 74, 73, 72, 70, 3, 770 65, 66, 69, 63, 60, 64, 59, 57, 3, 3, 771 3, 3, 3, 3, 3, 3, 3, 3, 53, 52, 772 62, 51, 61, 58, 75, 3, 3, 3, 3, 3, 773 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 774 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 775 3, 67, 56, 68, 71, 3, 78, 3, 3, 3, 776 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 777 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 778 3, 3, 3, 54, 3, 55, 77, 779 } 780 781 var protoTok2 = [...]int{ 782 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 783 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 784 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 785 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 786 42, 43, 44, 45, 46, 47, 48, 49, 50, 787 } 788 789 var protoTok3 = [...]int{ 790 0, 791 } 792 793 var protoErrorMessages = [...]struct { 794 state int 795 token int 796 msg string 797 }{} 798 799 //line yaccpar:1 800 801 /* parser for yacc output */ 802 803 var ( 804 protoDebug = 0 805 protoErrorVerbose = false 806 ) 807 808 type protoLexer interface { 809 Lex(lval *protoSymType) int 810 Error(s string) 811 } 812 813 type protoParser interface { 814 Parse(protoLexer) int 815 Lookahead() int 816 } 817 818 type protoParserImpl struct { 819 lval protoSymType 820 stack [protoInitialStackSize]protoSymType 821 char int 822 } 823 824 func (p *protoParserImpl) Lookahead() int { 825 return p.char 826 } 827 828 func protoNewParser() protoParser { 829 return &protoParserImpl{} 830 } 831 832 const protoFlag = -1000 833 834 func protoTokname(c int) string { 835 if c >= 1 && c-1 < len(protoToknames) { 836 if protoToknames[c-1] != "" { 837 return protoToknames[c-1] 838 } 839 } 840 return __yyfmt__.Sprintf("tok-%v", c) 841 } 842 843 func protoStatname(s int) string { 844 if s >= 0 && s < len(protoStatenames) { 845 if protoStatenames[s] != "" { 846 return protoStatenames[s] 847 } 848 } 849 return __yyfmt__.Sprintf("state-%v", s) 850 } 851 852 func protoErrorMessage(state, lookAhead int) string { 853 const TOKSTART = 4 854 855 if !protoErrorVerbose { 856 return "syntax error" 857 } 858 859 for _, e := range protoErrorMessages { 860 if e.state == state && e.token == lookAhead { 861 return "syntax error: " + e.msg 862 } 863 } 864 865 res := "syntax error: unexpected " + protoTokname(lookAhead) 866 867 // To match Bison, suggest at most four expected tokens. 868 expected := make([]int, 0, 4) 869 870 // Look for shiftable tokens. 871 base := protoPact[state] 872 for tok := TOKSTART; tok-1 < len(protoToknames); tok++ { 873 if n := base + tok; n >= 0 && n < protoLast && protoChk[protoAct[n]] == tok { 874 if len(expected) == cap(expected) { 875 return res 876 } 877 expected = append(expected, tok) 878 } 879 } 880 881 if protoDef[state] == -2 { 882 i := 0 883 for protoExca[i] != -1 || protoExca[i+1] != state { 884 i += 2 885 } 886 887 // Look for tokens that we accept or reduce. 888 for i += 2; protoExca[i] >= 0; i += 2 { 889 tok := protoExca[i] 890 if tok < TOKSTART || protoExca[i+1] == 0 { 891 continue 892 } 893 if len(expected) == cap(expected) { 894 return res 895 } 896 expected = append(expected, tok) 897 } 898 899 // If the default action is to accept or reduce, give up. 900 if protoExca[i+1] != 0 { 901 return res 902 } 903 } 904 905 for i, tok := range expected { 906 if i == 0 { 907 res += ", expecting " 908 } else { 909 res += " or " 910 } 911 res += protoTokname(tok) 912 } 913 return res 914 } 915 916 func protolex1(lex protoLexer, lval *protoSymType) (char, token int) { 917 token = 0 918 char = lex.Lex(lval) 919 if char <= 0 { 920 token = protoTok1[0] 921 goto out 922 } 923 if char < len(protoTok1) { 924 token = protoTok1[char] 925 goto out 926 } 927 if char >= protoPrivate { 928 if char < protoPrivate+len(protoTok2) { 929 token = protoTok2[char-protoPrivate] 930 goto out 931 } 932 } 933 for i := 0; i < len(protoTok3); i += 2 { 934 token = protoTok3[i+0] 935 if token == char { 936 token = protoTok3[i+1] 937 goto out 938 } 939 } 940 941 out: 942 if token == 0 { 943 token = protoTok2[1] /* unknown char */ 944 } 945 if protoDebug >= 3 { 946 __yyfmt__.Printf("lex %s(%d)\n", protoTokname(token), uint(char)) 947 } 948 return char, token 949 } 950 951 func protoParse(protolex protoLexer) int { 952 return protoNewParser().Parse(protolex) 953 } 954 955 func (protorcvr *protoParserImpl) Parse(protolex protoLexer) int { 956 var proton int 957 var protoVAL protoSymType 958 var protoDollar []protoSymType 959 _ = protoDollar // silence set and not used 960 protoS := protorcvr.stack[:] 961 962 Nerrs := 0 /* number of errors */ 963 Errflag := 0 /* error recovery flag */ 964 protostate := 0 965 protorcvr.char = -1 966 prototoken := -1 // protorcvr.char translated into internal numbering 967 defer func() { 968 // Make sure we report no lookahead when not parsing. 969 protostate = -1 970 protorcvr.char = -1 971 prototoken = -1 972 }() 973 protop := -1 974 goto protostack 975 976 ret0: 977 return 0 978 979 ret1: 980 return 1 981 982 protostack: 983 /* put a state and value onto the stack */ 984 if protoDebug >= 4 { 985 __yyfmt__.Printf("char %v in %v\n", protoTokname(prototoken), protoStatname(protostate)) 986 } 987 988 protop++ 989 if protop >= len(protoS) { 990 nyys := make([]protoSymType, len(protoS)*2) 991 copy(nyys, protoS) 992 protoS = nyys 993 } 994 protoS[protop] = protoVAL 995 protoS[protop].yys = protostate 996 997 protonewstate: 998 proton = protoPact[protostate] 999 if proton <= protoFlag { 1000 goto protodefault /* simple state */ 1001 } 1002 if protorcvr.char < 0 { 1003 protorcvr.char, prototoken = protolex1(protolex, &protorcvr.lval) 1004 } 1005 proton += prototoken 1006 if proton < 0 || proton >= protoLast { 1007 goto protodefault 1008 } 1009 proton = protoAct[proton] 1010 if protoChk[proton] == prototoken { /* valid shift */ 1011 protorcvr.char = -1 1012 prototoken = -1 1013 protoVAL = protorcvr.lval 1014 protostate = proton 1015 if Errflag > 0 { 1016 Errflag-- 1017 } 1018 goto protostack 1019 } 1020 1021 protodefault: 1022 /* default state action */ 1023 proton = protoDef[protostate] 1024 if proton == -2 { 1025 if protorcvr.char < 0 { 1026 protorcvr.char, prototoken = protolex1(protolex, &protorcvr.lval) 1027 } 1028 1029 /* look through exception table */ 1030 xi := 0 1031 for { 1032 if protoExca[xi+0] == -1 && protoExca[xi+1] == protostate { 1033 break 1034 } 1035 xi += 2 1036 } 1037 for xi += 2; ; xi += 2 { 1038 proton = protoExca[xi+0] 1039 if proton < 0 || proton == prototoken { 1040 break 1041 } 1042 } 1043 proton = protoExca[xi+1] 1044 if proton < 0 { 1045 goto ret0 1046 } 1047 } 1048 if proton == 0 { 1049 /* error ... attempt to resume parsing */ 1050 switch Errflag { 1051 case 0: /* brand new error */ 1052 protolex.Error(protoErrorMessage(protostate, prototoken)) 1053 Nerrs++ 1054 if protoDebug >= 1 { 1055 __yyfmt__.Printf("%s", protoStatname(protostate)) 1056 __yyfmt__.Printf(" saw %s\n", protoTokname(prototoken)) 1057 } 1058 fallthrough 1059 1060 case 1, 2: /* incompletely recovered error ... try again */ 1061 Errflag = 3 1062 1063 /* find a state where "error" is a legal shift action */ 1064 for protop >= 0 { 1065 proton = protoPact[protoS[protop].yys] + protoErrCode 1066 if proton >= 0 && proton < protoLast { 1067 protostate = protoAct[proton] /* simulate a shift of "error" */ 1068 if protoChk[protostate] == protoErrCode { 1069 goto protostack 1070 } 1071 } 1072 1073 /* the current p has no shift on "error", pop stack */ 1074 if protoDebug >= 2 { 1075 __yyfmt__.Printf("error recovery pops state %d\n", protoS[protop].yys) 1076 } 1077 protop-- 1078 } 1079 /* there is no state on the stack with an error shift ... abort */ 1080 goto ret1 1081 1082 case 3: /* no shift yet; clobber input char */ 1083 if protoDebug >= 2 { 1084 __yyfmt__.Printf("error recovery discards %s\n", protoTokname(prototoken)) 1085 } 1086 if prototoken == protoEofCode { 1087 goto ret1 1088 } 1089 protorcvr.char = -1 1090 prototoken = -1 1091 goto protonewstate /* try again in the same state */ 1092 } 1093 } 1094 1095 /* reduction by production proton */ 1096 if protoDebug >= 2 { 1097 __yyfmt__.Printf("reduce %v in:\n\t%v\n", proton, protoStatname(protostate)) 1098 } 1099 1100 protont := proton 1101 protopt := protop 1102 _ = protopt // guard against "declared and not used" 1103 1104 protop -= protoR2[proton] 1105 // protop is now the index of $0. Perform the default action. Iff the 1106 // reduced production is ε, $1 is possibly out of range. 1107 if protop+1 >= len(protoS) { 1108 nyys := make([]protoSymType, len(protoS)*2) 1109 copy(nyys, protoS) 1110 protoS = nyys 1111 } 1112 protoVAL = protoS[protop+1] 1113 1114 /* consult goto table to find next state */ 1115 proton = protoR1[proton] 1116 protog := protoPgo[proton] 1117 protoj := protog + protoS[protop].yys + 1 1118 1119 if protoj >= protoLast { 1120 protostate = protoAct[protog] 1121 } else { 1122 protostate = protoAct[protoj] 1123 if protoChk[protostate] != -proton { 1124 protostate = protoAct[protog] 1125 } 1126 } 1127 // dummy call; replaced with literal code 1128 switch protont { 1129 1130 case 1: 1131 protoDollar = protoS[protopt-1 : protopt+1] 1132 //line proto.y:116 1133 { 1134 protoVAL.file = &fileNode{syntax: protoDollar[1].syn} 1135 protoVAL.file.setRange(protoDollar[1].syn, protoDollar[1].syn) 1136 protolex.(*protoLex).res = protoVAL.file 1137 } 1138 case 2: 1139 protoDollar = protoS[protopt-1 : protopt+1] 1140 //line proto.y:121 1141 { 1142 protoVAL.file = &fileNode{decls: protoDollar[1].fileDecls} 1143 if len(protoDollar[1].fileDecls) > 0 { 1144 protoVAL.file.setRange(protoDollar[1].fileDecls[0], protoDollar[1].fileDecls[len(protoDollar[1].fileDecls)-1]) 1145 } 1146 protolex.(*protoLex).res = protoVAL.file 1147 } 1148 case 3: 1149 protoDollar = protoS[protopt-2 : protopt+1] 1150 //line proto.y:128 1151 { 1152 protoVAL.file = &fileNode{syntax: protoDollar[1].syn, decls: protoDollar[2].fileDecls} 1153 var end node 1154 if len(protoDollar[2].fileDecls) > 0 { 1155 end = protoDollar[2].fileDecls[len(protoDollar[2].fileDecls)-1] 1156 } else { 1157 end = protoDollar[1].syn 1158 } 1159 protoVAL.file.setRange(protoDollar[1].syn, end) 1160 protolex.(*protoLex).res = protoVAL.file 1161 } 1162 case 4: 1163 protoDollar = protoS[protopt-0 : protopt+1] 1164 //line proto.y:139 1165 { 1166 } 1167 case 5: 1168 protoDollar = protoS[protopt-2 : protopt+1] 1169 //line proto.y:142 1170 { 1171 protoVAL.fileDecls = append(protoDollar[1].fileDecls, protoDollar[2].fileDecls...) 1172 } 1173 case 7: 1174 protoDollar = protoS[protopt-1 : protopt+1] 1175 //line proto.y:147 1176 { 1177 protoVAL.fileDecls = []*fileElement{{imp: protoDollar[1].imprt}} 1178 } 1179 case 8: 1180 protoDollar = protoS[protopt-1 : protopt+1] 1181 //line proto.y:150 1182 { 1183 protoVAL.fileDecls = []*fileElement{{pkg: protoDollar[1].pkg}} 1184 } 1185 case 9: 1186 protoDollar = protoS[protopt-1 : protopt+1] 1187 //line proto.y:153 1188 { 1189 protoVAL.fileDecls = []*fileElement{{option: protoDollar[1].opts[0]}} 1190 } 1191 case 10: 1192 protoDollar = protoS[protopt-1 : protopt+1] 1193 //line proto.y:156 1194 { 1195 protoVAL.fileDecls = []*fileElement{{message: protoDollar[1].msg}} 1196 } 1197 case 11: 1198 protoDollar = protoS[protopt-1 : protopt+1] 1199 //line proto.y:159 1200 { 1201 protoVAL.fileDecls = []*fileElement{{enum: protoDollar[1].en}} 1202 } 1203 case 12: 1204 protoDollar = protoS[protopt-1 : protopt+1] 1205 //line proto.y:162 1206 { 1207 protoVAL.fileDecls = []*fileElement{{extend: protoDollar[1].extend}} 1208 } 1209 case 13: 1210 protoDollar = protoS[protopt-1 : protopt+1] 1211 //line proto.y:165 1212 { 1213 protoVAL.fileDecls = []*fileElement{{service: protoDollar[1].svc}} 1214 } 1215 case 14: 1216 protoDollar = protoS[protopt-1 : protopt+1] 1217 //line proto.y:168 1218 { 1219 protoVAL.fileDecls = []*fileElement{{empty: protoDollar[1].b}} 1220 } 1221 case 15: 1222 protoDollar = protoS[protopt-2 : protopt+1] 1223 //line proto.y:171 1224 { 1225 } 1226 case 16: 1227 protoDollar = protoS[protopt-1 : protopt+1] 1228 //line proto.y:173 1229 { 1230 } 1231 case 17: 1232 protoDollar = protoS[protopt-4 : protopt+1] 1233 //line proto.y:176 1234 { 1235 protoVAL.syn = &syntaxNode{syntax: protoDollar[3].str} 1236 protoVAL.syn.setRange(protoDollar[1].id, protoDollar[4].b) 1237 } 1238 case 18: 1239 protoDollar = protoS[protopt-3 : protopt+1] 1240 //line proto.y:181 1241 { 1242 protoVAL.imprt = &importNode{name: protoDollar[2].str} 1243 protoVAL.imprt.setRange(protoDollar[1].id, protoDollar[3].b) 1244 } 1245 case 19: 1246 protoDollar = protoS[protopt-4 : protopt+1] 1247 //line proto.y:185 1248 { 1249 protoVAL.imprt = &importNode{name: protoDollar[3].str, weak: true} 1250 protoVAL.imprt.setRange(protoDollar[1].id, protoDollar[4].b) 1251 } 1252 case 20: 1253 protoDollar = protoS[protopt-4 : protopt+1] 1254 //line proto.y:189 1255 { 1256 protoVAL.imprt = &importNode{name: protoDollar[3].str, public: true} 1257 protoVAL.imprt.setRange(protoDollar[1].id, protoDollar[4].b) 1258 } 1259 case 21: 1260 protoDollar = protoS[protopt-3 : protopt+1] 1261 //line proto.y:194 1262 { 1263 protoVAL.pkg = &packageNode{name: protoDollar[2].cid} 1264 protoVAL.pkg.setRange(protoDollar[1].id, protoDollar[3].b) 1265 } 1266 case 22: 1267 protoDollar = protoS[protopt-1 : protopt+1] 1268 //line proto.y:199 1269 { 1270 protoVAL.cid = &compoundIdentNode{val: protoDollar[1].id.val} 1271 protoVAL.cid.setRange(protoDollar[1].id, protoDollar[1].id) 1272 } 1273 case 23: 1274 protoDollar = protoS[protopt-3 : protopt+1] 1275 //line proto.y:203 1276 { 1277 protoVAL.cid = &compoundIdentNode{val: protoDollar[1].cid.val + "." + protoDollar[3].id.val} 1278 protoVAL.cid.setRange(protoDollar[1].cid, protoDollar[3].id) 1279 } 1280 case 24: 1281 protoDollar = protoS[protopt-5 : protopt+1] 1282 //line proto.y:208 1283 { 1284 n := &optionNameNode{parts: protoDollar[2].optNm} 1285 n.setRange(protoDollar[2].optNm[0], protoDollar[2].optNm[len(protoDollar[2].optNm)-1]) 1286 o := &optionNode{name: n, val: protoDollar[4].v} 1287 o.setRange(protoDollar[1].id, protoDollar[5].b) 1288 protoVAL.opts = []*optionNode{o} 1289 } 1290 case 26: 1291 protoDollar = protoS[protopt-3 : protopt+1] 1292 //line proto.y:218 1293 { 1294 protoVAL.optNm = append(protoDollar[1].optNm, protoDollar[3].optNm...) 1295 } 1296 case 27: 1297 protoDollar = protoS[protopt-1 : protopt+1] 1298 //line proto.y:223 1299 { 1300 nm := &compoundIdentNode{val: protoDollar[1].id.val} 1301 nm.setRange(protoDollar[1].id, protoDollar[1].id) 1302 protoVAL.optNm = toNameParts(nm) 1303 } 1304 case 28: 1305 protoDollar = protoS[protopt-3 : protopt+1] 1306 //line proto.y:228 1307 { 1308 p := &optionNamePartNode{text: protoDollar[2].cid, isExtension: true} 1309 p.setRange(protoDollar[1].b, protoDollar[3].b) 1310 protoVAL.optNm = []*optionNamePartNode{p} 1311 } 1312 case 31: 1313 protoDollar = protoS[protopt-1 : protopt+1] 1314 //line proto.y:237 1315 { 1316 protoVAL.v = protoDollar[1].str 1317 } 1318 case 33: 1319 protoDollar = protoS[protopt-1 : protopt+1] 1320 //line proto.y:241 1321 { 1322 if protoDollar[1].id.val == "true" { 1323 protoVAL.v = &boolLiteralNode{identNode: protoDollar[1].id, val: true} 1324 } else if protoDollar[1].id.val == "false" { 1325 protoVAL.v = &boolLiteralNode{identNode: protoDollar[1].id, val: false} 1326 } else if protoDollar[1].id.val == "inf" { 1327 f := &compoundFloatNode{val: math.Inf(1)} 1328 f.setRange(protoDollar[1].id, protoDollar[1].id) 1329 protoVAL.v = f 1330 } else if protoDollar[1].id.val == "nan" { 1331 f := &compoundFloatNode{val: math.NaN()} 1332 f.setRange(protoDollar[1].id, protoDollar[1].id) 1333 protoVAL.v = f 1334 } else { 1335 protoVAL.v = protoDollar[1].id 1336 } 1337 } 1338 case 34: 1339 protoDollar = protoS[protopt-1 : protopt+1] 1340 //line proto.y:259 1341 { 1342 protoVAL.v = protoDollar[1].f 1343 } 1344 case 35: 1345 protoDollar = protoS[protopt-2 : protopt+1] 1346 //line proto.y:262 1347 { 1348 f := &compoundFloatNode{val: -protoDollar[2].f.val} 1349 f.setRange(protoDollar[1].b, protoDollar[2].f) 1350 protoVAL.v = f 1351 } 1352 case 36: 1353 protoDollar = protoS[protopt-2 : protopt+1] 1354 //line proto.y:267 1355 { 1356 f := &compoundFloatNode{val: protoDollar[2].f.val} 1357 f.setRange(protoDollar[1].b, protoDollar[2].f) 1358 protoVAL.v = f 1359 } 1360 case 37: 1361 protoDollar = protoS[protopt-2 : protopt+1] 1362 //line proto.y:272 1363 { 1364 f := &compoundFloatNode{val: math.Inf(1)} 1365 f.setRange(protoDollar[1].b, protoDollar[2].id) 1366 protoVAL.v = f 1367 } 1368 case 38: 1369 protoDollar = protoS[protopt-2 : protopt+1] 1370 //line proto.y:277 1371 { 1372 f := &compoundFloatNode{val: math.Inf(-1)} 1373 f.setRange(protoDollar[1].b, protoDollar[2].id) 1374 protoVAL.v = f 1375 } 1376 case 39: 1377 protoDollar = protoS[protopt-1 : protopt+1] 1378 //line proto.y:282 1379 { 1380 protoVAL.v = protoDollar[1].i 1381 } 1382 case 40: 1383 protoDollar = protoS[protopt-2 : protopt+1] 1384 //line proto.y:285 1385 { 1386 i := &compoundUintNode{val: protoDollar[2].i.val} 1387 i.setRange(protoDollar[1].b, protoDollar[2].i) 1388 protoVAL.v = i 1389 } 1390 case 41: 1391 protoDollar = protoS[protopt-2 : protopt+1] 1392 //line proto.y:290 1393 { 1394 if protoDollar[2].i.val > math.MaxInt64+1 { 1395 // can't represent as int so treat as float literal 1396 f := &compoundFloatNode{val: -float64(protoDollar[2].i.val)} 1397 f.setRange(protoDollar[1].b, protoDollar[2].i) 1398 protoVAL.v = f 1399 } else { 1400 i := &compoundIntNode{val: -int64(protoDollar[2].i.val)} 1401 i.setRange(protoDollar[1].b, protoDollar[2].i) 1402 protoVAL.v = i 1403 } 1404 } 1405 case 42: 1406 protoDollar = protoS[protopt-1 : protopt+1] 1407 //line proto.y:303 1408 { 1409 protoVAL.str = &compoundStringNode{val: protoDollar[1].s.val} 1410 protoVAL.str.setRange(protoDollar[1].s, protoDollar[1].s) 1411 } 1412 case 43: 1413 protoDollar = protoS[protopt-2 : protopt+1] 1414 //line proto.y:307 1415 { 1416 protoVAL.str = &compoundStringNode{val: protoDollar[1].str.val + protoDollar[2].s.val} 1417 protoVAL.str.setRange(protoDollar[1].str, protoDollar[2].s) 1418 } 1419 case 44: 1420 protoDollar = protoS[protopt-3 : protopt+1] 1421 //line proto.y:312 1422 { 1423 a := &aggregateLiteralNode{elements: protoDollar[2].agg} 1424 a.setRange(protoDollar[1].b, protoDollar[3].b) 1425 protoVAL.v = a 1426 } 1427 case 46: 1428 protoDollar = protoS[protopt-2 : protopt+1] 1429 //line proto.y:319 1430 { 1431 protoVAL.agg = append(protoDollar[1].agg, protoDollar[2].agg...) 1432 } 1433 case 47: 1434 protoDollar = protoS[protopt-0 : protopt+1] 1435 //line proto.y:322 1436 { 1437 protoVAL.agg = nil 1438 } 1439 case 49: 1440 protoDollar = protoS[protopt-2 : protopt+1] 1441 //line proto.y:327 1442 { 1443 protoVAL.agg = protoDollar[1].agg 1444 } 1445 case 50: 1446 protoDollar = protoS[protopt-2 : protopt+1] 1447 //line proto.y:330 1448 { 1449 protoVAL.agg = protoDollar[1].agg 1450 } 1451 case 51: 1452 protoDollar = protoS[protopt-2 : protopt+1] 1453 //line proto.y:333 1454 { 1455 } 1456 case 52: 1457 protoDollar = protoS[protopt-2 : protopt+1] 1458 //line proto.y:335 1459 { 1460 } 1461 case 53: 1462 protoDollar = protoS[protopt-1 : protopt+1] 1463 //line proto.y:337 1464 { 1465 } 1466 case 54: 1467 protoDollar = protoS[protopt-3 : protopt+1] 1468 //line proto.y:340 1469 { 1470 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: protoDollar[3].v} 1471 a.setRange(protoDollar[1].aggName, protoDollar[3].v) 1472 protoVAL.agg = []*aggregateEntryNode{a} 1473 } 1474 case 55: 1475 protoDollar = protoS[protopt-4 : protopt+1] 1476 //line proto.y:345 1477 { 1478 s := &sliceLiteralNode{} 1479 s.setRange(protoDollar[3].b, protoDollar[4].b) 1480 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s} 1481 a.setRange(protoDollar[1].aggName, protoDollar[4].b) 1482 protoVAL.agg = []*aggregateEntryNode{a} 1483 } 1484 case 56: 1485 protoDollar = protoS[protopt-5 : protopt+1] 1486 //line proto.y:352 1487 { 1488 s := &sliceLiteralNode{elements: protoDollar[4].sl} 1489 s.setRange(protoDollar[3].b, protoDollar[5].b) 1490 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s} 1491 a.setRange(protoDollar[1].aggName, protoDollar[5].b) 1492 protoVAL.agg = []*aggregateEntryNode{a} 1493 } 1494 case 57: 1495 protoDollar = protoS[protopt-5 : protopt+1] 1496 //line proto.y:359 1497 { 1498 } 1499 case 58: 1500 protoDollar = protoS[protopt-3 : protopt+1] 1501 //line proto.y:361 1502 { 1503 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: protoDollar[3].v} 1504 a.setRange(protoDollar[1].aggName, protoDollar[3].v) 1505 protoVAL.agg = []*aggregateEntryNode{a} 1506 } 1507 case 59: 1508 protoDollar = protoS[protopt-2 : protopt+1] 1509 //line proto.y:366 1510 { 1511 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: protoDollar[2].v} 1512 a.setRange(protoDollar[1].aggName, protoDollar[2].v) 1513 protoVAL.agg = []*aggregateEntryNode{a} 1514 } 1515 case 60: 1516 protoDollar = protoS[protopt-5 : protopt+1] 1517 //line proto.y:371 1518 { 1519 s := &aggregateLiteralNode{elements: protoDollar[4].agg} 1520 s.setRange(protoDollar[3].b, protoDollar[5].b) 1521 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s} 1522 a.setRange(protoDollar[1].aggName, protoDollar[5].b) 1523 protoVAL.agg = []*aggregateEntryNode{a} 1524 } 1525 case 61: 1526 protoDollar = protoS[protopt-4 : protopt+1] 1527 //line proto.y:378 1528 { 1529 s := &aggregateLiteralNode{elements: protoDollar[3].agg} 1530 s.setRange(protoDollar[2].b, protoDollar[4].b) 1531 a := &aggregateEntryNode{name: protoDollar[1].aggName, val: s} 1532 a.setRange(protoDollar[1].aggName, protoDollar[4].b) 1533 protoVAL.agg = []*aggregateEntryNode{a} 1534 } 1535 case 62: 1536 protoDollar = protoS[protopt-5 : protopt+1] 1537 //line proto.y:385 1538 { 1539 } 1540 case 63: 1541 protoDollar = protoS[protopt-4 : protopt+1] 1542 //line proto.y:387 1543 { 1544 } 1545 case 64: 1546 protoDollar = protoS[protopt-1 : protopt+1] 1547 //line proto.y:390 1548 { 1549 n := &compoundIdentNode{val: protoDollar[1].id.val} 1550 n.setRange(protoDollar[1].id, protoDollar[1].id) 1551 protoVAL.aggName = &aggregateNameNode{name: n} 1552 protoVAL.aggName.setRange(protoDollar[1].id, protoDollar[1].id) 1553 } 1554 case 65: 1555 protoDollar = protoS[protopt-3 : protopt+1] 1556 //line proto.y:396 1557 { 1558 protoVAL.aggName = &aggregateNameNode{name: protoDollar[2].cid, isExtension: true} 1559 protoVAL.aggName.setRange(protoDollar[1].b, protoDollar[3].b) 1560 } 1561 case 66: 1562 protoDollar = protoS[protopt-3 : protopt+1] 1563 //line proto.y:400 1564 { 1565 } 1566 case 67: 1567 protoDollar = protoS[protopt-1 : protopt+1] 1568 //line proto.y:403 1569 { 1570 protoVAL.sl = []valueNode{protoDollar[1].v} 1571 } 1572 case 68: 1573 protoDollar = protoS[protopt-3 : protopt+1] 1574 //line proto.y:406 1575 { 1576 protoVAL.sl = append(protoDollar[1].sl, protoDollar[3].v) 1577 } 1578 case 69: 1579 protoDollar = protoS[protopt-3 : protopt+1] 1580 //line proto.y:409 1581 { 1582 protoVAL.sl = append(protoDollar[1].sl, protoDollar[3].v) 1583 } 1584 case 70: 1585 protoDollar = protoS[protopt-3 : protopt+1] 1586 //line proto.y:412 1587 { 1588 s := &aggregateLiteralNode{elements: protoDollar[2].agg} 1589 s.setRange(protoDollar[1].b, protoDollar[3].b) 1590 protoVAL.sl = []valueNode{s} 1591 } 1592 case 71: 1593 protoDollar = protoS[protopt-5 : protopt+1] 1594 //line proto.y:417 1595 { 1596 s := &aggregateLiteralNode{elements: protoDollar[4].agg} 1597 s.setRange(protoDollar[3].b, protoDollar[5].b) 1598 protoVAL.sl = append(protoDollar[1].sl, s) 1599 } 1600 case 72: 1601 protoDollar = protoS[protopt-5 : protopt+1] 1602 //line proto.y:422 1603 { 1604 s := &aggregateLiteralNode{elements: protoDollar[4].agg} 1605 s.setRange(protoDollar[3].b, protoDollar[5].b) 1606 protoVAL.sl = append(protoDollar[1].sl, s) 1607 } 1608 case 73: 1609 protoDollar = protoS[protopt-3 : protopt+1] 1610 //line proto.y:427 1611 { 1612 } 1613 case 74: 1614 protoDollar = protoS[protopt-5 : protopt+1] 1615 //line proto.y:429 1616 { 1617 } 1618 case 75: 1619 protoDollar = protoS[protopt-5 : protopt+1] 1620 //line proto.y:431 1621 { 1622 } 1623 case 77: 1624 protoDollar = protoS[protopt-2 : protopt+1] 1625 //line proto.y:435 1626 { 1627 protoVAL.cid = &compoundIdentNode{val: "." + protoDollar[2].cid.val} 1628 protoVAL.cid.setRange(protoDollar[1].b, protoDollar[2].cid) 1629 } 1630 case 78: 1631 protoDollar = protoS[protopt-6 : protopt+1] 1632 //line proto.y:440 1633 { 1634 lbl := fieldLabel{identNode: protoDollar[1].id, required: true} 1635 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i} 1636 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[6].b) 1637 } 1638 case 79: 1639 protoDollar = protoS[protopt-6 : protopt+1] 1640 //line proto.y:445 1641 { 1642 lbl := fieldLabel{identNode: protoDollar[1].id} 1643 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i} 1644 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[6].b) 1645 } 1646 case 80: 1647 protoDollar = protoS[protopt-6 : protopt+1] 1648 //line proto.y:450 1649 { 1650 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true} 1651 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i} 1652 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[6].b) 1653 } 1654 case 81: 1655 protoDollar = protoS[protopt-5 : protopt+1] 1656 //line proto.y:455 1657 { 1658 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i} 1659 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[5].b) 1660 } 1661 case 82: 1662 protoDollar = protoS[protopt-7 : protopt+1] 1663 //line proto.y:459 1664 { 1665 lbl := fieldLabel{identNode: protoDollar[1].id, required: true} 1666 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts} 1667 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[7].b) 1668 } 1669 case 83: 1670 protoDollar = protoS[protopt-7 : protopt+1] 1671 //line proto.y:464 1672 { 1673 lbl := fieldLabel{identNode: protoDollar[1].id} 1674 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts} 1675 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[7].b) 1676 } 1677 case 84: 1678 protoDollar = protoS[protopt-7 : protopt+1] 1679 //line proto.y:469 1680 { 1681 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true} 1682 protoVAL.fld = &fieldNode{label: lbl, fldType: protoDollar[2].cid, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts} 1683 protoVAL.fld.setRange(protoDollar[1].id, protoDollar[7].b) 1684 } 1685 case 85: 1686 protoDollar = protoS[protopt-6 : protopt+1] 1687 //line proto.y:474 1688 { 1689 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts} 1690 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[6].b) 1691 } 1692 case 86: 1693 protoDollar = protoS[protopt-3 : protopt+1] 1694 //line proto.y:479 1695 { 1696 protoVAL.cmpctOpts = &compactOptionsNode{decls: protoDollar[2].opts} 1697 protoVAL.cmpctOpts.setRange(protoDollar[1].b, protoDollar[3].b) 1698 } 1699 case 87: 1700 protoDollar = protoS[protopt-3 : protopt+1] 1701 //line proto.y:484 1702 { 1703 protoVAL.opts = append(protoDollar[1].opts, protoDollar[3].opts...) 1704 } 1705 case 89: 1706 protoDollar = protoS[protopt-3 : protopt+1] 1707 //line proto.y:489 1708 { 1709 n := &optionNameNode{parts: protoDollar[1].optNm} 1710 n.setRange(protoDollar[1].optNm[0], protoDollar[1].optNm[len(protoDollar[1].optNm)-1]) 1711 o := &optionNode{name: n, val: protoDollar[3].v} 1712 o.setRange(protoDollar[1].optNm[0], protoDollar[3].v) 1713 protoVAL.opts = []*optionNode{o} 1714 } 1715 case 90: 1716 protoDollar = protoS[protopt-8 : protopt+1] 1717 //line proto.y:497 1718 { 1719 lbl := fieldLabel{identNode: protoDollar[1].id, required: true} 1720 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, decls: protoDollar[7].msgDecls} 1721 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b) 1722 } 1723 case 91: 1724 protoDollar = protoS[protopt-8 : protopt+1] 1725 //line proto.y:502 1726 { 1727 lbl := fieldLabel{identNode: protoDollar[1].id} 1728 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, decls: protoDollar[7].msgDecls} 1729 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b) 1730 } 1731 case 92: 1732 protoDollar = protoS[protopt-8 : protopt+1] 1733 //line proto.y:507 1734 { 1735 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true} 1736 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, decls: protoDollar[7].msgDecls} 1737 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b) 1738 } 1739 case 93: 1740 protoDollar = protoS[protopt-9 : protopt+1] 1741 //line proto.y:512 1742 { 1743 lbl := fieldLabel{identNode: protoDollar[1].id, required: true} 1744 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts, decls: protoDollar[8].msgDecls} 1745 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[9].b) 1746 } 1747 case 94: 1748 protoDollar = protoS[protopt-9 : protopt+1] 1749 //line proto.y:517 1750 { 1751 lbl := fieldLabel{identNode: protoDollar[1].id} 1752 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts, decls: protoDollar[8].msgDecls} 1753 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[9].b) 1754 } 1755 case 95: 1756 protoDollar = protoS[protopt-9 : protopt+1] 1757 //line proto.y:522 1758 { 1759 lbl := fieldLabel{identNode: protoDollar[1].id, repeated: true} 1760 protoVAL.grp = &groupNode{groupKeyword: protoDollar[2].id, label: lbl, name: protoDollar[3].id, tag: protoDollar[5].i, options: protoDollar[6].cmpctOpts, decls: protoDollar[8].msgDecls} 1761 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[9].b) 1762 } 1763 case 96: 1764 protoDollar = protoS[protopt-5 : protopt+1] 1765 //line proto.y:528 1766 { 1767 protoVAL.oo = &oneOfNode{name: protoDollar[2].id, decls: protoDollar[4].ooDecls} 1768 protoVAL.oo.setRange(protoDollar[1].id, protoDollar[5].b) 1769 } 1770 case 97: 1771 protoDollar = protoS[protopt-2 : protopt+1] 1772 //line proto.y:533 1773 { 1774 protoVAL.ooDecls = append(protoDollar[1].ooDecls, protoDollar[2].ooDecls...) 1775 } 1776 case 99: 1777 protoDollar = protoS[protopt-0 : protopt+1] 1778 //line proto.y:537 1779 { 1780 protoVAL.ooDecls = nil 1781 } 1782 case 100: 1783 protoDollar = protoS[protopt-1 : protopt+1] 1784 //line proto.y:541 1785 { 1786 protoVAL.ooDecls = []*oneOfElement{{option: protoDollar[1].opts[0]}} 1787 } 1788 case 101: 1789 protoDollar = protoS[protopt-1 : protopt+1] 1790 //line proto.y:544 1791 { 1792 protoVAL.ooDecls = []*oneOfElement{{field: protoDollar[1].fld}} 1793 } 1794 case 102: 1795 protoDollar = protoS[protopt-1 : protopt+1] 1796 //line proto.y:547 1797 { 1798 protoVAL.ooDecls = []*oneOfElement{{group: protoDollar[1].grp}} 1799 } 1800 case 103: 1801 protoDollar = protoS[protopt-1 : protopt+1] 1802 //line proto.y:550 1803 { 1804 protoVAL.ooDecls = []*oneOfElement{{empty: protoDollar[1].b}} 1805 } 1806 case 104: 1807 protoDollar = protoS[protopt-2 : protopt+1] 1808 //line proto.y:553 1809 { 1810 } 1811 case 105: 1812 protoDollar = protoS[protopt-1 : protopt+1] 1813 //line proto.y:555 1814 { 1815 } 1816 case 106: 1817 protoDollar = protoS[protopt-5 : protopt+1] 1818 //line proto.y:558 1819 { 1820 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i} 1821 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[5].b) 1822 } 1823 case 107: 1824 protoDollar = protoS[protopt-6 : protopt+1] 1825 //line proto.y:562 1826 { 1827 protoVAL.fld = &fieldNode{fldType: protoDollar[1].cid, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts} 1828 protoVAL.fld.setRange(protoDollar[1].cid, protoDollar[6].b) 1829 } 1830 case 108: 1831 protoDollar = protoS[protopt-7 : protopt+1] 1832 //line proto.y:567 1833 { 1834 protoVAL.grp = &groupNode{groupKeyword: protoDollar[1].id, name: protoDollar[2].id, tag: protoDollar[4].i, decls: protoDollar[6].msgDecls} 1835 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[7].b) 1836 } 1837 case 109: 1838 protoDollar = protoS[protopt-8 : protopt+1] 1839 //line proto.y:571 1840 { 1841 protoVAL.grp = &groupNode{groupKeyword: protoDollar[1].id, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts, decls: protoDollar[7].msgDecls} 1842 protoVAL.grp.setRange(protoDollar[1].id, protoDollar[8].b) 1843 } 1844 case 110: 1845 protoDollar = protoS[protopt-5 : protopt+1] 1846 //line proto.y:576 1847 { 1848 protoVAL.mapFld = &mapFieldNode{mapType: protoDollar[1].mapType, name: protoDollar[2].id, tag: protoDollar[4].i} 1849 protoVAL.mapFld.setRange(protoDollar[1].mapType, protoDollar[5].b) 1850 } 1851 case 111: 1852 protoDollar = protoS[protopt-6 : protopt+1] 1853 //line proto.y:580 1854 { 1855 protoVAL.mapFld = &mapFieldNode{mapType: protoDollar[1].mapType, name: protoDollar[2].id, tag: protoDollar[4].i, options: protoDollar[5].cmpctOpts} 1856 protoVAL.mapFld.setRange(protoDollar[1].mapType, protoDollar[6].b) 1857 } 1858 case 112: 1859 protoDollar = protoS[protopt-6 : protopt+1] 1860 //line proto.y:585 1861 { 1862 protoVAL.mapType = &mapTypeNode{mapKeyword: protoDollar[1].id, keyType: protoDollar[3].id, valueType: protoDollar[5].cid} 1863 protoVAL.mapType.setRange(protoDollar[1].id, protoDollar[6].b) 1864 } 1865 case 125: 1866 protoDollar = protoS[protopt-3 : protopt+1] 1867 //line proto.y:603 1868 { 1869 protoVAL.ext = &extensionRangeNode{ranges: protoDollar[2].rngs} 1870 protoVAL.ext.setRange(protoDollar[1].id, protoDollar[3].b) 1871 } 1872 case 126: 1873 protoDollar = protoS[protopt-4 : protopt+1] 1874 //line proto.y:607 1875 { 1876 protoVAL.ext = &extensionRangeNode{ranges: protoDollar[2].rngs, options: protoDollar[3].cmpctOpts} 1877 protoVAL.ext.setRange(protoDollar[1].id, protoDollar[4].b) 1878 } 1879 case 127: 1880 protoDollar = protoS[protopt-3 : protopt+1] 1881 //line proto.y:612 1882 { 1883 protoVAL.rngs = append(protoDollar[1].rngs, protoDollar[3].rngs...) 1884 } 1885 case 129: 1886 protoDollar = protoS[protopt-1 : protopt+1] 1887 //line proto.y:617 1888 { 1889 r := &rangeNode{startNode: protoDollar[1].i} 1890 r.setRange(protoDollar[1].i, protoDollar[1].i) 1891 protoVAL.rngs = []*rangeNode{r} 1892 } 1893 case 130: 1894 protoDollar = protoS[protopt-3 : protopt+1] 1895 //line proto.y:622 1896 { 1897 r := &rangeNode{startNode: protoDollar[1].i, endNode: protoDollar[3].i} 1898 r.setRange(protoDollar[1].i, protoDollar[3].i) 1899 protoVAL.rngs = []*rangeNode{r} 1900 } 1901 case 131: 1902 protoDollar = protoS[protopt-3 : protopt+1] 1903 //line proto.y:627 1904 { 1905 r := &rangeNode{startNode: protoDollar[1].i, endNode: protoDollar[3].id, endMax: true} 1906 r.setRange(protoDollar[1].i, protoDollar[3].id) 1907 protoVAL.rngs = []*rangeNode{r} 1908 } 1909 case 132: 1910 protoDollar = protoS[protopt-3 : protopt+1] 1911 //line proto.y:633 1912 { 1913 protoVAL.rngs = append(protoDollar[1].rngs, protoDollar[3].rngs...) 1914 } 1915 case 134: 1916 protoDollar = protoS[protopt-1 : protopt+1] 1917 //line proto.y:638 1918 { 1919 r := &rangeNode{startNode: protoDollar[1].il} 1920 r.setRange(protoDollar[1].il, protoDollar[1].il) 1921 protoVAL.rngs = []*rangeNode{r} 1922 } 1923 case 135: 1924 protoDollar = protoS[protopt-3 : protopt+1] 1925 //line proto.y:643 1926 { 1927 r := &rangeNode{startNode: protoDollar[1].il, endNode: protoDollar[3].il} 1928 r.setRange(protoDollar[1].il, protoDollar[3].il) 1929 protoVAL.rngs = []*rangeNode{r} 1930 } 1931 case 136: 1932 protoDollar = protoS[protopt-3 : protopt+1] 1933 //line proto.y:648 1934 { 1935 r := &rangeNode{startNode: protoDollar[1].il, endNode: protoDollar[3].id, endMax: true} 1936 r.setRange(protoDollar[1].il, protoDollar[3].id) 1937 protoVAL.rngs = []*rangeNode{r} 1938 } 1939 case 137: 1940 protoDollar = protoS[protopt-1 : protopt+1] 1941 //line proto.y:654 1942 { 1943 i := &compoundIntNode{val: int64(protoDollar[1].i.val)} 1944 i.setRange(protoDollar[1].i, protoDollar[1].i) 1945 protoVAL.il = i 1946 } 1947 case 138: 1948 protoDollar = protoS[protopt-2 : protopt+1] 1949 //line proto.y:659 1950 { 1951 if protoDollar[2].i.val > math.MaxInt64+1 { 1952 lexError(protolex, protoDollar[2].i.start(), fmt.Sprintf("numeric constant %d would underflow 64-bit signed int (allowed range is %d to %d)", protoDollar[2].i.val, int64(math.MinInt64), int64(math.MaxInt64))) 1953 } 1954 i := &compoundIntNode{val: -int64(protoDollar[2].i.val)} 1955 i.setRange(protoDollar[1].b, protoDollar[2].i) 1956 protoVAL.il = i 1957 } 1958 case 139: 1959 protoDollar = protoS[protopt-3 : protopt+1] 1960 //line proto.y:668 1961 { 1962 protoVAL.resvd = &reservedNode{ranges: protoDollar[2].rngs} 1963 protoVAL.resvd.setRange(protoDollar[1].id, protoDollar[3].b) 1964 } 1965 case 141: 1966 protoDollar = protoS[protopt-3 : protopt+1] 1967 //line proto.y:674 1968 { 1969 protoVAL.resvd = &reservedNode{ranges: protoDollar[2].rngs} 1970 protoVAL.resvd.setRange(protoDollar[1].id, protoDollar[3].b) 1971 } 1972 case 143: 1973 protoDollar = protoS[protopt-3 : protopt+1] 1974 //line proto.y:680 1975 { 1976 protoVAL.resvd = &reservedNode{names: protoDollar[2].names} 1977 protoVAL.resvd.setRange(protoDollar[1].id, protoDollar[3].b) 1978 } 1979 case 144: 1980 protoDollar = protoS[protopt-3 : protopt+1] 1981 //line proto.y:685 1982 { 1983 protoVAL.names = append(protoDollar[1].names, protoDollar[3].str) 1984 } 1985 case 145: 1986 protoDollar = protoS[protopt-1 : protopt+1] 1987 //line proto.y:688 1988 { 1989 protoVAL.names = []*compoundStringNode{protoDollar[1].str} 1990 } 1991 case 146: 1992 protoDollar = protoS[protopt-5 : protopt+1] 1993 //line proto.y:692 1994 { 1995 protoVAL.en = &enumNode{name: protoDollar[2].id, decls: protoDollar[4].enDecls} 1996 protoVAL.en.setRange(protoDollar[1].id, protoDollar[5].b) 1997 } 1998 case 147: 1999 protoDollar = protoS[protopt-2 : protopt+1] 2000 //line proto.y:697 2001 { 2002 protoVAL.enDecls = append(protoDollar[1].enDecls, protoDollar[2].enDecls...) 2003 } 2004 case 149: 2005 protoDollar = protoS[protopt-0 : protopt+1] 2006 //line proto.y:701 2007 { 2008 protoVAL.enDecls = nil 2009 } 2010 case 150: 2011 protoDollar = protoS[protopt-1 : protopt+1] 2012 //line proto.y:705 2013 { 2014 protoVAL.enDecls = []*enumElement{{option: protoDollar[1].opts[0]}} 2015 } 2016 case 151: 2017 protoDollar = protoS[protopt-1 : protopt+1] 2018 //line proto.y:708 2019 { 2020 protoVAL.enDecls = []*enumElement{{value: protoDollar[1].env}} 2021 } 2022 case 152: 2023 protoDollar = protoS[protopt-1 : protopt+1] 2024 //line proto.y:711 2025 { 2026 protoVAL.enDecls = []*enumElement{{reserved: protoDollar[1].resvd}} 2027 } 2028 case 153: 2029 protoDollar = protoS[protopt-1 : protopt+1] 2030 //line proto.y:714 2031 { 2032 protoVAL.enDecls = []*enumElement{{empty: protoDollar[1].b}} 2033 } 2034 case 154: 2035 protoDollar = protoS[protopt-2 : protopt+1] 2036 //line proto.y:717 2037 { 2038 } 2039 case 155: 2040 protoDollar = protoS[protopt-1 : protopt+1] 2041 //line proto.y:719 2042 { 2043 } 2044 case 156: 2045 protoDollar = protoS[protopt-4 : protopt+1] 2046 //line proto.y:722 2047 { 2048 protoVAL.env = &enumValueNode{name: protoDollar[1].id, number: protoDollar[3].il} 2049 protoVAL.env.setRange(protoDollar[1].id, protoDollar[4].b) 2050 } 2051 case 157: 2052 protoDollar = protoS[protopt-5 : protopt+1] 2053 //line proto.y:726 2054 { 2055 protoVAL.env = &enumValueNode{name: protoDollar[1].id, number: protoDollar[3].il, options: protoDollar[4].cmpctOpts} 2056 protoVAL.env.setRange(protoDollar[1].id, protoDollar[5].b) 2057 } 2058 case 158: 2059 protoDollar = protoS[protopt-5 : protopt+1] 2060 //line proto.y:731 2061 { 2062 protoVAL.msg = &messageNode{name: protoDollar[2].id, decls: protoDollar[4].msgDecls} 2063 protoVAL.msg.setRange(protoDollar[1].id, protoDollar[5].b) 2064 } 2065 case 159: 2066 protoDollar = protoS[protopt-2 : protopt+1] 2067 //line proto.y:736 2068 { 2069 protoVAL.msgDecls = append(protoDollar[1].msgDecls, protoDollar[2].msgDecls...) 2070 } 2071 case 161: 2072 protoDollar = protoS[protopt-0 : protopt+1] 2073 //line proto.y:740 2074 { 2075 protoVAL.msgDecls = nil 2076 } 2077 case 162: 2078 protoDollar = protoS[protopt-1 : protopt+1] 2079 //line proto.y:744 2080 { 2081 protoVAL.msgDecls = []*messageElement{{field: protoDollar[1].fld}} 2082 } 2083 case 163: 2084 protoDollar = protoS[protopt-1 : protopt+1] 2085 //line proto.y:747 2086 { 2087 protoVAL.msgDecls = []*messageElement{{enum: protoDollar[1].en}} 2088 } 2089 case 164: 2090 protoDollar = protoS[protopt-1 : protopt+1] 2091 //line proto.y:750 2092 { 2093 protoVAL.msgDecls = []*messageElement{{nested: protoDollar[1].msg}} 2094 } 2095 case 165: 2096 protoDollar = protoS[protopt-1 : protopt+1] 2097 //line proto.y:753 2098 { 2099 protoVAL.msgDecls = []*messageElement{{extend: protoDollar[1].extend}} 2100 } 2101 case 166: 2102 protoDollar = protoS[protopt-1 : protopt+1] 2103 //line proto.y:756 2104 { 2105 protoVAL.msgDecls = []*messageElement{{extensionRange: protoDollar[1].ext}} 2106 } 2107 case 167: 2108 protoDollar = protoS[protopt-1 : protopt+1] 2109 //line proto.y:759 2110 { 2111 protoVAL.msgDecls = []*messageElement{{group: protoDollar[1].grp}} 2112 } 2113 case 168: 2114 protoDollar = protoS[protopt-1 : protopt+1] 2115 //line proto.y:762 2116 { 2117 protoVAL.msgDecls = []*messageElement{{option: protoDollar[1].opts[0]}} 2118 } 2119 case 169: 2120 protoDollar = protoS[protopt-1 : protopt+1] 2121 //line proto.y:765 2122 { 2123 protoVAL.msgDecls = []*messageElement{{oneOf: protoDollar[1].oo}} 2124 } 2125 case 170: 2126 protoDollar = protoS[protopt-1 : protopt+1] 2127 //line proto.y:768 2128 { 2129 protoVAL.msgDecls = []*messageElement{{mapField: protoDollar[1].mapFld}} 2130 } 2131 case 171: 2132 protoDollar = protoS[protopt-1 : protopt+1] 2133 //line proto.y:771 2134 { 2135 protoVAL.msgDecls = []*messageElement{{reserved: protoDollar[1].resvd}} 2136 } 2137 case 172: 2138 protoDollar = protoS[protopt-1 : protopt+1] 2139 //line proto.y:774 2140 { 2141 protoVAL.msgDecls = []*messageElement{{empty: protoDollar[1].b}} 2142 } 2143 case 173: 2144 protoDollar = protoS[protopt-2 : protopt+1] 2145 //line proto.y:777 2146 { 2147 } 2148 case 174: 2149 protoDollar = protoS[protopt-1 : protopt+1] 2150 //line proto.y:779 2151 { 2152 } 2153 case 175: 2154 protoDollar = protoS[protopt-5 : protopt+1] 2155 //line proto.y:782 2156 { 2157 protoVAL.extend = &extendNode{extendee: protoDollar[2].cid, decls: protoDollar[4].extDecls} 2158 protoVAL.extend.setRange(protoDollar[1].id, protoDollar[5].b) 2159 } 2160 case 176: 2161 protoDollar = protoS[protopt-2 : protopt+1] 2162 //line proto.y:787 2163 { 2164 protoVAL.extDecls = append(protoDollar[1].extDecls, protoDollar[2].extDecls...) 2165 } 2166 case 178: 2167 protoDollar = protoS[protopt-0 : protopt+1] 2168 //line proto.y:791 2169 { 2170 protoVAL.extDecls = nil 2171 } 2172 case 179: 2173 protoDollar = protoS[protopt-1 : protopt+1] 2174 //line proto.y:795 2175 { 2176 protoVAL.extDecls = []*extendElement{{field: protoDollar[1].fld}} 2177 } 2178 case 180: 2179 protoDollar = protoS[protopt-1 : protopt+1] 2180 //line proto.y:798 2181 { 2182 protoVAL.extDecls = []*extendElement{{group: protoDollar[1].grp}} 2183 } 2184 case 181: 2185 protoDollar = protoS[protopt-1 : protopt+1] 2186 //line proto.y:801 2187 { 2188 protoVAL.extDecls = []*extendElement{{empty: protoDollar[1].b}} 2189 } 2190 case 182: 2191 protoDollar = protoS[protopt-2 : protopt+1] 2192 //line proto.y:804 2193 { 2194 } 2195 case 183: 2196 protoDollar = protoS[protopt-1 : protopt+1] 2197 //line proto.y:806 2198 { 2199 } 2200 case 184: 2201 protoDollar = protoS[protopt-5 : protopt+1] 2202 //line proto.y:809 2203 { 2204 protoVAL.svc = &serviceNode{name: protoDollar[2].id, decls: protoDollar[4].svcDecls} 2205 protoVAL.svc.setRange(protoDollar[1].id, protoDollar[5].b) 2206 } 2207 case 185: 2208 protoDollar = protoS[protopt-2 : protopt+1] 2209 //line proto.y:814 2210 { 2211 protoVAL.svcDecls = append(protoDollar[1].svcDecls, protoDollar[2].svcDecls...) 2212 } 2213 case 187: 2214 protoDollar = protoS[protopt-0 : protopt+1] 2215 //line proto.y:818 2216 { 2217 protoVAL.svcDecls = nil 2218 } 2219 case 188: 2220 protoDollar = protoS[protopt-1 : protopt+1] 2221 //line proto.y:825 2222 { 2223 protoVAL.svcDecls = []*serviceElement{{option: protoDollar[1].opts[0]}} 2224 } 2225 case 189: 2226 protoDollar = protoS[protopt-1 : protopt+1] 2227 //line proto.y:828 2228 { 2229 protoVAL.svcDecls = []*serviceElement{{rpc: protoDollar[1].mtd}} 2230 } 2231 case 190: 2232 protoDollar = protoS[protopt-1 : protopt+1] 2233 //line proto.y:831 2234 { 2235 protoVAL.svcDecls = []*serviceElement{{empty: protoDollar[1].b}} 2236 } 2237 case 191: 2238 protoDollar = protoS[protopt-2 : protopt+1] 2239 //line proto.y:834 2240 { 2241 } 2242 case 192: 2243 protoDollar = protoS[protopt-1 : protopt+1] 2244 //line proto.y:836 2245 { 2246 } 2247 case 193: 2248 protoDollar = protoS[protopt-10 : protopt+1] 2249 //line proto.y:839 2250 { 2251 protoVAL.mtd = &methodNode{name: protoDollar[2].id, input: protoDollar[4].rpcType, output: protoDollar[8].rpcType} 2252 protoVAL.mtd.setRange(protoDollar[1].id, protoDollar[10].b) 2253 } 2254 case 194: 2255 protoDollar = protoS[protopt-12 : protopt+1] 2256 //line proto.y:843 2257 { 2258 protoVAL.mtd = &methodNode{name: protoDollar[2].id, input: protoDollar[4].rpcType, output: protoDollar[8].rpcType, options: protoDollar[11].opts} 2259 protoVAL.mtd.setRange(protoDollar[1].id, protoDollar[12].b) 2260 } 2261 case 195: 2262 protoDollar = protoS[protopt-2 : protopt+1] 2263 //line proto.y:848 2264 { 2265 protoVAL.rpcType = &rpcTypeNode{msgType: protoDollar[2].cid, streamKeyword: protoDollar[1].id} 2266 protoVAL.rpcType.setRange(protoDollar[1].id, protoDollar[2].cid) 2267 } 2268 case 196: 2269 protoDollar = protoS[protopt-1 : protopt+1] 2270 //line proto.y:852 2271 { 2272 protoVAL.rpcType = &rpcTypeNode{msgType: protoDollar[1].cid} 2273 protoVAL.rpcType.setRange(protoDollar[1].cid, protoDollar[1].cid) 2274 } 2275 case 197: 2276 protoDollar = protoS[protopt-2 : protopt+1] 2277 //line proto.y:857 2278 { 2279 protoVAL.opts = append(protoDollar[1].opts, protoDollar[2].opts...) 2280 } 2281 case 199: 2282 protoDollar = protoS[protopt-0 : protopt+1] 2283 //line proto.y:861 2284 { 2285 protoVAL.opts = []*optionNode{} 2286 } 2287 case 200: 2288 protoDollar = protoS[protopt-1 : protopt+1] 2289 //line proto.y:865 2290 { 2291 protoVAL.opts = protoDollar[1].opts 2292 } 2293 case 201: 2294 protoDollar = protoS[protopt-1 : protopt+1] 2295 //line proto.y:868 2296 { 2297 protoVAL.opts = []*optionNode{} 2298 } 2299 case 202: 2300 protoDollar = protoS[protopt-2 : protopt+1] 2301 //line proto.y:871 2302 { 2303 } 2304 case 203: 2305 protoDollar = protoS[protopt-1 : protopt+1] 2306 //line proto.y:873 2307 { 2308 } 2309 } 2310 goto protostack /* stack new state and value */ 2311 }