z-logo
open-access-imgOpen Access
A Practical State Splitting Algorithm for Constructing LR-Parsers
Author(s) -
Bent Bruun Kristensen,
Ole Lehrmann Madsen
Publication year - 1984
Publication title -
daimi pb
Language(s) - English
Resource type - Journals
eISSN - 2245-9316
pISSN - 0105-8517
DOI - 10.7146/dpb.v9i115.6533
Subject(s) - tree traversal , computer science , recursion (computer science) , algorithm , parsing , tree (set theory) , state (computer science) , node (physics) , combinatorics , discrete mathematics , mathematics , physics , programming language , quantum mechanics
A practical algorithm for constructing LR(k) parsers is given. The algorithm works by splitting those states in the LR(O)-machine that give rise to LALR(k)-conflicts. The algorithm takes a conflicting pair of items, say l,J in a state T, and performs a recursive backwards traversal of part of the predecessor tree of T. At each node pairs of items which contribute with lookahead to I and J in T are visited. During the return from the recursion, states in the predecessor tree that give rise to LALR(k)-conflicts (between I and J in T) which are not LR(k)-conflicts, will be split. This splitting may involve unrolling of loops and separation of loops into several loops.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here