on master help sign in
Remove backtick-infix syntax
7a2e15fEvan Czaplicki
src/Docs/Check.hs+2−2
@@ -12,7 +12,7 @@ import qualified Docs.AST as Docs
12import qualified Elm.Compiler.Type as Type
12import qualified Elm.Compiler.Type as Type
13import Elm.Utils ((|>))
13import Elm.Utils ((|>))
14import Parse.Helpers
14import Parse.Helpers
15− ( addLocation, anyUntil, commaSep1, iParse, parens, simpleNewline, symOp
15+ ( addLocation, anyUntil, commaSep1, iParse, parens, simpleNewline, infixOp
16 , var, whitespace
16 , var, whitespace
17 )
17 )
18import qualified Reporting.Annotation as A
18import qualified Reporting.Annotation as A
@@ -156,7 +156,7 @@ commentedNames (R.Region start _) comment =
156 choice
156 choice
157 [ do string "@docs"
157 [ do string "@docs"
158 whitespace
158 whitespace
159− commaSep1 (addLocation (var <|> parens symOp))
159+ commaSep1 (addLocation (var <|> parens infixOp))
160 , do anyUntil simpleNewline
160 , do anyUntil simpleNewline
161 return []
161 return []
162 ]
162 ]
src/Parse/Declaration.hs+1−1
@@ -79,7 +79,7 @@ infixDecl =
79 forcedWS
79 forcedWS
80 n <- digit
80 n <- digit
81 forcedWS
81 forcedWS
82− op <- anyOp
82+ op <- infixOp
83 return $ Decl.Fixity (Decl.Infix op assoc (read [n]))
83 return $ Decl.Fixity (Decl.Infix op assoc (read [n]))
84
84
85
85
src/Parse/Expression.hs+4−4
@@ -121,7 +121,7 @@ parensTerm =
121 in
121 in
122 do (start, mkExpr, end) <-
122 do (start, mkExpr, end) <-
123 located $ choice $
123 located $ choice $
124− [ mkBinop <$> try (parens symOp)
124+ [ mkBinop <$> try (parens infixOp)
125 , parens (tupleFn <|> parenedExpr)
125 , parens (tupleFn <|> parenedExpr)
126 ]
126 ]
127 return (mkExpr start end)
127 return (mkExpr start end)
@@ -202,7 +202,7 @@ expr =
202
202
203binaryExpr :: IParser Source.Expr
203binaryExpr :: IParser Source.Expr
204binaryExpr =
204binaryExpr =
205− Binop.binops appExpr lastExpr anyOp
205+ Binop.binops appExpr lastExpr infixOp
206 where
206 where
207 lastExpr =
207 lastExpr =
208 addLocation (choice [ letExpr, caseExpr, ifExpr ])
208 addLocation (choice [ letExpr, caseExpr, ifExpr ])
@@ -296,7 +296,7 @@ annotation :: (String -> T.Raw -> a) -> IParser (A.Located a)
296annotation creator =
296annotation creator =
297 let
297 let
298 start =
298 start =
299− do v <- lowVar <|> parens symOp
299+ do v <- lowVar <|> parens infixOp
300 padded hasType
300 padded hasType
301 return v
301 return v
302 in
302 in
@@ -325,6 +325,6 @@ makeFunction args body@(A.A ann _) =
325defStart :: IParser (P.Raw, [P.Raw])
325defStart :: IParser (P.Raw, [P.Raw])
326defStart =
326defStart =
327 expecting "the definition of a value (x = ...)" $
327 expecting "the definition of a value (x = ...)" $
328− do starter <- try Pattern.term <|> addLocation (P.Var <$> parens symOp)
328+ do starter <- try Pattern.term <|> addLocation (P.Var <$> parens infixOp)
329 args <- spacePrefix Pattern.term
329 args <- spacePrefix Pattern.term
330 return (starter, args)
330 return (starter, args)
src/Parse/Helpers.hs+8−14
@@ -114,20 +114,14 @@ reserved word =
114-- INFIX OPERATORS
114-- INFIX OPERATORS
115
115
116
116
117−anyOp :: IParser String
117+infixOp :: IParser String
118−anyOp =
118+infixOp =
119− betwixt '`' '`' qualifiedVar
120− <|> symOp
121− <?> "an infix operator like (+)"
119+ expecting "an infix operator like (+)" $
122−
123−
124−symOp :: IParser String
125−symOp =
126− do op <- many1 (satisfy (\c -> Help.isSymbol c && c /= '`'))
120+ do op <- many1 (satisfy (\c -> Help.isSymbol c && c /= '`'))
127− guard (op `notElem` [ "=", "..", "->", "--", "|", ":" ])
121+ guard (op `notElem` [ "=", "..", "->", "--", "|", ":" ])
128− case op of
122+ case op of
129− "." -> notFollowedBy lower >> return op
123+ "." -> notFollowedBy lower >> return op
130− _ -> return op
124+ _ -> return op
131
125
132
126
133
127
src/Parse/Module.hs+1−1
@@ -168,7 +168,7 @@ value =
168 val <|> tipe <?> "a value or type to expose"
168 val <|> tipe <?> "a value or type to expose"
169 where
169 where
170 val =
170 val =
171− Var.Value <$> (lowVar <|> parens symOp)
171+ Var.Value <$> (lowVar <|> parens infixOp)
172
172
173 tipe =
173 tipe =
174 do name <- capVar
174 do name <- capVar