Skip to content
Snippets Groups Projects
  1. Sep 23, 2022
  2. Sep 22, 2022
    • Sven M. Hallberg's avatar
      fail packrat parsers if they need more input · 866fd4d6
      Sven M. Hallberg authored
      This commit changes the contract for the combinator parse functions:
      
       (1) The input state on failure must retain valid overrun and last_chunk
           fields. The latter is never changed, but overrun would be cleared by
           various combinators that backtrack in case of failure. All other
           fields of the input stream are still considered indeterminate after a
           failed parse.
      
       (2) If an overrun condition is encountered before the final chunk
           (last_chunk is false), the parse *must* fail. A helper want_suspend()
           is introduced as a shorthand for this check.
      
      Fixes the packrat/iterative/dummy test.
      866fd4d6
    • Sven M. Hallberg's avatar
      don't restore input state on failure · 0d7f1091
      Sven M. Hallberg authored
      There's no need.
      0d7f1091
    • Sven M. Hallberg's avatar
      improve a label name · f8e0dffb
      Sven M. Hallberg authored
      This is the case where parsing stops, which may be a parse error or not,
      depending on how many elements were read.
      f8e0dffb
    • Sven M. Hallberg's avatar
      remove an unreachable case · a30adad4
      Sven M. Hallberg authored
      Replace it with an assert. This case could never occur because it tests
      precisely the loop condition and there are no break statements in the loop.
      
      This was the only use of the 'err' label, so that can go. The code under it
      remains the fall-through case for 'err0', i.e. the actual error (parse failure)
      case.
      a30adad4
    • Sven M. Hallberg's avatar
      add a test for using dummy iterative with multiple chunks · 46164756
      Sven M. Hallberg authored
      The test fails because currently parsers that fail may leave the input stream
      in any indeterminate state. Parsers that backtrack (h_many, h_choice,
      h_optional, etc.) do not propagate an overrun of their subordinate parsers to
      h_packrat_parse_chunk where we would detect it and fail.
      46164756
    • Sven M. Hallberg's avatar
      b28f5427
    • Sven M. Hallberg's avatar
      fit comment to 80 columns · 3b22f3e7
      Sven M. Hallberg authored
      3b22f3e7
    • Sven M. Hallberg's avatar
      make header guard match file name · 1c83beb7
      Sven M. Hallberg authored
      Also includes a very important cosmetic whitespace change.
      1c83beb7
    • Sven M. Hallberg's avatar
      refactor perform_lowlevel_parse for readability · f600634a
      Sven M. Hallberg authored
      Drive-by elimination of an age-old TODO. :)
      Code should be functionally equivalent. Changes:
      
       - Remove broken code under CONSISTENCY_CHECK.
       - Transform to chip-away style.
       - Remove braces around single statements.
       - Declare variables at top of function.
       - Shorten some variable names (tmp_res and bit_length).
       - Limit line length to 80 columns.
      f600634a
    • Sven M. Hallberg's avatar
      dummy support for iterative parsing in packrat · 92805cb1
      Sven M. Hallberg authored
      A very first step. This implementation still expects all input in a single
      chunk but allows the use of the iterative API. If the parser attempts to read
      past the first chunk, the parse fails.
      
      Contains some comments for next steps towards full support.
      
      Adds tests for the single-chunk case.
      92805cb1
  3. Sep 21, 2022
  4. Aug 11, 2022
  5. Aug 09, 2022
  6. Aug 08, 2022
  7. Apr 15, 2022
  8. Oct 06, 2021
  9. Sep 09, 2021
  10. Oct 27, 2020
  11. Sep 29, 2020
  12. Sep 28, 2020
  13. Aug 11, 2020
  14. Jul 31, 2020
  15. Jul 22, 2020
  16. Apr 23, 2020
  17. Mar 12, 2020
  18. Mar 10, 2020
  19. Mar 09, 2020
Loading