summaryrefslogtreecommitdiffstats
path: root/include/parser.h
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2009-03-20 08:12:18 +0100
committerPatrick McHardy <kaber@trash.net>2009-03-20 08:12:18 +0100
commit5c40780440c0e8661fc7cfcec72dab48b934631d (patch)
treec6f334da0a6a2bc2fca4e48497408f477fb80fa9 /include/parser.h
parent2ae0ab5fb3eabc149bad1250c681a7a5f2aea694 (diff)
Add support for scoping and symbol binding
As a first step towards stand-alone sets, add support for scoping and binding symbols. This will be used for user-defined constants, as well as declarations of modifiable (stand-alone) sets once the kernel side is ready. Scopes are currently limited to three nesting levels: the global scope, table block scopes and chain block scopes. Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/parser.h')
-rw-r--r--include/parser.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/parser.h b/include/parser.h
index a47bd0f0..f5dd6f4b 100644
--- a/include/parser.h
+++ b/include/parser.h
@@ -2,6 +2,7 @@
#define NFTABLES_PARSER_H
#include <list.h>
+#include <rule.h> // FIXME
#define MAX_INCLUDE_DEPTH 16
#define TABSIZE 8
@@ -10,12 +11,19 @@
#define YYLTYPE_IS_TRIVIAL 0
#define YYENABLE_NLS 0
+#define SCOPE_NEST_MAX 3
+
struct parser_state {
struct input_descriptor *indesc;
struct input_descriptor indescs[MAX_INCLUDE_DEPTH];
unsigned int indesc_idx;
struct list_head *msgs;
+
+ struct scope top_scope;
+ struct scope *scopes[SCOPE_NEST_MAX];
+ unsigned int scope;
+
struct list_head cmds;
};