問題タブ [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.
flex-lexer - flex のコンパイル エラー (字句解析器)
Windows コンピュータに flex (Adobe プログラムではなく字句解析プログラム) をインストールしようとしています。MSYSをインストールしました。flex を untar して ./configure しますが、作成しようとすると次のエラーが発生します。
最近まで、私は .exe を使用してインストールしただけだったので、これにはかなり混乱しています。bison と m4 のインストールはどちらもスムーズに進みました。何か案は?
c - Lex (字句解析器) における正規表現の大きな問題
次のようなコンテンツがあります。
そして、 titleの二重引用符ですべてをキャッチする必要があります。私の最初の試みはこれでした:
^(" "|\t)+"title"" "*=" "*"\"".+"\","
これは最初の例をキャッチしますが、他の 2 つをキャッチしません。もう一方には複数の行があり、それが問題です。\n
次のように、複数の行を許可するためにどこかに変更することについて考えました:
^(" "|\t)+"title"" "*=" "*"\""(.|\n)+"\","
しかし、これは役に立ちません。代わりに、すべてをキャッチします。
私よりも、「私が欲しいのは二重引用符の間です。別のものが見つかるまですべてをキャッチするとどうなりますか?このようにして、行数に関係なく、タイトルの最後にいるかどうかを知ることができました"
。これ:,
^(" "|\t)+"title"" "*=" "*"\""[^"\""]+","
しかし、これには別の問題があります... 上記の例にはありませんが、タイトル宣言"
の間に二重引用符 ( ) を入れることができます。例えば:
はい、常にバックスラッシュ ( \
) が前に付きます。
この正規表現を修正するための提案はありますか?
c# - コンパイルせずにC#字句/構文アナライザーを呼び出すことは可能ですか?
C#のメモリ内コンパイラ全体が呼び出されているSOのこの質問を検討します。語彙素と構文の分析のみが必要な場合:テキストを語彙素のストリームとして解析し、それらをチェックして終了します。
System.CodeDom.Compilerの現在のバージョンで可能ですか、そうでない場合は可能ですか?
thread-safety - Flex で再入可能なレクサーを作成する
フレックス初心者です。フレックスを使用して単純な再入可能なレクサー/スキャナーを作成しようとしています。レクサーの定義は以下のとおりです。以下に示すように、コンパイル エラーが発生します (yyg の問題)。
reentrant.l:
コンパイル エラー:
c++ - Flex/bison で If ステートメントを実装する方法
エラーが表示されません。助けてください。ここに .l および .y ファイルがあります。ありがとうございます。
yacc ファイル
別の質問があります。アセンブラーのようにflex/bisonを使用してJMP命令を実装して、私の例のようなラベルに移動する可能性はありますか?助けてくれてありがとう.
c++ - 構文の強調表示をどのように実装しますか?
私はいくつかの学習に着手しており、C++ でファイルの独自の構文強調表示を作成したいと考えています。
誰かがこれを行う方法についてアイデアを教えてもらえますか?
私には、ファイルを開くと次のように見えます。
解析して、ソース ファイルの種類を判断する必要があります。拡張機能を信頼することは、絶対確実ではないかもしれません
どのキーワード/コマンドがどの言語に適用されるかを知る方法
各キーワード/コマンドが取得する色を決定する方法
C++またはObjective-Cを使用して、OS Xでこれを行いたいです。
これをどのように開始するかについて、誰かが指針を提供できますか?
c++ - フレックス/バイソン、エラー:宣言されていません
ハロー、私は問題があります、次のプログラムはエラーを返します、エラー::宣言されていません(関数での最初の使用)、なぜこのエラーが表示されるのかすべてのトークンが宣言されていますが、このエラーが発生します、誰もが私を助けることができます、ここにlexとyacfiles.thanks
lex:
YACC:
lexical-analysis - PCCTS トラック入力列番号
PCCTS でトークン列の数を追跡するにはどうすればよいですか?
c++ - Flex/bison での JMP 命令
皆さん、こんにちは。アセンブラーのように JMP (ジャンプ) インストラクターを実装するインストラクターを探しています。Flex/Bison の goto 機能を使用できることがわかりましたが、どうすればよいかわかりません。誰でもアイデアを持っています。あなたの助けにとても感謝しています。ありがとう。
これがどのように見えるかの例です。JMPインストラクターと一緒に、彼はレーベルL1に行きます。
antlr - この入力をlexするにはどうすればよいですか?
私は現在、ANTLRを使用してJavaで実装された実用的でシンプルな言語を持っています。私がやりたいのは、PHPと同じように、プレーンテキストに埋め込むことです。
例えば:
結果のトークンストリームは次のようになると思います。
どうすればこれを達成できますか、それとももっと良い方法がありますか?
<%
ブロックの外側にある可能性のあるものに制限はありません。Michael Mrozekの答えによると、のようなもの<% print('%>'); %>
が可能であると思いましたが、そのような状況以外では、<%
常にコードブロックの開始を示します。
サンプル実装
私はMichaelMrozekの回答で与えられたアイデアに基づいてソリューションを開発し、ANTLRのゲート付きセマンティック述語を使用してFlexの開始条件をシミュレートしました。