lambdaclass / lambdaclass/lambda_compiler_kit

refactor: eliminate decreasing_by in Parser.lean in favour of structural recursion

Offen
#34 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Lean
Sterne
2
Forks
1
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Problem

Lck/Regex/Parser.lean at lines 646 and 912 uses decreasing_by to convince the termination checker. Per CLAUDE.md, decreasing_by is a code smell for parsers — a well-structured LL(1) parser over a token list should terminate structurally.

Expected fix

Restructure the affected parsing functions so that recursive calls are made on a syntactically smaller token list, allowing the Lean termination checker to accept them without decreasing_by. If this turns out to be infeasible, document why with a comment.

References

  • Observed by AI code review on PR #9
  • See CLAUDE.md termination discipline

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Öffne Lck/Regex/Parser.lean und untersuche den Parsing-Code in den Zeilen 646 und 912; lies anschließend die Hinweise zur Terminierung in CLAUDE.md. Bestimme, ob die betroffenen rekursiven Aufrufe strukturell kleinere Tokenlisten verwenden können; als erledigt gilt die Aufgabe, wenn beide Verwendungen von decreasing_by entfernt wurden oder ein erklärender Kommentar dokumentiert, warum eine Umstrukturierung nicht möglich ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Bereich
compilers
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.