@@ -6,8 +6,6 @@ module Parse.Expression
66 where
77
88
9- import Control.Monad (guard )
10-
119import qualified AST.Source as Src
1210import qualified Elm.Name as N
1311import Parse.Primitives
@@ -300,34 +298,36 @@ exprHelp start (State ops expr args end pos) =
300298 spos <- W. whitespace
301299 hint (E. AfterOpExpr opName) (checkSpace spos)
302300 newStart <- getPosition
303- hint (E. AfterOpExpr opName) $ oneOf $
304- [ -- negative terms
305- do guard (" -" == opName && end /= opStart && opEnd == newStart)
306- rawTerm <- term
301+ hint (E. AfterOpExpr opName) $
302+ if " -" == opName && end /= opStart && opEnd == newStart
303+ then
304+ -- negative terms
305+ do rawTerm <- term
307306 newEnd <- getPosition
308307 newPos <- W. whitespace
309308 let arg = A. at opStart newEnd (Src. Negate rawTerm)
310309 exprHelp start (State ops expr (arg: args) newEnd newPos)
311-
312- , -- term
313- do newExpr <- possiblyNegativeTerm newStart
314- newEnd <- getPosition
315- newPos <- W. whitespace
316- let newOps = (toCall expr args, op) : ops
317- exprHelp start (State newOps newExpr [] newEnd newPos)
318-
319- , -- final term
320- do (newLast, newEnd, newPos) <-
321- oneOf
322- [ let_ newStart
323- , case_ newStart
324- , if_ newStart
325- , function newStart
326- ]
327- let newOps = (toCall expr args, op) : ops
328- let finalExpr = A. at start newEnd (Src. Binops (reverse newOps) newLast)
329- return ( finalExpr, newEnd, newPos )
330- ]
310+ else
311+ oneOf
312+ [ -- term
313+ do newExpr <- possiblyNegativeTerm newStart
314+ newEnd <- getPosition
315+ newPos <- W. whitespace
316+ let newOps = (toCall expr args, op) : ops
317+ exprHelp start (State newOps newExpr [] newEnd newPos)
318+
319+ , -- final term
320+ do (newLast, newEnd, newPos) <-
321+ oneOf
322+ [ let_ newStart
323+ , case_ newStart
324+ , if_ newStart
325+ , function newStart
326+ ]
327+ let newOps = (toCall expr args, op) : ops
328+ let finalExpr = A. at start newEnd (Src. Binops (reverse newOps) newLast)
329+ return ( finalExpr, newEnd, newPos )
330+ ]
331331
332332 , -- done
333333 let finalExpr = toCall expr args in
0 commit comments