What is mppksag?
- It is a Multi-Purpose Syntax Analyzer Generator
- It takes a grammar as an input, and produces a corresponding C source code!
The Original Idea on which mppksag is based on was first introduced by the Pick System Meta tool:
- Meta was able to generate a P-Code based syntaxic analyzer, that was interpreted by the Pick Virtual Machine.
- mppksag can generate a C Source Code of a syntaxic analyzer from a BNF grammar source code .
- mppksag's grammar is a very large superset of the Meta's one.
mppksag Specific Features:
- It can use ambiguous grammar, and automatically manages rollbacks, both on source code and on generated code.
- it only works on an error free grammar source (no error handling).
- You can use a C formatting program in order to make the generated C source code more human readable.
Many generated goto instructions seem to be unusefull: it is the consequence of the automatic code generation: It gives just a little more work to the C compiler's optimizer. ;o)
- Nowadays, many equivalent software exist (Lex & Yacc for example ). many of them are open source, and they generate code that are much more performant (ascendant analysis instead of descendant : it is a specialist remark!). But they need to have as a source grammar, a non ambiguous one (for specialists: ll1 or ll2). mppksag is able to generate an analyzer from a much more ambiguous grammar (for specialists: llk, with no limit for k ).
|