X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fparser%2FHaddockLex.x;h=d9b4c03b19160133a2b483b4691f8a60066ea9c6;hb=d7b3ad9be373e02ea8b679d978f6ca898436892d;hp=acc04d68ac8d2c20cb8fc40927ea67610505ebbe;hpb=70e996b9a6cd657d441cba95014304a588c0fd7c;p=ghc-hetmet.git diff --git a/compiler/parser/HaddockLex.x b/compiler/parser/HaddockLex.x index acc04d6..d9b4c03 100644 --- a/compiler/parser/HaddockLex.x +++ b/compiler/parser/HaddockLex.x @@ -67,6 +67,7 @@ $ident = [$alphanum \'\_\.\!\#\$\%\&\*\+\/\<\=\>\?\@\\\\\^\|\-\~] { $special { strtoken $ \s -> TokSpecial (head s) } + \<\<.*\>\> { strtoken $ \s -> TokPic (init $ init $ tail $ tail s) } \<.*\> { strtoken $ \s -> TokURL (init (tail s)) } \#.*\# { strtoken $ \s -> TokAName (init (tail s)) } \/ [^\/]* \/ { strtoken $ \s -> TokEmphasis (init (tail s)) } @@ -102,6 +103,7 @@ data Token | TokIdent [RdrName] | TokString String | TokURL String + | TokPic String | TokEmphasis String | TokAName String | TokBirdTrack String @@ -126,7 +128,7 @@ tokenise str = let toks = go ('\n', eofHack str) para in {-trace (show toks)-} t case alexScan inp sc of AlexEOF -> [] AlexError _ -> error "lexical error" - AlexSkip inp' len -> go inp' sc + AlexSkip inp' _ -> go inp' sc AlexToken inp' len act -> act (take len str) sc (\sc -> go inp' sc) -- NB. we add a final \n to the string, (see comment in the beginning of line @@ -134,16 +136,16 @@ tokenise str = let toks = go ('\n', eofHack str) para in {-trace (show toks)-} t eofHack str = str++"\n" andBegin :: Action -> StartCode -> Action -andBegin act new_sc = \str sc cont -> act str new_sc cont +andBegin act new_sc = \str _ cont -> act str new_sc cont token :: Token -> Action -token t = \str sc cont -> t : cont sc +token t = \_ sc cont -> t : cont sc strtoken :: (String -> Token) -> Action strtoken t = \str sc cont -> t str : cont sc begin :: StartCode -> Action -begin sc = \str _ cont -> cont sc +begin sc = \_ _ cont -> cont sc -- ----------------------------------------------------------------------------- -- Lex a string as a Haskell identifier @@ -159,7 +161,6 @@ strToHsQNames :: String -> Maybe [RdrName] strToHsQNames str0 = let buffer = unsafePerformIO (stringToStringBuffer str0) pstate = mkPState buffer noSrcLoc defaultDynFlags - lex = lexer (\t -> return t) result = unP parseIdentifier pstate in case result of POk _ name -> Just [unLoc name]