antlr-haskell-0.1.0.0: src/Language/ANTLR4.hs
{-|
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(..))