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