問題タブ [leex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
620 参照

compiler-construction - Erlang VM 用にコンパイルする方法

アプリケーションでユーザー スクリプト用の小さな記述言語を実装しようとしています。基本的に、ユーザーはオブジェクトが他のオブジェクトからどのように作成されるかを記述します。(実際にはプログラミング言語ではありません)。JSON も使用できます (ただし、より冗長になります)。

私は leex と yecc を使用しており、まともな解析ツリーを持っています。次のようなものだとします。

このツリーを使用して、次のようなものを構築したいと思います。

しかし、どこから始めればよいかわかりません。実行時にツリーを読み取ってファンを構築することはできますが、コンパイル方法を学びたい (そしてパフォーマンスが向上することを願っています)。

解析ツリーを Erlang AST に変換してから、erlang モジュールをコンパイルする必要がありますか?

ありがとう。

0 投票する
2 に答える
279 参照

regex - leexの行頭を一致させる方法は?

leexのドキュメントによると

^ 文字列の先頭に一致します。

しかし、次のようなパターンで使用しようとすると、次の^[^\s\t-:]+[^:].*$エラーが発生します。bad regexp 'illegal character ^'

ラインの物乞いを一致させるより良い方法はありますか | リークスの文字列?

0 投票する
1 に答える
127 参照

erlang - Yecc と Leex の動作に問題がある

次のようにフォーマットされた文字列を取る非常に単純なDSLを作成しようとしています

そして、それを次のようなものに変えます

私のLeexファイルはこれです:

そして、私の Yecc ファイルは次のようになります。

私がこれで得ている出力:

0 投票する
1 に答える
237 参照

erlang - テンプレートエンジンレクサーを書くのにleexは良い選択ですか?

私は、Elixir 用の jinja2 のようなテンプレート言語を実装する最初の設計段階にいます。私は字句解析器を手作業で書きたいと思っていましたが、最近、Erlang の leex モジュールに出会いました。有望に見えますが、最初の調査の後、それが私の目的に適したツールであるかどうかはわかりません.

私の躊躇の 1 つは、基本的に文字列埋め込み言語であるテンプレート言語です。この場合、leex を使用してトークン化を使用する方法が明確ではありません。些細な例として、このテンプレートをトークン化することを想像してください:

この例では、キーワード ' for ' と ' in ' が以下に応じて異なる方法でトークン化されるようにする必要があります。

  • タグ内にある場合: {% %}
  • タグ内にある場合: {{ }}
  • それらがテンプレート内にあるが、どのタグ内にもない場合。

私には、トークン化フェーズで 2 つのパスを実行するか、1 つのパスでこれを行うために独自のレクサーをロールする必要があるように見えます。

字句解析、特に leex の経験がある人、またはテンプレート エンジンを作成した経験のある人が、今後の最善の方法についての洞察を提供できるかどうか疑問に思っています。