cn_subset() for explicit filtering/reordering of parser results, including
duplicated selections and chained subsets. Problems are remapped to selected
positions without adding result classes or repeating parse warnings.x or na) and first
original position, including fallback/deduplicated paths and factors. Native
validation is reused only on failure; malformed text still stops the batch.[] and arbitrary mutations still do not track problems.nonzero value underflows the double range rather than silently becoming zero.
Ordinary conversions and numeric pass-through are unchanged.0 can no longer become valid
endpoints by receiving a magnitude or percentage suffix. Existing checks
after propagation and whole-cell missing precedence are retained.docs/performance-final.md for reproducible measurements.2d97758 passed five cross-platform CI jobs with
339 assertions each. Linux R-release also passed PDF manual generation; its
only NOTE was skipped HTML validation because tidy was unavailable.Closes the current performance-tuning round with conditional deduplication of large repeated numeric fallback batches and reduced grouping-regex backtracking. Complete diagnostics, original indices, names and strict errors are retained. Benchmarks cover distinct/repeated inputs across all three parsers.
Batches single-separator range splitting and shared-suffix propagation, stores endpoint results in a matrix, and counts valid candidates without per-source lists. Signed/scientific multi-separator cases retain complete validation.
Filters number-syntax failures before extracting captures and converting numeric fields. Syntax, grouping and validation errors retain complete original-order diagnostics, including entirely invalid batches.
Handles ASCII bytes directly during native normalization and reuses unchanged ASCII/UTF-8 string objects instead of rebuilding them. Other encodings still receive UTF-8 conversion; grouping checks and diagnostics are unchanged.
Removes supported whitespace in the existing native normalization scan, avoiding a separate regex replacement. Digit-grouping validation still runs before whitespace removal, preserving diagnostics and missing-marker rules.
Normalizes full-width characters and PDF minus signs in a shared native pass for numbers, quantities and ranges. Preserves names and missing values; retains whitespace-grouping validation in R.
Reuses normalized missing markers across native and fallback number parsing, avoiding duplicate normalization without changing missing-value precedence.
Excludes known digit-grouping failures from capture extraction and numeric conversion. Grouping and syntax failures merge in original source order; all-grouping-error batches retain their original diagnostics.
Skips native retries for unchanged text, missing markers and invalid digit grouping. Known grouping failures avoid full syntax matching while retaining the original text, source indices and error precedence.
Accelerates existing currency prefixes and accounting parentheses in the conservative C path. Normalized unresolved cells retry native parsing after missing-marker and digit-spacing checks; original R errors remain unchanged.
Retains native results in mixed numeric batches and runs the complete R parser only on unresolved rows, preserving original problem indices, missing-value precedence, names and strict errors.
Expands native-parser regression checks at floating-point overflow, underflow, subnormal and signed-zero boundaries, comparing accepted values with the full R fallback across supported header units.
Adds a local Windows R launcher that supplies a missing architecture environment variable to avoid the cli 3.6.6 shutdown crash, preserves native exit codes, and restores the calling environment. Parsing behavior is unchanged.
Matches qualifier groups once and reuses captured lengths for stripping. Character normalization is shared with digit-spacing validation, and grouping checks only inspect inputs that actually contain spaces between digits.
Adds a registered C fast path for completely supported simple-number batches. Unsupported formats retain the complete R parser and its structured errors. Source installations now require a C compiler; the public R API is unchanged.
Extracts numeric captures and validates/converts them in batches, avoiding per-value match lists and conversions while preserving first-error precedence.
Deduplicates original quantity text and batches qualifier matching, restoring every source row and its structured parsing problems after processing.
Fills range output columns in batches rather than repeatedly updating data-frame rows. Parsing rules and structured problems are unchanged.
Preallocates range separator candidates and groups valid candidates by source input instead of repeatedly scanning the complete candidate vector.
approx. Mixed inequalities and repeated
prefixes or suffixes remain invalid.unit argument to parse_cn_number() for table-header
units. Bare values inherit the unit; matching explicit units are not scaled
twice, and conflicting units or percentages are reported as problems.千元), including shared range suffixes.超 as greater than the stated value.3-NA and NA-3 as structured
parsing problems instead of raising a base R error.NA, and NaN across all three parsers.R CMD check entry
point, with 108 tests covering parser behavior and failure reporting.余 before magnitude and currency suffixes, including 50余万,
50余元, and 50余万元.parse_cn_range() so minus signs in scientific notation and negative
endpoints are not mistaken for range separators.大于, 小于,
不大于, and 不小于, plus comparison symbols.+ as at_least and 余 as greater_than.parse_cn_quantity() to retain approximate and inequality semantics.parse_cn_range() for closed ranges and open-ended bounds.cn_problems() for stable access to structured parsing failures.parse_cn_number().parse_cn_number() for compact Chinese numeric values.万, 亿, and 万亿 suffixes, percentages, full-width input,
financial negatives, and configurable missing-value markers.problems
attribute, with an optional strict error mode.