問題タブ [lexical-analysis]

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 に答える
324 参照

c++ - Flex/Bison による構文解析パート 2

ハロー、

Lex/Yacc プログラミングのヘルプが必要です。多くのステートメントの入力に対する構文解析用のコンパイラを作成しました。今、私は特別な問題を抱えています。

入力の場合、コンパイラは正しい出力を提供します。どのステートメントが使用されているか、定数演算子または jmp インストラクターがどのラベルに使用されているか、今度はそう書く必要があります。if ステートメントが来たら、最初のコマンド (else の前) if の割り当てが yes の場合は、最後までジャンプする必要があります。else の後のコマンドは必要ないため、この jmp の後に 2 番目のコマンドを発行する必要があります。例で示しますが、私の言いたいことがわかるかもしれません。

入力アドレス 出力

そのようです。私にはアイデアがあります。おそらく、次のような特別なifステートメントでそれを行うことができます

入力に ​​if ステートメントが指定されている場合、コンパイラーはステートメントの終わりを認識し、私のコンパイラーの jmp_stmt のように ( http://bitbucket.org/matrix/changed-tinyからファイルをダウンロードする必要があります)、ジャンプするだけである必要があります。最後まで。私の問題を理解していただければ幸いです。ありがとうございます。

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

python - Python字句解析器の書き方は?

Python コードを字句解析する C モジュールを作成しようとしています。どうすればいいですか?

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

input - Bison 入力アナライザー - オプションの文法と入力解釈に関する基本的な質問

私は Flex/Bison を初めて使用するので、非常に素朴な質問です。
もしそうなら、私を許してください。宿題の質問のように見えるかもしれませんが、以下のコンセプトに基づいてプロジェクトを実装する必要があります。

私の質問は 2 つの部分に関連しています。
質問 1
Bison パーサーでは、オプションの入力にルールを提供するにはどうすればよいですか。


同様に、ステートメントの例 を解析する必要があります:

ここで比率トークンはオプションにすることができます。同様に、オプションのトークンが多数ある場合、同じものに対してパーサーで文法を提供するにはどうすればよいですか?

私のコードは次のようになります

%start program
program : TK_COUNTRY TK_IDENTIFIER TK_STATE TK_IDENTIFIER TK_POPULATION TK_IDENTIFIER ...
すべてのトークンはレクサーで定義されています。オプションのトークンが多いので、「|」を使うと その場合、可能な入力の組み合わせにはさまざまな方法があります。

質問 2
コメントには入力の一部として引用符が含まれている可能性が高いため、ユーザーが同じものを解釈するために提供できる token タグを追加しました。

例 :

ここで、Indiana$'s を、Indiana's since として再解釈する必要があります-tag=$

これらのトピックを理解するために、入力または関連資料を提供してください。

0 投票する
3 に答える
732 参照

javascript - レクサーが提供する必要のある機能は何ですか?

私は字句解析プログラムを作成しています。すでにほとんどの処理を行っているので、実行しないように言わないでください。
現在、トークンの配列を作成し、それだけです。

レクサーが提供する必要のある関数と、各関数が実行する必要のある機能について簡単に説明したいと思います。

私は最も完全なリストを受け入れます。

関数の例は次のとおりです。

へ:現在のトークンを消費して返します

また、レクサーにexpect関数を含める必要がありますか、それともインタープリターに実装する必要がありますか?

ちなみに、レクサーコンストラクターは引数として文字列を受け入れ、字句解析を行い、すべてのトークンを「トークン」変数に格納します。

言語はjavascriptなので、演算子をオーバーロードすることはできません。

0 投票する
3 に答える
2362 参照

c++ - Qtの字句解析プログラムまたは字句解析プログラムを知っていますか?

Qtの字句解析プログラムまたは字句解析プログラムを知っていますか?テキストファイルの解析に必要です。

0 投票する
3 に答える
821 参照

regex - Haskell における正規表現と字句解析器

私は Haskell を使い始めており、Alexツールを使用して正規表現を作成しようとしていますが、少し迷っています。私の最初の不便はコンパイル部分でした。アレックスでファイルをコンパイルするにはどうすればよいですか?. 次に、アレックスが生成するモジュールをコードにインポートする必要があると思いますが、よくわかりません。誰かが私を助けることができれば、私はとても素晴らしいです!

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

java - Javaで字句アナライザを構築する

私は現在、コンパイラー設計で字句解析を学んでいます。字句解析器が実際にどのように機能するかを学ぶために、私は自分で字句解析器を構築しようとしています。Javaでビルドする予定です。

字句解析プログラムへの入力は、次の形式の.texファイルです。

レクサーの出力は、おそらく別のファイルのページ番号を含む目次である必要があります。

この問題が字句解析の範囲内にあることを願っています。

私のレクサーは.texファイルを読み取り、「\」をチェックし、検索を続行すると、それが実際にセクショニングコマンドの1つであるかどうかをチェックします。セクショニングのタイプを示すためにフラグ変数が設定されます。セクショニングコマンドに続く中括弧内の単語は、タイプと深さに応じて、接頭辞付きの数字(1.2.1など)に沿って読み書きされます。

上記のアプローチがレクサーの構築に役立つことを願っています。レクサーの範囲内で可能であれば、目次にページ番号を追加するにはどうすればよいですか?

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

lex - Lex/Yaccを使用して漢字の識別子を認識する

Lex / Yaccを使用して漢字の識別子を認識するにはどうすればよいですか?

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

python - 構造化されていないテキストを構造化された形式に解析するための字句解析または一連の正規表現

Googleカレンダーのクイック追加機能のように機能するコードを書き込もうとしています。1) 2010 年 9 月 24 日、John の誕生日 2) John の誕生日、2010 年 9 月 24 日 3) 2010 年 9 月 24 日、John Doe の誕生日 4) 24-9-2010 : John誕生日 5) ジョンは 2010 年 9 月 24 日に誕生日を迎えます

そして、2010 年 9 月 24 日のイベントの残りの部分をイベント テキストとして使用する必要があることがわかります。

これをやりたいのは python です。

上記のすべてのケースに一致する可能性のある正規表現を記述し、日付を抽出するデザインを考えています。しかし、この問題に取り組むためのよりスマートな方法があると確信しています。私は明らかに字句解析や多くの種類のパーサー スタイルの訓練を受けていないためです。この問題にアプローチする良い方法を探しています。

0 投票する
4 に答える
2144 参照

c - 字句解析に関する質問

ドラゴンブックを読んでいます。本からのテキストの引用 (3.1.4 語彙エラー、Pno 114)

字句解析器が、他のコンポーネントの助けなしに、ソース コード エラーがあることを判断するのは困難です。たとえばfi、コンテキスト内の C プログラムで文字列が初めて検出された場合:

語彙アナライザーは fi、キーワードのスペルミスなの ifか、宣言されていない関数識別子なのかを判断できません。はトークン ID の有効な語彙素であるためfi、字句解析器はトークンidをパーサーに返し、コンパイラーの他のフェーズ (この場合はおそらくパーサー) に文字の転置によるエラーを処理させる必要があります。

これを読んだ後、私は少し混乱しています。私の理解では、字句解析器は左から右にテキストの処理を開始し、パターンが一致するたびにトークンを返します。一致するキーワードがある言語の場合if、どのように一致させることができfiますか?

何かご意見は?