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