diff options
Diffstat (limited to 'grammar')
-rw-r--r-- | grammar/parserif.h | 3 | ||||
-rw-r--r-- | grammar/rainerscript.c | 3 | ||||
-rw-r--r-- | grammar/rainerscript.h | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/grammar/parserif.h b/grammar/parserif.h index 58b8fbdd..adb0f42f 100644 --- a/grammar/parserif.h +++ b/grammar/parserif.h @@ -3,10 +3,11 @@ #include "rainerscript.h" int cnfSetLexFile(char*); int yyparse(); -int yydebug; char *cnfcurrfn; void dbgprintf(char *fmt, ...) __attribute__((format(printf, 1, 2))); void parser_errmsg(char *fmt, ...) __attribute__((format(printf, 1, 2))); +extern int yydebug; +extern int yylineno; /* entry points to be called after the parser has processed the * element in question. Actual processing must than be done inside diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index 0b2ee7cb..43c5a677 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -449,6 +449,8 @@ cnfactlstNew(enum cnfactType actType, struct nvlst *lst, char *actLine) actlst->next = NULL; actlst->syslines = NULL; actlst->actType = actType; + actlst->lineno = yylineno; + actlst->cnfFile = strdup(cnfcurrfn); if(actType == CNFACT_V2) actlst->data.lst = lst; else @@ -484,6 +486,7 @@ cnfactlstDestruct(struct cnfactlst *actlst) while(actlst != NULL) { toDel = actlst; actlst = actlst->next; + free(toDel->cnfFile); cnfcfsyslinelstDestruct(toDel->syslines); if(toDel->actType == CNFACT_V2) nvlstDestruct(toDel->data.lst); diff --git a/grammar/rainerscript.h b/grammar/rainerscript.h index 7cc38abb..e11ae62f 100644 --- a/grammar/rainerscript.h +++ b/grammar/rainerscript.h @@ -86,6 +86,8 @@ struct cnfactlst { struct nvlst *lst; char *legActLine; } data; + char *cnfFile; + int lineno; }; /* the following structures support expressions, and may (very much later |