From: Nathaniel Wesley Filardo Date: Wed, 12 Dec 2012 02:38:27 +0000 (-0500) Subject: Maybe fix aggregator parsing X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=574d6e1c09c74a1c007423a35d35ca3c7de55de0;p=dyna2 Maybe fix aggregator parsing Dot is not an aggregator --- 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 [