From 1fd01130157b81d1b8f4e334f93efa25acf0ecc3 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 7 Nov 2006 16:38:37 +0000 Subject: real parser for Alvey grammar: new version of BigLexEng --- examples/big/MAP/MkBig.hs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 examples/big/MAP/MkBig.hs (limited to 'examples/big/MAP/MkBig.hs') diff --git a/examples/big/MAP/MkBig.hs b/examples/big/MAP/MkBig.hs new file mode 100644 index 000000000..0ea4e0b18 --- /dev/null +++ b/examples/big/MAP/MkBig.hs @@ -0,0 +1,42 @@ +module Main where + +import TransBig + +import IO ( stdin, hGetContents ) +import System ( getArgs, getProgName ) + +import LexLisp +import ParLisp +import SkelLisp +import PrintLisp +import AbsLisp +import ErrM + +type ParseFun a = [Token] -> Err a + +myLLexer = myLexer + +type Verbosity = Int + +putStrV :: Verbosity -> String -> IO () +putStrV v s = if v > 1 then putStrLn s else return () + +runFile :: Verbosity -> ParseFun Prog -> FilePath -> IO () +runFile v p f = putStrLn f >> readFile f >>= run v p + +run :: Verbosity -> ParseFun Prog -> String -> IO () +run v p s = let ts = myLLexer s in case p ts of + Bad s -> do putStrLn "\nParse Failed...\n" + putStrV v "Tokens:" + putStrV v $ show ts + putStrLn s + Ok tree -> do putStrLn "\nParse Successful!" + transTree tree + + + +main :: IO () +main = do + runFile 0 pProg infile + +infile = "bigwordlist.en" -- cgit v1.2.3