C のような言語を lex (その後、解析) しようとしています。C では、改行が重要なプリプロセッサ ディレクティブがあり、実際のコードでは改行が単なる空白です。
これを行う 1 つの方法は、初期の C コンパイラのような 2 パス プロセスを実行することです。# ディレクティブ用に別のプリプロセッサを用意し、その出力を lex します。
しかし、単一のレクサーでそれが可能かどうか疑問に思いました。StdLexical
scala パーサーとコンビネーターのコードを書くことにはかなり満足していますが、 が空白をどのように処理するかについてはよくわかりません。
#include
改行を使用して行をレックスし、改行を無視していくつかの簡単なコードを書くことができると言う単純なサンプルコードを誰かが書くことができますか? それとも、これは不可能であり、2 パスアプローチを使用する方がよいでしょうか?