(plpgsqllex plpgsqlLexer)
| 1086 | } |
| 1087 | |
| 1088 | func (plpgsqlrcvr *plpgsqlParserImpl) Parse(plpgsqllex plpgsqlLexer) int { |
| 1089 | var plpgsqln int |
| 1090 | var plpgsqlVAL plpgsqlSymType |
| 1091 | var plpgsqlDollar []plpgsqlSymType |
| 1092 | _ = plpgsqlDollar // silence set and not used |
| 1093 | plpgsqlS := plpgsqlrcvr.stack[:] |
| 1094 | |
| 1095 | Nerrs := 0 /* number of errors */ |
| 1096 | Errflag := 0 /* error recovery flag */ |
| 1097 | plpgsqlstate := 0 |
| 1098 | plpgsqlrcvr.char = -1 |
| 1099 | plpgsqltoken := -1 // plpgsqlrcvr.char translated into internal numbering |
| 1100 | defer func() { |
| 1101 | // Make sure we report no lookahead when not parsing. |
| 1102 | plpgsqlstate = -1 |
| 1103 | plpgsqlrcvr.char = -1 |
| 1104 | plpgsqltoken = -1 |
| 1105 | }() |
| 1106 | plpgsqlp := -1 |
| 1107 | goto plpgsqlstack |
| 1108 | |
| 1109 | ret0: |
| 1110 | return 0 |
| 1111 | |
| 1112 | ret1: |
| 1113 | return 1 |
| 1114 | |
| 1115 | plpgsqlstack: |
| 1116 | /* put a state and value onto the stack */ |
| 1117 | if plpgsqlDebug >= 4 { |
| 1118 | __yyfmt__.Printf("char %v in %v\n", plpgsqlTokname(plpgsqltoken), plpgsqlStatname(plpgsqlstate)) |
| 1119 | } |
| 1120 | |
| 1121 | plpgsqlp++ |
| 1122 | if plpgsqlp >= len(plpgsqlS) { |
| 1123 | nyys := make([]plpgsqlSymType, len(plpgsqlS)*2) |
| 1124 | copy(nyys, plpgsqlS) |
| 1125 | plpgsqlS = nyys |
| 1126 | } |
| 1127 | plpgsqlS[plpgsqlp] = plpgsqlVAL |
| 1128 | plpgsqlS[plpgsqlp].yys = plpgsqlstate |
| 1129 | |
| 1130 | plpgsqlnewstate: |
| 1131 | plpgsqln = int(plpgsqlPact[plpgsqlstate]) |
| 1132 | if plpgsqln <= plpgsqlFlag { |
| 1133 | goto plpgsqldefault /* simple state */ |
| 1134 | } |
| 1135 | if plpgsqlrcvr.char < 0 { |
| 1136 | plpgsqlrcvr.char, plpgsqltoken = plpgsqllex1(plpgsqllex, &plpgsqlrcvr.lval) |
| 1137 | } |
| 1138 | plpgsqln += plpgsqltoken |
| 1139 | if plpgsqln < 0 || plpgsqln >= plpgsqlLast { |
| 1140 | goto plpgsqldefault |
| 1141 | } |
| 1142 | plpgsqln = int(plpgsqlAct[plpgsqln]) |
| 1143 | if int(plpgsqlChk[plpgsqln]) == plpgsqltoken { /* valid shift */ |
| 1144 | plpgsqlrcvr.char = -1 |
| 1145 | plpgsqltoken = -1 |
nothing calls this directly
no test coverage detected