thom17 / ClangParserProject

0 stars 0 forks source link

Cursor 맴버 정리 #1

Open thom17 opened 6 months ago

thom17 commented 6 months ago

cursor.canonical : 표준화된 또는 기본적인 형태 (헤더파일) cursor.get_definition() : 해당 노드의 정의 구문 (ex A매서드 내 B매서드 호출 하는 exp에서 B의 cpp 구문) cursor.location: 해당 구문의 위치 (파일/라인/컬럼) 하나의 세트 cursor.extent : 해당 구문의 전체 범위로 두 개의 location으로 구성(start, end)

아래 데이터는 enum관련 cursor가 아니면 assert

cursor.enum_type cursor.enum_value

CXX_METHOD node에서 display와 spelling 차이

cursor.display : _changeActiveFixture(UINT, CPoint) cursor.spelling : _changeActiveFixture

CXX_METHOD node에서 의미와 구문의 차이

cursor.semantic_parent: 의미론적 부모로 메서드를 정의한 클래스 내부를 찾게되어 ClassDef Node로 가게된다. (h) cursor.lexical_parent: CXX_METHOD 자체는 문법적으로 cpp에 정의되기에 ComplilationUnit cpp 로 가게 되는것 같다. (#ifdef도 가능)