From: simonpj@microsoft.com Date: Wed, 10 Feb 2010 09:44:19 +0000 (+0000) Subject: Simplify syntax for quasi-quotation X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=26f164e5759e9eca73deb0531ddec422d36a6924;ds=sidebyside 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. --- 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