aboutsummaryrefslogtreecommitdiffstats
path: root/src/Parser.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Parser.hs')
-rw-r--r--src/Parser.hs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/Parser.hs b/src/Parser.hs
index be75ab3..5e94148 100644
--- a/src/Parser.hs
+++ b/src/Parser.hs
@@ -29,6 +29,7 @@ parseToken (Token token tr tc tf)
| isTag token = let tok = tail token
in ast $ ASTTag (computeTagN tok) tok
| isString token = ast $ ASTString $ removeQuotes token
+ | isChar token = ast $ ASTChar $ head $ removeQuotes token
| isInteger token = ast $ ASTInteger (read token)
| isDouble token = ast $ ASTDouble (read token)
| isBoolean token = ast $ ASTBoolean $ asBoolean token
@@ -41,6 +42,7 @@ parseToken (Token token tr tc tf)
isDouble :: String -> Bool
isDouble t = t =~ doubleRegex
isString t = "\"" `L.isPrefixOf` t
+ isChar t = "'" `L.isPrefixOf` t
isTag t = ":" `L.isPrefixOf` t && length t > 1
removeQuotes s = drop 1 s $> take (length s - 2)
isBoolean t = t `elem` ["true", "false"]