TheAngryByrd / TheAngryByrd/fsharp2
Implement immutable F# syntax trees and parser recovery
Nobody has claimed this yet.
- Dominant language
- F#
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Parent: #8
Blocked by: #28
Outcome
Replace the hand-picked prototype parser with immutable syntax trees and recoverable parsing for F# implementation and signature files.
Acceptance criteria
- The syntax model covers namespaces, modules, opens, attributes, signatures, declarations, type syntax, patterns, expressions, members, accessibility, and ordered multi-file inputs.
- Implementation and signature files retain exact ranges and enough structure for later resolution and diagnostic recovery.
- Layout-sensitive and ambiguous forms follow declared language-version behavior.
- Parser recovery reports stable diagnostics while preserving subsequent independently parseable declarations.
- Syntax-only tests exercise generated SDK inputs and compiler-owned feature programs without requiring semantic phases.
- Adding a production rule is justified by an F# construct and conformance row, never by a named line or declaration in an external corpus.
Decision inputs
Issues #2 and #6; ADRs 0008, 0012, and 0014.
This issue inherits the corpus-neutral acceptance policy in #8.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading parent issue #8, blocker #28, issues #2 and #6, and ADRs 0008, 0012, and 0014 to understand the parser and corpus-neutral acceptance policy. Done means immutable syntax trees and recoverable parsing cover the listed F# constructs for implementation and signature files, preserve ranges, produce stable diagnostics, and pass syntax-only tests for the specified inputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fsharp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100