(yylex yyLexer)
| 518 | } |
| 519 | |
| 520 | func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { |
| 521 | var yyn int |
| 522 | var yyVAL yySymType |
| 523 | var yyDollar []yySymType |
| 524 | _ = yyDollar // silence set and not used |
| 525 | yyS := yyrcvr.stack[:] |
| 526 | |
| 527 | Nerrs := 0 /* number of errors */ |
| 528 | Errflag := 0 /* error recovery flag */ |
| 529 | yystate := 0 |
| 530 | yyrcvr.char = -1 |
| 531 | yytoken := -1 // yyrcvr.char translated into internal numbering |
| 532 | defer func() { |
| 533 | // Make sure we report no lookahead when not parsing. |
| 534 | yystate = -1 |
| 535 | yyrcvr.char = -1 |
| 536 | yytoken = -1 |
| 537 | }() |
| 538 | yyp := -1 |
| 539 | goto yystack |
| 540 | |
| 541 | ret0: |
| 542 | return 0 |
| 543 | |
| 544 | ret1: |
| 545 | return 1 |
| 546 | |
| 547 | yystack: |
| 548 | /* put a state and value onto the stack */ |
| 549 | if yyDebug >= 4 { |
| 550 | __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) |
| 551 | } |
| 552 | |
| 553 | yyp++ |
| 554 | if yyp >= len(yyS) { |
| 555 | nyys := make([]yySymType, len(yyS)*2) |
| 556 | copy(nyys, yyS) |
| 557 | yyS = nyys |
| 558 | } |
| 559 | yyS[yyp] = yyVAL |
| 560 | yyS[yyp].yys = yystate |
| 561 | |
| 562 | yynewstate: |
| 563 | yyn = int(yyPact[yystate]) |
| 564 | if yyn <= yyFlag { |
| 565 | goto yydefault /* simple state */ |
| 566 | } |
| 567 | if yyrcvr.char < 0 { |
| 568 | yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) |
| 569 | } |
| 570 | yyn += yytoken |
| 571 | if yyn < 0 || yyn >= yyLast { |
| 572 | goto yydefault |
| 573 | } |
| 574 | yyn = int(yyAct[yyn]) |
| 575 | if int(yyChk[yyn]) == yytoken { /* valid shift */ |
| 576 | yyrcvr.char = -1 |
| 577 | yytoken = -1 |
nothing calls this directly
no test coverage detected