aboutsummaryrefslogtreecommitdiff

Parser things

This repo has simple implementations of concepts seen in parsing and compiler design, written in a way to be easily integrated and combined while each file/concept has a standalone example.

The main example if this is a simple compiler generator where the table to be generated (lalr, clr, slr) and the definitions are loaded as shared libraries.

The idea is to extend it to many types of table generation, parsing techniques and ways to add semanitic meaning.

TODO

  • The building process is too compilated, the grammar parser should also do the table generation

  • Proper LALR generation (without generating all CLR states)

  • LL table generation and parsing
  • Possibly recursive ascent and recursive descent generation (a bit pointless)
  • Left corner / resursive ascent-descent generation (Horspool)

  • Proper attribute grammar implementation, evaluation, and dealing with cycles

  • (S)GLR - Scannerless Generalized LR (Masaru Tomita)
  • It would be good to implemented a compiler of C language (C, B, BCPL), and a high level language, maybe Prolog or something mine and with all being fairly optimized

Buildling

It is done using Ninja and M4, use ninja to build (and run). See ninja.m4 for more information