summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvkalintiris <vasilis@netdata.cloud>2024-01-16 13:35:31 +0200
committerGitHub <noreply@github.com>2024-01-16 13:35:31 +0200
commitd2463170f62e736fcb0cb1235fd28f46729a54aa (patch)
treee91227d06040e907283597a3ee507c9b20d505d8
parent9665db92941a5fc5e84660bb711dbd0d357fb074 (diff)
Use named constants for keyword tokens. (#16787)
* name integer constants in keyword switch. * Update gperf config. - Use initializer suffix to silence warnings when enabling all warnings. - Mark the generated table as const * Fix pointer to bool conversion warwning ``` collectors/plugins.d/pluginsd_parser.c:798:37: warning: address of 'parser->user' will always evaluate to 'true' [-Wpointer-bool-conversion] _Bool can_copy = ((&parser->user) && ((&parser->user)->capabilities & (STREAM_CAP_IEEE754)) == (STREAM_CAP_IEEE754)) == ((&parser->user.v2.stream_buffer) && ((&parser->user.v2.stream_buffer)->capabilities & (STREAM_CAP_IEEE754)) == (STREAM_CAP_IEEE754)); ~~~~~~~~^~~~ ~~ ``` * Revert "Fix pointer to bool conversion warwning" This reverts commit 01171d03126411999764196986ffbf163a7df1f3. * Return parser error when handling an unknown keyword.
-rw-r--r--collectors/plugins.d/gperf-config.txt124
-rw-r--r--collectors/plugins.d/gperf-hashtable.h223
-rw-r--r--collectors/plugins.d/pluginsd_parser.c117
-rw-r--r--collectors/plugins.d/pluginsd_parser.h10
4 files changed, 271 insertions, 203 deletions
diff --git a/collectors/plugins.d/gperf-config.txt b/collectors/plugins.d/gperf-config.txt
index 3682b1529d..721b771b77 100644
--- a/collectors/plugins.d/gperf-config.txt
+++ b/collectors/plugins.d/gperf-config.txt
@@ -1,3 +1,49 @@
+%{
+
+#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_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_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
@@ -5,60 +51,62 @@
%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, 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1
-DISABLE, 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2
-EXIT, 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3
-HOST, 71, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4
-HOST_DEFINE, 72, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5
-HOST_DEFINE_END, 73, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6
-HOST_LABEL, 74, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7
+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, 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8
-CHART, 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9
-CLABEL, 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10
-CLABEL_COMMIT, 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11
-DIMENSION, 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12
-END, 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13
-FUNCTION, 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14
-FUNCTION_RESULT_BEGIN, 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15
-FUNCTION_PROGRESS, 43, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16
-#
-LABEL, 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17
-OVERWRITE, 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18
-SET, 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19
-VARIABLE, 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20
-CONFIG, 100, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21
+BEGIN, PLUGINSD_KEYWORD_ID_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8
+CHART, PLUGINSD_KEYWORD_ID_CHART, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, 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, 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, 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
#
# Streaming only keywords
#
-CLAIMED_ID, 61, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22
-BEGIN2, 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23
-SET2, 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24
-END2, 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25
+CLAIMED_ID, PLUGINSD_KEYWORD_ID_CLAIMED_ID, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22
+BEGIN2, PLUGINSD_KEYWORD_ID_BEGIN2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23
+SET2, PLUGINSD_KEYWORD_ID_SET2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24
+END2, PLUGINSD_KEYWORD_ID_END2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25
#
# Streaming Replication keywords
#
-CHART_DEFINITION_END, 33, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26
-RBEGIN, 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27
-RDSTATE, 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28
-REND, 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29
-RSET, 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30
-RSSTATE, 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31
+CHART_DEFINITION_END, PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26
+RBEGIN, PLUGINSD_KEYWORD_ID_RBEGIN, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27
+RDSTATE, PLUGINSD_KEYWORD_ID_RDSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28
+REND, PLUGINSD_KEYWORD_ID_REND, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29
+RSET, PLUGINSD_KEYWORD_ID_RSET, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30
+RSSTATE, PLUGINSD_KEYWORD_ID_RSSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31
#
# obsolete - do nothing commands
#
-DYNCFG_ENABLE, 901, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32
-DYNCFG_REGISTER_MODULE, 902, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33
-DYNCFG_REGISTER_JOB, 903, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34
-DYNCFG_RESET, 904, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35
-REPORT_JOB_STATUS, 905, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36
-DELETE_JOB, 906, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37
+DYNCFG_ENABLE, PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32
+DYNCFG_REGISTER_MODULE, PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33
+DYNCFG_REGISTER_JOB, PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34
+DYNCFG_RESET, PLUGINSD_KEYWORD_ID_DYNCFG_RESET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35
+REPORT_JOB_STATUS, PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36
+DELETE_JOB, PLUGINSD_KEYWORD_ID_DELETE_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37
diff --git a/collectors/plugins.d/gperf-hashtable.h b/collectors/plugins.d/gperf-hashtable.h
index 862fbb1b26..315e2f7c76 100644
--- a/collectors/plugins.d/gperf-hashtable.h
+++ b/collectors/plugins.d/gperf-hashtable.h
@@ -29,6 +29,51 @@
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
+#line 1 "gperf-config.txt"
+
+
+#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_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_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
+
#define GPERF_PARSER_TOTAL_KEYWORDS 37
#define GPERF_PARSER_MIN_WORD_LENGTH 3
@@ -47,7 +92,7 @@ inline
static unsigned int
gperf_keyword_hash_function (register const char *str, register size_t len)
{
- static unsigned char asso_values[] =
+ static const unsigned char asso_values[] =
{
53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
@@ -79,95 +124,101 @@ gperf_keyword_hash_function (register const char *str, register size_t len)
return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
}
-static PARSER_KEYWORD gperf_keywords[] =
+static const PARSER_KEYWORD gperf_keywords[] =
{
- {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
- {(char*)0}, {(char*)0}, {(char*)0},
-#line 18 "gperf-config.txt"
- {"HOST", 71, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4},
- {(char*)0},
-#line 39 "gperf-config.txt"
- {"CONFIG", 100, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21},
-#line 53 "gperf-config.txt"
- {"REND", 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29},
-#line 26 "gperf-config.txt"
- {"CHART", 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9},
-#line 36 "gperf-config.txt"
- {"OVERWRITE", 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18},
-#line 21 "gperf-config.txt"
- {"HOST_LABEL", 74, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7},
-#line 19 "gperf-config.txt"
- {"HOST_DEFINE", 72, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5},
- {(char*)0},
-#line 52 "gperf-config.txt"
- {"RDSTATE", 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28},
-#line 38 "gperf-config.txt"
- {"VARIABLE", 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20},
-#line 20 "gperf-config.txt"
- {"HOST_DEFINE_END", 73, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6},
-#line 17 "gperf-config.txt"
- {"EXIT", 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3},
-#line 31 "gperf-config.txt"
- {"FUNCTION", 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14},
-#line 62 "gperf-config.txt"
- {"DYNCFG_RESET", 904, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35},
-#line 59 "gperf-config.txt"
- {"DYNCFG_ENABLE", 901, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32},
-#line 63 "gperf-config.txt"
- {"REPORT_JOB_STATUS", 905, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36},
- {(char*)0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 67 "gperf-config.txt"
+ {"HOST", PLUGINSD_KEYWORD_ID_HOST, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 87 "gperf-config.txt"
+ {"CONFIG", PLUGINSD_KEYWORD_ID_CONFIG, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21},
+#line 101 "gperf-config.txt"
+ {"REND", PLUGINSD_KEYWORD_ID_REND, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29},
+#line 75 "gperf-config.txt"
+ {"CHART", PLUGINSD_KEYWORD_ID_CHART, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9},
+#line 84 "gperf-config.txt"
+ {"OVERWRITE", PLUGINSD_KEYWORD_ID_OVERWRITE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18},
+#line 70 "gperf-config.txt"
+ {"HOST_LABEL", PLUGINSD_KEYWORD_ID_HOST_LABEL, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7},
+#line 68 "gperf-config.txt"
+ {"HOST_DEFINE", PLUGINSD_KEYWORD_ID_HOST_DEFINE, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 100 "gperf-config.txt"
+ {"RDSTATE", PLUGINSD_KEYWORD_ID_RDSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28},
+#line 86 "gperf-config.txt"
+ {"VARIABLE", PLUGINSD_KEYWORD_ID_VARIABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20},
+#line 69 "gperf-config.txt"
+ {"HOST_DEFINE_END", PLUGINSD_KEYWORD_ID_HOST_DEFINE_END, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6},
+#line 66 "gperf-config.txt"
+ {"EXIT", PLUGINSD_KEYWORD_ID_EXIT, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3},
+#line 80 "gperf-config.txt"
+ {"FUNCTION", PLUGINSD_KEYWORD_ID_FUNCTION, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14},
+#line 110 "gperf-config.txt"
+ {"DYNCFG_RESET", PLUGINSD_KEYWORD_ID_DYNCFG_RESET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35},
+#line 107 "gperf-config.txt"
+ {"DYNCFG_ENABLE", PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32},
+#line 111 "gperf-config.txt"
+ {"REPORT_JOB_STATUS", PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 112 "gperf-config.txt"
+ {"DELETE_JOB", PLUGINSD_KEYWORD_ID_DELETE_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37},
+#line 98 "gperf-config.txt"
+ {"CHART_DEFINITION_END", PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 109 "gperf-config.txt"
+ {"DYNCFG_REGISTER_JOB", PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34},
+#line 82 "gperf-config.txt"
+ {"FUNCTION_PROGRESS", PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16},
+#line 99 "gperf-config.txt"
+ {"RBEGIN", PLUGINSD_KEYWORD_ID_RBEGIN, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27},
+#line 108 "gperf-config.txt"
+ {"DYNCFG_REGISTER_MODULE", PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 81 "gperf-config.txt"
+ {"FUNCTION_RESULT_BEGIN", PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15},
+#line 102 "gperf-config.txt"
+ {"RSET", PLUGINSD_KEYWORD_ID_RSET, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30},
+#line 74 "gperf-config.txt"
+ {"BEGIN", PLUGINSD_KEYWORD_ID_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8},
+#line 92 "gperf-config.txt"
+ {"BEGIN2", PLUGINSD_KEYWORD_ID_BEGIN2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23},
+#line 103 "gperf-config.txt"
+ {"RSSTATE", PLUGINSD_KEYWORD_ID_RSSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31},
#line 64 "gperf-config.txt"
- {"DELETE_JOB", 906, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37},
-#line 50 "gperf-config.txt"
- {"CHART_DEFINITION_END", 33, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26},
- {(char*)0},
-#line 61 "gperf-config.txt"
- {"DYNCFG_REGISTER_JOB", 903, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34},
-#line 33 "gperf-config.txt"
- {"FUNCTION_PROGRESS", 43, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16},
-#line 51 "gperf-config.txt"
- {"RBEGIN", 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27},
-#line 60 "gperf-config.txt"
- {"DYNCFG_REGISTER_MODULE", 902, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33},
- {(char*)0},
-#line 32 "gperf-config.txt"
- {"FUNCTION_RESULT_BEGIN", 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15},
-#line 54 "gperf-config.txt"
- {"RSET", 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30},
-#line 25 "gperf-config.txt"
- {"BEGIN", 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8},
-#line 44 "gperf-config.txt"
- {"BEGIN2", 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23},
-#line 55 "gperf-config.txt"
- {"RSSTATE", 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31},
-#line 15 "gperf-config.txt"
- {"FLUSH", 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1},
-#line 37 "gperf-config.txt"
- {"SET", 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19},
-#line 45 "gperf-config.txt"
- {"SET2", 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24},
- {(char*)0},
-#line 27 "gperf-config.txt"
- {"CLABEL", 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10},
-#line 16 "gperf-config.txt"
- {"DISABLE", 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2},
-#line 35 "gperf-config.txt"
- {"LABEL", 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17},
-#line 29 "gperf-config.txt"
- {"DIMENSION", 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12},
-#line 43 "gperf-config.txt"
- {"CLAIMED_ID", 61, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22},
- {(char*)0}, {(char*)0},
-#line 28 "gperf-config.txt"
- {"CLABEL_COMMIT", 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11},
- {(char*)0},
-#line 30 "gperf-config.txt"
- {"END", 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13},
-#line 46 "gperf-config.txt"
- {"END2", 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25}
+ {"FLUSH", PLUGINSD_KEYWORD_ID_FLUSH, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1},
+#line 85 "gperf-config.txt"
+ {"SET", PLUGINSD_KEYWORD_ID_SET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19},
+#line 93 "gperf-config.txt"
+ {"SET2", PLUGINSD_KEYWORD_ID_SET2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 76 "gperf-config.txt"
+ {"CLABEL", PLUGINSD_KEYWORD_ID_CLABEL, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10},
+#line 65 "gperf-config.txt"
+ {"DISABLE", PLUGINSD_KEYWORD_ID_DISABLE, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2},
+#line 83 "gperf-config.txt"
+ {"LABEL", PLUGINSD_KEYWORD_ID_LABEL, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17},
+#line 78 "gperf-config.txt"
+ {"DIMENSION", PLUGINSD_KEYWORD_ID_DIMENSION, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12},
+#line 91 "gperf-config.txt"
+ {"CLAIMED_ID", PLUGINSD_KEYWORD_ID_CLAIMED_ID, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 77 "gperf-config.txt"
+ {"CLABEL_COMMIT", PLUGINSD_KEYWORD_ID_CLABEL_COMMIT, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11},
+ {(char*)0,0,PARSER_INIT_PLUGINSD,0},
+#line 79 "gperf-config.txt"
+ {"END", PLUGINSD_KEYWORD_ID_END, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13},
+#line 94 "gperf-config.txt"
+ {"END2", PLUGINSD_KEYWORD_ID_END2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25}
};
-PARSER_KEYWORD *
+const PARSER_KEYWORD *
gperf_lookup_keyword (register const char *str, register size_t len)
{
if (len <= GPERF_PARSER_MAX_WORD_LENGTH && len >= GPERF_PARSER_MIN_WORD_LENGTH)
diff --git a/collectors/plugins.d/pluginsd_parser.c b/collectors/plugins.d/pluginsd_parser.c
index c7ecd2b765..8d03f8b8ca 100644
--- a/collectors/plugins.d/pluginsd_parser.c
+++ b/collectors/plugins.d/pluginsd_parser.c
@@ -1264,118 +1264,87 @@ inline size_t pluginsd_process(RRDHOST *host, struct plugind *cd, FILE *fp_plugi
return count;
}
-PARSER_RC parser_execute(PARSER *parser, PARSER_KEYWORD *keyword, char **words, size_t num_words) {
+#include "gperf-hashtable.h"
+
+PARSER_RC parser_execute(PARSER *parser, const PARSER_KEYWORD *keyword, char **words, size_t num_words) {
switch(keyword->id) {
- case 1:
+ case PLUGINSD_KEYWORD_ID_SET2:
return pluginsd_set_v2(words, num_words, parser);
-
- case 2:
+ case PLUGINSD_KEYWORD_ID_BEGIN2:
return pluginsd_begin_v2(words, num_words, parser);
-
- case 3:
+ case PLUGINSD_KEYWORD_ID_END2:
return pluginsd_end_v2(words, num_words, parser);
-
- case 11:
+ case PLUGINSD_KEYWORD_ID_SET:
return pluginsd_set(words, num_words, parser);
-
- case 12:
+ case PLUGINSD_KEYWORD_ID_BEGIN:
return pluginsd_begin(words, num_words, parser);
-
- case 13:
+ case PLUGINSD_KEYWORD_ID_END:
return pluginsd_end(words, num_words, parser);
-
- case 21:
+ case PLUGINSD_KEYWORD_ID_RSET:
return pluginsd_replay_set(words, num_words, parser);
-
- case 22:
+ case PLUGINSD_KEYWORD_ID_RBEGIN:
return pluginsd_replay_begin(words, num_words, parser);
-
- case 23:
+ case PLUGINSD_KEYWORD_ID_RDSTATE:
return pluginsd_replay_rrddim_collection_state(words, num_words, parser);
-
- case 24:
+ case PLUGINSD_KEYWORD_ID_RSSTATE:
return pluginsd_replay_rrdset_collection_state(words, num_words, parser);
-
- case 25:
+ case PLUGINSD_KEYWORD_ID_REND:
return pluginsd_replay_end(words, num_words, parser);
-
- case 31:
+ case PLUGINSD_KEYWORD_ID_DIMENSION:
return pluginsd_dimension(words, num_words, parser);
-
- case 32:
+ case PLUGINSD_KEYWORD_ID_CHART:
return pluginsd_chart(words, num_words, parser);
-
- case 33:
+ case PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END:
return pluginsd_chart_definition_end(words, num_words, parser);
-
- case 34:
+ case PLUGINSD_KEYWORD_ID_CLABEL:
return pluginsd_clabel(words, num_words, parser);
-
- case 35:
+ case PLUGINSD_KEYWORD_ID_CLABEL_COMMIT:
return pluginsd_clabel_commit(words, num_words, parser);
-
- case 41:
+ case PLUGINSD_KEYWORD_ID_FUNCTION:
return pluginsd_function(words, num_words, parser);
-
- case 42:
+ case PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN:
return pluginsd_function_result_begin(words, num_words, parser);
-
- case 43:
+ case PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS:
return pluginsd_function_progress(words, num_words, parser);
-
- case 51:
+ case PLUGINSD_KEYWORD_ID_LABEL:
return pluginsd_label(words, num_words, parser);
-
- case 52:
+ case PLUGINSD_KEYWORD_ID_OVERWRITE:
return pluginsd_overwrite(words, num_words, parser);
-
- case 53:
+ case PLUGINSD_KEYWORD_ID_VARIABLE:
return pluginsd_variable(words, num_words, parser);
-
- case 61:
+ case PLUGINSD_KEYWORD_ID_CLAIMED_ID:
return streaming_claimed_id(words, num_words, parser);
-
- case 71:
+ case PLUGINSD_KEYWORD_ID_HOST:
return pluginsd_host(words, num_words, parser);
-
- case 72:
+ case PLUGINSD_KEYWORD_ID_HOST_DEFINE:
return pluginsd_host_define(words, num_words, parser);
-
- case 73:
+ case PLUGINSD_KEYWORD_ID_HOST_DEFINE_END:
return pluginsd_host_define_end(words, num_words, parser);
-
- case 74:
+ case PLUGINSD_KEYWORD_ID_HOST_LABEL:
return pluginsd_host_labels(words, num_words, parser);
-
- case 97:
+ case PLUGINSD_KEYWORD_ID_FLUSH:
return pluginsd_flush(words, num_words, parser);
-
- case 98:
+ case PLUGINSD_KEYWORD_ID_DISABLE:
return pluginsd_disable(words, num_words, parser);
-
- case 99:
+ case PLUGINSD_KEYWORD_ID_EXIT:
return pluginsd_exit(words, num_words, parser);
-
- case 100:
+ case PLUGINSD_KEYWORD_ID_CONFIG:
return pluginsd_config(words, num_words, parser);
- case 901:
- case 902:
- case 903:
- case 904:
- case 905:
- case 906:
+ case PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE:
+ case PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE:
+ case PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB:
+ case PLUGINSD_KEYWORD_ID_DYNCFG_RESET:
+ case PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS:
+ case PLUGINSD_KEYWORD_ID_DELETE_JOB:
return pluginsd_dyncfg_noop(words, num_words, parser);
default:
- break;
+ netdata_log_error("Unknown keyword '%s' with id %zu", keyword->keyword, keyword->id);
+ return PARSER_RC_ERROR;;
}
-
- fatal("Unknown keyword '%s' with id %zu", keyword->keyword, keyword->id);
}
-#include "gperf-hashtable.h"
-
void parser_init_repertoire(PARSER *parser, PARSER_REPERTOIRE repertoire) {
parser->repertoire = repertoire;
@@ -1409,7 +1378,7 @@ int pluginsd_parser_unittest(void) {
strncpyz(input, lines[line], PLUGINSD_LINE_MAX);
size_t num_words = quoted_strings_splitter_pluginsd(input, words, PLUGINSD_MAX_WORDS);
const char *command = get_word(words, num_words, 0);
- PARSER_KEYWORD *keyword = parser_find_keyword(p, command);
+ const PARSER_KEYWORD *keyword = parser_find_keyword(p, command);
if(unlikely(!keyword))
fatal("Cannot parse the line '%s'", lines[line]);
count++;
diff --git a/collectors/plugins.d/pluginsd_parser.h b/collectors/plugins.d/pluginsd_parser.h
index d769c0f85c..d317a77bee 100644
--- a/collectors/plugins.d/pluginsd_parser.h
+++ b/collectors/plugins.d/pluginsd_parser.h
@@ -112,7 +112,7 @@ typedef struct parser {
struct buffered_reader reader;
struct line_splitter line;
- PARSER_KEYWORD *keyword;
+ const PARSER_KEYWORD *keyword;
struct {
const char *end_keyword;
@@ -137,7 +137,7 @@ void parser_init_repertoire(PARSER *parser, PARSER_REPERTOIRE repertoire);
void parser_destroy(PARSER *working_parser);
void pluginsd_cleanup_v2(PARSER *parser);
void pluginsd_keywords_init(PARSER *parser, PARSER_REPERTOIRE repertoire);
-PARSER_RC parser_execute(PARSER *parser, PARSER_KEYWORD *keyword, char **words, size_t num_words);
+PARSER_RC parser_execute(PARSER *parser, const PARSER_KEYWORD *keyword, char **words, size_t num_words);
static inline int find_first_keyword(const char *src, char *dst, int dst_size, bool *isspace_map) {
const char *s = src, *keyword_start;
@@ -153,10 +153,10 @@ static inline int find_first_keyword(const char *src, char *dst, int dst_size, b
return dst_size == 0 ? 0 : (int) (s - keyword_start);
}
-PARSER_KEYWORD *gperf_lookup_keyword(register const char *str, register size_t len);
+const PARSER_KEYWORD *gperf_lookup_keyword(register const char *str, register size_t len);
-static inline PARSER_KEYWORD *parser_find_keyword(PARSER *parser, const char *command) {
- PARSER_KEYWORD *t = gperf_lookup_keyword(command, strlen(command));
+static inline const PARSER_KEYWORD *parser_find_keyword(PARSER *parser, const char *command) {
+ const PARSER_KEYWORD *t = gperf_lookup_keyword(command, strlen(command));
if(t && (t->repertoire & parser->repertoire))
return t;