From ff2a5a7404a04ae9da300132a16671a36897a6b5 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Sun, 26 Dec 1993 15:02:58 +0000 Subject: [PATCH] Added in_rule, doing_rule_action --- scan.l | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/scan.l b/scan.l index 5b7dbb5..9625ec3 100644 --- a/scan.l +++ b/scan.l @@ -81,6 +81,7 @@ CCL_CHAR ([^\\\n\]]|{ESCSEQ}) %% static int bracelevel, didadef, indented_code, checking_used; + static int doing_rule_action = false; int doing_codeblock = false; int i; @@ -258,7 +259,13 @@ CCL_CHAR ([^\\\n\]]|{ESCSEQ}) {WS}"%{" { bracelevel = 1; BEGIN(PERCENT_BRACE_ACTION); - return '\n'; + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } } {WS}"|".*{NL} continued_action = true; ++linenum; return '\n'; @@ -270,7 +277,13 @@ CCL_CHAR ([^\\\n\]]|{ESCSEQ}) bracelevel = 0; continued_action = false; BEGIN(ACTION); - return '\n'; + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } } {OPTWS}{NL} { @@ -278,7 +291,13 @@ CCL_CHAR ([^\\\n\]]|{ESCSEQ}) continued_action = false; BEGIN(ACTION); unput( '\n' ); /* so sees it */ - return '\n'; + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } } "<>" return EOF_OP; @@ -439,10 +458,10 @@ CCL_CHAR ([^\\\n\]]|{ESCSEQ}) if ( bracelevel == 0 || (doing_codeblock && indented_code) ) { - if ( ! doing_codeblock ) + if ( doing_rule_action ) add_action( "\tYY_BREAK\n" ); - - doing_codeblock = false; + + doing_rule_action = doing_codeblock = false; BEGIN(SECT2); } } @@ -460,7 +479,10 @@ CCL_CHAR ([^\\\n\]]|{ESCSEQ}) ACTION_ECHO; if ( bracelevel == 0 ) { - add_action( "\tYY_BREAK\n" ); + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = false; BEGIN(SECT2); } } -- 2.50.0