summaryrefslogtreecommitdiffstats
path: root/grammar/utils.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-07-04 16:00:26 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-07-04 16:00:26 +0200
commit460010068b1d46c23829e7106380ffb8527df949 (patch)
treed8fbd4284d6769f5659d5d4cd6c71d5509c03fa1 /grammar/utils.c
parentbffa39ab9539c0e26dbbfb450f42de93638292e1 (diff)
downloadrsyslog-460010068b1d46c23829e7106380ffb8527df949.tar.gz
rsyslog-460010068b1d46c23829e7106380ffb8527df949.tar.bz2
rsyslog-460010068b1d46c23829e7106380ffb8527df949.zip
milestone: strings and vars are now stored correctly in in-memory representation
Diffstat (limited to 'grammar/utils.c')
-rw-r--r--grammar/utils.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/grammar/utils.c b/grammar/utils.c
index b04274c1..791a8967 100644
--- a/grammar/utils.c
+++ b/grammar/utils.c
@@ -481,6 +481,15 @@ cnfexprPrint(struct cnfexpr *expr, int indent)
doIndent(indent);
printf("%lld\n", ((struct cnfnumval*)expr)->val);
break;
+ case 'V':
+ doIndent(indent);
+ printf("var '%s'\n", ((struct cnfvar*)expr)->name);
+ break;
+ case 'S':
+ doIndent(indent);
+ cstrPrint("string '", ((struct cnfstringval*)expr)->estr);
+ printf("'\n");
+ break;
case '+':
case '-':
case '*':
@@ -522,6 +531,17 @@ cnfstringvalNew(es_str_t *estr)
return strval;
}
+struct cnfvar*
+cnfvarNew(char *name)
+{
+ struct cnfvar *var;
+ if((var = malloc(sizeof(struct cnfvar))) != NULL) {
+ var->nodetype = 'V';
+ var->name = name;
+ }
+ return var;
+}
+
struct cnfrule *
cnfruleNew(enum cnfFiltType filttype, struct cnfactlst *actlst)
{