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