From 1b9618c37bb254e1d16aa286ceedc9a81f41e871 Mon Sep 17 00:00:00 2001 From: David Waern Date: Sat, 28 Feb 2009 14:53:51 +0000 Subject: [PATCH] Filter out carriage returns in doc strings We want the internal format to contain LFs only. This makes it easier to work with the doc strings for clients of the GHC API. --- compiler/parser/HaddockLex.x | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/parser/HaddockLex.x b/compiler/parser/HaddockLex.x index d9b4c03..7ed365f 100644 --- a/compiler/parser/HaddockLex.x +++ b/compiler/parser/HaddockLex.x @@ -63,7 +63,7 @@ $ident = [$alphanum \'\_\.\!\#\$\%\&\*\+\/\<\=\>\?\@\\\\\^\|\-\~] () { begin string } } - .* \n? { strtoken TokBirdTrack `andBegin` line } + .* \n? { strtokenNL TokBirdTrack `andBegin` line } { $special { strtoken $ \s -> TokSpecial (head s) } @@ -78,7 +78,7 @@ $ident = [$alphanum \'\_\.\!\#\$\%\&\*\+\/\<\=\>\?\@\\\\\^\|\-\~] -- allow special characters through if they don't fit one of the previous -- patterns. [\/\'\`\<\#\&\\] { strtoken TokString } - [^ $special \/ \< \# \n \'\` \& \\ \]]* \n { strtoken TokString `andBegin` line } + [^ $special \/ \< \# \n \'\` \& \\ \]]* \n { strtokenNL TokString `andBegin` line } [^ $special \/ \< \# \n \'\` \& \\ \]]+ { strtoken TokString } } @@ -141,8 +141,11 @@ andBegin act new_sc = \str _ cont -> act str new_sc cont token :: Token -> Action token t = \_ sc cont -> t : cont sc -strtoken :: (String -> Token) -> Action +strtoken, strtokenNL :: (String -> Token) -> Action strtoken t = \str sc cont -> t str : cont sc +strtokenNL t = \str sc cont -> t (filter (/= '\r') str) : cont sc +-- ^ We only want LF line endings in our internal doc string format, so we +-- filter out all CRs. begin :: StartCode -> Action begin sc = \_ _ cont -> cont sc -- 1.7.10.4