diff --git a/ghc/compiler/parser/hslexer.flex b/ghc/compiler/parser/hslexer.flex index dac635e40ca9b26a60572213cbf24ece9ca3a094..3b0268ca8c659a1ae86aa795a482c85a1b776364 100644 --- a/ghc/compiler/parser/hslexer.flex +++ b/ghc/compiler/parser/hslexer.flex @@ -276,8 +276,19 @@ NL [\n\r] * Special GHC pragma rules. Do we need a start state for interface files, * so these won't be matched in source files? --JSM */ + %} +%{ +/* I believe the next rule is not ever matched. + + The '#line ' rule is un-cool, recognising a cpp directive inside hs source. + Driver has now been modified to output `standard' {-# LINE ..-} pragmas + where possible, so the lexer should now never see cpp directives + like '# ' and '#line'. + + -- SOF + <Code,GlaExt>^"# ".*{NL} { char tempf[FILENAME_SIZE]; sscanf(yytext+1, "%d \"%[^\"]", &hslineno, tempf); @@ -291,6 +302,8 @@ NL [\n\r] new_filename(tempf); hsplineno = hslineno; hscolno = 0; hspcolno = 0; } +*/ +%} <Code,GlaExt>"{-# LINE ".*"-}"{NL} { /* partain: pragma-style line directive */