私はANTLRでパーサーを作成した経験があり、(自己教育のために:))そのうちの1つをPEG(Parsing Expression Grammar)に移植しようとしています。
私がそのアイデアを感じ取ろうとしているとき、私が何かを逃したと感じる程度に、1つのことが厄介だと思います。それは空白の扱い方です。
ANTLRでは、空白とコメントを処理する通常の方法は、トークンを非表示のチャネルに配置することでしたが、PEG文法では、トークン化の手順はありません。コメントがほとんどどこでも許可されるCやJavaなどの言語を考えると、コメントをすぐに「非表示」にしたいのですが、コメントには意味的な意味がある場合があるため(たとえば、コードドキュメント、クラス図などを生成する場合)、それらを破棄したいだけではありません。
それで、これに対処する方法はありますか?