我有一個字符串,表示我試圖解析的函數調用。每個參數可以是另一個函數調用,也可以是一個單詞。我想編寫一個算法來檢索名稱並拆分參數。如何分割函數調用參數
class FunctionCall{
String name;
String[] args;
}
function parseFunction(String func){
FunctionCall fc = new FunctionCall();
fc.name = func.subString(0,func.indexOf("("))
fc.args = ???
}
函數調用可能看起來像func1(func2(arg1, arg2),func3(func4(arg3)),arg4)
,我想String[] args
包含func2(arg1, arg2)
,func3(func4(arg3))
和arg4
。
我不認爲這是可能的正則表達式由於函數調用的遞歸性質。
我用Java編寫代碼,但其他語言都可以。