on master help sign in
Convince parser to commit to lists, records, and tuples
d9918e0Evan Czaplicki
compiler/Parse/Helpers.hs+8−5
@@ -110,11 +110,14 @@ spaceSep1 p = (:) <$> p <*> spacePrefix p
110spacePrefix p = constrainedSpacePrefix p (\_ -> return ())
110spacePrefix p = constrainedSpacePrefix p (\_ -> return ())
111
111
112constrainedSpacePrefix p constraint =
112constrainedSpacePrefix p constraint =
113− many . try $ do
113+ many $ choice [ try (spacing >> lookAhead (oneOf "[({")) >> p
114+ , try (spacing >> p)
115+ ]
116+ where
117+ spacing = do
114− n <- whitespace
118+ n <- whitespace
115− constraint n
119+ constraint n
116− indented
120+ indented
117− p
118
121
119failure msg = do
122failure msg = do
120 inp <- getInput
123 inp <- getInput