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 Data.Functor as Functor
11 import qualified Grammar.Brainfuck
12 import qualified Grammar.Nandlang
14 import Symantic.Parser
16 data G = forall a. G (
42 grammars = (\(G g) -> G (observeSharing g)) Functor.<$> rawGrammars
47 g4 = some (string "abcd")
48 g5 = some (string "abcd") <* eof
49 g6 = traverse char "aa" <|> traverse char "ab"
50 g7 = string "aa" <|> string "ab"
51 g8 = many (char 'r') <* eof
53 g10 = char 'a' <|> char 'b'
54 g11 = many (char 'a') <* char 'b'
55 g12 = many (oneOf ['a', 'b', 'c', 'd']) <* eof
56 g13 = Grammar.Brainfuck.grammar
57 g14 = Grammar.Nandlang.grammar
58 g15 = (char 'a' <|> char 'b') <* char 'c'
59 g16 = (char 'a' <|> char 'b' <|> char 'c') <* char 'd'