Module Name: src Committed By: rmind Date: Mon Nov 18 21:39:03 UTC 2013
Modified Files: src/usr.sbin/npf/npfctl: npf_parse.y npf_scan.l Log Message: Rename some tokens, use more accurate names (the current ones are incorrect or missleading) and add few comments in the parser code. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/usr.sbin/npf/npfctl/npf_parse.y cvs rdiff -u -r1.14 -r1.15 src/usr.sbin/npf/npfctl/npf_scan.l Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/npf/npfctl/npf_parse.y diff -u src/usr.sbin/npf/npfctl/npf_parse.y:1.27 src/usr.sbin/npf/npfctl/npf_parse.y:1.28 --- src/usr.sbin/npf/npfctl/npf_parse.y:1.27 Fri Nov 8 00:38:26 2013 +++ src/usr.sbin/npf/npfctl/npf_parse.y Mon Nov 18 21:39:03 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_parse.y,v 1.27 2013/11/08 00:38:26 rmind Exp $ */ +/* $NetBSD: npf_parse.y,v 1.28 2013/11/18 21:39:03 rmind Exp $ */ /*- * Copyright (c) 2011-2013 The NetBSD Foundation, Inc. @@ -155,7 +155,7 @@ yyerror(const char *fmt, ...) %token <str> TABLE_ID %token <str> VAR_ID -%type <str> addr, some_name, list_elem, table_store, string +%type <str> addr, some_name, element, table_store, string %type <str> proc_param_val, opt_apply, ifname, on_ifname %type <num> port, opt_final, number, afamily, opt_family %type <num> block_or_pass, rule_dir, group_dir, block_opts @@ -192,7 +192,7 @@ lines ; line - : def + : vardef | table | map | group @@ -201,33 +201,45 @@ line | ; -def +alg + : ALG STRING + { + npfctl_build_alg($2); + } + ; + +/* + * A value - an element or a list of elements. + * Can be assigned to a variable or used inline. + */ + +vardef : VAR_ID { cvar = npfvar_create($1); npfvar_add(cvar); } - EQ definition + EQ value { cvar = NULL; } ; -definition - : list_elem - | listdef +value + : element + | list ; -listdef +list : CURLY_OPEN list_elems CURLY_CLOSE ; list_elems - : list_elem COMMA list_elems - | list_elem + : element COMMA list_elems + | element ; -list_elem +element : IDENTIFIER { npfvar_t *vp = npfvar_create(".identifier"); @@ -267,6 +279,10 @@ list_elem } ; +/* + * Table definition. + */ + table : TABLE TABLE_ID TYPE table_type table_store { @@ -284,6 +300,10 @@ table_store | TFILE STRING { $$ = $2; } ; +/* + * Map definition. + */ + map_sd : TSTATIC { $$ = NPFCTL_NAT_STATIC; } | TDYNAMIC { $$ = NPFCTL_NAT_DYNAMIC; } @@ -319,6 +339,10 @@ map } ; +/* + * Rule procedure definition and its parameters. + */ + rproc : PROCEDURE STRING CURLY_OPEN procs CURLY_CLOSE { @@ -326,13 +350,6 @@ rproc } ; -alg - : ALG STRING - { - npfctl_build_alg($2); - } - ; - procs : proc_call SEPLINE procs { @@ -383,6 +400,10 @@ proc_param_val | { $$ = NULL; } ; +/* + * Group and dynamic ruleset definition. + */ + group : GROUP group_opts { @@ -443,6 +464,10 @@ rule_group | ; +/* + * Rule and misc. + */ + rule : block_or_pass opt_stateful rule_dir opt_final on_ifname opt_family opt_proto all_or_filt_opts opt_apply Index: src/usr.sbin/npf/npfctl/npf_scan.l diff -u src/usr.sbin/npf/npfctl/npf_scan.l:1.14 src/usr.sbin/npf/npfctl/npf_scan.l:1.15 --- src/usr.sbin/npf/npfctl/npf_scan.l:1.14 Tue Nov 12 00:46:34 2013 +++ src/usr.sbin/npf/npfctl/npf_scan.l Mon Nov 18 21:39:03 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_scan.l,v 1.14 2013/11/12 00:46:34 rmind Exp $ */ +/* $NetBSD: npf_scan.l,v 1.15 2013/11/18 21:39:03 rmind Exp $ */ /*- * Copyright (c) 2011-2012 The NetBSD Foundation, Inc. @@ -186,7 +186,7 @@ any return ANY; return TABLE_ID; } -"$"{ID} { +"$"{ID} { yylval.str = estrndup(yytext + 1, yyleng - 1); return VAR_ID; }