1 {-# LANGUAGE AllowAmbiguousTypes #-}
2 {-# LANGUAGE ScopedTypeVariables #-}
3 {-# LANGUAGE TemplateHaskell #-}
4 {-# LANGUAGE TypeApplications #-}
5 {-# LANGUAGE ViewPatterns #-}
6 -- for Symantic.Parser's TemplateHaskell
7 {-# LANGUAGE MagicHash #-}
8 {-# LANGUAGE ScopedTypeVariables #-}
9 {-# LANGUAGE RankNTypes #-}
10 {-# LANGUAGE UnboxedTuples #-}
11 {-# OPTIONS_GHC -Wno-unused-matches #-}
12 {-# OPTIONS_GHC -Wno-unused-local-binds #-}
13 module Parsers.Brainfuck.SymanticParser.AutoSplice where
15 import Data.Either (Either)
16 import qualified Data.ByteString as BS
17 import qualified Symantic.Parser as SP
18 import qualified GHC.Word
20 import Parsers.Brainfuck.SymanticParser.Grammar (grammar, reproGrammar)
21 import Parsers.Brainfuck.Types (Instruction)
23 parserByteString :: BS.ByteString -> Either (SP.ParsingError BS.ByteString) [Instruction]
24 parserByteString = $$(SP.runParser @BS.ByteString grammar)
27 parserByteStringRepro :: BS.ByteString -> Either (SP.ParsingError BS.ByteString) [GHC.Word.Word8]
28 parserByteStringRepro = $$(SP.runParser @BS.ByteString reproGrammar)