Kent Wittenburg <[email protected]>.
The RL files contain code for defining relational grammars and using them in a bottom-up parser to recognise and/or parse expressions in Relational Languages.
The approach is a simplification of that described in Wittenburg, Weitzman, and Talley (1991), Unification-Based Grammars and Tabular Parsing for Graphical Languages, Journal of Visual Languages and Computing 2:347-370. This code is designed to support the definition and parsing of Relational Languages, which are characterised as sets of objects standing in user-defined relations.
Correctness and completeness is independent of the order in which the input is given to the parser. Data to be parsed can be in many forms as long as an interface is supported for queries and predicates for the relations used in grammar productions.
To date, this software has been used to parse recursive pen-based input such as math expressions and flow charts; to check for data integrity and design conformance in databases; to automatically generate constraints in drag-and-drop style graphical interfaces; and to generate graphical displays by parsing relational data and generating output code.
requires: Common Lisp
ports: Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0