/PLParser

A NIH parser currently for use with an in-progress Programming Language

Primary LanguageHaskellOtherNOASSERTION

PLParser - experimental

A Parser Combinator library evolving with the Programming Language project.

What?

  • Combinator interface
  • Leftover input (including after successful parses)
  • Resuming/ incremental input
  • Backtracking on failure with explicit 'try's
  • Position tracking across/ within lines
  • Questionable reporting about possible causes of failure

Why?

  • Because the requirements of PL are in flux and adapting this is easier than switching.
  • To allow experimenting with combinations of features that don't exist in established libraries.
  • To allow closer integration with PL without having to write general solutions.
  • Fun!

Anticipated future changes:

  • Compile Parsers from Grammars
  • Stream multiple values as output.
  • Improve Space & time complexity of the 'Cursor' abstraction (that holds the input and position).
  • Replace the 'Expectation' mechanism used to suggest causes of failure as it does not retain enough information to provide more than guesses.