| 186 | } |
| 187 | |
| 188 | txString fxGetNextDigits(txParser* parser, txString (*f)(txParser*, txString, txString), txString p, txString q, int empty) |
| 189 | { |
| 190 | int separator = 0; |
| 191 | for (;;) { |
| 192 | txString r = p; |
| 193 | p = (*f)(parser, p, q); |
| 194 | if (r < p) { |
| 195 | empty = 0; |
| 196 | separator = 0; |
| 197 | if (parser->character == '_') { |
| 198 | fxGetNextCharacter(parser); |
| 199 | separator = 1; |
| 200 | } |
| 201 | else |
| 202 | break; |
| 203 | } |
| 204 | else |
| 205 | break; |
| 206 | } |
| 207 | if (empty || separator) |
| 208 | fxReportParserError(parser, parser->states[2].line, "invalid number"); |
| 209 | return p; |
| 210 | } |
| 211 | |
| 212 | txString fxGetNextDigitsB(txParser* parser, txString p, txString q) |
| 213 | { |
no test coverage detected