0
すべて。私はANTLR4文法は、文の一部のみを受け入れる。
は
* * 5、私は文字列を解析
0123を:私は00 */3,5私の問題を発見するためにアメリカ/ニューヨーク
を文法(大きな文法のそれの一部)を作成しました 4入力でのノー実行可能な代替 '/'
ライン1の例外を以下しています
私が発見したように、問題は部分文字列/3,5が "with_step_value"ルールで完全に解析されるということです。パーサーは最初のsybmbolだけを取得します。しかし、なぜ?私は理解しているように、ANTLR「with_step_value」ルールに満足ビューの私のpoindで「/3,5」彼ができると列として
だから、なぜそれのhappendsとどのようにそれを修正する限り、文字列を解析してみては?
よろしく、 ウラジミール
してくださいは、文法や絵が
/*File trigger validator lexer */ lexer grammar CronPartLexer; INT_LIST: INTEGER (COMMA INTEGER)* ; INTERVAL : INTEGER DASH INTEGER ; INTEGER : [0-9]+ ; DASH : '-' ; SLASH : '/' ; COMMA : ',' ; UNDERSCORE : '_' ; ID : [a-zA-Z] [a-zA-Z0-9]* ; ASTERISK:'*'; WS : [ \t\r\n]+ -> skip ; grammar CronPartValidator; options { tokenVocab = CronPartLexer; } cron_part : minutes hours days_of_month month week_days time_zone?; minutes : with_step_value ; time_zone : timezone_part ( SLASH timezone_part )? ; timezone_part : ID ( UNDERSCORE ID )? ; hours : with_step_value ; // // days_of_month : with_step_value ; // month : with_step_value ; // week_days : with_step_value ; with_step_value: INT_LIST|ASTERISK|INTERVAL ((SLASH INT_LIST)?) ;
'cron_part'ルールは無効であると定義された' minute'ルールはありません。また、2つの画像は実際には同じです。投稿された文法が実際に報告された問題を再現することを確認してください。 – GRosenberg
申し訳ありませんが、私は "分"ルールを意味します。私は文法でそれを持っている –