Filewatcher File Search File Search
Content Search
» » » » »


backtracking LR parser generator

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.

Package version:0.15-1


kelbt paper

The author of Kelbt has written a rather nice paper, which is really helpful
when trying to understand kelbt. Unfortunately it can't be distributed with this
package because of licensing issues, but you can get it from

 -- Robert Lemmen <>, Thu, 6 Sep 2007 09:15:23 +0100


                            C++ Pre-Parser

C++ Pre-Parser is a program for making the analysis and transformation of C++
somewhat easier.  The pre-parser specializes symbols to their various uses,
resolves names to the language entities they represent and adds symbols to the

The "undo" program is can be used to remove the disambiguation symbols 


KELBT(1)          Backtracking LR Parser Generator          KELBT(1)

       kelbt - generate backtracking LR parsers

       kelbt [options]files

       This manual page very briefly documents kelbt, a backtracking
       LR parser generator. For a better reference on how to use it,
       see    the    provided    examples    and    the   paper   at


kelbt (0.15-1) unstable; urgency=low

  * New upstream release

 -- Robert Lemmen <robertle@semistab


Kelbt 0.15 - Jan 22, 2012
 -Eliminated type-punned pointer warnings GCC em


CxxPrep 0.1 - Sep 14, 2005
 -Initial public release of code.


Should be possible to define a nonterminal type as some kind of simple type, As
it is, the user is f


Handle overloading ',' operator.

Tell cxxprep that we are interested in certain files.

Option to p

Browse inside kelbt_0.15-1_mipsel.deb

         [DIR]DEBIAN/ (2)  65535+ mirrors
         [DIR]usr/ (2)  65535+ mirrors

Download kelbt_0.15-1_mipsel.deb

Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017