0

JFlex 入力ファイルの字句規則を扱うセクションで、キーワードと正規表現の両方を使用できるようにすることのポイントは何ですか?

そうみたいです

retrieve { action code}

...と

 "retrieve" { action code }

... どちらも "retrieve" を含む入力に一致します。最初のものは正規表現で、2 番目のものはキーワードです。つまり、すべてのキーワードは正規表現の形式で解釈できる必要があるため、両方を許可するのは不必要に思えます。

4

1 に答える 1

1

「キーワード」の意味がよくわかりません。JFlex User's Manualの「Lexical rules」セクションによると、両方の例で正規表現が使用されています。

正規表現retrieve"retrieve"が同等であることは事実ですが、それは、"..."表記法の唯一の効果が正規表現メタ文字を無効にすることであり、retrieve最初から正規表現メタ文字である文字がないためです。(ちなみに、正規表現の一部だけを引用符で囲むこともできます。したがって、たとえば、retrieveも と同等r"et"ri"ev"eです。)

あなたの言語のキーワードの 1 つが (たとえば) である場合、引用符はより便利です。+++***+++その場合、次のいずれかを記述できます。

\+\+\+\*\*\*\+\+\+ { action code }
"+++***+++" { action code }
于 2012-12-21T19:13:59.050 に答える