JFlex を使用してスキャナーを生成しようとしています。
私が実装しようとしている文法の識別子規則の 1 つは次のとおりです (正規表現構文)。
[a-zA-Z]((_(?!_)|[a-zA-Z0-9])*[a-zA-Z0-9])?
上記の式が実際に有効で機能することを確認しました。ただし、jFlex 1.4.3 は、"疑問符(?!_)
" について不平を言い続けているため、私の先読みアサーションの使用を好まないようです。私が間違っていることはありますか、それともJFlexで先読みを使用するのに別の方法がありますか?
「先読み」を使用して、識別子名に 2 つの連続したアンダースコアを含めることはできないという規則を満たしています。
どんな助けでも大歓迎です。