Skip to content

Roadmap #1

@dyoder

Description

@dyoder
  • Fix formatting in error messages so that whitespace and other control characters are encoded.
  • On error, compute line number and character position from original string.
  • Allow filename in error messages. (We could just append that to the exception message.)
  • not
  • set (match from a set in any order). There's a variant of this, which is match all in any order.
  • Move integer and float into the library? What about fraction? hex? Or should these be in a separate library?
  • till
  • recover: I'm not sure this makes sense with the way Parse works, especially since we already have lookahead.
  • Do we need dedicated Unicode pattern functions?
  • Set the context value directly? (Right now, you can set a key and then get it.) I don't have a scenario for this, so it's more a question of completeness.
  • Should many require at least one match? (You could then do zero or more with optional many.)
  • Change the name of optional to something more concise? I like the way optional scans tho.
  • Documentation:
    • More detailed reference docs, with examples.
    • Tutorial.
    • Example parsers.
  • Introduce an append operator that converts the value into an array if it isn't already and appends the match result. This would allow pattern functions to be mixed alongside action functions.
  • Introduce an assign operator, which works like append except for an object value.
  • Do we need a way to push and pop values directly (in addition to the way push works right now, where there's an implicit pop)? What about the context value? Ex: pushv (value) or pushc (custom state).
  • More complete unit tests. We test a bunch of stuff right now implicitly with scenario-based functional tests, like the expression grammar and the nested list. Might be good to have expanded unit tests to help isolate regressions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions