{-| Module : Language.ANTLR4 Description : Primary entrypoint for top-level antlr-haskell users Copyright : (c) Karl Cronburg, 2018 License : BSD3 Maintainer : karl@cs.tufts.edu Stability : experimental Portability : POSIX -} module Language.ANTLR4 ( -- * Functions -- | Compile-time support for expanding LR-specific data types: mkLRParser -- | Other basic functions used in generated code: , (&&&) -- * Module exports -- | Most importantly for the Grammar type so that the quasiquoter can generate -- new grammar itself: , module Text.ANTLR.Grammar -- | Supporting data types and instances so that the spliced AST translator -- functions can talk about parse events, tokens, and EOF: , module Text.ANTLR.Parser -- | Regular expressions used during tokenization, as opposed to -- 'Language.ANTLR4.Regex' which are regexes used for G4 parsing: , module Text.ANTLR.Lex.Regex -- | The G4 quasiquoter and accompanying grammar: , module Language.ANTLR4.G4 -- | For defining pretty-printable instances of quasiquoter-generated data types: , module Text.ANTLR.Pretty -- | Tokenizer: , module T -- * Type exports -- | Typeclass instances for quasiquoter-generated data types: , Hashable(..), Generic(..), Data(..), Lift(..) -- | Parser interface data types: , S.Set(..), T.Token(..), LRResult(..) ) where import Text.ANTLR.Grammar import Text.ANTLR.Parser import Text.ANTLR.LR as LR import Text.ANTLR.Lex.Tokenizer as T import Text.ANTLR.Set as S import Text.ANTLR.Set (Hashable(..), Generic(..)) import Text.ANTLR.Pretty import Control.Arrow ( (&&&) ) import Text.ANTLR.Lex.Regex import Language.ANTLR4.G4 import Language.ANTLR4.Boot.Quote (mkLRParser) import Data.Data (Data(..)) import Language.Haskell.TH.Lift (Lift(..))