[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#440823: ITP: kelbt -- backtracking LR parser



Package: wnpp
Severity: wishlist
Owner: Robert Lemmen <robertle@semistable.com>


* Package name    : kelbt
  Version         : 0.12
  Upstream Author : Adrian Thurston <adriant@ragel.ca>
* URL             : http://www.cs.queensu.ca/~thurston/kelbt/
* License         : GPL
  Programming Lang: C, C++
  Description     : backtracking LR parser

 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. See the CASCON paper for more details.
 .
 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.

this is a companion to ragel (which is already in debian) and will be a build-dependency of it in the future

cu  robert

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.22-1-amd64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

-- 
Robert Lemmen                               http://www.semistable.com 

Attachment: signature.asc
Description: Digital signature


Reply to: