Skip to content

Latest commit

 

History

History
87 lines (78 loc) · 3.71 KB

HISTORY.rst

File metadata and controls

87 lines (78 loc) · 3.71 KB

History

  • 2017-10-18 Version 0.4.1 - Fix in GLR parser. Parser reference not set on the parser context.

  • 2017-10-18 Version 0.4 - Added regex-like syntax extension for grammar language (?, *, +).

    Issue: igordejanovic#3

    • Rule actions can be defined in grammar using @ syntax for both built-in actions and user supplied ones. Issues: igordejanovic#1

      igordejanovic#6

    • Introduced named matches (a.k.a. assignments). Python classes created for each rule using named matches. Issue: igordejanovic#2

    • Introduced built-in action for creating Python object for rules using named matches.

    • Colorized and nicely formatted debug/trace output based on click package. Issue: igordejanovic#8

    • Introduced build_tree parameter for explicitly configuring parser for building a parse tree.

    • Introducing default actions that build nested lists. Simplifying actions writing.

    • Added input_str to parser context.

    • Added click dependency.

    • Reworked pglr CLI to use click.

    • Docs reworkings/updates.

    • Various bugfixes + tests.

  • 2017-08-24 Version 0.3

    • Dynamic disambiguation filters. Introducing dynamic disambiguation rule in the grammar.
    • Terminal definitions with empty bodies.
    • Improved error reporting in recovery.
    • Report LR state symbol in conflict debug output.
    • Report killing head on unsuccessful recovery.
    • Parameter rename layout_debug -> debug_layout
    • GLR visual tracing parameter is separated from debug.
    • Fixing GLR trace visualization.
  • 2017-08-09 Version 0.2

    • GLR parsing. Support for epsilon grammars, cyclic grammars and grammars with infinite ambiguity.
    • Lexical recognizers. Parsing the stream of arbitrary objects.
    • Error recovery. Builtin default recovery, custom user defined.
    • Common semantic actions.
    • Documentation.
    • pglr CLI command.
    • Automata visualization, GLR visual tracing.
    • Lexical disambiguation improvements.
    • Support for epsilon grammar (empty productions).
    • Support for comments in grammars.
    • finish and prefer terminal rules.
    • Change in the grammar language = - > :
    • Additions to examples and tests.
    • Various optimizations and bug fixes.
  • 2017-02-02 - Version 0.1

    • Textual syntax for grammar specification. Parsed with parglare.

    • SLR and LALR tables calculation (LALR is the default)

    • Scannerless LR(1) parsing - Scanner is integrated into parsing. This give more power as the token

      recognition is postponed and done in the parsing context at the current parsing location.

    • Declarative associativity and priority based conflict resolution for productions - See the calc example, or the quick intro bellow.

    • Lexical disambiguation strategy. - The default strategy is longest-match first and then str over regex

      match (i.e. the most specific match). Terminal priority can be provided for override if necessary.

    • Semantic actions and default actions which builds the parse tree (controlled by actions and default_actions parameters for the Parser class). - If no actions are provided and the default actions are explicitely

      disabled parser works as a recognizer, i.e. no reduction actions are called and the only output of the parser is whether the input was recognized or not.

    • Support for language comments/whitespaces using special rule LAYOUT.

    • Debug print/tracing (set debug=True and/or debug_layout=True`to the `Parser instantiation).

    • Tests

    • Few examples (see examples folder)