deriving Show
instance Read Program where
- readPrec = fmap Program $ lift $ sepBy1 (readS_to_P reads) $ do
+ readPrec = fmap Program $ lift $ do
+ asts <- sepBy1 (readS_to_P reads) $ do
skipSpaces
char ';'
skipSpaces
+ optional $ char ';'
+ skipSpaces
+ return asts
data AST = Function String [String] Expr
| Eval Expr