問題タブ [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.
string - ルールで複数の文字を除外するにはどうすればよいですか?
ANTLRWorksで文字列照合ルールを作成しようとしていますが、エスケープされた引用符または引用符以外の文字のいずれかと照合する必要があります。エスケープされた引用符を一致させることはできますが、他の部分で問題が発生しています。~'\'' | ~'\"'
すべてが一致すること~'\'\"'
になり、文法ジェネレーター(少なくともビジュアルディスプレイ)によって無視されるようです。どの文字シーケンスで私が欲しいものを手に入れることができますか?
vim - vimで「単語」を構成するものは何ですか?
vim atm に以下があるとしましょう:
vimではw、単語を右に移動しますが、「単語」を構成するものは何ですか?
たとえば、 の にカーソルがある場合p、printf
を押すと に移動し、別の を押すと をwスキップしてのにカーソルを置きます。なぜスキップされたのですか?(
w"
h
hello
"
別のキーを押すとw、"
前の)
別の行に移動し、別のキーを押すとw
次の行に移動します。)
とが;
スキップされたのはなぜですか?
そして今、カーソルはr
of にありreturn
ます。awを押すとカーソルが上に移動し0
、別のキーを押すとwカーソルが に移動します;
。したがって、この場合、;
前の行とは異なり、 はスキップされませんでした。どうしてこれなの?
質問が十分に明確になったことを願っていますが、これがどのように機能するかを理解しようとしています。
javascript - ECMAScript 5 仕様のタイプミスの可能性はありますか?
ECMA-262、第 5 版仕様のセクション 7.6 の最後で、非終端記号UnicodeLetter、UnicodeCombiningMark、UnicodeDigit、UnicodeconnectorPunctuation、およびUnicodeEscapeSequenceの後に 2 つのコロンが続かない理由を知っている人はいますか?
セクション 5.1.6 から:
非終端記号はイタリック体で表示されます。非終端記号の定義は、定義されている非終端記号の名前の後に 1 つ以上のコロンを付けることによって導入されます。(コロンの数は、プロダクションがどの文法に属しているかを示します。)
レキシカル プロダクションは 2 つのコロンを持つことで区別され、これは「レキシカル コンベンション」の下にあるため、コロンを入れるつもりだったと推測しています。
これらが本当に非終端記号であり、字句文法の一部であることを確認するだけです。
編集:
これを閉じるための投票があることに気付きました。これがプログラミングに関連している理由を説明すると、ECMAScript インタープリターを実装したいすべての人に関係があります。
parsing - シンボル テーブルでこれらの列に名前を付けるには
yacc を使用して、作成された言語文法の記号テーブルを作成しています。
列 1 には、「変数」または「関数」のいずれかが含まれます。
列 2 には、「int」または「void」のいずれかが含まれます。
1 つの列に「タイプ」という名前を付けることを考えていましたが、もう 1 つの列を何と呼ぶべきかわかりません。
java - 区切り文字が空の Java スキャナ
手書きの降順パーサーを使用してテキストを解析したいと思います。Scanner
次の区切り文字で使用しました: "\\s*"
. 残念ながら、このパターンが空の文字列に一致するという事実は、すべての一致hasNextFoo
とnextFoo
一致するものが何もないように思われます。
ドキュメントは、空のデリミタの可能性について何も述べていません。
algorithm - 単語以外のトークンを使用してテキスト内の単語を認識する方法は?
私は現在、一連のメールを解析しており、メールから単語やその他の興味深いトークンを取得したいと考えています (スペルミスや、「zebra21」や「customer242」などの文字と文字の組み合わせがあっても)。しかし、「0013lCnUieIquYjSuIA」と「anr5Brru2lLngOiEAVk1BTjN」が単語ではなく、関連性がないことをどのように知ることができますか? 単語を抽出し、エラーや pgp 署名の一部、またはメールで受け取ったその他のものをエンコードしているトークンを破棄し、それらに決して興味がないことを知る方法は?
objective-c - scanUpToCharactersFromSet は 1 回のループ後に停止します
CSV ファイルの内容を配列に取り込もうとしています。行ごとに1つのレコードを作成する前にこれを実行し、改行文字を使用して文字セットとしてscanUpToCharactersFromSet:intoString:
渡すと、次のようになります。newlineCharacterSet
現在、エントリ自体の多くに改行文字が含まれているファイルを扱っています。各レコード (文字) の最後に一意の文字を追加しようとしました*
が、ループは 1 回しか実行されません。私が知らないwhileループを壊しているものはありますか? これが私が今使っているコードです:
**編集: ** 以下の Peter の回答のおかげで、スキャナーが * 文字の後ろで動かなくなっていることがわかりました。ループに次の行を追加しました。
そして今、それは正常に機能しています。
compiler-construction - 字句解析ステージは、コンパイル中に文法規則をチェックできますか?
そのようなばかげた質問をしてすみません、しかし私は語彙分析について私の仲間と議論をしました、そして私たちはコミュニティに尋ねることに決めました。
問題は、ステートメント「intsome_variable=;」かどうかです。C文法の字句解析段階または構文分析段階では無効と解釈されます。ありがとう
python - 後で正規表現で一致した番号を評価するにはどうすればよいですか?--Plyを使用したFORTRAN'H'編集記述子の字句解析
Plyを使用してFORTRAN形式の文字列を解釈しています。次の形式の「H」編集記述子に一致する正規表現を記述できません。
x Hccccc ..。
ここで、xは、「H」の後に読み込む文字数を指定します
Plyはトークンを単一の正規表現と照合しますが、正規表現を使用して上記を実行するのに問題があります。私は次のようなものを探しています、
(\d+)[Hh].{\1}
ここで、\1
は整数として解析され、正規表現の一部として評価されますが、そうではありません。
後で同じ正規表現で一致する番号を使用することはできないようですが、これは本当ですか?
Plyを使用する可能性のある他のソリューションはありますか?