mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-10 13:29:32 -06:00
35 lines
686 B
Haskell
35 lines
686 B
Haskell
module Main where
|
|
|
|
import IO ( stdin, hGetContents )
|
|
import System ( getArgs, getProgName )
|
|
|
|
import LexSrc
|
|
import ParSrc
|
|
import SkelSrc
|
|
import PrintSrc
|
|
import AbsSrc
|
|
|
|
import Compile
|
|
import PrEnv
|
|
|
|
import ErrM
|
|
|
|
type ParseFun a = [Token] -> Err a
|
|
|
|
myLLexer = myLexer
|
|
|
|
runFile :: ParseFun Grammar -> FilePath -> IO ()
|
|
runFile p f = readFile f >>= run p
|
|
|
|
run :: ParseFun Grammar -> String -> IO ()
|
|
run p s = let ts = myLLexer s in case p ts of
|
|
Bad s -> do putStrLn "Parse Failed...\n"
|
|
putStrLn s
|
|
Ok tree -> prEnv $ compile tree
|
|
|
|
main :: IO ()
|
|
main = do args <- getArgs
|
|
case args of
|
|
fs -> mapM_ (runFile pGrammar) fs
|
|
|