我有一个java.nio.Path指向绝对路径:
/home/user/project/resources/configuration.xml
Run Code Online (Sandbox Code Playgroud)
我有第二个java.nio.Path指向项目的根目录,也是一个绝对路径:
/home/user/project
Run Code Online (Sandbox Code Playgroud)
现在是否可以创建一个java.nio.Path保存两者之间的相对路径:
resources/configuration.xml
Run Code Online (Sandbox Code Playgroud) 我试图解析以下内容:
SELECT name-of-key[random text]
Run Code Online (Sandbox Code Playgroud)
这是我想要构建的更大语法的一部分.为了清楚起见,我把它留下了.
我想出了以下规则:
select : 'select' NAME '[' anything ']'
;
anything : (ANYTHING | NAME)+
;
NAME : ('a'..'z' | 'A'..'Z' | '0'..'9' | '-' | '_')+
;
ANYTHING : (~(']' | '['))+
;
WHITESPACE : ('\t' | ' ' | '\r' | '\n')+ -> skip
;
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.例如,输入SELECT a[hello world!]提供以下错误:
line 1:0 mismatched input 'SELECT a' expecting 'SELECT'
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为输入SELECT a被识别ANYTHING,而不是select.我该如何解决这个问题?我觉得我在这里遗漏了一些概念,但很难开始.