compiler-design

Red-Green Trees: an Overview. Six months ago I dug into Roslyn’s… | by Bayastan | Jun, 2025 | Medium

抽象構文木というか具象構文木の実装方法の一つ。

構文の途中で差し込まれたコメントなどのトリビアなどを保持して、完全なソースコードに戻せるけど実行効率などをよくしたままにできるやり方。

部分的に構文木を書き換えたりするとソースコードのロケーション情報がずれたりするので、文字幅とオフセットを別々に持たせるというやり方をしている

ながいけどこれがわかりやすい

Ruby Parser開発日誌 (19) - 最高の構文木の設計 2024年版 - かねこにっき