|File Search||Catalog||Content Search|
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.
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 http://www.cs.queensu.ca/~thurston/thurston_CASCON_06_btlr.pdf -- Robert Lemmen <firstname.lastname@example.org>, 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 input. The "undo" program is can be used to remove the disambiguation symbols more»
KELBT(1) Backtracking LR Parser Generator KELBT(1) NAME kelbt - generate backtracking LR parsers SYNOPSIS kelbt [options]files DESCRIPTION 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 http://www more»
kelbt (0.15-1) unstable; urgency=low * New upstream release -- Robert Lemmen <robertle@semistab more»
Kelbt 0.15 - Jan 22, 2012 ========================= -Eliminated type-punned pointer warnings GCC em more»
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 more»
Handle overloading ',' operator. Tell cxxprep that we are interested in certain files. Option to p more»