私のAntlr3文法では、次のレクサールールを使用して、「1YEAR4MONTHS」などの一定の日付期間を認識しました。
(DATE_PERIOD_CONSTANT)=> DATE_PERIOD_CONSTANT ((' '+ DATE_PERIOD_CONSTANT)=> ' '+ DATE_PERIOD_CONSTANT)*
(クレジットが必要なクレジット、それはバート・キアーズから来ました)。
残念ながら、その構文はANTLR4ではなくなりました。だから、私は次のことを試みましたが失敗しました:
DATE_PERIOD_CONSTANT
: (INTEGER ' '+ (YEAR | MONTH | WEEK | DAY))+
| {getText().matches("(\\d+ (YEAR(S)?|MONTH(S)?|WEEK(S)?|DAY(S)?))+")}? INTEGER
;
INTEGER
: DIGIT+
;
fragment DIGIT:'0'..'9';
// YEAR/MONTH/WEEK/DAY definition
それも失敗しました。
誰かが私が新しいフォーマットに翻訳するのを手伝ってもらえますか?
ジェイソン