git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Add value source positions (#2427)

* Add value source positions #1801 * Fix operators

commita53031bd118a16e1c88a259bc2412b4243850b42 authorNicholas Wolverson <nicholas.wolverson@gmail.com> dateWed 16 Nov 2016, 03:25 (10 years ago) parenta22bde5
2 files changed+5−3
src/Language/PureScript/Parser/Declarations.hs+2−2 src/Language/PureScript/Sugar/Operators/Expr.hs+3−1
src/Language/PureScript/Parser/Declarations.hs+2−2
@@ -392,7 +392,7 @@ parseLet = do
392392 return $ Let ds result
393393
394394parseValueAtom :: TokenParser Expr
395−parseValueAtom = P.choice
395+parseValueAtom = withSourceSpan PositionedValue $ P.choice
396396 [ parseAnonymousArgument
397397 , Literal <$> parseNumericLiteral
398398 , Literal <$> parseCharLiteral
@@ -418,7 +418,7 @@ parseValueAtom = P.choice
418418parseInfixExpr :: TokenParser Expr
419419parseInfixExpr
420420 = P.between tick tick parseValue
421− <|> Op <$> parseQualified parseOperator
421+ <|> withSourceSpan PositionedValue (Op <$> parseQualified parseOperator)
422422
423423parseHole :: TokenParser Expr
424424parseHole = Hole <$> holeLit
src/Language/PureScript/Sugar/Operators/Expr.hs+3−1
@@ -20,7 +20,9 @@ matchExprOperators = matchOperators isBinOp extractOp fromOp reapply modOpTable
2020 isBinOp _ = False
2121
2222 extractOp :: Expr -> Maybe (Expr, Expr, Expr)
23− extractOp (BinaryNoParens op l r) = Just (op, l, r)
23+ extractOp (BinaryNoParens op l r)
24+ | PositionedValue _ _ op' <- op = Just (op', l, r)
25+ | otherwise = Just (op, l, r)
2426 extractOp _ = Nothing
2527
2628 fromOp :: Expr -> Maybe (Qualified (OpName 'ValueOpName))