diff options
author | Vern Paxson <vern@ee.lbl.gov> | 1993-04-05 20:35:51 +0000 |
---|---|---|
committer | Vern Paxson <vern@ee.lbl.gov> | 1993-04-05 20:35:51 +0000 |
commit | 220517426c41698cc8f36a4d1018168e227cfcce (patch) | |
tree | 178b771cd58d03528bc60d113f01a558c7844d2e | |
parent | e196c113e4e85ea93946ab757f71027f59904eea (diff) | |
download | flex-git-220517426c41698cc8f36a4d1018168e227cfcce.tar.gz |
Fixed subtle problems regarding '*'s in comments
%pointer/%array match entire lines
-rw-r--r-- | scan.l | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -76,7 +76,7 @@ NOT_WS [^ \t\f\n] NL \n|\r\n|\n\r NAME [a-z_][a-z_0-9-]* -NOT_NAME [^a-z_\n]+ +NOT_NAME [^a-z_*\n]+ SCNAME {NAME} @@ -113,8 +113,8 @@ CCL_CHAR [^\\\n\]]|{ESCSEQ} return SECTEND; } -^"%pointer" yytext_is_array = false; -^"%array" yytext_is_array = true; +^"%pointer".*\n ++linenum; yytext_is_array = false; +^"%array".*\n ++linenum; yytext_is_array = true; ^"%used" { warn( "%used/%unused have been deprecated" ); @@ -401,6 +401,7 @@ CCL_CHAR [^\\\n\]]|{ESCSEQ} <BRACEERROR>{NL} synerr( "missing }" ); ++linenum; BEGIN(SECT2); +<CODEBLOCK_2>"/*" ACTION_ECHO; BEGIN(ACTION_COMMENT); <PERCENT_BRACE_ACTION,CODEBLOCK_2>{OPTWS}"%}".* bracelevel = 0; <PERCENT_BRACE_ACTION,CODEBLOCK_2,ACTION>"reject" { ACTION_ECHO; @@ -445,10 +446,17 @@ CCL_CHAR [^\\\n\]]|{ESCSEQ} } <ACTION>. ACTION_ECHO; -<ACTION_COMMENT>"*/" ACTION_ECHO; BEGIN(ACTION); -<ACTION_COMMENT>[^*\n]+ ACTION_ECHO; +<ACTION_COMMENT>"*/" { + ACTION_ECHO; + if ( doing_codeblock ) + BEGIN(CODEBLOCK_2); + else + BEGIN(ACTION); + } + <ACTION_COMMENT>"*" ACTION_ECHO; -<ACTION_COMMENT>{NL} ++linenum; ACTION_ECHO; +<ACTION_COMMENT>[^*\n]+ ACTION_ECHO; +<ACTION_COMMENT>[^*\n]*{NL} ++linenum; ACTION_ECHO; <ACTION_STRING>[^"\\\n]+ ACTION_ECHO; <ACTION_STRING>\\. ACTION_ECHO; |