2012-05-26 48 views
0

我在哪裏可以找到所有PostgreSQL關鍵字/標記(如GROUP_P)的詞彙定義?PostgreSQL + GROUP_P的詞彙定義

+2

解析器目錄中存在關鍵字[ch]文件(從不同位置符號鏈接)「精細手冊」末尾還有一個符合性聲明。 – 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) 

它的第一個參數「基團」,也就是該關鍵字時,第二參數GROUP_P通常爲枚舉字段或#定義(它是由所述包入) 。

頭文件src/include/parser/keywords.h由字段提供了一種結構類型ScanKeyword可直接映射到PG_KEYWORD宏,字段:

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