@@ -223,7 +223,7 @@ nakedAtomExprP :: Parser AtomExpr
223223nakedAtomExprP = NakedAtomExpr <$> atomP
224224
225225atomP :: Parser Atom
226−atomP = dateTimeAtomP <|> stringAtomP <|> intAtomP <|> boolAtomP <|> relationAtomP
226+atomP = dateTimeAtomP <|> dateAtomP <|> stringAtomP <|> doubleAtomP <|> intAtomP <|> boolAtomP <|> relationAtomP
227227
228228functionAtomExprP :: Parser AtomExpr
229229functionAtomExprP = do
@@ -239,15 +239,28 @@ stringAtomP = liftA (StringAtom . T.pack) quotedString
239239
240240dateTimeAtomP :: Parser Atom
241241dateTimeAtomP = do
242− dateString' <- try $ do
243− dateString <- quotedString
244− reserved "::dt"
245− return dateString
242+ dateTimeString' <- try $ do
243+ dateTimeString <- quotedString
244+ reserved "::datetime"
245+ return dateTimeString
246246 --deprecated in time 1.5- needs update for GHC 7.10
247− case parseTime defaultTimeLocale "%Y-%m-%d %H:%M" dateString' of
247+ case parseTime defaultTimeLocale "%Y-%m-%d %H:%M:%S" dateTimeString' of
248248 Just utctime -> return $ DateTimeAtom utctime
249249 Nothing -> fail "Failed to parse datetime"
250−
250+
251+dateAtomP :: Parser Atom
252+dateAtomP = do
253+ dateString' <- try $ do
254+ dateString <- quotedString
255+ reserved "::date"
256+ return dateString
257+ case parseTime defaultTimeLocale "%Y-%m-%d" dateString' of
258+ Just utctime -> return $ DateAtom utctime
259+ Nothing -> fail "Failed to parse date"
260+
261+doubleAtomP :: Parser Atom
262+doubleAtomP = DoubleAtom <$> (try float)
263+
251264intAtomP :: Parser Atom
252265intAtomP = (IntAtom . fromIntegral) <$> integer
253266