X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=parse.icl;h=9aabea3cabccde5a3e722f7724c5473971fec6bb;hb=cbaff96b96d2def874b8a1fa9454414c6602a829;hp=34ec15b2f9109e6bc0ead07efffac329cee5bee9;hpb=9e30ea275d06506244e92f26c121715cbfd9c315;p=cc1516.git diff --git a/parse.icl b/parse.icl index 34ec15b..9aabea3 100644 --- a/parse.icl +++ b/parse.icl @@ -20,7 +20,10 @@ import AST parser :: LexerOutput -> ParserOutput parser (Left e) = Left e -parser (Right r) = fst $ runParser parseProgram r +parser (Right r) = case runParser parseProgram r of + (Right ast, [(p, t):xs]) = Left $ PositionalError p.line p.col ( + "Unable to parse from: " +++ printToString t) + x = fst x parseProgram :: Parser Token AST parseProgram = AST <$> (many parseVarDecl) <*> (some parseFunDecl)