問題タブ [lexical]
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.
java - Java 字句解析器 (意味論的に分析できる Java コードをマイニングするため)
Java コードの字句解析器が必要です。自分で作成する必要がありますか、それとも既存のツールを使用する必要がありますか? 独自の正規表現を記述せずに、字句アナライザーを Java 字句アナライザーと同じように動作させることは可能ですか?
たとえば、次のようなクラスがある場合:
出力を次のようにしたい
何かアイデアがあれば教えてください..
java - Java で文字列の字句特徴を識別するためのライブラリ
現在、Java の文字列の特別な字句特性を見つける必要があります。
- 総文字数
- アルファベットの総数
- 大文字の総数
- ....それができるライブラリがあるのだろうか?コーディング時間を節約するのは素晴らしいことです。
どうもありがとうございました。
python - `1 < 2` はキーワード `not` がなくてもブール演算の `not_test` ですか?
私はPythonのドキュメント2.76を読んでいます
ドキュメントの表記については、次のとおりです。
垂直バー (|) は、選択肢を区切るために使用されます。これは、この表記法で最も拘束力の低い演算子です。
ここで質問が来ます:
not_test ::= comparison | "not" not_test
のように解析されますnot_test ::= comparison | ("not" not_test)
?1.
が true の場合、有効なcomparison
も有効ですnot_test
。1 < 2
not_test
not
さらに、valid
and_test
は単一の validnot_test
である可能性があるため、1 < 2
validand_test
も同様です。についても同様or_test
です。では、有効な とは何
comparison
ですか?1 < 2
明らかにパターンに適合します。そして、これらのビットごとの比較 expr も有効ですcomparison
。共通しているのは、少なくとも 1 つの演算子 ('>'、'<'、またはビット単位のもの) の存在が必要であることです。(わからない。)ここで奇妙な部分になります。
x and y
たとえば、考えてみましょう。によると
and_test ::= not_test | and_test "and" not_test
and_test ::= not_test | (and_test "and" not_test)
# このように解析されたと思いますか?
が true でx and y
ある場合and_test
( がnot_test
存在するため、 になることはありませんand
)、は valid であるx
必要があり、and_test
これはただ 1 つの valid である可能性がありますnot_test
。そして、あまりにもy
有効でなければなりませnot_test
ん。
Anot_test
は、1 つまたは が前に付いたcomparison
別のいずれかです。したがって、 aは基本的に 0 個以上の s の後に 1 が続きます。ここで重要なのは、 の字句構文です。not_test
not
not_test
not
comparison
comparison
によると4.
、 acomparison
には少なくとも 1 つの演算子が必要です。ただし、これは次の例と競合します。
x = 3、y = 4 を割り当てます。3 and 4
有効なようですand_test
。
しかし、どうすれば有効なの3
かわかりません。どこで私は間違えましたか?4
comparison
compiler-construction - 字句アナライザ: 有限オートマトンによる正規表現の実装?
あいさつ!
ドラゴンブックの第 3 章 (字句解析) を読んでいるうちに、彼らが有限オートマトンについて話し始めるまで、ほとんどすべて (正規表現でトークンを指定する方法) を理解できました。そして、それは字句解析器を説明する上で大きな部分を占めるように思われました。
これで、有限オートマトンの概念は理解できましたが、字句解析器での役割と使用法がわかりません。正規表現でトークンを指定しないのはなぜですか?
前もって感謝します。
c - 単純な字句解析器で文字を文字列として取得する
私はCで単純な字句解析器を実装しようとしています.そして私の問題は文字と文字列に関するものです. 通常、リンクされたリストの挿入では、引数として char を指定します。しかし、キーワードの場合、それらは印刷中に文字列であるため、問題が発生しています:
私の入力は次のとおりです。
通常、次のような出力が得られます。
キーワードの場合にp[0]を与えるべきではないことはわかっています。構造体の定義も調べて、char 語彙素をchar lexemes[]にしましたが、いくつかのエラーが発生しました。C の適切な str クラスを見つけようとしましたが、できませんでした。次のような出力が必要です。
それで、あなたは何を提案しますか?それを達成するにはどうすればよいですか?
language-agnostic - 形容詞語彙の定義
インターネットで、私は形容詞語彙の一般的な意味を読んだことがあります。それは、単語が出現する可能性のある文を参照せずに、物理的な世界または抽象的な概念に関連する単語の意味です。
この単語がさまざまな文脈で使用されているのを見てきました: 字句スコープ、字句解析、字句定数、字句演算子など。
スコープのようなものの前にレキシカルという言葉を使うのはなぜですか? レキシカルの定義とレキシカルスコープの間には何の関係もありません。字句解析、字句定数などについても同様です。
より簡単に参照できるように何かに名前を付けたいと考えていることは理解していますが、なぜ意味のない名前を付けるのでしょうか? それが理にかなっているとしたら、それがどのように機能するかを明確にしていただけますか?
別のスレッドで、C++ におけるレキシカルの意味を尋ねる別のスレッドを見たことがあります。「レキシカル」という用語は、C++ では何を意味しますか?
その質問に対する一番上の回答は、字句がソースコードに関連していることを意味することを説明しています。それでは、私の質問は次のとおりです。ソースコードに関係のないプログラミングはどうですか? あらゆる種類のスコープ、定数、形式のコード分析がソース コードに関連しているのではないでしょうか。また、レキシカルの定義は、ソースコードとの関係の定義とどのように関連していますか?