From 574d6e1c09c74a1c007423a35d35ca3c7de55de0 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Tue, 11 Dec 2012 21:38:27 -0500 Subject: [PATCH] Maybe fix aggregator parsing Dot is not an aggregator --- src/Dyna/ParserHS/Parser.hs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Dyna/ParserHS/Parser.hs b/src/Dyna/ParserHS/Parser.hs index 7e48e43..c7bf314 100644 --- a/src/Dyna/ParserHS/Parser.hs +++ b/src/Dyna/ParserHS/Parser.hs @@ -136,6 +136,19 @@ dynaOperStyle = IdentifierStyle , styleReservedHighlight = ReservedOperator } +dynaAggStyle :: TokenParsing m => IdentifierStyle m +dynaAggStyle = IdentifierStyle + { styleName = "Aggregator" + , styleStart = (oneOfSet $ CS.delete '.' usualpunct) + <|> lower + , styleLetter = (oneOfSet $ usualpunct) + <|> alphaNum + , styleReserved = mempty + , styleHighlight = Operator + , styleReservedHighlight = ReservedOperator + } + + dynaAtomStyle :: TokenParsing m => IdentifierStyle m dynaAtomStyle = IdentifierStyle { styleName = "Atom" @@ -302,10 +315,7 @@ dtexpr = unDL texpr rulepfx :: DeltaParsing f => f ([Spanned Term] -> Spanned Term -> Rule) rulepfx = Rule <$> term <* whiteSpace - -- XXX probably a better way to do this.. - -- probably want aggregators have suffix = - <*> ((bsf $ some $ satisfy $ not . isSpace) "Aggregator") - <* whiteSpace + <*> (bsf $ ident dynaAggStyle "Aggregator") rule :: DeltaParsing m => m Rule rule = choice [ -- 2.50.1