1// Code generated by gocc; DO NOT EDIT. 2 3package parser 4 5import "miller/src/dsl" 6 7type ( 8 ProdTab [numProductions]ProdTabEntry 9 ProdTabEntry struct { 10 String string 11 Id string 12 NTType int 13 Index int 14 NumSymbols int 15 ReduceFunc func([]Attrib) (Attrib, error) 16 } 17 Attrib interface { 18 } 19) 20 21var productionsTable = ProdTab{ 22 ProdTabEntry{ 23 String: `S' : Root << >>`, 24 Id: "S'", 25 NTType: 0, 26 Index: 0, 27 NumSymbols: 1, 28 ReduceFunc: func(X []Attrib) (Attrib, error) { 29 return X[0], nil 30 }, 31 }, 32 ProdTabEntry{ 33 String: `Root : StatementBlock << dsl.NewAST(X[0]) >>`, 34 Id: "Root", 35 NTType: 1, 36 Index: 1, 37 NumSymbols: 1, 38 ReduceFunc: func(X []Attrib) (Attrib, error) { 39 return dsl.NewAST(X[0]) 40 }, 41 }, 42 ProdTabEntry{ 43 String: `StatementBlock : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`, 44 Id: "StatementBlock", 45 NTType: 2, 46 Index: 2, 47 NumSymbols: 0, 48 ReduceFunc: func(X []Attrib) (Attrib, error) { 49 return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) 50 }, 51 }, 52 ProdTabEntry{ 53 String: `StatementBlock : NonEmptyStatementBlock << dsl.Wrap(X[0]) >>`, 54 Id: "StatementBlock", 55 NTType: 2, 56 Index: 3, 57 NumSymbols: 1, 58 ReduceFunc: func(X []Attrib) (Attrib, error) { 59 return dsl.Wrap(X[0]) 60 }, 61 }, 62 ProdTabEntry{ 63 String: `NonEmptyStatementBlock : BracelessStatement << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`, 64 Id: "NonEmptyStatementBlock", 65 NTType: 3, 66 Index: 4, 67 NumSymbols: 1, 68 ReduceFunc: func(X []Attrib) (Attrib, error) { 69 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) 70 }, 71 }, 72 ProdTabEntry{ 73 String: `NonEmptyStatementBlock : BracefulStatement << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`, 74 Id: "NonEmptyStatementBlock", 75 NTType: 3, 76 Index: 5, 77 NumSymbols: 1, 78 ReduceFunc: func(X []Attrib) (Attrib, error) { 79 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) 80 }, 81 }, 82 ProdTabEntry{ 83 String: `NonEmptyStatementBlock : ";" StatementBlock << dsl.Wrap(X[1]) >>`, 84 Id: "NonEmptyStatementBlock", 85 NTType: 3, 86 Index: 6, 87 NumSymbols: 2, 88 ReduceFunc: func(X []Attrib) (Attrib, error) { 89 return dsl.Wrap(X[1]) 90 }, 91 }, 92 ProdTabEntry{ 93 String: `NonEmptyStatementBlock : BracelessStatement ";" StatementBlock << dsl.PrependChild(X[2], X[0]) >>`, 94 Id: "NonEmptyStatementBlock", 95 NTType: 3, 96 Index: 7, 97 NumSymbols: 3, 98 ReduceFunc: func(X []Attrib) (Attrib, error) { 99 return dsl.PrependChild(X[2], X[0]) 100 }, 101 }, 102 ProdTabEntry{ 103 String: `NonEmptyStatementBlock : BracefulStatement ";" StatementBlock << dsl.PrependChild(X[2], X[0]) >>`, 104 Id: "NonEmptyStatementBlock", 105 NTType: 3, 106 Index: 8, 107 NumSymbols: 3, 108 ReduceFunc: func(X []Attrib) (Attrib, error) { 109 return dsl.PrependChild(X[2], X[0]) 110 }, 111 }, 112 ProdTabEntry{ 113 String: `NonEmptyStatementBlock : BracefulStatement BracefulStatement StatementBlock << dsl.PrependTwoChildren(X[2], X[0], X[1]) >>`, 114 Id: "NonEmptyStatementBlock", 115 NTType: 3, 116 Index: 9, 117 NumSymbols: 3, 118 ReduceFunc: func(X []Attrib) (Attrib, error) { 119 return dsl.PrependTwoChildren(X[2], X[0], X[1]) 120 }, 121 }, 122 ProdTabEntry{ 123 String: `NonEmptyStatementBlock : BracefulStatement BracelessStatement << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock) >>`, 124 Id: "NonEmptyStatementBlock", 125 NTType: 3, 126 Index: 10, 127 NumSymbols: 2, 128 ReduceFunc: func(X []Attrib) (Attrib, error) { 129 return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock) 130 }, 131 }, 132 ProdTabEntry{ 133 String: `NonEmptyStatementBlock : BracefulStatement BracelessStatement ";" << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock) >>`, 134 Id: "NonEmptyStatementBlock", 135 NTType: 3, 136 Index: 11, 137 NumSymbols: 3, 138 ReduceFunc: func(X []Attrib) (Attrib, error) { 139 return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeStatementBlock) 140 }, 141 }, 142 ProdTabEntry{ 143 String: `NonEmptyStatementBlock : BracefulStatement BracelessStatement ";" NonEmptyStatementBlock << dsl.PrependTwoChildren(X[3], X[0], X[1]) >>`, 144 Id: "NonEmptyStatementBlock", 145 NTType: 3, 146 Index: 12, 147 NumSymbols: 4, 148 ReduceFunc: func(X []Attrib) (Attrib, error) { 149 return dsl.PrependTwoChildren(X[3], X[0], X[1]) 150 }, 151 }, 152 ProdTabEntry{ 153 String: `StatementBlockInBraces : "{" StatementBlock "}" << dsl.Wrap(X[1]) >>`, 154 Id: "StatementBlockInBraces", 155 NTType: 4, 156 Index: 13, 157 NumSymbols: 3, 158 ReduceFunc: func(X []Attrib) (Attrib, error) { 159 return dsl.Wrap(X[1]) 160 }, 161 }, 162 ProdTabEntry{ 163 String: `BracelessStatement : Assignment << >>`, 164 Id: "BracelessStatement", 165 NTType: 5, 166 Index: 14, 167 NumSymbols: 1, 168 ReduceFunc: func(X []Attrib) (Attrib, error) { 169 return X[0], nil 170 }, 171 }, 172 ProdTabEntry{ 173 String: `BracelessStatement : Unset << >>`, 174 Id: "BracelessStatement", 175 NTType: 5, 176 Index: 15, 177 NumSymbols: 1, 178 ReduceFunc: func(X []Attrib) (Attrib, error) { 179 return X[0], nil 180 }, 181 }, 182 ProdTabEntry{ 183 String: `BracelessStatement : BareBoolean << >>`, 184 Id: "BracelessStatement", 185 NTType: 5, 186 Index: 16, 187 NumSymbols: 1, 188 ReduceFunc: func(X []Attrib) (Attrib, error) { 189 return X[0], nil 190 }, 191 }, 192 ProdTabEntry{ 193 String: `BracelessStatement : FilterStatement << >>`, 194 Id: "BracelessStatement", 195 NTType: 5, 196 Index: 17, 197 NumSymbols: 1, 198 ReduceFunc: func(X []Attrib) (Attrib, error) { 199 return X[0], nil 200 }, 201 }, 202 ProdTabEntry{ 203 String: `BracelessStatement : PrintStatement << >>`, 204 Id: "BracelessStatement", 205 NTType: 5, 206 Index: 18, 207 NumSymbols: 1, 208 ReduceFunc: func(X []Attrib) (Attrib, error) { 209 return X[0], nil 210 }, 211 }, 212 ProdTabEntry{ 213 String: `BracelessStatement : PrintnStatement << >>`, 214 Id: "BracelessStatement", 215 NTType: 5, 216 Index: 19, 217 NumSymbols: 1, 218 ReduceFunc: func(X []Attrib) (Attrib, error) { 219 return X[0], nil 220 }, 221 }, 222 ProdTabEntry{ 223 String: `BracelessStatement : EprintStatement << >>`, 224 Id: "BracelessStatement", 225 NTType: 5, 226 Index: 20, 227 NumSymbols: 1, 228 ReduceFunc: func(X []Attrib) (Attrib, error) { 229 return X[0], nil 230 }, 231 }, 232 ProdTabEntry{ 233 String: `BracelessStatement : EprintnStatement << >>`, 234 Id: "BracelessStatement", 235 NTType: 5, 236 Index: 21, 237 NumSymbols: 1, 238 ReduceFunc: func(X []Attrib) (Attrib, error) { 239 return X[0], nil 240 }, 241 }, 242 ProdTabEntry{ 243 String: `BracelessStatement : DumpStatement << >>`, 244 Id: "BracelessStatement", 245 NTType: 5, 246 Index: 22, 247 NumSymbols: 1, 248 ReduceFunc: func(X []Attrib) (Attrib, error) { 249 return X[0], nil 250 }, 251 }, 252 ProdTabEntry{ 253 String: `BracelessStatement : EdumpStatement << >>`, 254 Id: "BracelessStatement", 255 NTType: 5, 256 Index: 23, 257 NumSymbols: 1, 258 ReduceFunc: func(X []Attrib) (Attrib, error) { 259 return X[0], nil 260 }, 261 }, 262 ProdTabEntry{ 263 String: `BracelessStatement : TeeStatement << >>`, 264 Id: "BracelessStatement", 265 NTType: 5, 266 Index: 24, 267 NumSymbols: 1, 268 ReduceFunc: func(X []Attrib) (Attrib, error) { 269 return X[0], nil 270 }, 271 }, 272 ProdTabEntry{ 273 String: `BracelessStatement : EmitFStatement << >>`, 274 Id: "BracelessStatement", 275 NTType: 5, 276 Index: 25, 277 NumSymbols: 1, 278 ReduceFunc: func(X []Attrib) (Attrib, error) { 279 return X[0], nil 280 }, 281 }, 282 ProdTabEntry{ 283 String: `BracelessStatement : EmitStatement << >>`, 284 Id: "BracelessStatement", 285 NTType: 5, 286 Index: 26, 287 NumSymbols: 1, 288 ReduceFunc: func(X []Attrib) (Attrib, error) { 289 return X[0], nil 290 }, 291 }, 292 ProdTabEntry{ 293 String: `BracelessStatement : EmitPStatement << >>`, 294 Id: "BracelessStatement", 295 NTType: 5, 296 Index: 27, 297 NumSymbols: 1, 298 ReduceFunc: func(X []Attrib) (Attrib, error) { 299 return X[0], nil 300 }, 301 }, 302 ProdTabEntry{ 303 String: `BracelessStatement : DoWhileLoop << >>`, 304 Id: "BracelessStatement", 305 NTType: 5, 306 Index: 28, 307 NumSymbols: 1, 308 ReduceFunc: func(X []Attrib) (Attrib, error) { 309 return X[0], nil 310 }, 311 }, 312 ProdTabEntry{ 313 String: `BracelessStatement : BreakStatement << >>`, 314 Id: "BracelessStatement", 315 NTType: 5, 316 Index: 29, 317 NumSymbols: 1, 318 ReduceFunc: func(X []Attrib) (Attrib, error) { 319 return X[0], nil 320 }, 321 }, 322 ProdTabEntry{ 323 String: `BracelessStatement : ContinueStatement << >>`, 324 Id: "BracelessStatement", 325 NTType: 5, 326 Index: 30, 327 NumSymbols: 1, 328 ReduceFunc: func(X []Attrib) (Attrib, error) { 329 return X[0], nil 330 }, 331 }, 332 ProdTabEntry{ 333 String: `BracelessStatement : ReturnStatement << >>`, 334 Id: "BracelessStatement", 335 NTType: 5, 336 Index: 31, 337 NumSymbols: 1, 338 ReduceFunc: func(X []Attrib) (Attrib, error) { 339 return X[0], nil 340 }, 341 }, 342 ProdTabEntry{ 343 String: `BracelessStatement : SubroutineCallsite << >>`, 344 Id: "BracelessStatement", 345 NTType: 5, 346 Index: 32, 347 NumSymbols: 1, 348 ReduceFunc: func(X []Attrib) (Attrib, error) { 349 return X[0], nil 350 }, 351 }, 352 ProdTabEntry{ 353 String: `Assignment : Lvalue "=" Rvalue << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeAssignment) >>`, 354 Id: "Assignment", 355 NTType: 6, 356 Index: 33, 357 NumSymbols: 3, 358 ReduceFunc: func(X []Attrib) (Attrib, error) { 359 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeAssignment) 360 }, 361 }, 362 ProdTabEntry{ 363 String: `Unset : unset Lvalue << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeUnset) >>`, 364 Id: "Unset", 365 NTType: 7, 366 Index: 34, 367 NumSymbols: 2, 368 ReduceFunc: func(X []Attrib) (Attrib, error) { 369 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeUnset) 370 }, 371 }, 372 ProdTabEntry{ 373 String: `Lvalue : Rvalue << >>`, 374 Id: "Lvalue", 375 NTType: 8, 376 Index: 35, 377 NumSymbols: 1, 378 ReduceFunc: func(X []Attrib) (Attrib, error) { 379 return X[0], nil 380 }, 381 }, 382 ProdTabEntry{ 383 String: `Lvalue : Typedecl LocalVariable << dsl.AppendChild(X[1], X[0]) >>`, 384 Id: "Lvalue", 385 NTType: 8, 386 Index: 36, 387 NumSymbols: 2, 388 ReduceFunc: func(X []Attrib) (Attrib, error) { 389 return dsl.AppendChild(X[1], X[0]) 390 }, 391 }, 392 ProdTabEntry{ 393 String: `BareBoolean : Rvalue << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeBareBoolean) >>`, 394 Id: "BareBoolean", 395 NTType: 9, 396 Index: 37, 397 NumSymbols: 1, 398 ReduceFunc: func(X []Attrib) (Attrib, error) { 399 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeBareBoolean) 400 }, 401 }, 402 ProdTabEntry{ 403 String: `FilterStatement : filter Rvalue << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeFilterStatement) >>`, 404 Id: "FilterStatement", 405 NTType: 10, 406 Index: 38, 407 NumSymbols: 2, 408 ReduceFunc: func(X []Attrib) (Attrib, error) { 409 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeFilterStatement) 410 }, 411 }, 412 ProdTabEntry{ 413 String: `Redirector : ">" RedirectTarget << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectWrite) >>`, 414 Id: "Redirector", 415 NTType: 11, 416 Index: 39, 417 NumSymbols: 2, 418 ReduceFunc: func(X []Attrib) (Attrib, error) { 419 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectWrite) 420 }, 421 }, 422 ProdTabEntry{ 423 String: `Redirector : ">>" RedirectTarget << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectAppend) >>`, 424 Id: "Redirector", 425 NTType: 11, 426 Index: 40, 427 NumSymbols: 2, 428 ReduceFunc: func(X []Attrib) (Attrib, error) { 429 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectAppend) 430 }, 431 }, 432 ProdTabEntry{ 433 String: `Redirector : "|" RedirectTarget << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectPipe) >>`, 434 Id: "Redirector", 435 NTType: 11, 436 Index: 41, 437 NumSymbols: 2, 438 ReduceFunc: func(X []Attrib) (Attrib, error) { 439 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeRedirectPipe) 440 }, 441 }, 442 ProdTabEntry{ 443 String: `RedirectTarget : stdout << dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStdout) >>`, 444 Id: "RedirectTarget", 445 NTType: 12, 446 Index: 42, 447 NumSymbols: 1, 448 ReduceFunc: func(X []Attrib) (Attrib, error) { 449 return dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStdout) 450 }, 451 }, 452 ProdTabEntry{ 453 String: `RedirectTarget : stderr << dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStderr) >>`, 454 Id: "RedirectTarget", 455 NTType: 12, 456 Index: 43, 457 NumSymbols: 1, 458 ReduceFunc: func(X []Attrib) (Attrib, error) { 459 return dsl.NewASTNodeZary(X[0], dsl.NodeTypeRedirectTargetStderr) 460 }, 461 }, 462 ProdTabEntry{ 463 String: `RedirectTarget : Rvalue << >>`, 464 Id: "RedirectTarget", 465 NTType: 12, 466 Index: 44, 467 NumSymbols: 1, 468 ReduceFunc: func(X []Attrib) (Attrib, error) { 469 return X[0], nil 470 }, 471 }, 472 ProdTabEntry{ 473 String: `PrintStatement : print << dsl.NewASTNodeBinary( 474 X[0], // print 475 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 476 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 477 dsl.NodeTypePrintStatement, 478 ) >>`, 479 Id: "PrintStatement", 480 NTType: 13, 481 Index: 45, 482 NumSymbols: 1, 483 ReduceFunc: func(X []Attrib) (Attrib, error) { 484 return dsl.NewASTNodeBinary( 485 X[0], // print 486 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 487 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 488 dsl.NodeTypePrintStatement, 489 ) 490 }, 491 }, 492 ProdTabEntry{ 493 String: `PrintStatement : print Redirector << dsl.NewASTNodeBinary( 494 X[0], // print 495 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 496 X[1], // redirect 497 dsl.NodeTypePrintStatement, 498 ) >>`, 499 Id: "PrintStatement", 500 NTType: 13, 501 Index: 46, 502 NumSymbols: 2, 503 ReduceFunc: func(X []Attrib) (Attrib, error) { 504 return dsl.NewASTNodeBinary( 505 X[0], // print 506 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 507 X[1], // redirect 508 dsl.NodeTypePrintStatement, 509 ) 510 }, 511 }, 512 ProdTabEntry{ 513 String: `PrintStatement : print FcnArgs << dsl.NewASTNodeBinary( 514 X[0], // print 515 X[1], // printables 516 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 517 dsl.NodeTypePrintStatement, 518 ) >>`, 519 Id: "PrintStatement", 520 NTType: 13, 521 Index: 47, 522 NumSymbols: 2, 523 ReduceFunc: func(X []Attrib) (Attrib, error) { 524 return dsl.NewASTNodeBinary( 525 X[0], // print 526 X[1], // printables 527 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 528 dsl.NodeTypePrintStatement, 529 ) 530 }, 531 }, 532 ProdTabEntry{ 533 String: `PrintStatement : print Redirector "," FcnArgs << dsl.NewASTNodeBinary( 534 X[0], // print 535 X[3], // printables 536 X[1], // redirect 537 dsl.NodeTypePrintStatement, 538 ) >>`, 539 Id: "PrintStatement", 540 NTType: 13, 541 Index: 48, 542 NumSymbols: 4, 543 ReduceFunc: func(X []Attrib) (Attrib, error) { 544 return dsl.NewASTNodeBinary( 545 X[0], // print 546 X[3], // printables 547 X[1], // redirect 548 dsl.NodeTypePrintStatement, 549 ) 550 }, 551 }, 552 ProdTabEntry{ 553 String: `PrintnStatement : printn << dsl.NewASTNodeBinary( 554 X[0], // printn 555 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 556 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 557 dsl.NodeTypePrintnStatement, 558 ) >>`, 559 Id: "PrintnStatement", 560 NTType: 14, 561 Index: 49, 562 NumSymbols: 1, 563 ReduceFunc: func(X []Attrib) (Attrib, error) { 564 return dsl.NewASTNodeBinary( 565 X[0], // printn 566 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 567 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 568 dsl.NodeTypePrintnStatement, 569 ) 570 }, 571 }, 572 ProdTabEntry{ 573 String: `PrintnStatement : printn Redirector << dsl.NewASTNodeBinary( 574 X[0], // printn 575 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 576 X[1], // redirect 577 dsl.NodeTypePrintnStatement, 578 ) >>`, 579 Id: "PrintnStatement", 580 NTType: 14, 581 Index: 50, 582 NumSymbols: 2, 583 ReduceFunc: func(X []Attrib) (Attrib, error) { 584 return dsl.NewASTNodeBinary( 585 X[0], // printn 586 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printable 587 X[1], // redirect 588 dsl.NodeTypePrintnStatement, 589 ) 590 }, 591 }, 592 ProdTabEntry{ 593 String: `PrintnStatement : printn FcnArgs << dsl.NewASTNodeBinary( 594 X[0], // printn 595 X[1], // printables 596 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 597 dsl.NodeTypePrintnStatement, 598 ) >>`, 599 Id: "PrintnStatement", 600 NTType: 14, 601 Index: 51, 602 NumSymbols: 2, 603 ReduceFunc: func(X []Attrib) (Attrib, error) { 604 return dsl.NewASTNodeBinary( 605 X[0], // printn 606 X[1], // printables 607 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 608 dsl.NodeTypePrintnStatement, 609 ) 610 }, 611 }, 612 ProdTabEntry{ 613 String: `PrintnStatement : printn Redirector "," FcnArgs << dsl.NewASTNodeBinary( 614 X[0], // printn 615 X[3], // printables 616 X[1], // redirect 617 dsl.NodeTypePrintnStatement, 618 ) >>`, 619 Id: "PrintnStatement", 620 NTType: 14, 621 Index: 52, 622 NumSymbols: 4, 623 ReduceFunc: func(X []Attrib) (Attrib, error) { 624 return dsl.NewASTNodeBinary( 625 X[0], // printn 626 X[3], // printables 627 X[1], // redirect 628 dsl.NodeTypePrintnStatement, 629 ) 630 }, 631 }, 632 ProdTabEntry{ 633 String: `EprintStatement : eprint << dsl.NewASTNodeBinary( 634 X[0], // eprint 635 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables 636 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 637 dsl.NodeTypeEprintStatement, 638 ) >>`, 639 Id: "EprintStatement", 640 NTType: 15, 641 Index: 53, 642 NumSymbols: 1, 643 ReduceFunc: func(X []Attrib) (Attrib, error) { 644 return dsl.NewASTNodeBinary( 645 X[0], // eprint 646 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables 647 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 648 dsl.NodeTypeEprintStatement, 649 ) 650 }, 651 }, 652 ProdTabEntry{ 653 String: `EprintStatement : eprint FcnArgs << dsl.NewASTNodeBinary( 654 X[0], // eprint 655 X[1], // printables 656 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 657 dsl.NodeTypeEprintStatement, 658 ) >>`, 659 Id: "EprintStatement", 660 NTType: 15, 661 Index: 54, 662 NumSymbols: 2, 663 ReduceFunc: func(X []Attrib) (Attrib, error) { 664 return dsl.NewASTNodeBinary( 665 X[0], // eprint 666 X[1], // printables 667 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 668 dsl.NodeTypeEprintStatement, 669 ) 670 }, 671 }, 672 ProdTabEntry{ 673 String: `EprintnStatement : eprintn << dsl.NewASTNodeBinary( 674 X[0], // eprint 675 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables 676 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 677 dsl.NodeTypeEprintnStatement, 678 ) >>`, 679 Id: "EprintnStatement", 680 NTType: 16, 681 Index: 55, 682 NumSymbols: 1, 683 ReduceFunc: func(X []Attrib) (Attrib, error) { 684 return dsl.NewASTNodeBinary( 685 X[0], // eprint 686 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no printables 687 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 688 dsl.NodeTypeEprintnStatement, 689 ) 690 }, 691 }, 692 ProdTabEntry{ 693 String: `EprintnStatement : eprintn FcnArgs << dsl.NewASTNodeBinary( 694 X[0], // eprintn 695 X[1], // printables 696 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 697 dsl.NodeTypeEprintnStatement, 698 ) >>`, 699 Id: "EprintnStatement", 700 NTType: 16, 701 Index: 56, 702 NumSymbols: 2, 703 ReduceFunc: func(X []Attrib) (Attrib, error) { 704 return dsl.NewASTNodeBinary( 705 X[0], // eprintn 706 X[1], // printables 707 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 708 dsl.NodeTypeEprintnStatement, 709 ) 710 }, 711 }, 712 ProdTabEntry{ 713 String: `DumpStatement : dump << dsl.NewASTNodeBinary( 714 X[0], // dump 715 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable 716 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 717 dsl.NodeTypeDumpStatement, 718 ) >>`, 719 Id: "DumpStatement", 720 NTType: 17, 721 Index: 57, 722 NumSymbols: 1, 723 ReduceFunc: func(X []Attrib) (Attrib, error) { 724 return dsl.NewASTNodeBinary( 725 X[0], // dump 726 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable 727 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 728 dsl.NodeTypeDumpStatement, 729 ) 730 }, 731 }, 732 ProdTabEntry{ 733 String: `DumpStatement : dump Redirector << dsl.NewASTNodeBinary( 734 X[0], // dump 735 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable 736 X[1], // redirect 737 dsl.NodeTypeDumpStatement, 738 ) >>`, 739 Id: "DumpStatement", 740 NTType: 17, 741 Index: 58, 742 NumSymbols: 2, 743 ReduceFunc: func(X []Attrib) (Attrib, error) { 744 return dsl.NewASTNodeBinary( 745 X[0], // dump 746 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable 747 X[1], // redirect 748 dsl.NodeTypeDumpStatement, 749 ) 750 }, 751 }, 752 ProdTabEntry{ 753 String: `DumpStatement : dump FcnArgs << dsl.NewASTNodeBinary( 754 X[0], // dump 755 X[1], // printables 756 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 757 dsl.NodeTypeDumpStatement, 758 ) >>`, 759 Id: "DumpStatement", 760 NTType: 17, 761 Index: 59, 762 NumSymbols: 2, 763 ReduceFunc: func(X []Attrib) (Attrib, error) { 764 return dsl.NewASTNodeBinary( 765 X[0], // dump 766 X[1], // printables 767 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 768 dsl.NodeTypeDumpStatement, 769 ) 770 }, 771 }, 772 ProdTabEntry{ 773 String: `DumpStatement : dump Redirector "," FcnArgs << dsl.NewASTNodeBinary( 774 X[0], // dump 775 X[3], // printables 776 X[1], // redirect 777 dsl.NodeTypeDumpStatement, 778 ) >>`, 779 Id: "DumpStatement", 780 NTType: 17, 781 Index: 60, 782 NumSymbols: 4, 783 ReduceFunc: func(X []Attrib) (Attrib, error) { 784 return dsl.NewASTNodeBinary( 785 X[0], // dump 786 X[3], // printables 787 X[1], // redirect 788 dsl.NodeTypeDumpStatement, 789 ) 790 }, 791 }, 792 ProdTabEntry{ 793 String: `EdumpStatement : edump << dsl.NewASTNodeBinary( 794 X[0], // edump 795 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable 796 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 797 dsl.NodeTypeEdumpStatement, 798 ) >>`, 799 Id: "EdumpStatement", 800 NTType: 18, 801 Index: 61, 802 NumSymbols: 1, 803 ReduceFunc: func(X []Attrib) (Attrib, error) { 804 return dsl.NewASTNodeBinary( 805 X[0], // edump 806 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no dumpable 807 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 808 dsl.NodeTypeEdumpStatement, 809 ) 810 }, 811 }, 812 ProdTabEntry{ 813 String: `EdumpStatement : edump FcnArgs << dsl.NewASTNodeBinary( 814 X[0], // edump 815 X[1], // printables 816 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 817 dsl.NodeTypeEdumpStatement, 818 ) >>`, 819 Id: "EdumpStatement", 820 NTType: 18, 821 Index: 62, 822 NumSymbols: 2, 823 ReduceFunc: func(X []Attrib) (Attrib, error) { 824 return dsl.NewASTNodeBinary( 825 X[0], // edump 826 X[1], // printables 827 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 828 dsl.NodeTypeEdumpStatement, 829 ) 830 }, 831 }, 832 ProdTabEntry{ 833 String: `TeeStatement : tee Redirector "," FullSrec << dsl.NewASTNodeBinary(X[0], X[3], X[1], dsl.NodeTypeTeeStatement) >>`, 834 Id: "TeeStatement", 835 NTType: 19, 836 Index: 63, 837 NumSymbols: 4, 838 ReduceFunc: func(X []Attrib) (Attrib, error) { 839 return dsl.NewASTNodeBinary(X[0], X[3], X[1], dsl.NodeTypeTeeStatement) 840 }, 841 }, 842 ProdTabEntry{ 843 String: `EmitFStatement : emitf EmittableList << dsl.NewASTNodeBinary( 844 X[0], // emitf 845 X[1], // emittables 846 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 847 dsl.NodeTypeEmitFStatement, 848 ) >>`, 849 Id: "EmitFStatement", 850 NTType: 20, 851 Index: 64, 852 NumSymbols: 2, 853 ReduceFunc: func(X []Attrib) (Attrib, error) { 854 return dsl.NewASTNodeBinary( 855 X[0], // emitf 856 X[1], // emittables 857 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 858 dsl.NodeTypeEmitFStatement, 859 ) 860 }, 861 }, 862 ProdTabEntry{ 863 String: `EmitFStatement : emitf Redirector "," EmittableList << dsl.NewASTNodeBinary( 864 X[0], // emitf 865 X[3], // emittables 866 X[1], // redirect 867 dsl.NodeTypeEmitFStatement, 868 ) >>`, 869 Id: "EmitFStatement", 870 NTType: 20, 871 Index: 65, 872 NumSymbols: 4, 873 ReduceFunc: func(X []Attrib) (Attrib, error) { 874 return dsl.NewASTNodeBinary( 875 X[0], // emitf 876 X[3], // emittables 877 X[1], // redirect 878 dsl.NodeTypeEmitFStatement, 879 ) 880 }, 881 }, 882 ProdTabEntry{ 883 String: `EmitStatement : emit EmittableAsList << dsl.NewASTNodeTernary( 884 X[0], // emit 885 X[1], // Emittable 886 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 887 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 888 dsl.NodeTypeEmitStatement, 889 ) >>`, 890 Id: "EmitStatement", 891 NTType: 21, 892 Index: 66, 893 NumSymbols: 2, 894 ReduceFunc: func(X []Attrib) (Attrib, error) { 895 return dsl.NewASTNodeTernary( 896 X[0], // emit 897 X[1], // Emittable 898 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 899 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 900 dsl.NodeTypeEmitStatement, 901 ) 902 }, 903 }, 904 ProdTabEntry{ 905 String: `EmitStatement : emit Redirector "," EmittableAsList << dsl.NewASTNodeTernary( 906 X[0], // emit 907 X[3], // Emittable 908 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 909 X[1], // redirect 910 dsl.NodeTypeEmitStatement, 911 ) >>`, 912 Id: "EmitStatement", 913 NTType: 21, 914 Index: 67, 915 NumSymbols: 4, 916 ReduceFunc: func(X []Attrib) (Attrib, error) { 917 return dsl.NewASTNodeTernary( 918 X[0], // emit 919 X[3], // Emittable 920 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 921 X[1], // redirect 922 dsl.NodeTypeEmitStatement, 923 ) 924 }, 925 }, 926 ProdTabEntry{ 927 String: `EmitStatement : emit "(" EmittableList ")" << dsl.NewASTNodeTernary( 928 X[0], // emit 929 X[2], // emittables 930 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 931 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 932 dsl.NodeTypeEmitStatement, 933 ) >>`, 934 Id: "EmitStatement", 935 NTType: 21, 936 Index: 68, 937 NumSymbols: 4, 938 ReduceFunc: func(X []Attrib) (Attrib, error) { 939 return dsl.NewASTNodeTernary( 940 X[0], // emit 941 X[2], // emittables 942 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 943 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 944 dsl.NodeTypeEmitStatement, 945 ) 946 }, 947 }, 948 ProdTabEntry{ 949 String: `EmitStatement : emit Redirector "," "(" EmittableList ")" << dsl.NewASTNodeTernary( 950 X[0], // emit 951 X[4], // emittables 952 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 953 X[1], // redirect 954 dsl.NodeTypeEmitStatement, 955 ) >>`, 956 Id: "EmitStatement", 957 NTType: 21, 958 Index: 69, 959 NumSymbols: 6, 960 ReduceFunc: func(X []Attrib) (Attrib, error) { 961 return dsl.NewASTNodeTernary( 962 X[0], // emit 963 X[4], // emittables 964 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 965 X[1], // redirect 966 dsl.NodeTypeEmitStatement, 967 ) 968 }, 969 }, 970 ProdTabEntry{ 971 String: `EmitStatement : emit EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary( 972 X[0], // emit 973 X[1], // emittable 974 X[3], // keys 975 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 976 dsl.NodeTypeEmitStatement, 977 ) >>`, 978 Id: "EmitStatement", 979 NTType: 21, 980 Index: 70, 981 NumSymbols: 4, 982 ReduceFunc: func(X []Attrib) (Attrib, error) { 983 return dsl.NewASTNodeTernary( 984 X[0], // emit 985 X[1], // emittable 986 X[3], // keys 987 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 988 dsl.NodeTypeEmitStatement, 989 ) 990 }, 991 }, 992 ProdTabEntry{ 993 String: `EmitStatement : emit Redirector "," EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary( 994 X[0], // emit 995 X[3], // emittable 996 X[5], // keys 997 X[1], // redirect 998 dsl.NodeTypeEmitStatement, 999 ) >>`, 1000 Id: "EmitStatement", 1001 NTType: 21, 1002 Index: 71, 1003 NumSymbols: 6, 1004 ReduceFunc: func(X []Attrib) (Attrib, error) { 1005 return dsl.NewASTNodeTernary( 1006 X[0], // emit 1007 X[3], // emittable 1008 X[5], // keys 1009 X[1], // redirect 1010 dsl.NodeTypeEmitStatement, 1011 ) 1012 }, 1013 }, 1014 ProdTabEntry{ 1015 String: `EmitStatement : emit "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary( 1016 X[0], // emit 1017 X[2], // emittable 1018 X[5], // keys 1019 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1020 dsl.NodeTypeEmitStatement, 1021 ) >>`, 1022 Id: "EmitStatement", 1023 NTType: 21, 1024 Index: 72, 1025 NumSymbols: 6, 1026 ReduceFunc: func(X []Attrib) (Attrib, error) { 1027 return dsl.NewASTNodeTernary( 1028 X[0], // emit 1029 X[2], // emittable 1030 X[5], // keys 1031 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1032 dsl.NodeTypeEmitStatement, 1033 ) 1034 }, 1035 }, 1036 ProdTabEntry{ 1037 String: `EmitStatement : emit Redirector "," "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary( 1038 X[0], // emit 1039 X[4], // emittables 1040 X[7], // keys 1041 X[1], // redirect 1042 dsl.NodeTypeEmitStatement, 1043 ) >>`, 1044 Id: "EmitStatement", 1045 NTType: 21, 1046 Index: 73, 1047 NumSymbols: 8, 1048 ReduceFunc: func(X []Attrib) (Attrib, error) { 1049 return dsl.NewASTNodeTernary( 1050 X[0], // emit 1051 X[4], // emittables 1052 X[7], // keys 1053 X[1], // redirect 1054 dsl.NodeTypeEmitStatement, 1055 ) 1056 }, 1057 }, 1058 ProdTabEntry{ 1059 String: `EmitPStatement : emitp EmittableAsList << dsl.NewASTNodeTernary( 1060 X[0], // emitp 1061 X[1], // emittable 1062 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1063 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1064 dsl.NodeTypeEmitPStatement, 1065 ) >>`, 1066 Id: "EmitPStatement", 1067 NTType: 22, 1068 Index: 74, 1069 NumSymbols: 2, 1070 ReduceFunc: func(X []Attrib) (Attrib, error) { 1071 return dsl.NewASTNodeTernary( 1072 X[0], // emitp 1073 X[1], // emittable 1074 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1075 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1076 dsl.NodeTypeEmitPStatement, 1077 ) 1078 }, 1079 }, 1080 ProdTabEntry{ 1081 String: `EmitPStatement : emitp Redirector "," EmittableAsList << dsl.NewASTNodeTernary( 1082 X[0], // emitp 1083 X[3], // emittable 1084 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1085 X[1], // redirect 1086 dsl.NodeTypeEmitPStatement, 1087 ) >>`, 1088 Id: "EmitPStatement", 1089 NTType: 22, 1090 Index: 75, 1091 NumSymbols: 4, 1092 ReduceFunc: func(X []Attrib) (Attrib, error) { 1093 return dsl.NewASTNodeTernary( 1094 X[0], // emitp 1095 X[3], // emittable 1096 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1097 X[1], // redirect 1098 dsl.NodeTypeEmitPStatement, 1099 ) 1100 }, 1101 }, 1102 ProdTabEntry{ 1103 String: `EmitPStatement : emitp "(" EmittableList ")" << dsl.NewASTNodeTernary( 1104 X[0], // emitp 1105 X[2], // emittables 1106 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1107 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1108 dsl.NodeTypeEmitPStatement, 1109 ) >>`, 1110 Id: "EmitPStatement", 1111 NTType: 22, 1112 Index: 76, 1113 NumSymbols: 4, 1114 ReduceFunc: func(X []Attrib) (Attrib, error) { 1115 return dsl.NewASTNodeTernary( 1116 X[0], // emitp 1117 X[2], // emittables 1118 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1119 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1120 dsl.NodeTypeEmitPStatement, 1121 ) 1122 }, 1123 }, 1124 ProdTabEntry{ 1125 String: `EmitPStatement : emitp Redirector "," "(" EmittableList ")" << dsl.NewASTNodeTernary( 1126 X[0], // emitp 1127 X[4], // emittables 1128 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1129 X[1], // redirect 1130 dsl.NodeTypeEmitPStatement, 1131 ) >>`, 1132 Id: "EmitPStatement", 1133 NTType: 22, 1134 Index: 77, 1135 NumSymbols: 6, 1136 ReduceFunc: func(X []Attrib) (Attrib, error) { 1137 return dsl.NewASTNodeTernary( 1138 X[0], // emitp 1139 X[4], // emittables 1140 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no keys 1141 X[1], // redirect 1142 dsl.NodeTypeEmitPStatement, 1143 ) 1144 }, 1145 }, 1146 ProdTabEntry{ 1147 String: `EmitPStatement : emitp EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary( 1148 X[0], // emitp 1149 X[1], // emittable 1150 X[3], // keys 1151 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1152 dsl.NodeTypeEmitPStatement, 1153 ) >>`, 1154 Id: "EmitPStatement", 1155 NTType: 22, 1156 Index: 78, 1157 NumSymbols: 4, 1158 ReduceFunc: func(X []Attrib) (Attrib, error) { 1159 return dsl.NewASTNodeTernary( 1160 X[0], // emitp 1161 X[1], // emittable 1162 X[3], // keys 1163 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1164 dsl.NodeTypeEmitPStatement, 1165 ) 1166 }, 1167 }, 1168 ProdTabEntry{ 1169 String: `EmitPStatement : emitp Redirector "," EmittableAsList "," EmitKeys << dsl.NewASTNodeTernary( 1170 X[0], // emitp 1171 X[3], // emittable 1172 X[5], // keys 1173 X[1], // redirect 1174 dsl.NodeTypeEmitPStatement, 1175 ) >>`, 1176 Id: "EmitPStatement", 1177 NTType: 22, 1178 Index: 79, 1179 NumSymbols: 6, 1180 ReduceFunc: func(X []Attrib) (Attrib, error) { 1181 return dsl.NewASTNodeTernary( 1182 X[0], // emitp 1183 X[3], // emittable 1184 X[5], // keys 1185 X[1], // redirect 1186 dsl.NodeTypeEmitPStatement, 1187 ) 1188 }, 1189 }, 1190 ProdTabEntry{ 1191 String: `EmitPStatement : emitp "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary( 1192 X[0], // emitp 1193 X[2], // emittable 1194 X[5], // keys 1195 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1196 dsl.NodeTypeEmitPStatement, 1197 ) >>`, 1198 Id: "EmitPStatement", 1199 NTType: 22, 1200 Index: 80, 1201 NumSymbols: 6, 1202 ReduceFunc: func(X []Attrib) (Attrib, error) { 1203 return dsl.NewASTNodeTernary( 1204 X[0], // emitp 1205 X[2], // emittable 1206 X[5], // keys 1207 dsl.NewASTNodeNestable(nil, dsl.NodeTypeNoOp), // no redirect 1208 dsl.NodeTypeEmitPStatement, 1209 ) 1210 }, 1211 }, 1212 ProdTabEntry{ 1213 String: `EmitPStatement : emitp Redirector "," "(" EmittableList ")" "," EmitKeys << dsl.NewASTNodeTernary( 1214 X[0], // emitp 1215 X[4], // emittable 1216 X[7], // keys 1217 X[1], // redirect 1218 dsl.NodeTypeEmitPStatement, 1219 ) >>`, 1220 Id: "EmitPStatement", 1221 NTType: 22, 1222 Index: 81, 1223 NumSymbols: 8, 1224 ReduceFunc: func(X []Attrib) (Attrib, error) { 1225 return dsl.NewASTNodeTernary( 1226 X[0], // emitp 1227 X[4], // emittable 1228 X[7], // keys 1229 X[1], // redirect 1230 dsl.NodeTypeEmitPStatement, 1231 ) 1232 }, 1233 }, 1234 ProdTabEntry{ 1235 String: `EmittableList : Emittable << dsl.NewASTNodeUnary( 1236 nil, 1237 X[0], 1238 dsl.NodeTypeEmittableList, 1239 ) >>`, 1240 Id: "EmittableList", 1241 NTType: 23, 1242 Index: 82, 1243 NumSymbols: 1, 1244 ReduceFunc: func(X []Attrib) (Attrib, error) { 1245 return dsl.NewASTNodeUnary( 1246 nil, 1247 X[0], 1248 dsl.NodeTypeEmittableList, 1249 ) 1250 }, 1251 }, 1252 ProdTabEntry{ 1253 String: `EmittableList : Emittable "," EmittableList << dsl.PrependChild( 1254 X[2], 1255 X[0], 1256 ) >>`, 1257 Id: "EmittableList", 1258 NTType: 23, 1259 Index: 83, 1260 NumSymbols: 3, 1261 ReduceFunc: func(X []Attrib) (Attrib, error) { 1262 return dsl.PrependChild( 1263 X[2], 1264 X[0], 1265 ) 1266 }, 1267 }, 1268 ProdTabEntry{ 1269 String: `EmittableAsList : Emittable << dsl.NewASTNodeUnary( 1270 nil, 1271 X[0], 1272 dsl.NodeTypeEmittableList, 1273 ) >>`, 1274 Id: "EmittableAsList", 1275 NTType: 24, 1276 Index: 84, 1277 NumSymbols: 1, 1278 ReduceFunc: func(X []Attrib) (Attrib, error) { 1279 return dsl.NewASTNodeUnary( 1280 nil, 1281 X[0], 1282 dsl.NodeTypeEmittableList, 1283 ) 1284 }, 1285 }, 1286 ProdTabEntry{ 1287 String: `Emittable : LocalVariable << >>`, 1288 Id: "Emittable", 1289 NTType: 25, 1290 Index: 85, 1291 NumSymbols: 1, 1292 ReduceFunc: func(X []Attrib) (Attrib, error) { 1293 return X[0], nil 1294 }, 1295 }, 1296 ProdTabEntry{ 1297 String: `Emittable : FullOosvar << >>`, 1298 Id: "Emittable", 1299 NTType: 25, 1300 Index: 86, 1301 NumSymbols: 1, 1302 ReduceFunc: func(X []Attrib) (Attrib, error) { 1303 return X[0], nil 1304 }, 1305 }, 1306 ProdTabEntry{ 1307 String: `Emittable : DirectOosvarValue << >>`, 1308 Id: "Emittable", 1309 NTType: 25, 1310 Index: 87, 1311 NumSymbols: 1, 1312 ReduceFunc: func(X []Attrib) (Attrib, error) { 1313 return X[0], nil 1314 }, 1315 }, 1316 ProdTabEntry{ 1317 String: `Emittable : BracedOosvarValue << >>`, 1318 Id: "Emittable", 1319 NTType: 25, 1320 Index: 88, 1321 NumSymbols: 1, 1322 ReduceFunc: func(X []Attrib) (Attrib, error) { 1323 return X[0], nil 1324 }, 1325 }, 1326 ProdTabEntry{ 1327 String: `Emittable : IndirectOosvarValue << >>`, 1328 Id: "Emittable", 1329 NTType: 25, 1330 Index: 89, 1331 NumSymbols: 1, 1332 ReduceFunc: func(X []Attrib) (Attrib, error) { 1333 return X[0], nil 1334 }, 1335 }, 1336 ProdTabEntry{ 1337 String: `Emittable : FullSrec << >>`, 1338 Id: "Emittable", 1339 NTType: 25, 1340 Index: 90, 1341 NumSymbols: 1, 1342 ReduceFunc: func(X []Attrib) (Attrib, error) { 1343 return X[0], nil 1344 }, 1345 }, 1346 ProdTabEntry{ 1347 String: `Emittable : DirectFieldValue << >>`, 1348 Id: "Emittable", 1349 NTType: 25, 1350 Index: 91, 1351 NumSymbols: 1, 1352 ReduceFunc: func(X []Attrib) (Attrib, error) { 1353 return X[0], nil 1354 }, 1355 }, 1356 ProdTabEntry{ 1357 String: `Emittable : BracedFieldValue << >>`, 1358 Id: "Emittable", 1359 NTType: 25, 1360 Index: 92, 1361 NumSymbols: 1, 1362 ReduceFunc: func(X []Attrib) (Attrib, error) { 1363 return X[0], nil 1364 }, 1365 }, 1366 ProdTabEntry{ 1367 String: `Emittable : IndirectFieldValue << >>`, 1368 Id: "Emittable", 1369 NTType: 25, 1370 Index: 93, 1371 NumSymbols: 1, 1372 ReduceFunc: func(X []Attrib) (Attrib, error) { 1373 return X[0], nil 1374 }, 1375 }, 1376 ProdTabEntry{ 1377 String: `Emittable : MapLiteral << >>`, 1378 Id: "Emittable", 1379 NTType: 25, 1380 Index: 94, 1381 NumSymbols: 1, 1382 ReduceFunc: func(X []Attrib) (Attrib, error) { 1383 return X[0], nil 1384 }, 1385 }, 1386 ProdTabEntry{ 1387 String: `EmitKeys : Rvalue << dsl.NewASTNodeUnary( 1388 nil, 1389 X[0], 1390 dsl.NodeTypeEmitKeys, 1391 ) >>`, 1392 Id: "EmitKeys", 1393 NTType: 26, 1394 Index: 95, 1395 NumSymbols: 1, 1396 ReduceFunc: func(X []Attrib) (Attrib, error) { 1397 return dsl.NewASTNodeUnary( 1398 nil, 1399 X[0], 1400 dsl.NodeTypeEmitKeys, 1401 ) 1402 }, 1403 }, 1404 ProdTabEntry{ 1405 String: `EmitKeys : Rvalue "," EmitKeys << dsl.PrependChild( 1406 X[2], 1407 X[0], 1408 ) >>`, 1409 Id: "EmitKeys", 1410 NTType: 26, 1411 Index: 96, 1412 NumSymbols: 3, 1413 ReduceFunc: func(X []Attrib) (Attrib, error) { 1414 return dsl.PrependChild( 1415 X[2], 1416 X[0], 1417 ) 1418 }, 1419 }, 1420 ProdTabEntry{ 1421 String: `FieldValue : DirectFieldValue << >>`, 1422 Id: "FieldValue", 1423 NTType: 27, 1424 Index: 97, 1425 NumSymbols: 1, 1426 ReduceFunc: func(X []Attrib) (Attrib, error) { 1427 return X[0], nil 1428 }, 1429 }, 1430 ProdTabEntry{ 1431 String: `FieldValue : IndirectFieldValue << >>`, 1432 Id: "FieldValue", 1433 NTType: 27, 1434 Index: 98, 1435 NumSymbols: 1, 1436 ReduceFunc: func(X []Attrib) (Attrib, error) { 1437 return X[0], nil 1438 }, 1439 }, 1440 ProdTabEntry{ 1441 String: `FieldValue : BracedFieldValue << >>`, 1442 Id: "FieldValue", 1443 NTType: 27, 1444 Index: 99, 1445 NumSymbols: 1, 1446 ReduceFunc: func(X []Attrib) (Attrib, error) { 1447 return X[0], nil 1448 }, 1449 }, 1450 ProdTabEntry{ 1451 String: `FieldValue : PositionalFieldName << >>`, 1452 Id: "FieldValue", 1453 NTType: 27, 1454 Index: 100, 1455 NumSymbols: 1, 1456 ReduceFunc: func(X []Attrib) (Attrib, error) { 1457 return X[0], nil 1458 }, 1459 }, 1460 ProdTabEntry{ 1461 String: `FieldValue : PositionalFieldValue << >>`, 1462 Id: "FieldValue", 1463 NTType: 27, 1464 Index: 101, 1465 NumSymbols: 1, 1466 ReduceFunc: func(X []Attrib) (Attrib, error) { 1467 return X[0], nil 1468 }, 1469 }, 1470 ProdTabEntry{ 1471 String: `DirectFieldValue : field_name << dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectFieldValue) >>`, 1472 Id: "DirectFieldValue", 1473 NTType: 28, 1474 Index: 102, 1475 NumSymbols: 1, 1476 ReduceFunc: func(X []Attrib) (Attrib, error) { 1477 return dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectFieldValue) 1478 }, 1479 }, 1480 ProdTabEntry{ 1481 String: `IndirectFieldValue : "$[" Rvalue "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypeIndirectFieldValue) >>`, 1482 Id: "IndirectFieldValue", 1483 NTType: 29, 1484 Index: 103, 1485 NumSymbols: 3, 1486 ReduceFunc: func(X []Attrib) (Attrib, error) { 1487 return dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypeIndirectFieldValue) 1488 }, 1489 }, 1490 ProdTabEntry{ 1491 String: `BracedFieldValue : braced_field_name << dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectFieldValue) >>`, 1492 Id: "BracedFieldValue", 1493 NTType: 30, 1494 Index: 104, 1495 NumSymbols: 1, 1496 ReduceFunc: func(X []Attrib) (Attrib, error) { 1497 return dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectFieldValue) 1498 }, 1499 }, 1500 ProdTabEntry{ 1501 String: `PositionalFieldName : "$[[" Rvalue "]" "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldName) >>`, 1502 Id: "PositionalFieldName", 1503 NTType: 31, 1504 Index: 105, 1505 NumSymbols: 4, 1506 ReduceFunc: func(X []Attrib) (Attrib, error) { 1507 return dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldName) 1508 }, 1509 }, 1510 ProdTabEntry{ 1511 String: `PositionalFieldValue : "$[[[" Rvalue "]" "]" "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldValue) >>`, 1512 Id: "PositionalFieldValue", 1513 NTType: 32, 1514 Index: 106, 1515 NumSymbols: 5, 1516 ReduceFunc: func(X []Attrib) (Attrib, error) { 1517 return dsl.NewASTNodeUnary(dsl.NewASTToken("$[]", X[0]), X[1], dsl.NodeTypePositionalFieldValue) 1518 }, 1519 }, 1520 ProdTabEntry{ 1521 String: `FullSrec : full_srec << dsl.NewASTNode(X[0], dsl.NodeTypeFullSrec) >>`, 1522 Id: "FullSrec", 1523 NTType: 33, 1524 Index: 107, 1525 NumSymbols: 1, 1526 ReduceFunc: func(X []Attrib) (Attrib, error) { 1527 return dsl.NewASTNode(X[0], dsl.NodeTypeFullSrec) 1528 }, 1529 }, 1530 ProdTabEntry{ 1531 String: `OosvarValue : DirectOosvarValue << >>`, 1532 Id: "OosvarValue", 1533 NTType: 34, 1534 Index: 108, 1535 NumSymbols: 1, 1536 ReduceFunc: func(X []Attrib) (Attrib, error) { 1537 return X[0], nil 1538 }, 1539 }, 1540 ProdTabEntry{ 1541 String: `OosvarValue : IndirectOosvarValue << >>`, 1542 Id: "OosvarValue", 1543 NTType: 34, 1544 Index: 109, 1545 NumSymbols: 1, 1546 ReduceFunc: func(X []Attrib) (Attrib, error) { 1547 return X[0], nil 1548 }, 1549 }, 1550 ProdTabEntry{ 1551 String: `OosvarValue : BracedOosvarValue << >>`, 1552 Id: "OosvarValue", 1553 NTType: 34, 1554 Index: 110, 1555 NumSymbols: 1, 1556 ReduceFunc: func(X []Attrib) (Attrib, error) { 1557 return X[0], nil 1558 }, 1559 }, 1560 ProdTabEntry{ 1561 String: `DirectOosvarValue : oosvar_name << dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectOosvarValue) >>`, 1562 Id: "DirectOosvarValue", 1563 NTType: 35, 1564 Index: 111, 1565 NumSymbols: 1, 1566 ReduceFunc: func(X []Attrib) (Attrib, error) { 1567 return dsl.NewASTNodeStripDollarOrAtSign(X[0], dsl.NodeTypeDirectOosvarValue) 1568 }, 1569 }, 1570 ProdTabEntry{ 1571 String: `IndirectOosvarValue : "@[" Rvalue "]" << dsl.NewASTNodeUnary(dsl.NewASTToken("@[]", X[0]), X[1], dsl.NodeTypeIndirectOosvarValue) >>`, 1572 Id: "IndirectOosvarValue", 1573 NTType: 36, 1574 Index: 112, 1575 NumSymbols: 3, 1576 ReduceFunc: func(X []Attrib) (Attrib, error) { 1577 return dsl.NewASTNodeUnary(dsl.NewASTToken("@[]", X[0]), X[1], dsl.NodeTypeIndirectOosvarValue) 1578 }, 1579 }, 1580 ProdTabEntry{ 1581 String: `BracedOosvarValue : braced_oosvar_name << dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectOosvarValue) >>`, 1582 Id: "BracedOosvarValue", 1583 NTType: 37, 1584 Index: 113, 1585 NumSymbols: 1, 1586 ReduceFunc: func(X []Attrib) (Attrib, error) { 1587 return dsl.NewASTNodeStripDollarOrAtSignAndCurlyBraces(X[0], dsl.NodeTypeDirectOosvarValue) 1588 }, 1589 }, 1590 ProdTabEntry{ 1591 String: `FullOosvar : full_oosvar << dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar) >>`, 1592 Id: "FullOosvar", 1593 NTType: 38, 1594 Index: 114, 1595 NumSymbols: 1, 1596 ReduceFunc: func(X []Attrib) (Attrib, error) { 1597 return dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar) 1598 }, 1599 }, 1600 ProdTabEntry{ 1601 String: `FullOosvar : all << dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar) >>`, 1602 Id: "FullOosvar", 1603 NTType: 38, 1604 Index: 115, 1605 NumSymbols: 1, 1606 ReduceFunc: func(X []Attrib) (Attrib, error) { 1607 return dsl.NewASTNode(X[0], dsl.NodeTypeFullOosvar) 1608 }, 1609 }, 1610 ProdTabEntry{ 1611 String: `LocalVariable : non_sigil_name << dsl.NewASTNode(X[0], dsl.NodeTypeLocalVariable) >>`, 1612 Id: "LocalVariable", 1613 NTType: 39, 1614 Index: 116, 1615 NumSymbols: 1, 1616 ReduceFunc: func(X []Attrib) (Attrib, error) { 1617 return dsl.NewASTNode(X[0], dsl.NodeTypeLocalVariable) 1618 }, 1619 }, 1620 ProdTabEntry{ 1621 String: `Typedecl : arr << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1622 Id: "Typedecl", 1623 NTType: 40, 1624 Index: 117, 1625 NumSymbols: 1, 1626 ReduceFunc: func(X []Attrib) (Attrib, error) { 1627 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1628 }, 1629 }, 1630 ProdTabEntry{ 1631 String: `Typedecl : bool << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1632 Id: "Typedecl", 1633 NTType: 40, 1634 Index: 118, 1635 NumSymbols: 1, 1636 ReduceFunc: func(X []Attrib) (Attrib, error) { 1637 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1638 }, 1639 }, 1640 ProdTabEntry{ 1641 String: `Typedecl : float << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1642 Id: "Typedecl", 1643 NTType: 40, 1644 Index: 119, 1645 NumSymbols: 1, 1646 ReduceFunc: func(X []Attrib) (Attrib, error) { 1647 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1648 }, 1649 }, 1650 ProdTabEntry{ 1651 String: `Typedecl : int << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1652 Id: "Typedecl", 1653 NTType: 40, 1654 Index: 120, 1655 NumSymbols: 1, 1656 ReduceFunc: func(X []Attrib) (Attrib, error) { 1657 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1658 }, 1659 }, 1660 ProdTabEntry{ 1661 String: `Typedecl : map << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1662 Id: "Typedecl", 1663 NTType: 40, 1664 Index: 121, 1665 NumSymbols: 1, 1666 ReduceFunc: func(X []Attrib) (Attrib, error) { 1667 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1668 }, 1669 }, 1670 ProdTabEntry{ 1671 String: `Typedecl : num << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1672 Id: "Typedecl", 1673 NTType: 40, 1674 Index: 122, 1675 NumSymbols: 1, 1676 ReduceFunc: func(X []Attrib) (Attrib, error) { 1677 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1678 }, 1679 }, 1680 ProdTabEntry{ 1681 String: `Typedecl : str << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1682 Id: "Typedecl", 1683 NTType: 40, 1684 Index: 123, 1685 NumSymbols: 1, 1686 ReduceFunc: func(X []Attrib) (Attrib, error) { 1687 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1688 }, 1689 }, 1690 ProdTabEntry{ 1691 String: `Typedecl : var << dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) >>`, 1692 Id: "Typedecl", 1693 NTType: 40, 1694 Index: 124, 1695 NumSymbols: 1, 1696 ReduceFunc: func(X []Attrib) (Attrib, error) { 1697 return dsl.NewASTNode(X[0], dsl.NodeTypeTypedecl) 1698 }, 1699 }, 1700 ProdTabEntry{ 1701 String: `Assignment : Lvalue "||=" Rvalue << dsl.NewASTNodeBinary( 1702 dsl.NewASTToken("=", X[1]), 1703 X[0], 1704 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("||", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1705 dsl.NodeTypeAssignment, 1706 ) >>`, 1707 Id: "Assignment", 1708 NTType: 6, 1709 Index: 125, 1710 NumSymbols: 3, 1711 ReduceFunc: func(X []Attrib) (Attrib, error) { 1712 return dsl.NewASTNodeBinary( 1713 dsl.NewASTToken("=", X[1]), 1714 X[0], 1715 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("||", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1716 dsl.NodeTypeAssignment, 1717 ) 1718 }, 1719 }, 1720 ProdTabEntry{ 1721 String: `Assignment : Lvalue "^^=" Rvalue << dsl.NewASTNodeBinary( 1722 dsl.NewASTToken("=", X[1]), 1723 X[0], 1724 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^^", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1725 dsl.NodeTypeAssignment, 1726 ) >>`, 1727 Id: "Assignment", 1728 NTType: 6, 1729 Index: 126, 1730 NumSymbols: 3, 1731 ReduceFunc: func(X []Attrib) (Attrib, error) { 1732 return dsl.NewASTNodeBinary( 1733 dsl.NewASTToken("=", X[1]), 1734 X[0], 1735 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^^", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1736 dsl.NodeTypeAssignment, 1737 ) 1738 }, 1739 }, 1740 ProdTabEntry{ 1741 String: `Assignment : Lvalue "&&=" Rvalue << dsl.NewASTNodeBinary( 1742 dsl.NewASTToken("=", X[1]), 1743 X[0], 1744 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("&&", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1745 dsl.NodeTypeAssignment, 1746 ) >>`, 1747 Id: "Assignment", 1748 NTType: 6, 1749 Index: 127, 1750 NumSymbols: 3, 1751 ReduceFunc: func(X []Attrib) (Attrib, error) { 1752 return dsl.NewASTNodeBinary( 1753 dsl.NewASTToken("=", X[1]), 1754 X[0], 1755 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("&&", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1756 dsl.NodeTypeAssignment, 1757 ) 1758 }, 1759 }, 1760 ProdTabEntry{ 1761 String: `Assignment : Lvalue "??=" Rvalue << dsl.NewASTNodeBinary( 1762 dsl.NewASTToken("=", X[1]), 1763 X[0], 1764 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("??", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1765 dsl.NodeTypeAssignment, 1766 ) >>`, 1767 Id: "Assignment", 1768 NTType: 6, 1769 Index: 128, 1770 NumSymbols: 3, 1771 ReduceFunc: func(X []Attrib) (Attrib, error) { 1772 return dsl.NewASTNodeBinary( 1773 dsl.NewASTToken("=", X[1]), 1774 X[0], 1775 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("??", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1776 dsl.NodeTypeAssignment, 1777 ) 1778 }, 1779 }, 1780 ProdTabEntry{ 1781 String: `Assignment : Lvalue "???=" Rvalue << dsl.NewASTNodeBinary( 1782 dsl.NewASTToken("=", X[1]), 1783 X[0], 1784 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("???", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1785 dsl.NodeTypeAssignment, 1786 ) >>`, 1787 Id: "Assignment", 1788 NTType: 6, 1789 Index: 129, 1790 NumSymbols: 3, 1791 ReduceFunc: func(X []Attrib) (Attrib, error) { 1792 return dsl.NewASTNodeBinary( 1793 dsl.NewASTToken("=", X[1]), 1794 X[0], 1795 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("???", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1796 dsl.NodeTypeAssignment, 1797 ) 1798 }, 1799 }, 1800 ProdTabEntry{ 1801 String: `Assignment : Lvalue "|=" Rvalue << dsl.NewASTNodeBinary( 1802 dsl.NewASTToken("=", X[1]), 1803 X[0], 1804 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("|", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1805 dsl.NodeTypeAssignment, 1806 ) >>`, 1807 Id: "Assignment", 1808 NTType: 6, 1809 Index: 130, 1810 NumSymbols: 3, 1811 ReduceFunc: func(X []Attrib) (Attrib, error) { 1812 return dsl.NewASTNodeBinary( 1813 dsl.NewASTToken("=", X[1]), 1814 X[0], 1815 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("|", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1816 dsl.NodeTypeAssignment, 1817 ) 1818 }, 1819 }, 1820 ProdTabEntry{ 1821 String: `Assignment : Lvalue "&=" Rvalue << dsl.NewASTNodeBinary( 1822 dsl.NewASTToken("=", X[1]), 1823 X[0], 1824 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1825 dsl.NodeTypeAssignment, 1826 ) >>`, 1827 Id: "Assignment", 1828 NTType: 6, 1829 Index: 131, 1830 NumSymbols: 3, 1831 ReduceFunc: func(X []Attrib) (Attrib, error) { 1832 return dsl.NewASTNodeBinary( 1833 dsl.NewASTToken("=", X[1]), 1834 X[0], 1835 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1836 dsl.NodeTypeAssignment, 1837 ) 1838 }, 1839 }, 1840 ProdTabEntry{ 1841 String: `Assignment : Lvalue "^=" Rvalue << dsl.NewASTNodeBinary( 1842 dsl.NewASTToken("=", X[1]), 1843 X[0], 1844 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1845 dsl.NodeTypeAssignment, 1846 ) >>`, 1847 Id: "Assignment", 1848 NTType: 6, 1849 Index: 132, 1850 NumSymbols: 3, 1851 ReduceFunc: func(X []Attrib) (Attrib, error) { 1852 return dsl.NewASTNodeBinary( 1853 dsl.NewASTToken("=", X[1]), 1854 X[0], 1855 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("^", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1856 dsl.NodeTypeAssignment, 1857 ) 1858 }, 1859 }, 1860 ProdTabEntry{ 1861 String: `Assignment : Lvalue "<<=" Rvalue << dsl.NewASTNodeBinary( 1862 dsl.NewASTToken("=", X[1]), 1863 X[0], 1864 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("<<", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1865 dsl.NodeTypeAssignment, 1866 ) >>`, 1867 Id: "Assignment", 1868 NTType: 6, 1869 Index: 133, 1870 NumSymbols: 3, 1871 ReduceFunc: func(X []Attrib) (Attrib, error) { 1872 return dsl.NewASTNodeBinary( 1873 dsl.NewASTToken("=", X[1]), 1874 X[0], 1875 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("<<", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1876 dsl.NodeTypeAssignment, 1877 ) 1878 }, 1879 }, 1880 ProdTabEntry{ 1881 String: `Assignment : Lvalue ">>=" Rvalue << dsl.NewASTNodeBinary( 1882 dsl.NewASTToken("=", X[1]), 1883 X[0], 1884 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1885 dsl.NodeTypeAssignment, 1886 ) >>`, 1887 Id: "Assignment", 1888 NTType: 6, 1889 Index: 134, 1890 NumSymbols: 3, 1891 ReduceFunc: func(X []Attrib) (Attrib, error) { 1892 return dsl.NewASTNodeBinary( 1893 dsl.NewASTToken("=", X[1]), 1894 X[0], 1895 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1896 dsl.NodeTypeAssignment, 1897 ) 1898 }, 1899 }, 1900 ProdTabEntry{ 1901 String: `Assignment : Lvalue ">>>=" Rvalue << dsl.NewASTNodeBinary( 1902 dsl.NewASTToken("=", X[1]), 1903 X[0], 1904 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1905 dsl.NodeTypeAssignment, 1906 ) >>`, 1907 Id: "Assignment", 1908 NTType: 6, 1909 Index: 135, 1910 NumSymbols: 3, 1911 ReduceFunc: func(X []Attrib) (Attrib, error) { 1912 return dsl.NewASTNodeBinary( 1913 dsl.NewASTToken("=", X[1]), 1914 X[0], 1915 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(">"+">"+">", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1916 dsl.NodeTypeAssignment, 1917 ) 1918 }, 1919 }, 1920 ProdTabEntry{ 1921 String: `Assignment : Lvalue "+=" Rvalue << dsl.NewASTNodeBinary( 1922 dsl.NewASTToken("=", X[1]), 1923 X[0], 1924 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("+", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1925 dsl.NodeTypeAssignment, 1926 ) >>`, 1927 Id: "Assignment", 1928 NTType: 6, 1929 Index: 136, 1930 NumSymbols: 3, 1931 ReduceFunc: func(X []Attrib) (Attrib, error) { 1932 return dsl.NewASTNodeBinary( 1933 dsl.NewASTToken("=", X[1]), 1934 X[0], 1935 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("+", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1936 dsl.NodeTypeAssignment, 1937 ) 1938 }, 1939 }, 1940 ProdTabEntry{ 1941 String: `Assignment : Lvalue ".=" Rvalue << dsl.NewASTNodeBinary( 1942 dsl.NewASTToken("=", X[1]), 1943 X[0], 1944 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(".", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1945 dsl.NodeTypeAssignment, 1946 ) >>`, 1947 Id: "Assignment", 1948 NTType: 6, 1949 Index: 137, 1950 NumSymbols: 3, 1951 ReduceFunc: func(X []Attrib) (Attrib, error) { 1952 return dsl.NewASTNodeBinary( 1953 dsl.NewASTToken("=", X[1]), 1954 X[0], 1955 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken(".", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1956 dsl.NodeTypeAssignment, 1957 ) 1958 }, 1959 }, 1960 ProdTabEntry{ 1961 String: `Assignment : Lvalue "-=" Rvalue << dsl.NewASTNodeBinary( 1962 dsl.NewASTToken("=", X[1]), 1963 X[0], 1964 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("-", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1965 dsl.NodeTypeAssignment, 1966 ) >>`, 1967 Id: "Assignment", 1968 NTType: 6, 1969 Index: 138, 1970 NumSymbols: 3, 1971 ReduceFunc: func(X []Attrib) (Attrib, error) { 1972 return dsl.NewASTNodeBinary( 1973 dsl.NewASTToken("=", X[1]), 1974 X[0], 1975 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("-", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1976 dsl.NodeTypeAssignment, 1977 ) 1978 }, 1979 }, 1980 ProdTabEntry{ 1981 String: `Assignment : Lvalue "*=" Rvalue << dsl.NewASTNodeBinary( 1982 dsl.NewASTToken("=", X[1]), 1983 X[0], 1984 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("*", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1985 dsl.NodeTypeAssignment, 1986 ) >>`, 1987 Id: "Assignment", 1988 NTType: 6, 1989 Index: 139, 1990 NumSymbols: 3, 1991 ReduceFunc: func(X []Attrib) (Attrib, error) { 1992 return dsl.NewASTNodeBinary( 1993 dsl.NewASTToken("=", X[1]), 1994 X[0], 1995 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("*", X[1]), X[0], X[2], dsl.NodeTypeOperator), 1996 dsl.NodeTypeAssignment, 1997 ) 1998 }, 1999 }, 2000 ProdTabEntry{ 2001 String: `Assignment : Lvalue "/=" Rvalue << dsl.NewASTNodeBinary( 2002 dsl.NewASTToken("=", X[1]), 2003 X[0], 2004 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("/", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2005 dsl.NodeTypeAssignment, 2006 ) >>`, 2007 Id: "Assignment", 2008 NTType: 6, 2009 Index: 140, 2010 NumSymbols: 3, 2011 ReduceFunc: func(X []Attrib) (Attrib, error) { 2012 return dsl.NewASTNodeBinary( 2013 dsl.NewASTToken("=", X[1]), 2014 X[0], 2015 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("/", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2016 dsl.NodeTypeAssignment, 2017 ) 2018 }, 2019 }, 2020 ProdTabEntry{ 2021 String: `Assignment : Lvalue "//=" Rvalue << dsl.NewASTNodeBinary( 2022 dsl.NewASTToken("=", X[1]), 2023 X[0], 2024 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("//", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2025 dsl.NodeTypeAssignment, 2026 ) >>`, 2027 Id: "Assignment", 2028 NTType: 6, 2029 Index: 141, 2030 NumSymbols: 3, 2031 ReduceFunc: func(X []Attrib) (Attrib, error) { 2032 return dsl.NewASTNodeBinary( 2033 dsl.NewASTToken("=", X[1]), 2034 X[0], 2035 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("//", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2036 dsl.NodeTypeAssignment, 2037 ) 2038 }, 2039 }, 2040 ProdTabEntry{ 2041 String: `Assignment : Lvalue "%=" Rvalue << dsl.NewASTNodeBinary( 2042 dsl.NewASTToken("=", X[1]), 2043 X[0], 2044 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("%", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2045 dsl.NodeTypeAssignment, 2046 ) >>`, 2047 Id: "Assignment", 2048 NTType: 6, 2049 Index: 142, 2050 NumSymbols: 3, 2051 ReduceFunc: func(X []Attrib) (Attrib, error) { 2052 return dsl.NewASTNodeBinary( 2053 dsl.NewASTToken("=", X[1]), 2054 X[0], 2055 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("%", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2056 dsl.NodeTypeAssignment, 2057 ) 2058 }, 2059 }, 2060 ProdTabEntry{ 2061 String: `Assignment : Lvalue "**=" Rvalue << dsl.NewASTNodeBinary( 2062 dsl.NewASTToken("=", X[1]), 2063 X[0], 2064 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("**", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2065 dsl.NodeTypeAssignment, 2066 ) >>`, 2067 Id: "Assignment", 2068 NTType: 6, 2069 Index: 143, 2070 NumSymbols: 3, 2071 ReduceFunc: func(X []Attrib) (Attrib, error) { 2072 return dsl.NewASTNodeBinary( 2073 dsl.NewASTToken("=", X[1]), 2074 X[0], 2075 dsl.NewASTNodeBinaryNestable(dsl.NewASTToken("**", X[1]), X[0], X[2], dsl.NodeTypeOperator), 2076 dsl.NodeTypeAssignment, 2077 ) 2078 }, 2079 }, 2080 ProdTabEntry{ 2081 String: `Rvalue : PrecedenceChainStart << >>`, 2082 Id: "Rvalue", 2083 NTType: 41, 2084 Index: 144, 2085 NumSymbols: 1, 2086 ReduceFunc: func(X []Attrib) (Attrib, error) { 2087 return X[0], nil 2088 }, 2089 }, 2090 ProdTabEntry{ 2091 String: `PrecedenceChainStart : TernaryTerm << >>`, 2092 Id: "PrecedenceChainStart", 2093 NTType: 42, 2094 Index: 145, 2095 NumSymbols: 1, 2096 ReduceFunc: func(X []Attrib) (Attrib, error) { 2097 return X[0], nil 2098 }, 2099 }, 2100 ProdTabEntry{ 2101 String: `TernaryTerm : LogicalOrTerm "?" TernaryTerm ":" TernaryTerm << dsl.NewASTNodeTernary(dsl.NewASTToken("?:", X[1]), X[0], X[2], X[4], dsl.NodeTypeOperator) >>`, 2102 Id: "TernaryTerm", 2103 NTType: 43, 2104 Index: 146, 2105 NumSymbols: 5, 2106 ReduceFunc: func(X []Attrib) (Attrib, error) { 2107 return dsl.NewASTNodeTernary(dsl.NewASTToken("?:", X[1]), X[0], X[2], X[4], dsl.NodeTypeOperator) 2108 }, 2109 }, 2110 ProdTabEntry{ 2111 String: `TernaryTerm : LogicalOrTerm << >>`, 2112 Id: "TernaryTerm", 2113 NTType: 43, 2114 Index: 147, 2115 NumSymbols: 1, 2116 ReduceFunc: func(X []Attrib) (Attrib, error) { 2117 return X[0], nil 2118 }, 2119 }, 2120 ProdTabEntry{ 2121 String: `LogicalOrTerm : LogicalOrTerm "||" LogicalXORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2122 Id: "LogicalOrTerm", 2123 NTType: 44, 2124 Index: 148, 2125 NumSymbols: 3, 2126 ReduceFunc: func(X []Attrib) (Attrib, error) { 2127 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2128 }, 2129 }, 2130 ProdTabEntry{ 2131 String: `LogicalOrTerm : LogicalXORTerm << >>`, 2132 Id: "LogicalOrTerm", 2133 NTType: 44, 2134 Index: 149, 2135 NumSymbols: 1, 2136 ReduceFunc: func(X []Attrib) (Attrib, error) { 2137 return X[0], nil 2138 }, 2139 }, 2140 ProdTabEntry{ 2141 String: `LogicalXORTerm : LogicalXORTerm "^^" LogicalAndTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2142 Id: "LogicalXORTerm", 2143 NTType: 45, 2144 Index: 150, 2145 NumSymbols: 3, 2146 ReduceFunc: func(X []Attrib) (Attrib, error) { 2147 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2148 }, 2149 }, 2150 ProdTabEntry{ 2151 String: `LogicalXORTerm : LogicalAndTerm << >>`, 2152 Id: "LogicalXORTerm", 2153 NTType: 45, 2154 Index: 151, 2155 NumSymbols: 1, 2156 ReduceFunc: func(X []Attrib) (Attrib, error) { 2157 return X[0], nil 2158 }, 2159 }, 2160 ProdTabEntry{ 2161 String: `LogicalAndTerm : LogicalAndTerm "&&" AbsentCoalesceTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2162 Id: "LogicalAndTerm", 2163 NTType: 46, 2164 Index: 152, 2165 NumSymbols: 3, 2166 ReduceFunc: func(X []Attrib) (Attrib, error) { 2167 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2168 }, 2169 }, 2170 ProdTabEntry{ 2171 String: `LogicalAndTerm : AbsentCoalesceTerm << >>`, 2172 Id: "LogicalAndTerm", 2173 NTType: 46, 2174 Index: 153, 2175 NumSymbols: 1, 2176 ReduceFunc: func(X []Attrib) (Attrib, error) { 2177 return X[0], nil 2178 }, 2179 }, 2180 ProdTabEntry{ 2181 String: `AbsentCoalesceTerm : AbsentCoalesceTerm "??" EmptyCoalesceTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2182 Id: "AbsentCoalesceTerm", 2183 NTType: 47, 2184 Index: 154, 2185 NumSymbols: 3, 2186 ReduceFunc: func(X []Attrib) (Attrib, error) { 2187 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2188 }, 2189 }, 2190 ProdTabEntry{ 2191 String: `AbsentCoalesceTerm : EmptyCoalesceTerm << >>`, 2192 Id: "AbsentCoalesceTerm", 2193 NTType: 47, 2194 Index: 155, 2195 NumSymbols: 1, 2196 ReduceFunc: func(X []Attrib) (Attrib, error) { 2197 return X[0], nil 2198 }, 2199 }, 2200 ProdTabEntry{ 2201 String: `EmptyCoalesceTerm : EmptyCoalesceTerm "???" EqneTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2202 Id: "EmptyCoalesceTerm", 2203 NTType: 48, 2204 Index: 156, 2205 NumSymbols: 3, 2206 ReduceFunc: func(X []Attrib) (Attrib, error) { 2207 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2208 }, 2209 }, 2210 ProdTabEntry{ 2211 String: `EmptyCoalesceTerm : EqneTerm << >>`, 2212 Id: "EmptyCoalesceTerm", 2213 NTType: 48, 2214 Index: 157, 2215 NumSymbols: 1, 2216 ReduceFunc: func(X []Attrib) (Attrib, error) { 2217 return X[0], nil 2218 }, 2219 }, 2220 ProdTabEntry{ 2221 String: `EqneTerm : EqneTerm "=~" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2222 Id: "EqneTerm", 2223 NTType: 49, 2224 Index: 158, 2225 NumSymbols: 3, 2226 ReduceFunc: func(X []Attrib) (Attrib, error) { 2227 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2228 }, 2229 }, 2230 ProdTabEntry{ 2231 String: `EqneTerm : EqneTerm "!=~" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2232 Id: "EqneTerm", 2233 NTType: 49, 2234 Index: 159, 2235 NumSymbols: 3, 2236 ReduceFunc: func(X []Attrib) (Attrib, error) { 2237 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2238 }, 2239 }, 2240 ProdTabEntry{ 2241 String: `EqneTerm : EqneTerm "==" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2242 Id: "EqneTerm", 2243 NTType: 49, 2244 Index: 160, 2245 NumSymbols: 3, 2246 ReduceFunc: func(X []Attrib) (Attrib, error) { 2247 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2248 }, 2249 }, 2250 ProdTabEntry{ 2251 String: `EqneTerm : EqneTerm "!=" CmpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2252 Id: "EqneTerm", 2253 NTType: 49, 2254 Index: 161, 2255 NumSymbols: 3, 2256 ReduceFunc: func(X []Attrib) (Attrib, error) { 2257 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2258 }, 2259 }, 2260 ProdTabEntry{ 2261 String: `EqneTerm : CmpTerm << >>`, 2262 Id: "EqneTerm", 2263 NTType: 49, 2264 Index: 162, 2265 NumSymbols: 1, 2266 ReduceFunc: func(X []Attrib) (Attrib, error) { 2267 return X[0], nil 2268 }, 2269 }, 2270 ProdTabEntry{ 2271 String: `CmpTerm : CmpTerm ">" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2272 Id: "CmpTerm", 2273 NTType: 50, 2274 Index: 163, 2275 NumSymbols: 3, 2276 ReduceFunc: func(X []Attrib) (Attrib, error) { 2277 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2278 }, 2279 }, 2280 ProdTabEntry{ 2281 String: `CmpTerm : CmpTerm ">=" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2282 Id: "CmpTerm", 2283 NTType: 50, 2284 Index: 164, 2285 NumSymbols: 3, 2286 ReduceFunc: func(X []Attrib) (Attrib, error) { 2287 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2288 }, 2289 }, 2290 ProdTabEntry{ 2291 String: `CmpTerm : CmpTerm "<" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2292 Id: "CmpTerm", 2293 NTType: 50, 2294 Index: 165, 2295 NumSymbols: 3, 2296 ReduceFunc: func(X []Attrib) (Attrib, error) { 2297 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2298 }, 2299 }, 2300 ProdTabEntry{ 2301 String: `CmpTerm : CmpTerm "<=" BitwiseORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2302 Id: "CmpTerm", 2303 NTType: 50, 2304 Index: 166, 2305 NumSymbols: 3, 2306 ReduceFunc: func(X []Attrib) (Attrib, error) { 2307 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2308 }, 2309 }, 2310 ProdTabEntry{ 2311 String: `CmpTerm : BitwiseORTerm << >>`, 2312 Id: "CmpTerm", 2313 NTType: 50, 2314 Index: 167, 2315 NumSymbols: 1, 2316 ReduceFunc: func(X []Attrib) (Attrib, error) { 2317 return X[0], nil 2318 }, 2319 }, 2320 ProdTabEntry{ 2321 String: `BitwiseORTerm : BitwiseORTerm "|" BitwiseXORTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2322 Id: "BitwiseORTerm", 2323 NTType: 51, 2324 Index: 168, 2325 NumSymbols: 3, 2326 ReduceFunc: func(X []Attrib) (Attrib, error) { 2327 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2328 }, 2329 }, 2330 ProdTabEntry{ 2331 String: `BitwiseORTerm : BitwiseXORTerm << >>`, 2332 Id: "BitwiseORTerm", 2333 NTType: 51, 2334 Index: 169, 2335 NumSymbols: 1, 2336 ReduceFunc: func(X []Attrib) (Attrib, error) { 2337 return X[0], nil 2338 }, 2339 }, 2340 ProdTabEntry{ 2341 String: `BitwiseXORTerm : BitwiseXORTerm "^" BitwiseANDTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2342 Id: "BitwiseXORTerm", 2343 NTType: 52, 2344 Index: 170, 2345 NumSymbols: 3, 2346 ReduceFunc: func(X []Attrib) (Attrib, error) { 2347 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2348 }, 2349 }, 2350 ProdTabEntry{ 2351 String: `BitwiseXORTerm : BitwiseANDTerm << >>`, 2352 Id: "BitwiseXORTerm", 2353 NTType: 52, 2354 Index: 171, 2355 NumSymbols: 1, 2356 ReduceFunc: func(X []Attrib) (Attrib, error) { 2357 return X[0], nil 2358 }, 2359 }, 2360 ProdTabEntry{ 2361 String: `BitwiseANDTerm : BitwiseANDTerm "&" BitwiseShiftTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2362 Id: "BitwiseANDTerm", 2363 NTType: 53, 2364 Index: 172, 2365 NumSymbols: 3, 2366 ReduceFunc: func(X []Attrib) (Attrib, error) { 2367 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2368 }, 2369 }, 2370 ProdTabEntry{ 2371 String: `BitwiseANDTerm : BitwiseShiftTerm << >>`, 2372 Id: "BitwiseANDTerm", 2373 NTType: 53, 2374 Index: 173, 2375 NumSymbols: 1, 2376 ReduceFunc: func(X []Attrib) (Attrib, error) { 2377 return X[0], nil 2378 }, 2379 }, 2380 ProdTabEntry{ 2381 String: `BitwiseShiftTerm : BitwiseShiftTerm "<<" AddsubdotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2382 Id: "BitwiseShiftTerm", 2383 NTType: 54, 2384 Index: 174, 2385 NumSymbols: 3, 2386 ReduceFunc: func(X []Attrib) (Attrib, error) { 2387 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2388 }, 2389 }, 2390 ProdTabEntry{ 2391 String: `BitwiseShiftTerm : BitwiseShiftTerm ">>" AddsubdotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2392 Id: "BitwiseShiftTerm", 2393 NTType: 54, 2394 Index: 175, 2395 NumSymbols: 3, 2396 ReduceFunc: func(X []Attrib) (Attrib, error) { 2397 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2398 }, 2399 }, 2400 ProdTabEntry{ 2401 String: `BitwiseShiftTerm : BitwiseShiftTerm ">>>" AddsubdotTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2402 Id: "BitwiseShiftTerm", 2403 NTType: 54, 2404 Index: 176, 2405 NumSymbols: 3, 2406 ReduceFunc: func(X []Attrib) (Attrib, error) { 2407 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2408 }, 2409 }, 2410 ProdTabEntry{ 2411 String: `BitwiseShiftTerm : AddsubdotTerm << >>`, 2412 Id: "BitwiseShiftTerm", 2413 NTType: 54, 2414 Index: 177, 2415 NumSymbols: 1, 2416 ReduceFunc: func(X []Attrib) (Attrib, error) { 2417 return X[0], nil 2418 }, 2419 }, 2420 ProdTabEntry{ 2421 String: `AddsubdotTerm : AddsubdotTerm "+" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2422 Id: "AddsubdotTerm", 2423 NTType: 55, 2424 Index: 178, 2425 NumSymbols: 3, 2426 ReduceFunc: func(X []Attrib) (Attrib, error) { 2427 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2428 }, 2429 }, 2430 ProdTabEntry{ 2431 String: `AddsubdotTerm : AddsubdotTerm "-" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2432 Id: "AddsubdotTerm", 2433 NTType: 55, 2434 Index: 179, 2435 NumSymbols: 3, 2436 ReduceFunc: func(X []Attrib) (Attrib, error) { 2437 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2438 }, 2439 }, 2440 ProdTabEntry{ 2441 String: `AddsubdotTerm : AddsubdotTerm ".+" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2442 Id: "AddsubdotTerm", 2443 NTType: 55, 2444 Index: 180, 2445 NumSymbols: 3, 2446 ReduceFunc: func(X []Attrib) (Attrib, error) { 2447 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2448 }, 2449 }, 2450 ProdTabEntry{ 2451 String: `AddsubdotTerm : AddsubdotTerm ".-" MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2452 Id: "AddsubdotTerm", 2453 NTType: 55, 2454 Index: 181, 2455 NumSymbols: 3, 2456 ReduceFunc: func(X []Attrib) (Attrib, error) { 2457 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2458 }, 2459 }, 2460 ProdTabEntry{ 2461 String: `AddsubdotTerm : AddsubdotTerm "." MuldivTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2462 Id: "AddsubdotTerm", 2463 NTType: 55, 2464 Index: 182, 2465 NumSymbols: 3, 2466 ReduceFunc: func(X []Attrib) (Attrib, error) { 2467 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2468 }, 2469 }, 2470 ProdTabEntry{ 2471 String: `AddsubdotTerm : MuldivTerm << >>`, 2472 Id: "AddsubdotTerm", 2473 NTType: 55, 2474 Index: 183, 2475 NumSymbols: 1, 2476 ReduceFunc: func(X []Attrib) (Attrib, error) { 2477 return X[0], nil 2478 }, 2479 }, 2480 ProdTabEntry{ 2481 String: `MuldivTerm : MuldivTerm "*" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2482 Id: "MuldivTerm", 2483 NTType: 56, 2484 Index: 184, 2485 NumSymbols: 3, 2486 ReduceFunc: func(X []Attrib) (Attrib, error) { 2487 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2488 }, 2489 }, 2490 ProdTabEntry{ 2491 String: `MuldivTerm : MuldivTerm "/" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2492 Id: "MuldivTerm", 2493 NTType: 56, 2494 Index: 185, 2495 NumSymbols: 3, 2496 ReduceFunc: func(X []Attrib) (Attrib, error) { 2497 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2498 }, 2499 }, 2500 ProdTabEntry{ 2501 String: `MuldivTerm : MuldivTerm "//" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2502 Id: "MuldivTerm", 2503 NTType: 56, 2504 Index: 186, 2505 NumSymbols: 3, 2506 ReduceFunc: func(X []Attrib) (Attrib, error) { 2507 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2508 }, 2509 }, 2510 ProdTabEntry{ 2511 String: `MuldivTerm : MuldivTerm "%" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2512 Id: "MuldivTerm", 2513 NTType: 56, 2514 Index: 187, 2515 NumSymbols: 3, 2516 ReduceFunc: func(X []Attrib) (Attrib, error) { 2517 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2518 }, 2519 }, 2520 ProdTabEntry{ 2521 String: `MuldivTerm : MuldivTerm ".*" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2522 Id: "MuldivTerm", 2523 NTType: 56, 2524 Index: 188, 2525 NumSymbols: 3, 2526 ReduceFunc: func(X []Attrib) (Attrib, error) { 2527 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2528 }, 2529 }, 2530 ProdTabEntry{ 2531 String: `MuldivTerm : MuldivTerm "./" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2532 Id: "MuldivTerm", 2533 NTType: 56, 2534 Index: 189, 2535 NumSymbols: 3, 2536 ReduceFunc: func(X []Attrib) (Attrib, error) { 2537 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2538 }, 2539 }, 2540 ProdTabEntry{ 2541 String: `MuldivTerm : MuldivTerm ".//" UnaryOpTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2542 Id: "MuldivTerm", 2543 NTType: 56, 2544 Index: 190, 2545 NumSymbols: 3, 2546 ReduceFunc: func(X []Attrib) (Attrib, error) { 2547 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2548 }, 2549 }, 2550 ProdTabEntry{ 2551 String: `MuldivTerm : UnaryOpTerm << >>`, 2552 Id: "MuldivTerm", 2553 NTType: 56, 2554 Index: 191, 2555 NumSymbols: 1, 2556 ReduceFunc: func(X []Attrib) (Attrib, error) { 2557 return X[0], nil 2558 }, 2559 }, 2560 ProdTabEntry{ 2561 String: `UnaryOpTerm : "+" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`, 2562 Id: "UnaryOpTerm", 2563 NTType: 57, 2564 Index: 192, 2565 NumSymbols: 2, 2566 ReduceFunc: func(X []Attrib) (Attrib, error) { 2567 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) 2568 }, 2569 }, 2570 ProdTabEntry{ 2571 String: `UnaryOpTerm : "-" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`, 2572 Id: "UnaryOpTerm", 2573 NTType: 57, 2574 Index: 193, 2575 NumSymbols: 2, 2576 ReduceFunc: func(X []Attrib) (Attrib, error) { 2577 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) 2578 }, 2579 }, 2580 ProdTabEntry{ 2581 String: `UnaryOpTerm : ".+" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`, 2582 Id: "UnaryOpTerm", 2583 NTType: 57, 2584 Index: 194, 2585 NumSymbols: 2, 2586 ReduceFunc: func(X []Attrib) (Attrib, error) { 2587 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) 2588 }, 2589 }, 2590 ProdTabEntry{ 2591 String: `UnaryOpTerm : ".-" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`, 2592 Id: "UnaryOpTerm", 2593 NTType: 57, 2594 Index: 195, 2595 NumSymbols: 2, 2596 ReduceFunc: func(X []Attrib) (Attrib, error) { 2597 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) 2598 }, 2599 }, 2600 ProdTabEntry{ 2601 String: `UnaryOpTerm : "!" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`, 2602 Id: "UnaryOpTerm", 2603 NTType: 57, 2604 Index: 196, 2605 NumSymbols: 2, 2606 ReduceFunc: func(X []Attrib) (Attrib, error) { 2607 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) 2608 }, 2609 }, 2610 ProdTabEntry{ 2611 String: `UnaryOpTerm : "~" UnaryOpTerm << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) >>`, 2612 Id: "UnaryOpTerm", 2613 NTType: 57, 2614 Index: 197, 2615 NumSymbols: 2, 2616 ReduceFunc: func(X []Attrib) (Attrib, error) { 2617 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeOperator) 2618 }, 2619 }, 2620 ProdTabEntry{ 2621 String: `UnaryOpTerm : PowTerm << >>`, 2622 Id: "UnaryOpTerm", 2623 NTType: 57, 2624 Index: 198, 2625 NumSymbols: 1, 2626 ReduceFunc: func(X []Attrib) (Attrib, error) { 2627 return X[0], nil 2628 }, 2629 }, 2630 ProdTabEntry{ 2631 String: `PowTerm : PrecedenceChainEnd "**" PowTerm << dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) >>`, 2632 Id: "PowTerm", 2633 NTType: 58, 2634 Index: 199, 2635 NumSymbols: 3, 2636 ReduceFunc: func(X []Attrib) (Attrib, error) { 2637 return dsl.NewASTNodeBinary(X[1], X[0], X[2], dsl.NodeTypeOperator) 2638 }, 2639 }, 2640 ProdTabEntry{ 2641 String: `PowTerm : PrecedenceChainEnd << >>`, 2642 Id: "PowTerm", 2643 NTType: 58, 2644 Index: 200, 2645 NumSymbols: 1, 2646 ReduceFunc: func(X []Attrib) (Attrib, error) { 2647 return X[0], nil 2648 }, 2649 }, 2650 ProdTabEntry{ 2651 String: `PrecedenceChainEnd : "(" Rvalue ")" << dsl.Nestable(X[1]) >>`, 2652 Id: "PrecedenceChainEnd", 2653 NTType: 59, 2654 Index: 201, 2655 NumSymbols: 3, 2656 ReduceFunc: func(X []Attrib) (Attrib, error) { 2657 return dsl.Nestable(X[1]) 2658 }, 2659 }, 2660 ProdTabEntry{ 2661 String: `PrecedenceChainEnd : MlrvalOrFunction << >>`, 2662 Id: "PrecedenceChainEnd", 2663 NTType: 59, 2664 Index: 202, 2665 NumSymbols: 1, 2666 ReduceFunc: func(X []Attrib) (Attrib, error) { 2667 return X[0], nil 2668 }, 2669 }, 2670 ProdTabEntry{ 2671 String: `MlrvalOrFunction : FieldValue << >>`, 2672 Id: "MlrvalOrFunction", 2673 NTType: 60, 2674 Index: 203, 2675 NumSymbols: 1, 2676 ReduceFunc: func(X []Attrib) (Attrib, error) { 2677 return X[0], nil 2678 }, 2679 }, 2680 ProdTabEntry{ 2681 String: `MlrvalOrFunction : FullSrec << >>`, 2682 Id: "MlrvalOrFunction", 2683 NTType: 60, 2684 Index: 204, 2685 NumSymbols: 1, 2686 ReduceFunc: func(X []Attrib) (Attrib, error) { 2687 return X[0], nil 2688 }, 2689 }, 2690 ProdTabEntry{ 2691 String: `MlrvalOrFunction : OosvarValue << >>`, 2692 Id: "MlrvalOrFunction", 2693 NTType: 60, 2694 Index: 205, 2695 NumSymbols: 1, 2696 ReduceFunc: func(X []Attrib) (Attrib, error) { 2697 return X[0], nil 2698 }, 2699 }, 2700 ProdTabEntry{ 2701 String: `MlrvalOrFunction : FullOosvar << >>`, 2702 Id: "MlrvalOrFunction", 2703 NTType: 60, 2704 Index: 206, 2705 NumSymbols: 1, 2706 ReduceFunc: func(X []Attrib) (Attrib, error) { 2707 return X[0], nil 2708 }, 2709 }, 2710 ProdTabEntry{ 2711 String: `MlrvalOrFunction : LocalVariable << >>`, 2712 Id: "MlrvalOrFunction", 2713 NTType: 60, 2714 Index: 207, 2715 NumSymbols: 1, 2716 ReduceFunc: func(X []Attrib) (Attrib, error) { 2717 return X[0], nil 2718 }, 2719 }, 2720 ProdTabEntry{ 2721 String: `MlrvalOrFunction : string_literal << dsl.NewASTNodeStripDoubleQuotePair(X[0], dsl.NodeTypeStringLiteral) >>`, 2722 Id: "MlrvalOrFunction", 2723 NTType: 60, 2724 Index: 208, 2725 NumSymbols: 1, 2726 ReduceFunc: func(X []Attrib) (Attrib, error) { 2727 return dsl.NewASTNodeStripDoubleQuotePair(X[0], dsl.NodeTypeStringLiteral) 2728 }, 2729 }, 2730 ProdTabEntry{ 2731 String: `MlrvalOrFunction : regex_case_insensitive << dsl.NewASTNode(X[0], dsl.NodeTypeRegexCaseInsensitive) >>`, 2732 Id: "MlrvalOrFunction", 2733 NTType: 60, 2734 Index: 209, 2735 NumSymbols: 1, 2736 ReduceFunc: func(X []Attrib) (Attrib, error) { 2737 return dsl.NewASTNode(X[0], dsl.NodeTypeRegexCaseInsensitive) 2738 }, 2739 }, 2740 ProdTabEntry{ 2741 String: `MlrvalOrFunction : int_literal << dsl.NewASTNode(X[0], dsl.NodeTypeIntLiteral) >>`, 2742 Id: "MlrvalOrFunction", 2743 NTType: 60, 2744 Index: 210, 2745 NumSymbols: 1, 2746 ReduceFunc: func(X []Attrib) (Attrib, error) { 2747 return dsl.NewASTNode(X[0], dsl.NodeTypeIntLiteral) 2748 }, 2749 }, 2750 ProdTabEntry{ 2751 String: `MlrvalOrFunction : float_literal << dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral) >>`, 2752 Id: "MlrvalOrFunction", 2753 NTType: 60, 2754 Index: 211, 2755 NumSymbols: 1, 2756 ReduceFunc: func(X []Attrib) (Attrib, error) { 2757 return dsl.NewASTNode(X[0], dsl.NodeTypeFloatLiteral) 2758 }, 2759 }, 2760 ProdTabEntry{ 2761 String: `MlrvalOrFunction : boolean_literal << dsl.NewASTNode(X[0], dsl.NodeTypeBoolLiteral) >>`, 2762 Id: "MlrvalOrFunction", 2763 NTType: 60, 2764 Index: 212, 2765 NumSymbols: 1, 2766 ReduceFunc: func(X []Attrib) (Attrib, error) { 2767 return dsl.NewASTNode(X[0], dsl.NodeTypeBoolLiteral) 2768 }, 2769 }, 2770 ProdTabEntry{ 2771 String: `MlrvalOrFunction : const_M_PI << dsl.NewASTNode( 2772 X[0], 2773 dsl.NodeTypeConstant, 2774 ) >>`, 2775 Id: "MlrvalOrFunction", 2776 NTType: 60, 2777 Index: 213, 2778 NumSymbols: 1, 2779 ReduceFunc: func(X []Attrib) (Attrib, error) { 2780 return dsl.NewASTNode( 2781 X[0], 2782 dsl.NodeTypeConstant, 2783 ) 2784 }, 2785 }, 2786 ProdTabEntry{ 2787 String: `MlrvalOrFunction : const_M_E << dsl.NewASTNode( 2788 X[0], 2789 dsl.NodeTypeConstant, 2790 ) >>`, 2791 Id: "MlrvalOrFunction", 2792 NTType: 60, 2793 Index: 214, 2794 NumSymbols: 1, 2795 ReduceFunc: func(X []Attrib) (Attrib, error) { 2796 return dsl.NewASTNode( 2797 X[0], 2798 dsl.NodeTypeConstant, 2799 ) 2800 }, 2801 }, 2802 ProdTabEntry{ 2803 String: `MlrvalOrFunction : panic << dsl.NewASTNode(X[0], dsl.NodeTypePanic) >>`, 2804 Id: "MlrvalOrFunction", 2805 NTType: 60, 2806 Index: 215, 2807 NumSymbols: 1, 2808 ReduceFunc: func(X []Attrib) (Attrib, error) { 2809 return dsl.NewASTNode(X[0], dsl.NodeTypePanic) 2810 }, 2811 }, 2812 ProdTabEntry{ 2813 String: `MlrvalOrFunction : ArrayLiteral << >>`, 2814 Id: "MlrvalOrFunction", 2815 NTType: 60, 2816 Index: 216, 2817 NumSymbols: 1, 2818 ReduceFunc: func(X []Attrib) (Attrib, error) { 2819 return X[0], nil 2820 }, 2821 }, 2822 ProdTabEntry{ 2823 String: `ArrayLiteral : "[" "]" << dsl.NewASTNodeZary( 2824 dsl.NewASTToken("[]", X[0]), 2825 dsl.NodeTypeArrayLiteral, 2826 ) >>`, 2827 Id: "ArrayLiteral", 2828 NTType: 61, 2829 Index: 217, 2830 NumSymbols: 2, 2831 ReduceFunc: func(X []Attrib) (Attrib, error) { 2832 return dsl.NewASTNodeZary( 2833 dsl.NewASTToken("[]", X[0]), 2834 dsl.NodeTypeArrayLiteral, 2835 ) 2836 }, 2837 }, 2838 ProdTabEntry{ 2839 String: `ArrayLiteral : "[" ArrayLiteralElements "]" << dsl.AdoptChildren( 2840 dsl.NewASTNodeNestable( 2841 dsl.NewASTToken("[]", X[0]), 2842 dsl.NodeTypeArrayLiteral, 2843 ), 2844 X[1], 2845 ) >>`, 2846 Id: "ArrayLiteral", 2847 NTType: 61, 2848 Index: 218, 2849 NumSymbols: 3, 2850 ReduceFunc: func(X []Attrib) (Attrib, error) { 2851 return dsl.AdoptChildren( 2852 dsl.NewASTNodeNestable( 2853 dsl.NewASTToken("[]", X[0]), 2854 dsl.NodeTypeArrayLiteral, 2855 ), 2856 X[1], 2857 ) 2858 }, 2859 }, 2860 ProdTabEntry{ 2861 String: `ArrayLiteralElements : Rvalue << dsl.NewASTNodeUnary( 2862 nil, 2863 X[0], 2864 dsl.NodeTypeArrayLiteral, 2865 ) >>`, 2866 Id: "ArrayLiteralElements", 2867 NTType: 62, 2868 Index: 219, 2869 NumSymbols: 1, 2870 ReduceFunc: func(X []Attrib) (Attrib, error) { 2871 return dsl.NewASTNodeUnary( 2872 nil, 2873 X[0], 2874 dsl.NodeTypeArrayLiteral, 2875 ) 2876 }, 2877 }, 2878 ProdTabEntry{ 2879 String: `ArrayLiteralElements : Rvalue "," << dsl.NewASTNodeUnary( 2880 nil, 2881 X[0], 2882 dsl.NodeTypeArrayLiteral, 2883 ) >>`, 2884 Id: "ArrayLiteralElements", 2885 NTType: 62, 2886 Index: 220, 2887 NumSymbols: 2, 2888 ReduceFunc: func(X []Attrib) (Attrib, error) { 2889 return dsl.NewASTNodeUnary( 2890 nil, 2891 X[0], 2892 dsl.NodeTypeArrayLiteral, 2893 ) 2894 }, 2895 }, 2896 ProdTabEntry{ 2897 String: `ArrayLiteralElements : Rvalue "," ArrayLiteralElements << dsl.PrependChild( 2898 X[2], 2899 X[0], 2900 ) >>`, 2901 Id: "ArrayLiteralElements", 2902 NTType: 62, 2903 Index: 221, 2904 NumSymbols: 3, 2905 ReduceFunc: func(X []Attrib) (Attrib, error) { 2906 return dsl.PrependChild( 2907 X[2], 2908 X[0], 2909 ) 2910 }, 2911 }, 2912 ProdTabEntry{ 2913 String: `MlrvalOrFunction : MapLiteral << >>`, 2914 Id: "MlrvalOrFunction", 2915 NTType: 60, 2916 Index: 222, 2917 NumSymbols: 1, 2918 ReduceFunc: func(X []Attrib) (Attrib, error) { 2919 return X[0], nil 2920 }, 2921 }, 2922 ProdTabEntry{ 2923 String: `MapLiteral : "{" "}" << dsl.NewASTNodeZary( 2924 dsl.NewASTToken("{}", X[0]), 2925 dsl.NodeTypeMapLiteral, 2926 ) >>`, 2927 Id: "MapLiteral", 2928 NTType: 63, 2929 Index: 223, 2930 NumSymbols: 2, 2931 ReduceFunc: func(X []Attrib) (Attrib, error) { 2932 return dsl.NewASTNodeZary( 2933 dsl.NewASTToken("{}", X[0]), 2934 dsl.NodeTypeMapLiteral, 2935 ) 2936 }, 2937 }, 2938 ProdTabEntry{ 2939 String: `MapLiteral : "{" MapLiteralKeyValuePairs "}" << dsl.AdoptChildren( 2940 dsl.NewASTNodeNestable( 2941 dsl.NewASTToken("{}", X[0]), 2942 dsl.NodeTypeMapLiteral, 2943 ), 2944 X[1], 2945 ) >>`, 2946 Id: "MapLiteral", 2947 NTType: 63, 2948 Index: 224, 2949 NumSymbols: 3, 2950 ReduceFunc: func(X []Attrib) (Attrib, error) { 2951 return dsl.AdoptChildren( 2952 dsl.NewASTNodeNestable( 2953 dsl.NewASTToken("{}", X[0]), 2954 dsl.NodeTypeMapLiteral, 2955 ), 2956 X[1], 2957 ) 2958 }, 2959 }, 2960 ProdTabEntry{ 2961 String: `MapLiteralKeyValuePairs : MapLiteralKeyValuePair << dsl.NewASTNodeUnary( 2962 nil, 2963 X[0], 2964 dsl.NodeTypeMapLiteral, 2965 ) >>`, 2966 Id: "MapLiteralKeyValuePairs", 2967 NTType: 64, 2968 Index: 225, 2969 NumSymbols: 1, 2970 ReduceFunc: func(X []Attrib) (Attrib, error) { 2971 return dsl.NewASTNodeUnary( 2972 nil, 2973 X[0], 2974 dsl.NodeTypeMapLiteral, 2975 ) 2976 }, 2977 }, 2978 ProdTabEntry{ 2979 String: `MapLiteralKeyValuePairs : MapLiteralKeyValuePair "," << dsl.NewASTNodeUnary( 2980 nil, 2981 X[0], 2982 dsl.NodeTypeMapLiteral, 2983 ) >>`, 2984 Id: "MapLiteralKeyValuePairs", 2985 NTType: 64, 2986 Index: 226, 2987 NumSymbols: 2, 2988 ReduceFunc: func(X []Attrib) (Attrib, error) { 2989 return dsl.NewASTNodeUnary( 2990 nil, 2991 X[0], 2992 dsl.NodeTypeMapLiteral, 2993 ) 2994 }, 2995 }, 2996 ProdTabEntry{ 2997 String: `MapLiteralKeyValuePairs : MapLiteralKeyValuePair "," MapLiteralKeyValuePairs << dsl.PrependChild( 2998 X[2], 2999 X[0], 3000 ) >>`, 3001 Id: "MapLiteralKeyValuePairs", 3002 NTType: 64, 3003 Index: 227, 3004 NumSymbols: 3, 3005 ReduceFunc: func(X []Attrib) (Attrib, error) { 3006 return dsl.PrependChild( 3007 X[2], 3008 X[0], 3009 ) 3010 }, 3011 }, 3012 ProdTabEntry{ 3013 String: `MapLiteralKeyValuePair : Rvalue ":" Rvalue << dsl.NewASTNodeBinary( 3014 X[1], 3015 X[0], 3016 X[2], 3017 dsl.NodeTypeMapLiteralKeyValuePair, 3018 ) >>`, 3019 Id: "MapLiteralKeyValuePair", 3020 NTType: 65, 3021 Index: 228, 3022 NumSymbols: 3, 3023 ReduceFunc: func(X []Attrib) (Attrib, error) { 3024 return dsl.NewASTNodeBinary( 3025 X[1], 3026 X[0], 3027 X[2], 3028 dsl.NodeTypeMapLiteralKeyValuePair, 3029 ) 3030 }, 3031 }, 3032 ProdTabEntry{ 3033 String: `MlrvalOrFunction : ContextVariable << >>`, 3034 Id: "MlrvalOrFunction", 3035 NTType: 60, 3036 Index: 229, 3037 NumSymbols: 1, 3038 ReduceFunc: func(X []Attrib) (Attrib, error) { 3039 return X[0], nil 3040 }, 3041 }, 3042 ProdTabEntry{ 3043 String: `ContextVariable : ctx_IPS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3044 Id: "ContextVariable", 3045 NTType: 66, 3046 Index: 230, 3047 NumSymbols: 1, 3048 ReduceFunc: func(X []Attrib) (Attrib, error) { 3049 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3050 }, 3051 }, 3052 ProdTabEntry{ 3053 String: `ContextVariable : ctx_IFS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3054 Id: "ContextVariable", 3055 NTType: 66, 3056 Index: 231, 3057 NumSymbols: 1, 3058 ReduceFunc: func(X []Attrib) (Attrib, error) { 3059 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3060 }, 3061 }, 3062 ProdTabEntry{ 3063 String: `ContextVariable : ctx_IRS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3064 Id: "ContextVariable", 3065 NTType: 66, 3066 Index: 232, 3067 NumSymbols: 1, 3068 ReduceFunc: func(X []Attrib) (Attrib, error) { 3069 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3070 }, 3071 }, 3072 ProdTabEntry{ 3073 String: `ContextVariable : ctx_OPS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3074 Id: "ContextVariable", 3075 NTType: 66, 3076 Index: 233, 3077 NumSymbols: 1, 3078 ReduceFunc: func(X []Attrib) (Attrib, error) { 3079 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3080 }, 3081 }, 3082 ProdTabEntry{ 3083 String: `ContextVariable : ctx_OFS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3084 Id: "ContextVariable", 3085 NTType: 66, 3086 Index: 234, 3087 NumSymbols: 1, 3088 ReduceFunc: func(X []Attrib) (Attrib, error) { 3089 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3090 }, 3091 }, 3092 ProdTabEntry{ 3093 String: `ContextVariable : ctx_ORS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3094 Id: "ContextVariable", 3095 NTType: 66, 3096 Index: 235, 3097 NumSymbols: 1, 3098 ReduceFunc: func(X []Attrib) (Attrib, error) { 3099 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3100 }, 3101 }, 3102 ProdTabEntry{ 3103 String: `ContextVariable : ctx_OFLATSEP << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3104 Id: "ContextVariable", 3105 NTType: 66, 3106 Index: 236, 3107 NumSymbols: 1, 3108 ReduceFunc: func(X []Attrib) (Attrib, error) { 3109 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3110 }, 3111 }, 3112 ProdTabEntry{ 3113 String: `ContextVariable : ctx_NF << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3114 Id: "ContextVariable", 3115 NTType: 66, 3116 Index: 237, 3117 NumSymbols: 1, 3118 ReduceFunc: func(X []Attrib) (Attrib, error) { 3119 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3120 }, 3121 }, 3122 ProdTabEntry{ 3123 String: `ContextVariable : ctx_NR << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3124 Id: "ContextVariable", 3125 NTType: 66, 3126 Index: 238, 3127 NumSymbols: 1, 3128 ReduceFunc: func(X []Attrib) (Attrib, error) { 3129 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3130 }, 3131 }, 3132 ProdTabEntry{ 3133 String: `ContextVariable : ctx_FNR << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3134 Id: "ContextVariable", 3135 NTType: 66, 3136 Index: 239, 3137 NumSymbols: 1, 3138 ReduceFunc: func(X []Attrib) (Attrib, error) { 3139 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3140 }, 3141 }, 3142 ProdTabEntry{ 3143 String: `ContextVariable : ctx_FILENAME << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3144 Id: "ContextVariable", 3145 NTType: 66, 3146 Index: 240, 3147 NumSymbols: 1, 3148 ReduceFunc: func(X []Attrib) (Attrib, error) { 3149 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3150 }, 3151 }, 3152 ProdTabEntry{ 3153 String: `ContextVariable : ctx_FILENUM << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`, 3154 Id: "ContextVariable", 3155 NTType: 66, 3156 Index: 241, 3157 NumSymbols: 1, 3158 ReduceFunc: func(X []Attrib) (Attrib, error) { 3159 return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) 3160 }, 3161 }, 3162 ProdTabEntry{ 3163 String: `MlrvalOrFunction : ENV << >>`, 3164 Id: "MlrvalOrFunction", 3165 NTType: 60, 3166 Index: 242, 3167 NumSymbols: 1, 3168 ReduceFunc: func(X []Attrib) (Attrib, error) { 3169 return X[0], nil 3170 }, 3171 }, 3172 ProdTabEntry{ 3173 String: `ENV : env "[" Rvalue "]" << dsl.NewASTNodeUnary( 3174 X[0], 3175 X[2], 3176 dsl.NodeTypeEnvironmentVariable, 3177 ) >>`, 3178 Id: "ENV", 3179 NTType: 67, 3180 Index: 243, 3181 NumSymbols: 4, 3182 ReduceFunc: func(X []Attrib) (Attrib, error) { 3183 return dsl.NewASTNodeUnary( 3184 X[0], 3185 X[2], 3186 dsl.NodeTypeEnvironmentVariable, 3187 ) 3188 }, 3189 }, 3190 ProdTabEntry{ 3191 String: `MlrvalOrFunction : ArrayOrMapIndexAccess << >>`, 3192 Id: "MlrvalOrFunction", 3193 NTType: 60, 3194 Index: 244, 3195 NumSymbols: 1, 3196 ReduceFunc: func(X []Attrib) (Attrib, error) { 3197 return X[0], nil 3198 }, 3199 }, 3200 ProdTabEntry{ 3201 String: `MlrvalOrFunction : ArrayOrMapPositionalNameAccess << >>`, 3202 Id: "MlrvalOrFunction", 3203 NTType: 60, 3204 Index: 245, 3205 NumSymbols: 1, 3206 ReduceFunc: func(X []Attrib) (Attrib, error) { 3207 return X[0], nil 3208 }, 3209 }, 3210 ProdTabEntry{ 3211 String: `MlrvalOrFunction : ArrayOrMapPositionalValueAccess << >>`, 3212 Id: "MlrvalOrFunction", 3213 NTType: 60, 3214 Index: 246, 3215 NumSymbols: 1, 3216 ReduceFunc: func(X []Attrib) (Attrib, error) { 3217 return X[0], nil 3218 }, 3219 }, 3220 ProdTabEntry{ 3221 String: `MlrvalOrFunction : ArraySliceAccess << >>`, 3222 Id: "MlrvalOrFunction", 3223 NTType: 60, 3224 Index: 247, 3225 NumSymbols: 1, 3226 ReduceFunc: func(X []Attrib) (Attrib, error) { 3227 return X[0], nil 3228 }, 3229 }, 3230 ProdTabEntry{ 3231 String: `ArrayOrMapIndexAccess : MlrvalOrFunction "[" Rvalue "]" << dsl.NewASTNodeBinary( 3232 dsl.NewASTToken("[]", X[1]), 3233 X[0], 3234 X[2], 3235 dsl.NodeTypeArrayOrMapIndexAccess, 3236 ) >>`, 3237 Id: "ArrayOrMapIndexAccess", 3238 NTType: 68, 3239 Index: 248, 3240 NumSymbols: 4, 3241 ReduceFunc: func(X []Attrib) (Attrib, error) { 3242 return dsl.NewASTNodeBinary( 3243 dsl.NewASTToken("[]", X[1]), 3244 X[0], 3245 X[2], 3246 dsl.NodeTypeArrayOrMapIndexAccess, 3247 ) 3248 }, 3249 }, 3250 ProdTabEntry{ 3251 String: `ArrayOrMapPositionalNameAccess : MlrvalOrFunction "[[" Rvalue "]" "]" << dsl.NewASTNodeBinary( 3252 dsl.NewASTToken("[]", X[1]), 3253 X[0], 3254 X[2], 3255 dsl.NodeTypeArrayOrMapPositionalNameAccess, 3256 ) >>`, 3257 Id: "ArrayOrMapPositionalNameAccess", 3258 NTType: 69, 3259 Index: 249, 3260 NumSymbols: 5, 3261 ReduceFunc: func(X []Attrib) (Attrib, error) { 3262 return dsl.NewASTNodeBinary( 3263 dsl.NewASTToken("[]", X[1]), 3264 X[0], 3265 X[2], 3266 dsl.NodeTypeArrayOrMapPositionalNameAccess, 3267 ) 3268 }, 3269 }, 3270 ProdTabEntry{ 3271 String: `ArrayOrMapPositionalValueAccess : MlrvalOrFunction "[[[" Rvalue "]" "]" "]" << dsl.NewASTNodeBinary( 3272 dsl.NewASTToken("[]", X[1]), 3273 X[0], 3274 X[2], 3275 dsl.NodeTypeArrayOrMapPositionalValueAccess, 3276 ) >>`, 3277 Id: "ArrayOrMapPositionalValueAccess", 3278 NTType: 70, 3279 Index: 250, 3280 NumSymbols: 6, 3281 ReduceFunc: func(X []Attrib) (Attrib, error) { 3282 return dsl.NewASTNodeBinary( 3283 dsl.NewASTToken("[]", X[1]), 3284 X[0], 3285 X[2], 3286 dsl.NodeTypeArrayOrMapPositionalValueAccess, 3287 ) 3288 }, 3289 }, 3290 ProdTabEntry{ 3291 String: `ArraySliceAccess : MlrvalOrFunction "[" Rvalue ":" Rvalue "]" << dsl.NewASTNodeTernary( 3292 dsl.NewASTToken("[]", X[1]), 3293 X[0], 3294 X[2], 3295 X[4], 3296 dsl.NodeTypeArraySliceAccess, 3297 ) >>`, 3298 Id: "ArraySliceAccess", 3299 NTType: 71, 3300 Index: 251, 3301 NumSymbols: 6, 3302 ReduceFunc: func(X []Attrib) (Attrib, error) { 3303 return dsl.NewASTNodeTernary( 3304 dsl.NewASTToken("[]", X[1]), 3305 X[0], 3306 X[2], 3307 X[4], 3308 dsl.NodeTypeArraySliceAccess, 3309 ) 3310 }, 3311 }, 3312 ProdTabEntry{ 3313 String: `ArraySliceAccess : MlrvalOrFunction "[" ":" Rvalue "]" << dsl.NewASTNodeTernary( 3314 dsl.NewASTToken("[]", X[1]), 3315 X[0], 3316 dsl.NewASTNodeNestable( 3317 X[2], 3318 dsl.NodeTypeArraySliceEmptyLowerIndex, 3319 ), 3320 X[3], 3321 dsl.NodeTypeArraySliceAccess, 3322 ) >>`, 3323 Id: "ArraySliceAccess", 3324 NTType: 71, 3325 Index: 252, 3326 NumSymbols: 5, 3327 ReduceFunc: func(X []Attrib) (Attrib, error) { 3328 return dsl.NewASTNodeTernary( 3329 dsl.NewASTToken("[]", X[1]), 3330 X[0], 3331 dsl.NewASTNodeNestable( 3332 X[2], 3333 dsl.NodeTypeArraySliceEmptyLowerIndex, 3334 ), 3335 X[3], 3336 dsl.NodeTypeArraySliceAccess, 3337 ) 3338 }, 3339 }, 3340 ProdTabEntry{ 3341 String: `ArraySliceAccess : MlrvalOrFunction "[" Rvalue ":" "]" << dsl.NewASTNodeTernary( 3342 dsl.NewASTToken("[]", X[1]), 3343 X[0], 3344 X[2], 3345 dsl.NewASTNodeNestable( 3346 X[3], 3347 dsl.NodeTypeArraySliceEmptyUpperIndex, 3348 ), 3349 dsl.NodeTypeArraySliceAccess, 3350 ) >>`, 3351 Id: "ArraySliceAccess", 3352 NTType: 71, 3353 Index: 253, 3354 NumSymbols: 5, 3355 ReduceFunc: func(X []Attrib) (Attrib, error) { 3356 return dsl.NewASTNodeTernary( 3357 dsl.NewASTToken("[]", X[1]), 3358 X[0], 3359 X[2], 3360 dsl.NewASTNodeNestable( 3361 X[3], 3362 dsl.NodeTypeArraySliceEmptyUpperIndex, 3363 ), 3364 dsl.NodeTypeArraySliceAccess, 3365 ) 3366 }, 3367 }, 3368 ProdTabEntry{ 3369 String: `ArraySliceAccess : MlrvalOrFunction "[" ":" "]" << dsl.NewASTNodeTernary( 3370 dsl.NewASTToken("[]", X[1]), 3371 X[0], 3372 dsl.NewASTNodeNestable( 3373 X[2], 3374 dsl.NodeTypeArraySliceEmptyLowerIndex, 3375 ), 3376 dsl.NewASTNodeNestable( 3377 X[2], 3378 dsl.NodeTypeArraySliceEmptyUpperIndex, 3379 ), 3380 dsl.NodeTypeArraySliceAccess, 3381 ) >>`, 3382 Id: "ArraySliceAccess", 3383 NTType: 71, 3384 Index: 254, 3385 NumSymbols: 4, 3386 ReduceFunc: func(X []Attrib) (Attrib, error) { 3387 return dsl.NewASTNodeTernary( 3388 dsl.NewASTToken("[]", X[1]), 3389 X[0], 3390 dsl.NewASTNodeNestable( 3391 X[2], 3392 dsl.NodeTypeArraySliceEmptyLowerIndex, 3393 ), 3394 dsl.NewASTNodeNestable( 3395 X[2], 3396 dsl.NodeTypeArraySliceEmptyUpperIndex, 3397 ), 3398 dsl.NodeTypeArraySliceAccess, 3399 ) 3400 }, 3401 }, 3402 ProdTabEntry{ 3403 String: `MlrvalOrFunction : FunctionCallsite << >>`, 3404 Id: "MlrvalOrFunction", 3405 NTType: 60, 3406 Index: 255, 3407 NumSymbols: 1, 3408 ReduceFunc: func(X []Attrib) (Attrib, error) { 3409 return X[0], nil 3410 }, 3411 }, 3412 ProdTabEntry{ 3413 String: `FunctionCallsite : FunctionName "(" ")" << dsl.NewASTNodeZary( 3414 X[0], 3415 dsl.NodeTypeFunctionCallsite, 3416 ) >>`, 3417 Id: "FunctionCallsite", 3418 NTType: 72, 3419 Index: 256, 3420 NumSymbols: 3, 3421 ReduceFunc: func(X []Attrib) (Attrib, error) { 3422 return dsl.NewASTNodeZary( 3423 X[0], 3424 dsl.NodeTypeFunctionCallsite, 3425 ) 3426 }, 3427 }, 3428 ProdTabEntry{ 3429 String: `FunctionCallsite : FunctionName "(" FcnArgs ")" << dsl.AdoptChildren( 3430 dsl.NewASTNodeNestable( 3431 X[0], 3432 dsl.NodeTypeFunctionCallsite, 3433 ), 3434 X[2], 3435 ) >>`, 3436 Id: "FunctionCallsite", 3437 NTType: 72, 3438 Index: 257, 3439 NumSymbols: 4, 3440 ReduceFunc: func(X []Attrib) (Attrib, error) { 3441 return dsl.AdoptChildren( 3442 dsl.NewASTNodeNestable( 3443 X[0], 3444 dsl.NodeTypeFunctionCallsite, 3445 ), 3446 X[2], 3447 ) 3448 }, 3449 }, 3450 ProdTabEntry{ 3451 String: `FunctionName : non_sigil_name << >>`, 3452 Id: "FunctionName", 3453 NTType: 73, 3454 Index: 258, 3455 NumSymbols: 1, 3456 ReduceFunc: func(X []Attrib) (Attrib, error) { 3457 return X[0], nil 3458 }, 3459 }, 3460 ProdTabEntry{ 3461 String: `FunctionName : int << >>`, 3462 Id: "FunctionName", 3463 NTType: 73, 3464 Index: 259, 3465 NumSymbols: 1, 3466 ReduceFunc: func(X []Attrib) (Attrib, error) { 3467 return X[0], nil 3468 }, 3469 }, 3470 ProdTabEntry{ 3471 String: `FunctionName : float << >>`, 3472 Id: "FunctionName", 3473 NTType: 73, 3474 Index: 260, 3475 NumSymbols: 1, 3476 ReduceFunc: func(X []Attrib) (Attrib, error) { 3477 return X[0], nil 3478 }, 3479 }, 3480 ProdTabEntry{ 3481 String: `FcnArgs : Rvalue << dsl.NewASTNodeUnary( 3482 nil, 3483 X[0], 3484 dsl.NodeTypeFunctionCallsite, 3485 ) >>`, 3486 Id: "FcnArgs", 3487 NTType: 74, 3488 Index: 261, 3489 NumSymbols: 1, 3490 ReduceFunc: func(X []Attrib) (Attrib, error) { 3491 return dsl.NewASTNodeUnary( 3492 nil, 3493 X[0], 3494 dsl.NodeTypeFunctionCallsite, 3495 ) 3496 }, 3497 }, 3498 ProdTabEntry{ 3499 String: `FcnArgs : Rvalue "," << dsl.NewASTNodeUnary( 3500 nil, 3501 X[0], 3502 dsl.NodeTypeFunctionCallsite, 3503 ) >>`, 3504 Id: "FcnArgs", 3505 NTType: 74, 3506 Index: 262, 3507 NumSymbols: 2, 3508 ReduceFunc: func(X []Attrib) (Attrib, error) { 3509 return dsl.NewASTNodeUnary( 3510 nil, 3511 X[0], 3512 dsl.NodeTypeFunctionCallsite, 3513 ) 3514 }, 3515 }, 3516 ProdTabEntry{ 3517 String: `FcnArgs : Rvalue "," FcnArgs << dsl.PrependChild( 3518 X[2], 3519 X[0], 3520 ) >>`, 3521 Id: "FcnArgs", 3522 NTType: 74, 3523 Index: 263, 3524 NumSymbols: 3, 3525 ReduceFunc: func(X []Attrib) (Attrib, error) { 3526 return dsl.PrependChild( 3527 X[2], 3528 X[0], 3529 ) 3530 }, 3531 }, 3532 ProdTabEntry{ 3533 String: `SubroutineCallsite : call SubroutineName "(" ")" << dsl.NewASTNodeZary( 3534 X[1], 3535 dsl.NodeTypeSubroutineCallsite, 3536 ) >>`, 3537 Id: "SubroutineCallsite", 3538 NTType: 75, 3539 Index: 264, 3540 NumSymbols: 4, 3541 ReduceFunc: func(X []Attrib) (Attrib, error) { 3542 return dsl.NewASTNodeZary( 3543 X[1], 3544 dsl.NodeTypeSubroutineCallsite, 3545 ) 3546 }, 3547 }, 3548 ProdTabEntry{ 3549 String: `SubroutineCallsite : call SubroutineName "(" FcnArgs ")" << dsl.AdoptChildren( 3550 dsl.NewASTNodeNestable( 3551 X[1], 3552 dsl.NodeTypeSubroutineCallsite, 3553 ), 3554 X[3], 3555 ) >>`, 3556 Id: "SubroutineCallsite", 3557 NTType: 75, 3558 Index: 265, 3559 NumSymbols: 5, 3560 ReduceFunc: func(X []Attrib) (Attrib, error) { 3561 return dsl.AdoptChildren( 3562 dsl.NewASTNodeNestable( 3563 X[1], 3564 dsl.NodeTypeSubroutineCallsite, 3565 ), 3566 X[3], 3567 ) 3568 }, 3569 }, 3570 ProdTabEntry{ 3571 String: `SubroutineName : non_sigil_name << >>`, 3572 Id: "SubroutineName", 3573 NTType: 76, 3574 Index: 266, 3575 NumSymbols: 1, 3576 ReduceFunc: func(X []Attrib) (Attrib, error) { 3577 return X[0], nil 3578 }, 3579 }, 3580 ProdTabEntry{ 3581 String: `BracefulStatement : BeginBlock << >>`, 3582 Id: "BracefulStatement", 3583 NTType: 77, 3584 Index: 267, 3585 NumSymbols: 1, 3586 ReduceFunc: func(X []Attrib) (Attrib, error) { 3587 return X[0], nil 3588 }, 3589 }, 3590 ProdTabEntry{ 3591 String: `BracefulStatement : EndBlock << >>`, 3592 Id: "BracefulStatement", 3593 NTType: 77, 3594 Index: 268, 3595 NumSymbols: 1, 3596 ReduceFunc: func(X []Attrib) (Attrib, error) { 3597 return X[0], nil 3598 }, 3599 }, 3600 ProdTabEntry{ 3601 String: `BracefulStatement : CondBlock << >>`, 3602 Id: "BracefulStatement", 3603 NTType: 77, 3604 Index: 269, 3605 NumSymbols: 1, 3606 ReduceFunc: func(X []Attrib) (Attrib, error) { 3607 return X[0], nil 3608 }, 3609 }, 3610 ProdTabEntry{ 3611 String: `BracefulStatement : IfChain << >>`, 3612 Id: "BracefulStatement", 3613 NTType: 77, 3614 Index: 270, 3615 NumSymbols: 1, 3616 ReduceFunc: func(X []Attrib) (Attrib, error) { 3617 return X[0], nil 3618 }, 3619 }, 3620 ProdTabEntry{ 3621 String: `BracefulStatement : WhileLoop << >>`, 3622 Id: "BracefulStatement", 3623 NTType: 77, 3624 Index: 271, 3625 NumSymbols: 1, 3626 ReduceFunc: func(X []Attrib) (Attrib, error) { 3627 return X[0], nil 3628 }, 3629 }, 3630 ProdTabEntry{ 3631 String: `BracefulStatement : ForLoop << >>`, 3632 Id: "BracefulStatement", 3633 NTType: 77, 3634 Index: 272, 3635 NumSymbols: 1, 3636 ReduceFunc: func(X []Attrib) (Attrib, error) { 3637 return X[0], nil 3638 }, 3639 }, 3640 ProdTabEntry{ 3641 String: `BracefulStatement : FunctionDefinition << >>`, 3642 Id: "BracefulStatement", 3643 NTType: 77, 3644 Index: 273, 3645 NumSymbols: 1, 3646 ReduceFunc: func(X []Attrib) (Attrib, error) { 3647 return X[0], nil 3648 }, 3649 }, 3650 ProdTabEntry{ 3651 String: `BracefulStatement : SubroutineDefinition << >>`, 3652 Id: "BracefulStatement", 3653 NTType: 77, 3654 Index: 274, 3655 NumSymbols: 1, 3656 ReduceFunc: func(X []Attrib) (Attrib, error) { 3657 return X[0], nil 3658 }, 3659 }, 3660 ProdTabEntry{ 3661 String: `BeginBlock : begin StatementBlockInBraces << dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeBeginBlock) >>`, 3662 Id: "BeginBlock", 3663 NTType: 78, 3664 Index: 275, 3665 NumSymbols: 2, 3666 ReduceFunc: func(X []Attrib) (Attrib, error) { 3667 return dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeBeginBlock) 3668 }, 3669 }, 3670 ProdTabEntry{ 3671 String: `EndBlock : end StatementBlockInBraces << dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeEndBlock) >>`, 3672 Id: "EndBlock", 3673 NTType: 79, 3674 Index: 276, 3675 NumSymbols: 2, 3676 ReduceFunc: func(X []Attrib) (Attrib, error) { 3677 return dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeEndBlock) 3678 }, 3679 }, 3680 ProdTabEntry{ 3681 String: `CondBlock : Rvalue StatementBlockInBraces << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeCondBlock) >>`, 3682 Id: "CondBlock", 3683 NTType: 80, 3684 Index: 277, 3685 NumSymbols: 2, 3686 ReduceFunc: func(X []Attrib) (Attrib, error) { 3687 return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeCondBlock) 3688 }, 3689 }, 3690 ProdTabEntry{ 3691 String: `IfChain : IfElifStar << >>`, 3692 Id: "IfChain", 3693 NTType: 81, 3694 Index: 278, 3695 NumSymbols: 1, 3696 ReduceFunc: func(X []Attrib) (Attrib, error) { 3697 return X[0], nil 3698 }, 3699 }, 3700 ProdTabEntry{ 3701 String: `IfChain : IfElifStar ElseBlock << dsl.AppendChild(X[0], X[1]) >>`, 3702 Id: "IfChain", 3703 NTType: 81, 3704 Index: 279, 3705 NumSymbols: 2, 3706 ReduceFunc: func(X []Attrib) (Attrib, error) { 3707 return dsl.AppendChild(X[0], X[1]) 3708 }, 3709 }, 3710 ProdTabEntry{ 3711 String: `IfElifStar : IfBlock << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeIfChain) >>`, 3712 Id: "IfElifStar", 3713 NTType: 82, 3714 Index: 280, 3715 NumSymbols: 1, 3716 ReduceFunc: func(X []Attrib) (Attrib, error) { 3717 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeIfChain) 3718 }, 3719 }, 3720 ProdTabEntry{ 3721 String: `IfElifStar : IfElifStar ElifBlock << dsl.AppendChild(X[0], X[1]) >>`, 3722 Id: "IfElifStar", 3723 NTType: 82, 3724 Index: 281, 3725 NumSymbols: 2, 3726 ReduceFunc: func(X []Attrib) (Attrib, error) { 3727 return dsl.AppendChild(X[0], X[1]) 3728 }, 3729 }, 3730 ProdTabEntry{ 3731 String: `IfBlock : if "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) >>`, 3732 Id: "IfBlock", 3733 NTType: 83, 3734 Index: 282, 3735 NumSymbols: 5, 3736 ReduceFunc: func(X []Attrib) (Attrib, error) { 3737 return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) 3738 }, 3739 }, 3740 ProdTabEntry{ 3741 String: `ElifBlock : elif "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) >>`, 3742 Id: "ElifBlock", 3743 NTType: 84, 3744 Index: 283, 3745 NumSymbols: 5, 3746 ReduceFunc: func(X []Attrib) (Attrib, error) { 3747 return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) 3748 }, 3749 }, 3750 ProdTabEntry{ 3751 String: `ElseBlock : else StatementBlockInBraces << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeIfItem) >>`, 3752 Id: "ElseBlock", 3753 NTType: 85, 3754 Index: 284, 3755 NumSymbols: 2, 3756 ReduceFunc: func(X []Attrib) (Attrib, error) { 3757 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeIfItem) 3758 }, 3759 }, 3760 ProdTabEntry{ 3761 String: `WhileLoop : while "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeWhileLoop) >>`, 3762 Id: "WhileLoop", 3763 NTType: 86, 3764 Index: 285, 3765 NumSymbols: 5, 3766 ReduceFunc: func(X []Attrib) (Attrib, error) { 3767 return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeWhileLoop) 3768 }, 3769 }, 3770 ProdTabEntry{ 3771 String: `DoWhileLoop : do StatementBlockInBraces while "(" Rvalue ")" << dsl.NewASTNodeBinary(X[0], X[1], X[4], dsl.NodeTypeDoWhileLoop) >>`, 3772 Id: "DoWhileLoop", 3773 NTType: 87, 3774 Index: 286, 3775 NumSymbols: 6, 3776 ReduceFunc: func(X []Attrib) (Attrib, error) { 3777 return dsl.NewASTNodeBinary(X[0], X[1], X[4], dsl.NodeTypeDoWhileLoop) 3778 }, 3779 }, 3780 ProdTabEntry{ 3781 String: `ForLoop : ForLoopOneVariable << >>`, 3782 Id: "ForLoop", 3783 NTType: 88, 3784 Index: 287, 3785 NumSymbols: 1, 3786 ReduceFunc: func(X []Attrib) (Attrib, error) { 3787 return X[0], nil 3788 }, 3789 }, 3790 ProdTabEntry{ 3791 String: `ForLoop : ForLoopTwoVariable << >>`, 3792 Id: "ForLoop", 3793 NTType: 88, 3794 Index: 288, 3795 NumSymbols: 1, 3796 ReduceFunc: func(X []Attrib) (Attrib, error) { 3797 return X[0], nil 3798 }, 3799 }, 3800 ProdTabEntry{ 3801 String: `ForLoop : ForLoopMultivariable << >>`, 3802 Id: "ForLoop", 3803 NTType: 88, 3804 Index: 289, 3805 NumSymbols: 1, 3806 ReduceFunc: func(X []Attrib) (Attrib, error) { 3807 return X[0], nil 3808 }, 3809 }, 3810 ProdTabEntry{ 3811 String: `ForLoop : TripleForLoop << >>`, 3812 Id: "ForLoop", 3813 NTType: 88, 3814 Index: 290, 3815 NumSymbols: 1, 3816 ReduceFunc: func(X []Attrib) (Attrib, error) { 3817 return X[0], nil 3818 }, 3819 }, 3820 ProdTabEntry{ 3821 String: `ForLoopOneVariable : for "(" LocalVariable in Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeTernary( 3822 X[0], // "for" 3823 X[2], // k, etc. 3824 X[4], // $*, etc. 3825 X[6], // { ... } 3826 dsl.NodeTypeForLoopOneVariable, 3827 ); >>`, 3828 Id: "ForLoopOneVariable", 3829 NTType: 89, 3830 Index: 291, 3831 NumSymbols: 7, 3832 ReduceFunc: func(X []Attrib) (Attrib, error) { 3833 return dsl.NewASTNodeTernary( 3834 X[0], // "for" 3835 X[2], // k, etc. 3836 X[4], // $*, etc. 3837 X[6], // { ... } 3838 dsl.NodeTypeForLoopOneVariable, 3839 ) 3840 }, 3841 }, 3842 ProdTabEntry{ 3843 String: `ForLoopTwoVariable : for "(" LocalVariable "," LocalVariable in Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeQuaternary( 3844 X[0], // "for" 3845 X[2], // k, etc. 3846 X[4], // v, etc. 3847 X[6], // $*, etc. 3848 X[8], // { ... } 3849 dsl.NodeTypeForLoopTwoVariable, 3850 ); >>`, 3851 Id: "ForLoopTwoVariable", 3852 NTType: 90, 3853 Index: 292, 3854 NumSymbols: 9, 3855 ReduceFunc: func(X []Attrib) (Attrib, error) { 3856 return dsl.NewASTNodeQuaternary( 3857 X[0], // "for" 3858 X[2], // k, etc. 3859 X[4], // v, etc. 3860 X[6], // $*, etc. 3861 X[8], // { ... } 3862 dsl.NodeTypeForLoopTwoVariable, 3863 ) 3864 }, 3865 }, 3866 ProdTabEntry{ 3867 String: `ForLoopMultivariable : for "(" "(" MultiIndex ")" "," LocalVariable in Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeQuaternary( 3868 X[0], // "for" 3869 X[3], // (k1, k2), etc. 3870 X[6], // v, etc. 3871 X[8], // $*, etc. 3872 X[10], // { ... } 3873 dsl.NodeTypeForLoopMultivariable, 3874 ); >>`, 3875 Id: "ForLoopMultivariable", 3876 NTType: 91, 3877 Index: 293, 3878 NumSymbols: 11, 3879 ReduceFunc: func(X []Attrib) (Attrib, error) { 3880 return dsl.NewASTNodeQuaternary( 3881 X[0], // "for" 3882 X[3], // (k1, k2), etc. 3883 X[6], // v, etc. 3884 X[8], // $*, etc. 3885 X[10], // { ... } 3886 dsl.NodeTypeForLoopMultivariable, 3887 ) 3888 }, 3889 }, 3890 ProdTabEntry{ 3891 String: `MultiIndex : LocalVariable "," LocalVariable << dsl.NewASTNodeBinary( 3892 nil, 3893 X[0], 3894 X[2], 3895 dsl.NodeTypeParameterList, 3896 ) >>`, 3897 Id: "MultiIndex", 3898 NTType: 92, 3899 Index: 294, 3900 NumSymbols: 3, 3901 ReduceFunc: func(X []Attrib) (Attrib, error) { 3902 return dsl.NewASTNodeBinary( 3903 nil, 3904 X[0], 3905 X[2], 3906 dsl.NodeTypeParameterList, 3907 ) 3908 }, 3909 }, 3910 ProdTabEntry{ 3911 String: `MultiIndex : MultiIndex "," LocalVariable << dsl.AppendChild( 3912 X[0], 3913 X[2], 3914 ) >>`, 3915 Id: "MultiIndex", 3916 NTType: 92, 3917 Index: 295, 3918 NumSymbols: 3, 3919 ReduceFunc: func(X []Attrib) (Attrib, error) { 3920 return dsl.AppendChild( 3921 X[0], 3922 X[2], 3923 ) 3924 }, 3925 }, 3926 ProdTabEntry{ 3927 String: `TripleForLoop : for "(" TripleForStart ";" TripleForContinuation ";" TripleForUpdate ")" StatementBlockInBraces << dsl.NewASTNodeQuaternary( 3928 X[0], // for 3929 X[2], // start 3930 X[4], // continuation 3931 X[6], // update 3932 X[8], // body 3933 dsl.NodeTypeTripleForLoop, 3934 ); >>`, 3935 Id: "TripleForLoop", 3936 NTType: 93, 3937 Index: 296, 3938 NumSymbols: 9, 3939 ReduceFunc: func(X []Attrib) (Attrib, error) { 3940 return dsl.NewASTNodeQuaternary( 3941 X[0], // for 3942 X[2], // start 3943 X[4], // continuation 3944 X[6], // update 3945 X[8], // body 3946 dsl.NodeTypeTripleForLoop, 3947 ) 3948 }, 3949 }, 3950 ProdTabEntry{ 3951 String: `TripleForStart : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`, 3952 Id: "TripleForStart", 3953 NTType: 94, 3954 Index: 297, 3955 NumSymbols: 0, 3956 ReduceFunc: func(X []Attrib) (Attrib, error) { 3957 return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) 3958 }, 3959 }, 3960 ProdTabEntry{ 3961 String: `TripleForStart : Assignment << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`, 3962 Id: "TripleForStart", 3963 NTType: 94, 3964 Index: 298, 3965 NumSymbols: 1, 3966 ReduceFunc: func(X []Attrib) (Attrib, error) { 3967 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) 3968 }, 3969 }, 3970 ProdTabEntry{ 3971 String: `TripleForStart : TripleForStart "," Assignment << dsl.AppendChild(X[0], X[2]) >>`, 3972 Id: "TripleForStart", 3973 NTType: 94, 3974 Index: 299, 3975 NumSymbols: 3, 3976 ReduceFunc: func(X []Attrib) (Attrib, error) { 3977 return dsl.AppendChild(X[0], X[2]) 3978 }, 3979 }, 3980 ProdTabEntry{ 3981 String: `TripleForContinuation : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`, 3982 Id: "TripleForContinuation", 3983 NTType: 95, 3984 Index: 300, 3985 NumSymbols: 0, 3986 ReduceFunc: func(X []Attrib) (Attrib, error) { 3987 return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) 3988 }, 3989 }, 3990 ProdTabEntry{ 3991 String: `TripleForContinuation : TripleForContinuationItem << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`, 3992 Id: "TripleForContinuation", 3993 NTType: 95, 3994 Index: 301, 3995 NumSymbols: 1, 3996 ReduceFunc: func(X []Attrib) (Attrib, error) { 3997 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) 3998 }, 3999 }, 4000 ProdTabEntry{ 4001 String: `TripleForContinuation : TripleForContinuation "," TripleForContinuationItem << dsl.AppendChild(X[0], X[2]) >>`, 4002 Id: "TripleForContinuation", 4003 NTType: 95, 4004 Index: 302, 4005 NumSymbols: 3, 4006 ReduceFunc: func(X []Attrib) (Attrib, error) { 4007 return dsl.AppendChild(X[0], X[2]) 4008 }, 4009 }, 4010 ProdTabEntry{ 4011 String: `TripleForContinuationItem : Assignment << >>`, 4012 Id: "TripleForContinuationItem", 4013 NTType: 96, 4014 Index: 303, 4015 NumSymbols: 1, 4016 ReduceFunc: func(X []Attrib) (Attrib, error) { 4017 return X[0], nil 4018 }, 4019 }, 4020 ProdTabEntry{ 4021 String: `TripleForContinuationItem : BareBoolean << >>`, 4022 Id: "TripleForContinuationItem", 4023 NTType: 96, 4024 Index: 304, 4025 NumSymbols: 1, 4026 ReduceFunc: func(X []Attrib) (Attrib, error) { 4027 return X[0], nil 4028 }, 4029 }, 4030 ProdTabEntry{ 4031 String: `TripleForUpdate : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`, 4032 Id: "TripleForUpdate", 4033 NTType: 97, 4034 Index: 305, 4035 NumSymbols: 0, 4036 ReduceFunc: func(X []Attrib) (Attrib, error) { 4037 return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) 4038 }, 4039 }, 4040 ProdTabEntry{ 4041 String: `TripleForUpdate : Assignment << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`, 4042 Id: "TripleForUpdate", 4043 NTType: 97, 4044 Index: 306, 4045 NumSymbols: 1, 4046 ReduceFunc: func(X []Attrib) (Attrib, error) { 4047 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) 4048 }, 4049 }, 4050 ProdTabEntry{ 4051 String: `TripleForUpdate : TripleForUpdate "," Assignment << dsl.AppendChild(X[0], X[2]) >>`, 4052 Id: "TripleForUpdate", 4053 NTType: 97, 4054 Index: 307, 4055 NumSymbols: 3, 4056 ReduceFunc: func(X []Attrib) (Attrib, error) { 4057 return dsl.AppendChild(X[0], X[2]) 4058 }, 4059 }, 4060 ProdTabEntry{ 4061 String: `BreakStatement : break << dsl.NewASTNodeZary(X[0], dsl.NodeTypeBreak) >>`, 4062 Id: "BreakStatement", 4063 NTType: 98, 4064 Index: 308, 4065 NumSymbols: 1, 4066 ReduceFunc: func(X []Attrib) (Attrib, error) { 4067 return dsl.NewASTNodeZary(X[0], dsl.NodeTypeBreak) 4068 }, 4069 }, 4070 ProdTabEntry{ 4071 String: `ContinueStatement : continue << dsl.NewASTNodeZary(X[0], dsl.NodeTypeContinue) >>`, 4072 Id: "ContinueStatement", 4073 NTType: 99, 4074 Index: 309, 4075 NumSymbols: 1, 4076 ReduceFunc: func(X []Attrib) (Attrib, error) { 4077 return dsl.NewASTNodeZary(X[0], dsl.NodeTypeContinue) 4078 }, 4079 }, 4080 ProdTabEntry{ 4081 String: `FunctionDefinition : func non_sigil_name "(" FuncOrSubrParameterList ")" StatementBlockInBraces << dsl.NewASTNodeBinary( 4082 X[1], 4083 X[3], // parameter list 4084 X[5], // { ... } 4085 dsl.NodeTypeFunctionDefinition, 4086 ); >>`, 4087 Id: "FunctionDefinition", 4088 NTType: 100, 4089 Index: 310, 4090 NumSymbols: 6, 4091 ReduceFunc: func(X []Attrib) (Attrib, error) { 4092 return dsl.NewASTNodeBinary( 4093 X[1], 4094 X[3], // parameter list 4095 X[5], // { ... } 4096 dsl.NodeTypeFunctionDefinition, 4097 ) 4098 }, 4099 }, 4100 ProdTabEntry{ 4101 String: `FunctionDefinition : func non_sigil_name "(" FuncOrSubrParameterList ")" ":" Typedecl StatementBlockInBraces << dsl.NewASTNodeTernary( 4102 X[1], 4103 X[3], // parameter list 4104 X[7], // {...} 4105 X[6], // return type 4106 dsl.NodeTypeFunctionDefinition, 4107 ); >>`, 4108 Id: "FunctionDefinition", 4109 NTType: 100, 4110 Index: 311, 4111 NumSymbols: 8, 4112 ReduceFunc: func(X []Attrib) (Attrib, error) { 4113 return dsl.NewASTNodeTernary( 4114 X[1], 4115 X[3], // parameter list 4116 X[7], // {...} 4117 X[6], // return type 4118 dsl.NodeTypeFunctionDefinition, 4119 ) 4120 }, 4121 }, 4122 ProdTabEntry{ 4123 String: `SubroutineDefinition : subr non_sigil_name "(" FuncOrSubrParameterList ")" StatementBlockInBraces << dsl.NewASTNodeBinary( 4124 X[1], 4125 X[3], // parameter list 4126 X[5], // { ... } 4127 dsl.NodeTypeSubroutineDefinition, 4128 ); >>`, 4129 Id: "SubroutineDefinition", 4130 NTType: 101, 4131 Index: 312, 4132 NumSymbols: 6, 4133 ReduceFunc: func(X []Attrib) (Attrib, error) { 4134 return dsl.NewASTNodeBinary( 4135 X[1], 4136 X[3], // parameter list 4137 X[5], // { ... } 4138 dsl.NodeTypeSubroutineDefinition, 4139 ) 4140 }, 4141 }, 4142 ProdTabEntry{ 4143 String: `FuncOrSubrParameterList : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeParameterList) >>`, 4144 Id: "FuncOrSubrParameterList", 4145 NTType: 102, 4146 Index: 313, 4147 NumSymbols: 0, 4148 ReduceFunc: func(X []Attrib) (Attrib, error) { 4149 return dsl.NewASTNodeZary(nil, dsl.NodeTypeParameterList) 4150 }, 4151 }, 4152 ProdTabEntry{ 4153 String: `FuncOrSubrParameterList : FuncOrSubrNonEmptyParameterList << dsl.Wrap(X[0]) >>`, 4154 Id: "FuncOrSubrParameterList", 4155 NTType: 102, 4156 Index: 314, 4157 NumSymbols: 1, 4158 ReduceFunc: func(X []Attrib) (Attrib, error) { 4159 return dsl.Wrap(X[0]) 4160 }, 4161 }, 4162 ProdTabEntry{ 4163 String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) >>`, 4164 Id: "FuncOrSubrNonEmptyParameterList", 4165 NTType: 103, 4166 Index: 315, 4167 NumSymbols: 1, 4168 ReduceFunc: func(X []Attrib) (Attrib, error) { 4169 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) 4170 }, 4171 }, 4172 ProdTabEntry{ 4173 String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter "," << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) >>`, 4174 Id: "FuncOrSubrNonEmptyParameterList", 4175 NTType: 103, 4176 Index: 316, 4177 NumSymbols: 2, 4178 ReduceFunc: func(X []Attrib) (Attrib, error) { 4179 return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) 4180 }, 4181 }, 4182 ProdTabEntry{ 4183 String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter "," FuncOrSubrNonEmptyParameterList << dsl.PrependChild(X[2], X[0]) >>`, 4184 Id: "FuncOrSubrNonEmptyParameterList", 4185 NTType: 103, 4186 Index: 317, 4187 NumSymbols: 3, 4188 ReduceFunc: func(X []Attrib) (Attrib, error) { 4189 return dsl.PrependChild(X[2], X[0]) 4190 }, 4191 }, 4192 ProdTabEntry{ 4193 String: `FuncOrSubrParameter : UntypedFuncOrSubrParameterName << dsl.NewASTNodeUnary( 4194 nil, 4195 X[0], 4196 dsl.NodeTypeParameter, 4197 ) >>`, 4198 Id: "FuncOrSubrParameter", 4199 NTType: 104, 4200 Index: 318, 4201 NumSymbols: 1, 4202 ReduceFunc: func(X []Attrib) (Attrib, error) { 4203 return dsl.NewASTNodeUnary( 4204 nil, 4205 X[0], 4206 dsl.NodeTypeParameter, 4207 ) 4208 }, 4209 }, 4210 ProdTabEntry{ 4211 String: `FuncOrSubrParameter : TypedFuncOrSubrParameterName << dsl.NewASTNodeUnary( 4212 nil, 4213 X[0], 4214 dsl.NodeTypeParameter, 4215 ) >>`, 4216 Id: "FuncOrSubrParameter", 4217 NTType: 104, 4218 Index: 319, 4219 NumSymbols: 1, 4220 ReduceFunc: func(X []Attrib) (Attrib, error) { 4221 return dsl.NewASTNodeUnary( 4222 nil, 4223 X[0], 4224 dsl.NodeTypeParameter, 4225 ) 4226 }, 4227 }, 4228 ProdTabEntry{ 4229 String: `UntypedFuncOrSubrParameterName : non_sigil_name << dsl.NewASTNode(X[0], dsl.NodeTypeParameterName) >>`, 4230 Id: "UntypedFuncOrSubrParameterName", 4231 NTType: 105, 4232 Index: 320, 4233 NumSymbols: 1, 4234 ReduceFunc: func(X []Attrib) (Attrib, error) { 4235 return dsl.NewASTNode(X[0], dsl.NodeTypeParameterName) 4236 }, 4237 }, 4238 ProdTabEntry{ 4239 String: `TypedFuncOrSubrParameterName : Typedecl UntypedFuncOrSubrParameterName << dsl.AppendChild(X[1], X[0]) >>`, 4240 Id: "TypedFuncOrSubrParameterName", 4241 NTType: 106, 4242 Index: 321, 4243 NumSymbols: 2, 4244 ReduceFunc: func(X []Attrib) (Attrib, error) { 4245 return dsl.AppendChild(X[1], X[0]) 4246 }, 4247 }, 4248 ProdTabEntry{ 4249 String: `ReturnStatement : return Rvalue << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeReturn) >>`, 4250 Id: "ReturnStatement", 4251 NTType: 107, 4252 Index: 322, 4253 NumSymbols: 2, 4254 ReduceFunc: func(X []Attrib) (Attrib, error) { 4255 return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeReturn) 4256 }, 4257 }, 4258 ProdTabEntry{ 4259 String: `ReturnStatement : return << dsl.NewASTNodeZary(X[0], dsl.NodeTypeReturn) >>`, 4260 Id: "ReturnStatement", 4261 NTType: 107, 4262 Index: 323, 4263 NumSymbols: 1, 4264 ReduceFunc: func(X []Attrib) (Attrib, error) { 4265 return dsl.NewASTNodeZary(X[0], dsl.NodeTypeReturn) 4266 }, 4267 }, 4268} 4269