問題タブ [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.
lexical-analysis - この lex ファイルの何が問題になっていますか?
Makefile があるので、入力すると make 次のコマンドが実行されます。
しかし、その後、次のエラーメッセージが表示されます。
これがcalclexerの中身です。どうすれば修正できますか?
compiler-construction - このプログラム文法は「ID」という名前の変数のみを認識しますか?
次の文法に基づいて、トークンを見つけるために lex/flex でスキャナーを作成し、yacc/bison でこれらのトークンを処理するパーサーを作成する必要があります。スキャナーを作成している最中に、この言語の変数、関数、および配列には「ID」という名前しか付けられないことに気付きました。この yacc ファイルを読み間違えていますか?
yacc - レクサーは、パーサーが使用するセマンティック値をどのように返しますか?
そうすることは常に必要ですか?それはどのように見えますか?
grammar - flex と yacc で作成したプログラムで構文エラーが発生するのはなぜですか?
簡単な文法を認識するプログラムを作りました。有効なステートメントであると思われるものを入力すると、エラーが発生します。具体的には、入力すると
int a;
int b;
うまくいきません。int a; と入力した後 プログラムが反響します。何らかの理由で。次に、int b; と入力すると、構文エラーが発生します。
lex ファイル:
yacc ファイル:
grammar - flex から yacc にリテラルを返す方法は?
私の yacc ファイルには、次のようなものがあります。
ID、NUM、INT、および VOID は flex から返されるトークンであるため、yacc はそれらを問題なく認識します。問題は、上記に「[」や「;」のようなものがあることです。これらが flex によって認識された場合、yacc には何を返す必要がありますか?
regex - flexで正規表現[\[\];]を使用する
フレックスファイルに次のものがある場合、それは何をしますか?
grammar - flex/yacc で作成したプログラムが常に識別子を認識しない
簡単な文法を認識するプログラムを作りました。有効なステートメントであると思われるものを入力すると、エラーが発生します。具体的には、識別子から始めると、自動的に構文エラーが発生します。ただし、「int」が前に付いている場合、識別子を使用してもエラーが発生しないことに気付きました。a が識別子の場合、「int a;」と入力すると これで結構です。しかし、「a = 3」と入力すると、エラーが発生します。a を単独で入力すると、エラーが発生します。
lex ファイル:
yacc ファイル
gcc - 私の flex/yacc プログラムは、2 つの異なる Linux マシンで異なる方法でコンパイルされます
1 台 1 台のマシンで、すべてが正常にコンパイルされます。別のマシンでは、gcc を使用して出力ファイルを作成すると、-ly オプションについて不平を言います。-ly オプションを削除すると、プログラムは作成されますが、実行方法が異なります。何が起こっていますか。この Linux マシンでプログラムを正しく実行するにはどうすればよいですか?
python - 複数の正規表現グループを照合して削除する
有用なデータを抽出したいファイルが与えられました。ファイルの形式は次のようになります。
等...
私がやりたいのは、LINE:と行番号およびTOKENKIND:を削除することです。そのため、「somedatasomedatesomedata...」で構成される文字列が残ります。
私はこれを行うためにPythonを使用しており、削除したいファイルのビットと一致する正規表現(正しいかどうかはわかりません)を使用しています。
私の質問は、Pythonで複数の正規表現グループを一致させてそれらを無視し、正規表現と一致しないものを出力文字列に追加するにはどうすればよいですか?私の現在のコードは次のようになります。