我有一个字符串,表示我试图解析的函数调用。每个参数可以是另一个函数调用,也可以是一个单词。我想编写一个算法来检索名称并拆分参数。如何分割函数调用参数
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编写代码,但其他语言都可以。