From ac6352dbd3bbd6a5245f57f965047c0e2c3d59ad Mon Sep 17 00:00:00 2001 From: simonm <unknown> Date: Tue, 10 Feb 1998 13:47:44 +0000 Subject: [PATCH] [project @ 1998-02-10 13:47:44 by simonm] Don't do layout processing inside {-# ... #-}. The fix is horrible, and should probably be redone in a cleaner way at some point. --- ghc/compiler/parser/hslexer.flex | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ghc/compiler/parser/hslexer.flex b/ghc/compiler/parser/hslexer.flex index 432625aa16c6..ef02cfd5e6e2 100644 --- a/ghc/compiler/parser/hslexer.flex +++ b/ghc/compiler/parser/hslexer.flex @@ -315,28 +315,34 @@ NL [\n\r] <Code,GlaExt>"{-#"{WS}*"INTERFACE" { PUSH_STATE(UserPragma); + forgetindent = TRUE; RETURN(INTERFACE_UPRAGMA); } <Code,GlaExt>"{-#"{WS}*"SPECIALI"[SZ]E { PUSH_STATE(UserPragma); + forgetindent = TRUE; RETURN(SPECIALISE_UPRAGMA); } <Code,GlaExt>"{-#"{WS}*"INLINE" { PUSH_STATE(UserPragma); + forgetindent = TRUE; RETURN(INLINE_UPRAGMA); } <Code,GlaExt>"{-#"{WS}*"MAGIC_UNFOLDING" { PUSH_STATE(UserPragma); + forgetindent = TRUE; RETURN(MAGIC_UNFOLDING_UPRAGMA); } <Code,GlaExt>"{-#"{WS}*"GENERATE_SPECS" { /* these are handled by hscpp */ nested_comments =1; + forgetindent = TRUE; PUSH_STATE(Comment); } <Code,GlaExt>"{-#"{WS}*"OPTIONS" { /* these are for the driver! */ nested_comments =1; + forgetindent = TRUE; PUSH_STATE(Comment); } <Code,GlaExt>"{-#"{WS}*"SOURCE"{WS}*"#"?"-}" { @@ -355,7 +361,15 @@ NL [\n\r] nested_comments = 1; PUSH_STATE(Comment); } -<UserPragma>"#-}" { POP_STATE; RETURN(END_UPRAGMA); } +<UserPragma>"#-}" { POP_STATE; + forgetindent=FALSE; + /* don't want any layout processing here, + * so just use 'return' instead of 'RETURN', + * remembering to set hssttok. + */ + hssttok = -1; + return(END_UPRAGMA); + } %{ /* -- GitLab