BX Parsing This repository contains the source code of the case study demonstrating our bidirectional megamodel of:
- parsing
- tokenising
- stripping
- concatenating
- imploding
- exploding
- unparsing
- printing
- pretty-printing
- formatting
- visualising
- rendering
- recognising
- ...
There are approximately 70 files total with 3200 lines of code and comments committed to this repository. To run all this code, you will need the Rascal language workbench. The repository contains specifications of twelve kinds of software artefacts related to (un)parsing and many mappings between them:
Textual | Structured | Graphical | |||
---|---|---|---|---|---|
Abstract | Lex | ← → | Ast | ← → | Fig |
↓ ↑ | ↓ ↑ | ↓ ↑ | |||
Layoutless | Tok | ← | Cst | ← → | Gra |
↓ ↑ | ↓ ↑ | ↓ ↑ | |||
Layout | Tkl | ← | Ptr | Dra | |
↓ ↑ | ↑ | ↓ ↑ | |||
Raw | Str | ← → | For | Pic |
...as well as alternative Gra→Pic, Ptr→Tok and Str→Lex mappings and several versions of bidirectional mappings between Ptr and Dra:
Yours,