| 2412 | } |
| 2413 | |
| 2414 | void fxPatternParserNext(txPatternParser* parser) |
| 2415 | { |
| 2416 | txString p = parser->pattern + parser->offset; |
| 2417 | txInteger character; |
| 2418 | |
| 2419 | if (parser->surrogate) { |
| 2420 | parser->character = parser->surrogate; |
| 2421 | parser->surrogate = 0; |
| 2422 | } |
| 2423 | else { |
| 2424 | p = mxStringByteDecode(p, &character); |
| 2425 | if (character != C_EOF) { |
| 2426 | parser->offset = mxPtrDiff(p - parser->pattern); |
| 2427 | if (!(parser->flags & (XS_REGEXP_UV | XS_REGEXP_NAME)) && (character > 0xFFFF)) { |
| 2428 | character -= 0x10000; |
| 2429 | parser->surrogate = 0xDC00 | (character & 0x3FF); |
| 2430 | character = 0xD800 | (character >> 10); |
| 2431 | } |
| 2432 | parser->character = (txInteger)character; |
| 2433 | } |
| 2434 | else |
| 2435 | parser->character = C_EOF; |
| 2436 | } |
| 2437 | } |
| 2438 | |
| 2439 | void fxPatternParserTerminate(txPatternParser* parser) |
| 2440 | { |
no outgoing calls
no test coverage detected