文法の特定の式のさまざまなパラメーターを抽出する方法を理解しようとしています。1つの文法規則は次のようになります。
s( X, Y(X,-), T(Y(X,-),X,X) )
最初に先頭の文字列(この場合)を抽出し、s
次にすべてのパラメーター(この場合は、、、)をステップスルーX
しY(X,-)
ます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,-)
T(Y(X,-),X,X)