git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix some parser and pretty printer issues related to extended infix expr changes.
6120951Phil Freeman
src/Language/PureScript/Parser/Declarations.hs+7−7
@@ -358,17 +358,17 @@ parseValueAtom = P.choice
358 , parseOperatorSection ]
358 , parseOperatorSection ]
359
359
360-- |
360-- |
361−-- Parse an identifier in backticks or an operator
361+-- Parse an expression in backticks or an operator
362--
362--
363−parseIdentInfix :: TokenParser Expr
363+parseInfixExpr :: TokenParser Expr
364−parseIdentInfix = P.between tick tick parseValue
364+parseInfixExpr = P.between tick tick parseValue
365− <|> Var <$> parseQualified (Op <$> symbol)
365+ <|> Var <$> parseQualified (Op <$> symbol)
366
366
367parseOperatorSection :: TokenParser Expr
367parseOperatorSection :: TokenParser Expr
368parseOperatorSection = parens $ left <|> right
368parseOperatorSection = parens $ left <|> right
369 where
369 where
370− right = OperatorSection <$> parseIdentInfix <* indented <*> (Right <$> parseValueAtom)
370+ right = OperatorSection <$> parseInfixExpr <* indented <*> (Right <$> parseValueAtom)
371− left = flip OperatorSection <$> (Left <$> parseValueAtom) <* indented <*> parseIdentInfix
371+ left = flip OperatorSection <$> (Left <$> parseValueAtom) <* indented <*> parseInfixExpr
372
372
373parsePropertyUpdate :: TokenParser (String, Maybe Expr)
373parsePropertyUpdate :: TokenParser (String, Maybe Expr)
374parsePropertyUpdate = do
374parsePropertyUpdate = do
@@ -419,7 +419,7 @@ parseValue = withSourceSpan PositionedValue
419 ]
419 ]
420 operators = [ [ P.Prefix (P.try (C.indented *> symbol' "-") >> return UnaryMinus)
420 operators = [ [ P.Prefix (P.try (C.indented *> symbol' "-") >> return UnaryMinus)
421 ]
421 ]
422− , [ P.Infix (P.try (C.indented *> parseIdentInfix P.<?> "operator") >>= \ident ->
422+ , [ P.Infix (P.try (C.indented *> parseInfixExpr P.<?> "infix expression") >>= \ident ->
423 return (BinaryNoParens ident)) P.AssocRight
423 return (BinaryNoParens ident)) P.AssocRight
424 ]
424 ]
425 ]
425 ]
src/Language/PureScript/Pretty/Values.hs+2−2
@@ -73,8 +73,8 @@ literals = mkPattern' match
73 , withIndent $ prettyPrintMany prettyPrintDoNotationElement els
73 , withIndent $ prettyPrintMany prettyPrintDoNotationElement els
74 , currentIndent
74 , currentIndent
75 ]
75 ]
76− match (OperatorSection op (Right val)) = return $ "(" ++ show op ++ " " ++ prettyPrintValue val ++ ")"
76+ match (OperatorSection op (Right val)) = return $ "(" ++ prettyPrintValue op ++ " " ++ prettyPrintValue val ++ ")"
77− match (OperatorSection op (Left val)) = return $ "(" ++ prettyPrintValue val ++ " " ++ show op ++ ")"
77+ match (OperatorSection op (Left val)) = return $ "(" ++ prettyPrintValue val ++ " " ++ prettyPrintValue op ++ ")"
78 match (TypeClassDictionary name _ _) = return $ "<<dict " ++ show name ++ ">>"
78 match (TypeClassDictionary name _ _) = return $ "<<dict " ++ show name ++ ">>"
79 match (SuperClassDictionary name _) = return $ "<<superclass dict " ++ show name ++ ">>"
79 match (SuperClassDictionary name _) = return $ "<<superclass dict " ++ show name ++ ">>"
80 match (TypedValue _ val _) = prettyPrintValue' val
80 match (TypedValue _ val _) = prettyPrintValue' val