Commit 26f164e5 authored by simonpj@microsoft.com's avatar simonpj@microsoft.com

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.
parent 6f8ff0bb
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment