From d5f6a4b53fdd82b8ff89687672a5e91a082b635d Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 19 Aug 2003 09:09:03 +0000 Subject: [haddock @ 2003-08-19 09:09:03 by simonmar] Further wibbles to the syntax. --- src/HaddockLex.x | 12 ++++++------ src/HaddockParse.y | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/HaddockLex.x b/src/HaddockLex.x index 0c606bdf..feac18ab 100644 --- a/src/HaddockLex.x +++ b/src/HaddockLex.x @@ -34,12 +34,11 @@ $ident = [$alphanum \_\.\!\#\$\%\&\*\+\/\<\=\>\?\@\\\\\^\|\-\~] $ws* { begin string } } --- beginning of a line: don't ignore whitespace, unless this is the start --- of a new paragraph. +-- beginning of a line { $ws* \> { begin birdtrack } $ws* \n { token TokPara `andBegin` para } - () { begin string } + $ws* { begin string } } .* \n? { strtoken TokBirdTrack `andBegin` line } @@ -50,8 +49,9 @@ $ident = [$alphanum \_\.\!\#\$\%\&\*\+\/\<\=\>\?\@\\\\\^\|\-\~] \#.*\# { strtoken $ \s -> TokAName (init (tail s)) } [\'\`] $ident+ [\'\`] { ident } \\ . { strtoken (TokString . tail) } - -- allow single-quotes to be literal if they don't surround identifiers - [\'\`] { strtoken TokString } + -- 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 \'\` \\]+ { strtoken TokString } } @@ -83,7 +83,7 @@ alexGetChar (_, c:cs) = Just (c, (c,cs)) alexInputPrevChar (c,_) = c tokenise :: String -> [Token] -tokenise str = let toks = go ('\n',str) para in {- trace (show toks) -} toks +tokenise str = let toks = go ('\n',str) para in {-trace (show toks)-} toks where go inp@(_,str) sc = case alexScan inp sc of AlexEOF -> [] diff --git a/src/HaddockParse.y b/src/HaddockParse.y index e1a1cb8c..29b3b70a 100644 --- a/src/HaddockParse.y +++ b/src/HaddockParse.y @@ -65,15 +65,15 @@ seq1 :: { Doc } elem1 :: { Doc } : STRING { DocString $1 } - | '/' strings '/' { DocEmphasis $2 } + | '/' strings '/' { DocEmphasis (DocString $2) } | URL { DocURL $1 } | ANAME { DocAName $1 } | IDENT { DocIdentifier $1 } - | DQUO STRING DQUO { DocModule $2 } + | DQUO strings DQUO { DocModule $2 } -strings :: { Doc } - : STRING { DocString $1 } - | STRING strings { docAppend (DocString $1) $2 } +strings :: { String } + : STRING { $1 } + | STRING strings { $1 ++ $2 } { happyError :: [Token] -> Either String a -- cgit v1.2.3