diff --git a/content/コードフォーマッター.md b/content/コードフォーマッター.md index ea0f9448..fc4a610e 100644 --- a/content/コードフォーマッター.md +++ b/content/コードフォーマッター.md @@ -17,3 +17,25 @@ AST→フォーマッタ用の専用の木構造みたいな中間表現を一 [[Tree-sitter]]を使った汎用フォーマッター[Topiary](https://topiary.tweag.io/)とかいうのもある +--- + +Exprの途中に差し込まれたトリビア(主にコメント)をどうやって抽出するか + +ExprNodeIdに対するSecondary MapがSpanに対して作れているのだから、Trailng Triviaとしてコメントを保持するのは一応できるか? + +パーサコンビネータでどうにか処理できるもんか? + +```rust +fn parse_expr_top()->impl Parser{ + not(comment()).padded_by(comment().repeated()) +} + +``` + +[Parser in chumsky - Rust](https://docs.rs/chumsky/latest/chumsky/trait.Parser.html#method.map_with) + +`map_with`使えばいけるかしら + +Stateにトリビアを書き込んでおけばいいのか + +