Skip to content

Commit

Permalink
Add "canonical" to LR(1) mention
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Evans committed Jun 28, 2024
1 parent 6460bf1 commit 8c9c853
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions doc/reports/ielr1/ielr1.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# IELR(1) as implemented by `hocc`

The `hocc` parser generator implements several LR(1)-family parser generation algorithms, namely
[LALR(1)](https://en.wikipedia.org/wiki/LALR_parser) [^deremer1969],
[LR(1)](https://en.wikipedia.org/wiki/LR_parser) [^knuth1965], PGM(1) [^pager1977][^fpottier],
and IELR(1) [^denny2010]. These algorithms are amply documented and (re-)implemented, with the
notable exception of IELR(1), which is documented only in the original paper and implemented only by
the original authors in [`bison`](https://www.gnu.org/software/bison/). This posed extreme
[LALR(1)](https://en.wikipedia.org/wiki/LALR_parser) [^deremer1969], [canonical
LR(1)](https://en.wikipedia.org/wiki/LR_parser) [^knuth1965], PGM(1) [^pager1977][^fpottier], and
IELR(1) [^denny2010]. These algorithms are amply documented and (re-)implemented, with the notable
exception of IELR(1), which is documented only in the original paper and implemented only by the
original authors in [`bison`](https://www.gnu.org/software/bison/). This posed extreme
implementation challenges in the context of `hocc`. The IELR(1) paper is very closely tied to the
particulars of the `bison` implementation, and perhaps for that reason the terminology and structure
are closely based on the idiosyncrasies of DeRemer's presentation of LALR(1). This terminology
Expand Down

0 comments on commit 8c9c853

Please sign in to comment.