X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=src%2Fparse.icl;h=c28fb4c58df52ad57313e88bde5ca8869101af58;hb=8c3da7a503f87783e3614254649ed8c04eb0d519;hp=0860819c20748b7d5a3b3a523691250172818c6f;hpb=6e527e30012f8809594452cb9559b301b4a8afc6;p=cc1516.git diff --git a/src/parse.icl b/src/parse.icl index 0860819..c28fb4c 100644 --- a/src/parse.icl +++ b/src/parse.icl @@ -184,7 +184,7 @@ satTok t = top >>= \tok=:(pos, tv) -> if (eq t tok) (return tok) (fail (prin parseSepList :: TokenValue (Parser Token a) -> Parser Token [a] parseSepList sep p = - (some (p <* satTok sep) >>= \es->p >>= \e.pure $ reverse [e:es]) <|> + (liftM2 (\es->(\e->reverse [e:es])) (some (p <* satTok sep)) p) <|> (liftM pure p) <|> pure empty parseIdent :: Parser Token String @@ -204,8 +204,8 @@ instance print FunDecl where print (FunDecl i as t vs ss) = ["\n", i, " (":printersperse "," as] ++ [") :: ":print t] ++ - ["{":printersperse "\n\t" vs] ++ - ["\n":printStatements ss 1] ++ ["}"] + ["{\n\t":printersperse "\n\t" vs] ++ + ["\n":printStatements ss 1] ++ ["}\n"] printStatements :: [Stmt] Int -> [String] printStatements [] i = []