私はElixir用のjinja2のようなテンプレート言語を実装する初期設計段階にあります。私はレクサーを手作業で書く傾向がありましたが、最近Erlangのleexモジュールを訪れました。それは有望に見えますが、初期の研究の後には、それが私の目的にとって適切なツールであるかどうかわかりません。leexはテンプレートエンジンのレクサーを書くのに適していますか?
私の躊躇の1つは、基本的に文字列の埋め込み言語であるテンプレート言語ですが、leexを使用してこのケースでtokenizeを使用する方法は明確ではありません。簡単な例として、このテンプレートトークン化を想像:
-
:この例では
<p>Here is some text for inclusion in the template.</p>
{% for x in some_variable %}
The value for the variable: {{ x }}.
{% endfor %}
を、私はkewords「ため」と「で」が異なっによってはトークン化されていることを確認する必要があります
私には、これをトークン化フェーズで2回実行するか、1回のパスでこれを行うために自分のレクサーを実行する必要があるようです。
字句解析、特にleex、またはテンプレートエンジンの作成経験がある方なら、最善の方法を理解することができますか?
良い点は、トークン化段階ではなく解析段階に属します。説明をありがとう。私はあなたが正しいと思います。レクサーは、トークンのどれが意味するものか、それが何を意味するかには無関心でなければなりません。 – suprafly