From ad13976cbabbe56c2759e93679921f6f2b0750d4 Mon Sep 17 00:00:00 2001 From: plvines <paul.vines@baesystems.com> Date: Thu, 20 Feb 2020 09:04:14 -0500 Subject: [PATCH] Moved severity parser allocation to init_parser --- pdf.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pdf.c b/pdf.c index 76798d9..c1fbea1 100644 --- a/pdf.c +++ b/pdf.c @@ -246,6 +246,7 @@ act_nat(const HParseResult *p, void *u) #define act_xroff act_nat #define act_xrgen act_nat +HParser *p_violsev; HParsedToken * act_viol(const HParseResult *p, void *viol) { @@ -253,10 +254,6 @@ act_viol(const HParseResult *p, void *viol) uint offset; HParseResult *severity_parse; viol = (uint8_t *) viol; - H_RULE(viol_preamble, SEQ(h_many(NOT_IN("=")), LIT("="))); - H_RULE(nat, h_action(h_many1(h_action(h_ch_range('0', '9'), act_digit, NULL)), - act_nat, NULL)); - H_RULE(p_violsev, SEQ(IGN(viol_preamble), nat)); severity_parse = h_parse(p_violsev, viol, strlen((char *)viol)); if (!severity_parse) { fprintf(stderr, "Severity for violaiton %s not assigned!\n", (char *)viol); @@ -765,6 +762,13 @@ init_parser(struct Env *aux) p_epsilon = epsilon; p_return_0 = h_action(epsilon, act_return_uint, (void *)0); p_return_1 = h_action(epsilon, act_return_uint, (void *)1); + + /* Parsing of severity messages */ + H_RULE(viol_preamble, SEQ(h_many(NOT_IN("=")), LIT("="))); + H_RULE(severity_num, h_action(h_many1(h_action(h_ch_range('0', '9'), act_digit, NULL)), + act_nat, NULL)); + H_RULE(violsev, SEQ(IGN(viol_preamble), severity_num)); + p_violsev = violsev; } -- GitLab