%{

#define PLUGINSD_KEYWORD_ID_FLUSH                  97
#define PLUGINSD_KEYWORD_ID_DISABLE                98
#define PLUGINSD_KEYWORD_ID_EXIT                   99
#define PLUGINSD_KEYWORD_ID_HOST                   71
#define PLUGINSD_KEYWORD_ID_HOST_DEFINE            72
#define PLUGINSD_KEYWORD_ID_HOST_DEFINE_END        73
#define PLUGINSD_KEYWORD_ID_HOST_LABEL             74

#define PLUGINSD_KEYWORD_ID_BEGIN                  12
#define PLUGINSD_KEYWORD_ID_CHART                  32
#define PLUGINSD_KEYWORD_ID_CLABEL                 34
#define PLUGINSD_KEYWORD_ID_CLABEL_COMMIT          35
#define PLUGINSD_KEYWORD_ID_DIMENSION              31
#define PLUGINSD_KEYWORD_ID_END                    13
#define PLUGINSD_KEYWORD_ID_FUNCTION               41
#define PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN  42
#define PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS      43
#define PLUGINSD_KEYWORD_ID_LABEL                  51
#define PLUGINSD_KEYWORD_ID_OVERWRITE              52
#define PLUGINSD_KEYWORD_ID_SET                    11
#define PLUGINSD_KEYWORD_ID_VARIABLE               53
#define PLUGINSD_KEYWORD_ID_CONFIG                 100
#define PLUGINSD_KEYWORD_ID_TRUST_DURATIONS        101
#define PLUGINSD_KEYWORD_ID_PLUGIN_KEEPALIVE       102

#define PLUGINSD_KEYWORD_ID_CLAIMED_ID             61
#define PLUGINSD_KEYWORD_ID_BEGIN2                 2
#define PLUGINSD_KEYWORD_ID_SET2                   1
#define PLUGINSD_KEYWORD_ID_END2                   3

#define PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END   33
#define PLUGINSD_KEYWORD_ID_RBEGIN                 22
#define PLUGINSD_KEYWORD_ID_RDSTATE                23
#define PLUGINSD_KEYWORD_ID_REND                   25
#define PLUGINSD_KEYWORD_ID_RSET                   21
#define PLUGINSD_KEYWORD_ID_RSSTATE                24

#define PLUGINSD_KEYWORD_ID_JSON                   80

#define PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE          901
#define PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE 902
#define PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB    903
#define PLUGINSD_KEYWORD_ID_DYNCFG_RESET           904
#define PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS      905
#define PLUGINSD_KEYWORD_ID_DELETE_JOB             906

%}

%struct-type
%omit-struct-type
%define hash-function-name gperf_keyword_hash_function
%define lookup-function-name gperf_lookup_keyword
%define word-array-name gperf_keywords
%define constants-prefix GPERF_PARSER_
%define slot-name keyword
%define initializer-suffix ,0,PARSER_INIT_PLUGINSD,0
%global-table
%readonly-tables
%null-strings
PARSER_KEYWORD;

