module Common where import PythonAst import PythonGen import Text.Parsec compile :: (String -> String -> Either ParseError p) -> (p -> [PyStmt]) -> String -> IO () compile p t f = do let inputName = f ++ ".lang" let outputName = f ++ ".py" file <- readFile inputName let either = p inputName file case either of Right prog -> writeFile outputName (translate $ t prog) Left e -> print e