import Control.Monad (liftM) import Data.Char import Numeric import System.Environment maketrihed monolist trilist = do ms <- liftM lines $ readFile monolist putStrLn $ "CL " ++ trilist mapM_ (putStrLn . mkti) ms mkti m = "TI T_" ++ x ++ " {(*-" ++ x ++ "+*," ++ x ++ "+*,*-" ++ x ++ "," ++ esc m ++ ").transP}" where x = esc m esc = concatMap escC escC x | x `elem` "{}()*-+," = "\\" ++ showOct (ord x) "" | otherwise = [x] main = do args <- getArgs case args of [monolist,trilist] -> maketrihed monolist trilist _ -> fail "Usage: maketrihead "