1 {-# LANGUAGE ExistentialQuantification #-}
2 {-# LANGUAGE FlexibleContexts #-}
3 {-# LANGUAGE NoMonomorphismRestriction #-}
4 {-# LANGUAGE RankNTypes #-}
5 {-# LANGUAGE TypeApplications #-}
6 {-# LANGUAGE TypeFamilies#-}
7 {-# OPTIONS_GHC -Wno-missing-signatures #-}
9 import Data.Char (Char)
10 import qualified Grammar.Brainfuck
11 import qualified Grammar.Nandlang
13 import Symantic.Parser
15 data G = forall a. G (
23 [ G (grammar @Char g1)
24 , G (grammar @Char g2)
25 , G (grammar @Char g3)
26 , G (grammar @Char g4)
27 , G (grammar @Char g5)
28 , G (grammar @Char g6)
29 , G (grammar @Char g7)
30 , G (grammar @Char g8)
31 , G (grammar @Char g9)
32 , G (grammar @Char g10)
33 , G (grammar @Char g11)
34 , G (grammar @Char g12)
35 , G (grammar @Char g13)
36 , G (grammar @Char g14)
42 g4 = some (string "abcd")
43 g5 = some (string "abcd") <* eof
44 g6 = traverse char "aa" <|> traverse char "ab"
45 g7 = string "aa" <|> string "ab"
46 g8 = many (char 'r') <* eof
48 g10 = char 'a' <|> char 'b'
49 g11 = many (char 'a') <* char 'b'
50 g12 = many (oneOf ['a', 'b', 'c', 'd']) <* eof
51 g13 = Grammar.Brainfuck.grammar
52 g14 = Grammar.Nandlang.grammar