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