@@ -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