diff options
Diffstat (limited to 'cpp/src/Slice/Scanner.l')
-rw-r--r-- | cpp/src/Slice/Scanner.l | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/cpp/src/Slice/Scanner.l b/cpp/src/Slice/Scanner.l index ac465f1d3c3..2d15fe2fcff 100644 --- a/cpp/src/Slice/Scanner.l +++ b/cpp/src/Slice/Scanner.l @@ -62,24 +62,37 @@ fractional_constant (\+|-)?(([[:digit:]]*\.[[:digit:]]+)|([[:digit:]]+\.)) exponent_part (e|E)(\+|-)?[[:digit:]]+ floating_literal (({fractional_constant}{exponent_part}?)|((\+|-)?[[:digit:]]+{exponent_part}))[fF]? +%s BOMSCAN %s MAINSCAN %% ^"#"[[:blank:]]*[[:digit:]]+[[:blank:]]*$ { - unit->scanPosition(yytext); + if(unit->scanPosition(yytext)) + { + BEGIN(BOMSCAN); + } } ^"#"[[:blank:]]*[[:digit:]]+[[:blank:]]+"\""[^\"]*"\"".*$ { - unit->scanPosition(yytext); + if(unit->scanPosition(yytext)) + { + BEGIN(BOMSCAN); + } } ^"#"[[:blank:]]*"line"[[:blank:]]+[[:digit:]]+[[:blank:]]*$ { - unit->scanPosition(yytext); + if(unit->scanPosition(yytext)) + { + BEGIN(BOMSCAN); + } } ^"#"[[:blank:]]*"line"[[:blank:]]+[[:digit:]]+[[:blank:]]+"\""[^\"]*"\"".*$ { - unit->scanPosition(yytext); + if(unit->scanPosition(yytext)) + { + BEGIN(BOMSCAN); + } } "//" { @@ -406,7 +419,7 @@ floating_literal (({fractional_constant}{exponent_part}?)|((\+|-)?[[:digit:]]+{e } } -<INITIAL>^"\357\273\277" { +<BOMSCAN>^"\357\273\277" { // Ignore UTF-8 BOM, rule only active when parsing start of file. BEGIN(MAINSCAN); |