2016-10-03 10 views
0

Eclipse eclipse java jdt 파서를 사용하는데 다음과 같은 기능이 누락되었습니다.Java 주석 본체 추출 (//,/*, */사용 안 함)

다음 코드 :

/* 
* comment_body 
*/ 

는 전체 주석 코드를 반환, 내가 무엇을 찾고 있어요 것은 단지 comment_body를 반환하는 코드 인 반면, 다음 코드를 실행

class CommentBodyExtractor extends ASTVisitor { 
    @Override public boolean visit(BlockComment node) { 
    final int start = node.getStartPosition(); 
    final int end = start + node.getLength(); 
    final String comment = source.substring(start, end); 
    System.out.println(comment); 
    return false; 
    } 
} 

. 라인의 시작에서 문자열의 처음부터 /**/ 끝에서와 *을 제거 같은

나는 단순한 문자열 조작을 할 수 있습니다. 그러나 좀 더 우아한 방법 (일부 라이브러리는?)을 사용하고 싶습니다.

+0

[QDox] (https://github.com/paul-hammant/qdox)가 도움이 될 수 있습니까? –

+0

Thanks @ LanceJava 전에이 라이브러리를 사용하지 않았습니다. 시도해 보겠습니다. –

+1

* 모든 사람이 주석 내용에 사용하는 규칙이 없으면 comment_body를 추출하는 좋은 방법을 찾을 수 없습니다. 누구든지 여러 줄 주석의 "왼쪽 여백"에 텍스트를 넣을 수 있습니다. 주석 텍스트가 무엇인지, 그리고 상용구는 무엇인지 어떻게 알 수 있습니까? 이것을 가정 할 수 있습니다. 실제 코드를 깨뜨릴 것을 기대하십시오. –

답변

1

구문 분석기는 입력 텍스트를 처리하기 위해 잘 정의 된 규칙을 필요로합니다. JLS는 /**/ 사이의 텍스트 구조를 정의하지 않으므로 파서는 그다지 많은 작업을 수행 할 수 없습니다.

프로그래밍 방식으로 주석을 조작하려면 JDT 파서가 구조화 된 Javadoc 요소를 만드는 javadoc 주석을 사용하고 원시 텍스트가 아닌 의미 적 내용을 반영해야합니다.