我在javacc中解析一个url(例如/ books/id/1)。我如何让这个方法返回整个url字符串?如何从javacc方法返回一个字符串?
void path() :
{}
{
(<SLASH> (<IDENTIFIER>))+
}
我试图创建一个令牌吨吸收所有的令牌,但它不工作。
void path() :
{Token t = new Token();}
{
t = ((<SLASH> (<IDENTIFIER>))+)
}
我在javacc中解析一个url(例如/ books/id/1)。我如何让这个方法返回整个url字符串?如何从javacc方法返回一个字符串?
void path() :
{}
{
(<SLASH> (<IDENTIFIER>))+
}
我试图创建一个令牌吨吸收所有的令牌,但它不工作。
void path() :
{Token t = new Token();}
{
t = ((<SLASH> (<IDENTIFIER>))+)
}
我设法使用下面的代码来获取字符串:
String path() :
{String path = "";
Token slash = null;
Token id = null;}
{
(slash = <SLASH> (id = <IDENTIFIER>)
{
path += slash.toString() + id.toString();
})+
{
return path;
}
}
你可以只捕获第一和最后一个记号,然后创建通过遍历导致链表的字符串。见Q5.2的常见问题解答:http://www.engr.mun.ca/~theo/JavaCC-FAQ
恕我直言最好的(也是最准确的方法)是定义一个令牌,然后使用它的方法:
TOKEN:
{
< PATH: (<SLASH> (<IDENTIFIER >))+ >
}
然后,你就可以消耗它在这样的方法:
String path():
{ Token t; }
{
t = <PATH>
{
return t.image;
}
}
我喜欢这样!感谢FAQ链接,它有很多有用的内容! – 2013-04-30 19:41:05