구문 분석하려고하는 함수 호출을 나타내는 String이 있습니다. 각 인수는 다른 함수 호출이거나 단일 단어 일 수 있습니다. 이름을 검색 할 알고리즘을 작성하고 args를 분할하고 싶습니다.함수 호출에 대한 인수를 분할하는 방법
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로 코드를 작성했지만 다른 언어로 작성하는 것이 좋습니다.