X-Git-Url: http://git.tomasm.cz/fp.git/blobdiff_plain/891001c31cd71632b828e79248e82f6fcda5dc3f..HEAD:/src/Lambda/Parser/Fancy.hs?ds=inline diff --git a/src/Lambda/Parser/Fancy.hs b/src/Lambda/Parser/Fancy.hs index 79c1ca9..f7a523d 100644 --- a/src/Lambda/Parser/Fancy.hs +++ b/src/Lambda/Parser/Fancy.hs @@ -14,10 +14,15 @@ -- TODO: proper documentation module Lambda.Parser.Fancy - ( tRead + ( + -- * Main parser + tRead , parseTerm + -- * Auxiliary parsers + , parseVar ) where +import Data.Char (isAsciiLower) import Data.Text as T hiding (map) import Data.Attoparsec.Text import Control.Applicative @@ -52,12 +57,12 @@ tRead s = case parseOnly (parseTerm <* endOfInput) (T.pack s) of parseVar :: Parser Term parseVar = do - x <- many1 (letter <|> digit) + x <- many1 letter return $! Var x parseLambda :: Parser Term parseLambda = do - char '\\' <|> char 'λ' + char '\\' <|> char 'λ' <|> char 'L' vars <- sepBy1 parseVar (char ' ') char '.' t <- parseTerm