package pratter

  1. Overview
  2. Docs
An extended Pratt parser

Install

Dune Dependency

Authors

Maintainers

Sources

pratter-2.0.0.tar.gz
sha512=89fc9d0645e55dda7201a2cb47fe7bee774db92892c528efcbec179f270563088b1fab1d8d25ebca97b389947c2741f7a05127996cd1a4e3c7fe726be45ab835

doc/CHANGELOG.html

Changelog

This project adheres to Semantic Versioning. Lines marked with 🧨 describe breaking changes.

[Unreleased]

[2.0] -- 2022-06-15

Added

  • Postfix operators
  • Comparison against a YACC parser for a small arithmetic-like language of the form t ::= t t | t + t | - t | t * t | t = t | t !

Changed

  • 🧨 Una constructor changed to Prefix
  • 🧨 Bin constructor changed to Infix
  • 🧨 Errors are encoded with a polymorphic variant rather than exceptions. To port code, replace sections of the form

      try let t = SupPrat.expression tbl s in e with
    | ... -> ...

    with

      match SupPrat.expression tbl s with
    | Ok t -> e
    | Error ... -> ...

[1.2.1] -- 2022-05-06

Added

  • Property based testing with QCheck.

Changed

  • Depends on camlp-streams (because Stdlib.Stream becomes deprecated in OCaml 4.14).
  • New continuous integration recipe.

[1.2] -- 2021-05-05

Added

  • Walkthrough in README.md.

Fixed

  • Parsing a binary operator without left context fails.
  • Binding power can be negative.

[1.1] -- 2021-01-23

Added

  • Non associative operators
  • Error handling on partially applied operators (which raises a Stream.Failure)

Changed

  • One function get for operators in API
  • make_appl does not use the table of operators

[1.0.1] -- 2021-01-16

Fixed

  • Correct OCaml dependency
  • Tests comply with OCaml 4.02

Added

  • Gitlab continuous integration

[1.0] -- 2021-01-14

Changed

  • API: parser uses a data structure passed as argument
  • renamed CHANGELOG to CHANGELOG.md

[0.1.1] -- 2021-01-06

Added

  • Initial version
OCaml

Innovation. Community. Security.