diff options
author | Vern Paxson <vern@ee.lbl.gov> | 1993-12-27 14:41:51 +0000 |
---|---|---|
committer | Vern Paxson <vern@ee.lbl.gov> | 1993-12-27 14:41:51 +0000 |
commit | 2f595d6d62d8b94f37c06f478578161204497491 (patch) | |
tree | b8b1485af63287870c6ab2f51f0d946076a269bc /parse.y | |
parent | 9322563cf65f46d0a08b90fe2e518d9d433212d6 (diff) |
%option
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -1,6 +1,7 @@ /* parse.y - parser for flex input */ %token CHAR NUMBER SECTEND SCDECL XSCDECL NAME PREVCCL EOF_OP +%token OPTION_OP OPT_OUTFILE OPT_PREFIX %{ /*- @@ -65,6 +66,7 @@ int *scon_stk; int scon_stk_ptr, max_scon_stk; Char clower(); +char *copy_string(); void build_eof_action(); void yyerror(); @@ -120,6 +122,7 @@ initlex : ; sect1 : sect1 startconddecl namelist1 + | sect1 options | | error { synerr( "unknown error processing section 1" ); } @@ -127,6 +130,7 @@ sect1 : sect1 startconddecl namelist1 sect1end : SECTEND { + check_options(); scon_stk = allocate_integer_array( lastsc + 1 ); scon_stk_ptr = 0; } @@ -149,6 +153,22 @@ namelist1 : namelist1 NAME { synerr( "bad start condition list" ); } ; +options : OPTION_OP optionlist + ; + +optionlist : optionlist option + | + ; + +option : OPT_OUTFILE '=' NAME + { + outfilename = copy_string( nmstr ); + did_outfilename = 1; + } + | OPT_PREFIX '=' NAME + { prefix = copy_string( nmstr ); } + ; + sect2 : sect2 scon initforrule flexrule '\n' { scon_stk_ptr = $2; } | sect2 scon '{' sect2 '}' |