{-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE TypeApplications #-} {-# OPTIONS_GHC -Wno-missing-signatures #-} -- For TH splices {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE Rank2Types #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UnboxedTuples #-} {-# OPTIONS_GHC -Wno-unused-local-binds #-} {-# OPTIONS_GHC -Wno-unused-matches #-} module Parser where import Data.Either (Either(..)) import Data.Text (Text) import Text.Show (Show) import Symantic.Parser import Grammar import qualified Data.IORef as IORef import qualified Language.Haskell.TH as TH import qualified Language.Haskell.TH.Syntax as TH import Control.DeepSeq import System.IO (IO) data P = forall a. Show a => P ( Text -> Either (ParsingError Text) a ) parsers :: [P] parsers = [ {-P p1 , P p2 , P p3 , P p4 , P p5 , P p6 , P p7 , P p8 , P p9 , P p10 , P p11 , P p12 , P p13 , P p14 , P p15 -} ] {- p1 = $$(TH.Code (do TH.qRunIO (IORef.writeIORef TH.counter 0) TH.examineCode (runParser @Text g1) )) p2 = $$(runParser @Text g2) p3 = $$(runParser @Text g3) p4 = $$(runParser @Text g4) p5 = $$(runParser @Text g5) p6 = $$(runParser @Text g6) p7 = $$(runParser @Text g7) p8 = $$(runParser @Text g8) p9 = $$(runParser @Text g9) p10 = $$(runParser @Text g10) p11 = $$(runParser @Text g11) p12 = $$(runParser @Text g12) p13 = $$(runParser @Text g13) -} -- p14 = $$(TH.runQ (TH.examineCode (runParser @Text g14)) `deepseq` runParser @Text g14) -- p14 = $$({- `deepseq`-} runParser @Text g14) q14 = TH.runQ (TH.examineCode (runParser @Text g14)) -- p15 = $$(runParser @Text g15)