summaryrefslogtreecommitdiff
path: root/examples/big/MAP/MkBig.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-11-07 16:38:37 +0000
committeraarne <aarne@cs.chalmers.se>2006-11-07 16:38:37 +0000
commit1fd01130157b81d1b8f4e334f93efa25acf0ecc3 (patch)
treee3e550d6df056c6b39fb540e2991a01b8d83e56c /examples/big/MAP/MkBig.hs
parente8bad7f7e0b39e74a276ce46a48446dead919942 (diff)
real parser for Alvey grammar: new version of BigLexEng
Diffstat (limited to 'examples/big/MAP/MkBig.hs')
-rw-r--r--examples/big/MAP/MkBig.hs42
1 files changed, 42 insertions, 0 deletions
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"