1

IDの識別:

ID  :   ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
    ;

ルールを解析すると、char'a'のみが認識されませんが、'A'または'aa'または'a0'または'b'または'c'または'AAAZzzzxx'または....を除く宇宙の他のすべて「a」はレクサーで認識できます。なぜ「a」ではないのですか?

エラー :

mismatched input 'a' expecting 'u0005'

ありがとう!

4

1 に答える 1

-1

ルールはゼロ文字に一致する可能性があるため、レクサーは混乱します。必要なもの:

ID  :   ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')+
;

'*'の代わりに'+'を参照してください?

ジム

于 2012-12-12T03:44:24.613 に答える