SableCC2Hs-0.0.0.2: haskell/Test2.hs
module Main
where
import System.Environment
import Parser2
import ParserTables
import Data.Dynamic
import SableAst
import SableCC.ParserTypes
import Control.DeepSeq
main = do
[fileName] <- getArgs
ast <- parseFile fileName
putStrLn $ take 1000 $ show ast
parseFile :: FilePath -> IO ParseUnit
parseFile bFile = do
putStrLn "reading Source"
src <- readFile bFile
putStrLn "running Lexer and parser"
let
!lexerTokens = runLexer $ deepseq src src
!parserTokens = trimTokens $ deepseq lexerTokens lexerTokens
ast1 = runParser $ deepseq parserTokens parserTokens
ast2:: ParseUnit
ast2 = fromDNode ast1
return ast2
instance NFData LexTokenID
instance NFData ParserTokenID