2016-12-22 4 views
0

자바 저널 기반 주석을 구문 분석하여 자바 소스 코드에서 프로젝트 간 요청 상호 작용 그래프를 작성하는 프로젝트를 진행 중입니다.JavaParser 주석 매개 변수 값 추출

그것은 그

@GET  
@Path("/parameter/{param}") 
public Response getParam(@PathParam("param") String prm) {  

    String output = "Jersey say : " + prm;  
    return Response.status(200).entity(output).build(); 

} 
같은 everythink가

내가 같은 값을 추출 할 때 정보를 분석하고 쉽게 얻을 {방법 : "GET"경로 : "매개 변수/{PARAM}"}

다른 경우

private static final PARAMETER_PATH="/parameter/{param}"; 

@GET  
@Path(PARAMETER_PATH) 
public Response getParam(@PathParam("param") String prm) {  

    String output = "Jersey say : " + prm;  
    return Response.status(200).entity(output).build(); 

} 

또는

,684 있습니다3210

마지막 두 경우에 실제 값을 추출 할 수 없었습니다. 나는 당신의 제안을 기다리고

내가 javaparser, AST 또는 등 정적 소스 코드에서 일하고 있어요 동안

어떻게 변수의 값을 얻을 수 있습니다. 감사합니다. .

답변

2

JavaParser 또는 다른 파서가 생성 한 AST는 값을 계산하지 않습니다. 코드에 3 + 5이있는 경우 이것은 추가이며 파서는이를 해석 할 논리를 가지지 않으므로 8과 동일하다고 결론을 내릴 수 있습니다. 당신은 그 논리를 직접 구현해야 할 것입니다. 기본적으로 자바 용 인터프리터를 만들고 싶습니다. 리터럴, 기본 4 수학 연산 등을 고려하여 몇 가지 기본 연산에 대해 쉽게 수행 할 수 있다고 말합니다. 물론 자바 언어 전체를 고려해 볼 때 매우 빠르게 제어 할 수 없다.

면책 조항 : 저는 JavaParser 제공자입니다.

+0

감사합니다. Federico. VariableDeclarator에서 변수 이름과 값을 추출하고 패키지 이름으로 목록에 추가하려고합니다. 적어도 패키지와 이름을 비교하여 값을 얻기 위해 변수를 목록으로 검색합니다. 당신은 파서로 이것을 할 수있는 쉬운 방법이 없다고 말했다. 기본 인터프리터를 구현해야하는 논리 연산이 필요한 경우 다시 한번 고마워. – Tugrul