import qualified Data.Set as Set import Control.Arrow import UU.Pretty import LangDef import LangSem import LangExt import Language.Grammars.SyntaxMacros import Language.Grammars.SyntaxMacros.Scanner import Language.Grammars.AspectAG gram = closeGram prds test1 = do tokens <- scanFile gramOpts "prog.src" let r = (parse . compile ) gram tokens case ( parse . compile ) gram tokens of (Ok res) -> do print $ res # spp print $ res # sval (Rep _ err) -> print err gram' = closeGram (prds <++> prds') test2 = do tokens <- scanFile (gramOpts' gramOpts) "prog2.src" case ( parse . compile ) gram' tokens of (Ok res) -> do print $ res # spp print $ res # sval (Rep _ err) -> print err gram'' = closeGram (prds <++> prds' <++> prds'') test3 = do tokens <- scanFile ((gramOpts'' . gramOpts') gramOpts) "prog3.src" case ( parse . compile ) gram'' tokens of (Ok res) -> do print $ res # spp print $ res # sval (Rep _ err) -> print err main = test1 >> test2 >> test3