Skip to content

FeatureNonLLGrammars

Per Cederberg edited this page Mar 13, 2015 · 1 revision

Feature - Non-LL Grammars

Add support for parsing non-LL grammars, such as LALR or fixed block size data.

Rationale

There are lots of grammars that are not LL(k) or available in LL(k) format. Some of the more commonly used ones are:

  1. LR(1) & LALR - Commonly used by other parser generator tools such as yacc or similar. Previously preferred by computer scientists due to their parsing speed, but nowadays somewhat out of fashion due to limited token look-ahead, cryptic error handling and the much faster machines available today. Can be machine-converted to LL(1).
  2. Fixed Block Size Formats - In mainframe and legacy systems it is common to use fixed block size data formats. Creating a parser for these formats is often quite easy, but still repetitive and error prone.
  3. Binary Formats - Not all data formats are based on text and creating a binary stream parser is just as error-prone and tedious as writing a parser for text-based formats. Tool support for automatically creating binary stream parsers is currently lacking.

Discussion

Not yet available.