From 26f164e5759e9eca73deb0531ddec422d36a6924 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Wed, 10 Feb 2010 09:44:19 +0000 Subject: [PATCH] Simplify syntax for quasi-quotation After some discussion we decided to make a quasi-quote look like [pads| ...blah... |] rather than [$pads| ...blah... |] as before. The new syntax is quieter, although it does not signal quite as clearly that there is a splice going on. --- compiler/parser/Lexer.x | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index 51aa2f3..6651333 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -307,7 +307,7 @@ $tab+ { warn Opt_WarnTabs (text "Tab character") } \$ @varid / { ifExtension thEnabled } { skip_one_varid ITidEscape } "$(" / { ifExtension thEnabled } { token ITparenEscape } - "[$" @varid "|" / { ifExtension qqEnabled } + "[" @varid "|" / { ifExtension qqEnabled } { lex_quasiquote_tok } } @@ -1412,8 +1412,9 @@ getCharOrFail i = do lex_quasiquote_tok :: Action lex_quasiquote_tok span buf len = do - let quoter = reverse $ takeWhile (/= '$') - $ reverse $ lexemeToString buf (len - 1) + let quoter = tail (lexemeToString buf (len - 1)) + -- 'tail' drops the initial '[', + -- while the -1 drops the trailing '|' quoteStart <- getSrcLoc quote <- lex_quasiquote "" end <- getSrcLoc -- 1.7.10.4