問題タブ [lex]
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.
parsing - UIマークアップ言語パーサーを構築するためのツール
学校のプロジェクトでは、ユーザーインターフェイス用の(おそらくXMLベースの)マークアップ言語のパーサーを実装する必要があります。入力に基づいて、さまざまなUIコンポーネント(テキストエリア、入力、パネル、ダイアログなど)を含むHTMLドキュメントを生成します。
これに使用する可能性のあるツール/ライブラリについて何か提案はありますか?(学校ではFlexとBisonを使用していますが、最新のツールを使用することは許可されています。おそらく、lexとyaccの両方の機能を備えたツールです)
regex - レックスを始める
次のように 16 進ダンプをフォーマットする必要があります。
に
住所フィールドがある場合は削除します
段落の最後にあるものを削除します
08
(その後に空行が続きます)空行を削除する
lexを使用してこれを行うにはどうすればよいですか? ありがとう!
lex - なぜトークン名を返すのですか?
値を指しているyylvalを使用する場合、なぜNUMを返す必要があるのですか?NUMは何を表していますか(NUMはYACCセクションでデカールされています)?NUMは値を格納していますか?
適切な解決策がある場合でも、私はこのセクションと非常に混乱しています。YACCにポインタyylvalがあるため、NUMを返す正しい理由が得られません。
java - Javaで字句アナライザを構築する
私は現在、コンパイラー設計で字句解析を学んでいます。字句解析器が実際にどのように機能するかを学ぶために、私は自分で字句解析器を構築しようとしています。Javaでビルドする予定です。
字句解析プログラムへの入力は、次の形式の.texファイルです。
レクサーの出力は、おそらく別のファイルのページ番号を含む目次である必要があります。
この問題が字句解析の範囲内にあることを願っています。
私のレクサーは.texファイルを読み取り、「\」をチェックし、検索を続行すると、それが実際にセクショニングコマンドの1つであるかどうかをチェックします。セクショニングのタイプを示すためにフラグ変数が設定されます。セクショニングコマンドに続く中括弧内の単語は、タイプと深さに応じて、接頭辞付きの数字(1.2.1など)に沿って読み書きされます。
上記のアプローチがレクサーの構築に役立つことを願っています。レクサーの範囲内で可能であれば、目次にページ番号を追加するにはどうすればよいですか?
parsing - ファイルから取得した単語のリストをトークン化するパーサーを作成するにはどうすればよいですか?
コンパイラのクラスの構文テキスト修正を実行しようとしています。アイデアは次のとおりです。「ルビーは素晴らしい」のように、「有効なフレーズはSUBJECT VERB ADJECTIVE」のように、言語(私の場合はポルトガル語)に固有のルールがいくつかあります。
さて、最初に「ルビーは素晴らしい」という入力をトークン化する必要があります。だから私はたくさんの動詞を1行ずつ含むテキストファイル「動詞」を持っています。次に、「形容詞」、「代名詞」などのテキストが1つあります。
Ragelを使用してパーサーを作成しようとしていますが、次のような方法がわかりません。
ANTLR、Lex / Yacc、Ragelなどを調べましたが、この問題を解決していると思われるものは見つかりませんでした。これを行う唯一の方法は、Ragelの入力ファイルを前処理して、プログラムがファイルを読み取り、その内容を適切な場所に書き込むようにすることでした。しかし、私もこの解決策が好きではありません。
誰かが私がこれを行う方法を知っていますか?Ragelがなくても問題ありませんが、この問題を解決したいだけです。RubyまたはPythonを使用したいのですが、それも実際には必要ありません。
ありがとう。
lex - Lex/Yaccを使用して漢字の識別子を認識する
Lex / Yaccを使用して漢字の識別子を認識するにはどうすればよいですか?
lex - フレックスファイルでのコンパイルエラー
(科学的な)Cプログラム用の単純な入出力ライブラリと一緒に使用できる単純な字句解析プログラムを構築しようとしています。automake、libtool、autoconfなどのautotoolsでコンパイルすると、次のエラーが発生します。
これは通常、関数プロトタイプの最後にあるセミコロンを忘れたことを意味しますが、ヘッダーを確認したので、そのような欠落はありません。
simpleio_lex.lは次のとおりです。
*compilation*
Emacsのバッファハイパーリンク%}%
は、プリアンブルの最後にあるを参照しています。なぜこのエラーが発生するのですか?「of」という記号もありません。
ありがとう、
ジョエル
bison - バイソンとフレックスによるセグメンテーション違反
私はoreillyの本を使ってlexとyaccを学ぼうとしていました。本の次の例を試してみましたが、セグメンテーション違反が発生します。
私はフレックスとバイソンを使用しています。whileループのmain関数でセグメンテーション違反が発生しています。ループにはまったく入っていません。
何かご意見は?ありがとう、ロバート
lex - mxmlファイルをコンパイルするためのFlexSDK
FlexSDK の最新バージョンをダウンロードしてインストールしました。C:FlexSDK フォルダーに解凍します。C:/FlexSDK/bin へのコマンド プロンプトを開きました。フォルダーのディレクトリを実行すると、mxmlc.exe ファイルがそこにありました。コマンド プロンプトから mxmlc c:test.mxml を発行すると、「JVM が見つかりませんでした」というエラーが表示されました。以前にコンピューターのコマンド プロンプトから mxml ファイルをコンパイルしたことがあるので、これは驚くべきことです。また、以前にコマンド プロンプトから Java プログラムを開発、コンパイル、および実行したことがあります。システムに JRE があることはわかっています。実際のところ、「C:\Program Files\Java\jre6」にあります。前に述べたように、私はしばらく前に mxml ファイルをコンパイルしました。今何が問題なのか理解できません。
c - パーサージェネレーターを使用するのが実際的なのはいつですか?
私が書いている Web アプリケーション用の単純なテキスト テンプレート言語を書いています (Google の ctemplate を考えてください)。完了すると、「評価して実行する」、「評価して印刷する」、「html を評価してエスケープする」、「コメントする」など、少数の可能なアクションのみを取り上げます。パーサー全体をゼロから手書きすることを考えていましたが、lex、flex、antlr などのパーサー ジェネレーターを調べ始めました。これらは、私の単純な構文に必要以上のもののようです。問題は、どの時点でパーサー ジェネレーターを使用するのが実用的かということです。