@@ -200,7 +200,7 @@ consumeAtomExprP consume = try functionAtomExprP <|>
200 try (parens (constructedAtomExprP True)) <|>
200 try (parens (constructedAtomExprP True)) <|>
201 constructedAtomExprP consume <|>
201 constructedAtomExprP consume <|>
202 attributeAtomExprP <|>
202 attributeAtomExprP <|>
203− nakedAtomExprP <|>
203+ try nakedAtomExprP <|>
204 relationalAtomExprP
204 relationalAtomExprP
206attributeAtomExprP :: Parser (AtomExprBase a)
206attributeAtomExprP :: Parser (AtomExprBase a)
@@ -242,8 +242,12 @@ integerAtomP = IntegerAtom <$> integer
243boolAtomP :: Parser Atom
243boolAtomP :: Parser Atom
244boolAtomP = do
244boolAtomP = do
245− val <- char 't' <|> char 'f'
245+ v <- identifier
246+ if v == "t" || v == "f" then
246− return $ BoolAtom (val == 't')
247+ pure $ BoolAtom (v == "t")
249+ fail "invalid boolAtom"
248relationAtomExprP :: RelationalMarkerExpr a => Parser (AtomExprBase a)
252relationAtomExprP :: RelationalMarkerExpr a => Parser (AtomExprBase a)
249relationAtomExprP = RelationAtomExpr <$> makeRelationP
253relationAtomExprP = RelationAtomExpr <$> makeRelationP