Skip to content

Yacc#335

Merged
jasone merged 6 commits into
BranchTaken:mainfrom
jasone:yacc
May 26, 2026
Merged

Yacc#335
jasone merged 6 commits into
BranchTaken:mainfrom
jasone:yacc

Conversation

@jasone

@jasone jasone commented May 26, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Jason Evans added 5 commits May 26, 2026 01:03
Reformat Hocc/Bison references (previously `hocc`/`bison`).

Use "automata" rather than "automatons".
CPCT⁺ is not ideally suited to the Hemlock grammar, primarily because dentation
is semantically relevant in a way that strongly constrains the types of parsing
errors that are possible. (The scanner validates and repairs dentation.)
Strategies for repairing nonlocal paired delimiter errors are feasible for
Hemlock, nondelimited expressions span single logical lines, and in combination
with `error` token strategies the blast radius of syntax errors is quite small
in practice. Finally, the canonical CPCT⁺ algorithm depends on timeouts to limit
searches, which introduces nondeterminism to otherwise pure computation; an
opcount-based alternative could be devised, but that would be novel engineering.
Refactor to use `Symbols.{tokens,nonterms}_fold` rather than
`Symbols.symbols_fold` where appropriate.
Keep remerging enabled by default for APLR even in the face of unresolved
conflicts, for consistency with IELR.
The APLR implementation operates on post-conflict-resolution action sets, which
obscures the principle underlying reduce action set remergeability. Add a
comment which describes the equivalent algorithm for pre-conflict-resolution
action sets.
@jasone jasone merged commit 00cf881 into BranchTaken:main May 26, 2026
4 checks passed
@jasone jasone deleted the yacc branch May 26, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant