呼び出しごとに 1 つのトークンの ragel 文法 / ものを構築したいと考えています。
私は Ragel には比較的慣れていません (ただし、コンパイラなどは初めてではありません)。
json のような表記法 (深さ 3 レベル) の文法を作成しました。Cコードを発行します。
私の入力は完全な文字列です (バッファ境界を越える必要はありません)。
入力文字列を使用して文法を呼び出し、文法が 1 つのトークンを返すようにします。次に、もう一度呼び出して、次のトークンを返すようにします。文字列の終わりまで。次に、新しい文字列で再度呼び出します。
ステート マシンはこの種の動作に完全に適していると考える人もいるでしょうが、私は Ragel でこれを達成する方法をまだ理解できていません。