on master help sign in
eof should close all open blocks
commit92f31391d4e44911ba986ebd370d2526785ef399 authorraichoo <raichoo@googlemail.com> dateMon 19 Nov 2012, 21:47 (14 years ago) parent40ce0ca
1 file changed+6−7
src/Idris/Parser.hs+6−7
src/Idris/Parser.hs+6−7
@@ -206,14 +206,13 @@ openBlock = do lchar '{'
206206closeBlock :: IParser ()
207207closeBlock = do ist <- getState
208208 bs <- case brace_stack ist of
209− Nothing : xs -> do lchar '}'
210− return xs
211− Just lvl : xs -> do i <- indent
212− inp <- getInput
209+ Nothing : xs -> (lchar '}' >> return xs) <|> (eof >> return [])
210+ Just lvl : xs -> (do i <- indent
211+ inp <- getInput
213212-- trace (show (take 10 inp, i, lvl)) $
214− if i >= lvl && take 1 inp /= ")"
215− then fail "Not end of block"
216− else return xs
213+ if i >= lvl && take 1 inp /= ")"
214+ then fail "Not end of block"
215+ else return xs) <|> (eof >> return [])
217216 setState (ist { brace_stack = bs })
218217
219218pTerminator = do lchar ';'; popIndent