%%
#
# Plugins Only Keywords
#
FLUSH,           PLUGINSD_KEYWORD_ID_FLUSH,           PARSER_INIT_PLUGINSD,                     WORKER_PARSER_FIRST_JOB + 1
DISABLE,         PLUGINSD_KEYWORD_ID_DISABLE,         PARSER_INIT_PLUGINSD,                     WORKER_PARSER_FIRST_JOB + 2
EXIT,            PLUGINSD_KEYWORD_ID_EXIT,            PARSER_INIT_PLUGINSD,                     WORKER_PARSER_FIRST_JOB + 3
HOST,            PLUGINSD_KEYWORD_ID_HOST,            PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4
HOST_DEFINE,     PLUGINSD_KEYWORD_ID_HOST_DEFINE,     PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5
HOST_DEFINE_END, PLUGINSD_KEYWORD_ID_HOST_DEFINE_END, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6
HOST_LABEL,      PLUGINSD_KEYWORD_ID_HOST_LABEL,      PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7
#
# Common keywords
#
BEGIN,                 PLUGINSD_KEYWORD_ID_BEGIN,                 PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 8
CHART,                 PLUGINSD_KEYWORD_ID_CHART,                 PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA|PARSER_REP_REPLICATION, WORKER_PARSER_FIRST_JOB + 9
CLABEL,                PLUGINSD_KEYWORD_ID_CLABEL,                PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10
CLABEL_COMMIT,         PLUGINSD_KEYWORD_ID_CLABEL_COMMIT,         PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11
DIMENSION,             PLUGINSD_KEYWORD_ID_DIMENSION,             PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12
END,                   PLUGINSD_KEYWORD_ID_END,                   PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 13
FUNCTION,              PLUGINSD_KEYWORD_ID_FUNCTION,              PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14
FUNCTION_RESULT_BEGIN, PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING,                     WORKER_PARSER_FIRST_JOB + 15
FUNCTION_PROGRESS,     PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS,     PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING,                     WORKER_PARSER_FIRST_JOB + 16
LABEL,                 PLUGINSD_KEYWORD_ID_LABEL,                 PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17
OVERWRITE,             PLUGINSD_KEYWORD_ID_OVERWRITE,             PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18
SET,                   PLUGINSD_KEYWORD_ID_SET,                   PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 19
VARIABLE,              PLUGINSD_KEYWORD_ID_VARIABLE,              PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20
CONFIG,                PLUGINSD_KEYWORD_ID_CONFIG,                PARSER_INIT_PLUGINSD|PARSER_REP_METADATA,                       WORKER_PARSER_FIRST_JOB + 21
TRUST_DURATIONS,       PLUGINSD_KEYWORD_ID_TRUST_DURATIONS,       PARSER_INIT_PLUGINSD|PARSER_REP_METADATA,                       WORKER_PARSER_FIRST_JOB + 22
PLUGIN_KEEPALIVE,      PLUGINSD_KEYWORD_ID_PLUGIN_KEEPALIVE,      PARSER_INIT_PLUGINSD,                                           WORKER_PARSER_FIRST_JOB + 23
#
# Streaming only keywords
#
CLAIMED_ID, PLUGINSD_KEYWORD_ID_CLAIMED_ID, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 24
BEGIN2,     PLUGINSD_KEYWORD_ID_BEGIN2,     PARSER_INIT_STREAMING|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 25
SET2,       PLUGINSD_KEYWORD_ID_SET2,       PARSER_INIT_STREAMING|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 26
END2,       PLUGINSD_KEYWORD_ID_END2,       PARSER_INIT_STREAMING|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 27
#
# Streaming Replication keywords
#
CHART_DEFINITION_END, PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END, PARSER_INIT_STREAMING|PARSER_REP_REPLICATION|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 28
RBEGIN,               PLUGINSD_KEYWORD_ID_RBEGIN,               PARSER_INIT_STREAMING|PARSER_REP_REPLICATION|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 29
RSET,                 PLUGINSD_KEYWORD_ID_RSET,                 PARSER_INIT_STREAMING|PARSER_REP_REPLICATION|PARSER_REP_DATA,     WORKER_PARSER_FIRST_JOB + 30
REND,                 PLUGINSD_KEYWORD_ID_REND,                 PARSER_INIT_STREAMING|PARSER_REP_REPLICATION|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 31
RDSTATE,              PLUGINSD_KEYWORD_ID_RDSTATE,              PARSER_INIT_STREAMING|PARSER_REP_REPLICATION|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 32
RSSTATE,              PLUGINSD_KEYWORD_ID_RSSTATE,              PARSER_INIT_STREAMING|PARSER_REP_REPLICATION|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 33
#
# JSON
#
JSON,                 PLUGINSD_KEYWORD_ID_JSON,                 PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 34
#
# obsolete - do nothing commands
#
DYNCFG_ENABLE,          PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE,          PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35
DYNCFG_REGISTER_MODULE, PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36
DYNCFG_REGISTER_JOB,    PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB,    PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37
DYNCFG_RESET,           PLUGINSD_KEYWORD_ID_DYNCFG_RESET,           PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 38
REPORT_JOB_STATUS,      PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS,      PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 39
DELETE_JOB,             PLUGINSD_KEYWORD_ID_DELETE_JOB,             PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 40
