]> Git — Sourcephile - haskell/symantic-parser.git/blob - test/Parser.hs
test: add goldens for TH splices
[haskell/symantic-parser.git] / test / Parser.hs
1 {-# LANGUAGE ExistentialQuantification #-}
2 {-# LANGUAGE FlexibleContexts #-}
3 {-# LANGUAGE NoMonomorphismRestriction #-}
4 {-# LANGUAGE TypeApplications #-}
5 {-# OPTIONS_GHC -Wno-missing-signatures #-}
6 -- For TH splices
7 {-# LANGUAGE TemplateHaskell #-}
8 {-# LANGUAGE Rank2Types #-}
9 {-# LANGUAGE ScopedTypeVariables #-}
10 {-# LANGUAGE UnboxedTuples #-}
11 {-# OPTIONS_GHC -Wno-unused-local-binds #-}
12 {-# OPTIONS_GHC -Wno-unused-matches #-}
13 module Parser where
14
15 import Data.Either (Either(..))
16 import Data.Text (Text)
17 import Text.Show (Show)
18 import Symantic.Parser
19 import Grammar
20
21 data P = forall a. Show a => P (
22 Text -> Either (ParsingError Text) a
23 )
24
25 parsers :: [P]
26 parsers =
27 [ P p1
28 , P p2
29 , P p3
30 , P p4
31 , P p5
32 , P p6
33 , P p7
34 , P p8
35 , P p9
36 , P p10
37 , P p11
38 , P p12
39 ]
40
41 p1 = $$(runParser @Text g1)
42 p2 = $$(runParser @Text g2)
43 p3 = $$(runParser @Text g3)
44 p4 = $$(runParser @Text g4)
45 p5 = $$(runParser @Text g5)
46 p6 = $$(runParser @Text g6)
47 p7 = $$(runParser @Text g7)
48 p8 = $$(runParser @Text g8)
49 p9 = $$(runParser @Text g9)
50 p10 = $$(runParser @Text g10)
51 p11 = $$(runParser @Text g11)
52 p12 = $$(runParser @Text g12)