我试图找出如何提取语法的给定表达式的不同参数。 一条语法规则可能如下所示:
s( X, Y(X,-), T(Y(X,-),X,X) )
首先,我想提取前导字符串,在本例中为s
,然后我想逐步完成所有参数,在这种情况下X
,Y(X,-)
,{{1} }。我也可能根本没有参数,只是T(Y(X,-),X,X)
。
在原始语法中,这样的表达式可能有任意数量的参数,这些参数本身也可能有参数。
目前我收到了以下代码:
s
我不知道应该使用哪个分隔符来获取参数,例如关于示例的Scanner sc = new Scanner(Rule);
String next = new String();
sc.useDelimiter("\\(");
next = sc.next();
//...Do something...//
sc.useDelimiter("");
if(sc.hasNext()){ //Check if there are parameters
sc.useDelimiter("\\)"); //Which delimiter should I use?
while(sc.hasNext()){
next = sc.next();
//...Do something...//
}
} else {
return next;
}
,X
,Y(X,-)
。