Crystal port of Roslyn's red/green tree architecture for syntax trees.
This is an active porting effort. The core red/green infrastructure is usable for experiments and internal tooling, but APIs are still evolving and are not considered stable for long-term consumption yet.
shards installPublic APIs are not finalized yet. For now, use this repo as the
implementation home for the red/green tree core and supporting utilities.
See docs/public_api.md for the current public surface.
See docs/performance.md for benchmarking notes.
See docs/asdl.md for ASDL parsing and red/green codegen.
See docs/overview.md and docs/architecture.md for design context.
See docs/getting_started.md for a guided walkthrough.
See docs/how_to_build_language.md for end-to-end guidance.
See docs/incremental_updates.md and docs/tree_editing.md for workflows.
See docs/changesets.md for release note workflow.
See docs/roadmap.md for long-term goals.
crystal tool format src spec benchmarks
ameba --fix src spec benchmarks
ameba src spec benchmarks
crystal spec- Fork it (https://github.com/dsisnero/red_green/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
- dsisnero - creator and maintainer