Date 用于解析日期的Antlr4语义谓词
我开始并提出以下开始,但我得到了错误:“调用org.antlr.v4.gui.TestRig.main(args)时出现问题”。如果有人能告诉我我把事情搞砸了,我会很感激的 要分析的表单:dd/mm/yyyyDate 用于解析日期的Antlr4语义谓词,date,antlr4,semantics,predicate,Date,Antlr4,Semantics,Predicate,我开始并提出以下开始,但我得到了错误:“调用org.antlr.v4.gui.TestRig.main(args)时出现问题”。如果有人能告诉我我把事情搞砸了,我会很感激的 要分析的表单:dd/mm/yyyy dd必须介于01和31之间 mm必须介于01和12之间 lexer grammar dates; fragment DIGIT: [0123456789]; DATE : DAY ('/'MONTH+) ('/'YEAR+) {System.out.println(getTe
- dd必须介于01和31之间
- mm必须介于01和12之间
lexer grammar dates; fragment DIGIT: [0123456789]; DATE : DAY ('/'MONTH+) ('/'YEAR+) {System.out.println(getText() + " is a valid Date");}; DAY : TWODIGIT {Integer.parseInt(getText()) >= 1 && Integer.parseInt(getText()) <= 31}?; MONTH : TWODIGIT {Integer.parseInt(getText()) >= 1 && Integer.parseInt(getText()) <= 12}?; YEAR : FOURDIGIT {Integer.parseInt(getText()) >= 2000 && Integer.parseInt(getText()) <= 2100}?; TWODIGIT : DIGIT DIGIT; FOURDIGIT : DIGIT DIGIT DIGIT DIGIT; WS: [\r\n\t]+{skip();};
lexer语法日期; 碎片数字:[0123456789]; 日期:日('/'月+)('/'年+) {System.out.println(getText()+“是有效日期”);}; 日期:两位数
{Integer.parseInt(getText())>=1&&Integer.parseInt(getText())=1&&Integer.parseInt(getText())=2000&&Integer.parseInt(getText())你知道张贴的语法不完整吗?很抱歉,我对Antlr完全陌生,你能解释一下吗?语法声明不见了。你真的需要阅读文档,或者更好的是TDAR,才能正确地学习Antlr。