Paketname | kelbt |
Beschreibung | backtracking LR parser generator |
Archiv/Repository | Offizielles Debian Archiv squeeze (main) |
Version | 0.14-1 |
Sektion | devel |
Priorität | extra |
Installierte Größe | 652 Byte |
Hängt ab von | libc6 (>= 2.1.3), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1) |
Empfohlene Pakete | |
Paketbetreuer | Robert Lemmen |
Quelle | |
Paketgröße | 108752 Byte |
Prüfsumme MD5 | 19f5ec768d3a087315909c191af90d67 |
Prüfsumme SHA1 | 2181a5bbc23fdc6483a928aea17e84fd123eaea6 |
Prüfsumme SHA256 | cd7814b2d38235b05fdc3575e82e2f1adc19f5009e1632c900d4a243fe9cf68e |
Link zum Herunterladen | kelbt_0.14-1_i386.deb |
Ausführliche Beschreibung | Kelbt generates backtracking LALR(1) parsers. Standard LALR(1) parser
generators emit an error upon encountering a conflict in the parse tables.
Kelbt forges onward, generating parsers which handle conflicts by backtracking
at runtime. Kelbt is able to generate a parser for any context-free grammar and
therefore implements a generalized parsing method.
.
Kelbt is different from other backtracking LR systems in two ways. First, it
elevates backtracking to the level of semantic actions by introducing a class
of actions called undo actions. Undo actions are invoked as the backtracker
undoes parsing and allow the user to revert any side effects of forward
semantic actions. This makes it possible to backtrack over language constructs
which must modify global state in preparation for handling context
dependencies.
.
Second, Kelbt enables a user-controlled parsing strategy which approximates
that of generalized recursive-descent parsing with ordered choice. This makes
it easy for the user to resolve language ambiguities by ordering the grammar
productions of a non-terminal according to precedence. It is approximate in the
sense that for most grammars the equivalent of an ordered choice parsing
strategy is achieved. In cases where productions are parsed out of the order
given, there is a simple grammar transformation which remedies the problem.
.
As a proof of concept, Kelbt has been used to write a partial C++ parser
(included) which is composed of strictly a scanner, a name lookup stage and a
grammar with standard semantic actions and semantic undo actions.
|