From 9ed23db4821edfea91e6b74d71ebc4d1935ec11e Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 28 Sep 2004 09:00:56 +0000 Subject: [PATCH] [project @ 2004-09-28 09:00:56 by simonmar] Ignore RULES pragmas unless we're in -fglasgow-exts mode. --- ghc/compiler/parser/Lexer.x | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ghc/compiler/parser/Lexer.x b/ghc/compiler/parser/Lexer.x index 8304918..1d0a5e7 100644 --- a/ghc/compiler/parser/Lexer.x +++ b/ghc/compiler/parser/Lexer.x @@ -166,6 +166,14 @@ $white_no_nl+ ; -- NOTE: accept -} at the end of a LINE pragma, for compatibility -- with older versions of GHC which generated these. +-- We only want RULES pragmas to be picked up when -fglasgow-exts +-- is on, because the contents of the pragma is always written using +-- glasgow-exts syntax (using forall etc.), so if glasgow exts are not +-- enabled, we're sure to get a parse error. +-- (ToDo: we should really emit a warning when ignoring pragmas) + + "{-#" $whitechar* (RULES|rules) { token ITrules_prag } + <0,glaexts> { "{-#" $whitechar* (SPECIALI[SZ]E|speciali[sz]e) { token ITspecialise_prag } @@ -173,7 +181,6 @@ $white_no_nl+ ; "{-#" $whitechar* (INLINE|inline) { token ITinline_prag } "{-#" $whitechar* (NO(T?)INLINE|no(t?)inline) { token ITnoinline_prag } - "{-#" $whitechar* (RULES|rules) { token ITrules_prag } "{-#" $whitechar* (DEPRECATED|deprecated) { token ITdeprecated_prag } "{-#" $whitechar* (SCC|scc) { token ITscc_prag } -- 1.7.10.4