diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-10 21:08:30 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-11 01:37:50 +0200 |
| commit | 37e251578181213e49ba08d3de39f0b8b4f77427 (patch) | |
| tree | 344690e291f4cea14a625793eb19b69f39bb8e55 /src/Parser.hs | |
| parent | 421663406a5f259ee8e3d43009365c52186ffe31 (diff) | |
Add char datatype
Diffstat (limited to 'src/Parser.hs')
| -rw-r--r-- | src/Parser.hs | 2 |
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"] |
