Advertisement
Yurry

Untitled

Jan 24th, 2012
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import System.IO
  2. import Text.ParserCombinators.Parsec
  3. import Control.Monad
  4.  
  5. doc = do char '['
  6.          list <- many entry
  7.          char ']'
  8.          return list
  9.  
  10. entry = do char '['
  11.            list <- sepBy word (char ',')
  12.            char ']'
  13.            spaces
  14.            return list
  15.            
  16. word = do char '\''
  17.           list <- many (noneOf "'")
  18.           char '\''
  19.           return list
  20.  
  21. main = do file <- openFile "test.txt" ReadMode
  22.           out <- openFile "out.txt" WriteMode
  23.           text <- hGetContents file
  24.           case parse doc "" text of
  25.              Left a -> putStrLn ("Parsing error: " ++ show a)
  26.              Right b -> forM_ b printout
  27.                 where printout x = do hPutStrLn out (x !! 2)
  28.                                       hPutStrLn out (x !! 5)
  29.                                       hPutStrLn out (x !! 6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement