0

GROUP_P など、すべての PostgreSQL キーワード/トークンの字句定義はどこにありますか?

4

1 に答える 1

2

GROUP_Pはキーワードではなく、C コンパイラのコンテキストではシンボルであり、C ソース コードの外では字句上の意味はありません。

からのこの宣言ではparser/kwlist.h:

PG_KEYWORD("group", GROUP_P, RESERVED_KEYWORD)

キーワードは最初の引数 "group" で、2 番目の引数 GROUP_P は通常、列挙型フィールドまたは #define です (インクルーダー次第です)。

ヘッダー ファイルは、フィールドごとに PG_KEYWORD マクロに直接マップできるsrc/include/parser/keywords.h構造体型を提供します。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

于 2012-05-26T16:39:43.463 に答える