2012-05-26 2 views
0

GROUP_P와 같은 모든 PostgreSQL 키워드/토큰의 어휘 정의는 어디에서 찾을 수 있습니까?PostgreSQL + GROUP_P의 어휘 정의

+2

구문 분석기 디렉토리에 키워드. [ch] 파일이 있습니다 (여러 위치에서 기호 링크 됨). Fine Manual 끝에 Compliancy 문구가 있습니다. – wildplasser

+0

@wildplasser 감사합니다. 목록이'parser/kwlist.h'에 있다고 생각합니다. 맞습니까? 왜 몇몇 키워드는'_P' 엔딩을 가지고 있습니까? –

+0

나는 아주 희미한 생각이 없습니다. 메타 유형에 대한 명명 규칙이 될 수 있습니다. 어디서 찾았 니? 그것을 위해 소스 트리를 grep 할 수 있습니다. – wildplasser

답변

2

GROUP_P은 키워드가 아니므로 C 컴파일러의 컨텍스트에서 심볼이며 C 소스 코드 외부에서 어휘 적 의미가 없습니다. 이 선언에서

parser/kwlist.h에서 :

PG_KEYWORD("group", GROUP_P, RESERVED_KEYWORD) 

그것이, 제 2 인수 GROUP_P는 일반적으로 열거 필드 또는 정의 # (는 클루까지의) 첫 번째 인수 키워드는 "그룹"되고있는 .

헤더 파일 src/include/parser/keywords.h 필드에 의해 구조체 직접 PG_KEYWORD 매크로에 매핑 할 수 있습니다 유형 ScanKeyword 필드를 제공합니다

typedef struct ScanKeyword 
{ 
    const char *name;   /* in lower case */ 
    int16  value;   /* grammar's token code */ 
    int16  category;  /* see codes above */ 
} ScanKeyword; 

사용의 구체적인 예를 들어, ECPG는 src/interfaces/ecpg/preproc/keywords.c

에서 어떻게하는지 참조