all options
stretch  ] [  buster  ] [  bullseye  ] [  bookworm  ] [  sid  ]
[ Source: kelbt  ]

Package: kelbt (0.16-3)

Links for kelbt


Debian Resources:

Download Source Package kelbt:


Similar packages:

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.

Tags: Software Development: Code Generation, Implemented in: C++, Role: Program

Other Packages Related to kelbt

  • depends
  • recommends
  • suggests
  • enhances

Download kelbt

Download for all available architectures
Architecture Package Size Installed Size Files
alpha (unofficial port) 69.8 kB288.0 kB [list of files]
amd64 74.4 kB220.0 kB [list of files]
arm64 68.0 kB224.0 kB [list of files]
armel 62.7 kB222.0 kB [list of files]
armhf 64.8 kB158.0 kB [list of files]
hppa (unofficial port) 71.9 kB203.0 kB [list of files]
i386 79.1 kB226.0 kB [list of files]
ia64 (unofficial port) 88.9 kB411.0 kB [list of files]
m68k (unofficial port) 65.1 kB198.0 kB [list of files]
mips64el 70.3 kB296.0 kB [list of files]
mipsel 70.3 kB293.0 kB [list of files]
ppc64 (unofficial port) 74.9 kB289.0 kB [list of files]
ppc64el 76.2 kB288.0 kB [list of files]
riscv64 (unofficial port) 70.8 kB180.0 kB [list of files]
s390x 66.2 kB224.0 kB [list of files]
sh4 (unofficial port) 74.0 kB222.0 kB [list of files]
sparc64 (unofficial port) 62.5 kB1,058.0 kB [list of files]
x32 (unofficial port) 72.2 kB203.0 kB [list of files]