TheAngryByrd / TheAngryByrd/fsharp2

Implement immutable F# syntax trees and parser recovery

Open
#29 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wayfinder:task
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.