{-# LANGUAGE Safe #-}
{-# LANGUAGE ConstraintKinds, DataKinds #-}
module Text.Gigaparsec.Token.Lexer (
Lexer, mkLexer,
Lexeme, lexeme, nonlexeme, fully, space,
apply, sym, symbol, names,
Symbol, softKeyword, softOperator,
Names, identifier, identifier', userDefinedOperator, userDefinedOperator',
IntegerParsers, CanHoldSigned, CanHoldUnsigned,
integer, natural, decimal, hexadecimal, octal, binary,
decimal8, decimal16, decimal32, decimal64,
hexadecimal8, hexadecimal16, hexadecimal32, hexadecimal64,
octal8, octal16, octal32, octal64,
binary8, binary16, binary32, binary64,
TextParsers,
stringLiteral, rawStringLiteral, multiStringLiteral, rawMultiStringLiteral,
charLiteral,
ascii, unicode, latin1,
Space, skipComments, whiteSpace, alter, initSpace,
) where
import Text.Gigaparsec.Internal.Token.Lexer (
Lexer, mkLexer,
Lexeme (rawMultiStringLiteral), lexeme, nonlexeme, fully, space,
apply, sym, symbol, names,
integer, natural,
stringLiteral, rawStringLiteral, multiStringLiteral, rawMultiStringLiteral,
charLiteral,
Space, skipComments, whiteSpace, alter, initSpace
)
import Text.Gigaparsec.Internal.Token.Symbol (Symbol, softKeyword, softOperator)
import Text.Gigaparsec.Internal.Token.Names (
Names, identifier, identifier', userDefinedOperator, userDefinedOperator'
)
import Text.Gigaparsec.Internal.Token.Numeric (
IntegerParsers, decimal, hexadecimal, octal, binary,
decimal8, decimal16, decimal32, decimal64,
hexadecimal8, hexadecimal16, hexadecimal32, hexadecimal64,
octal8, octal16, octal32, octal64,
binary8, binary16, binary32, binary64
)
import Text.Gigaparsec.Internal.Token.Numeric qualified as Internal
import Text.Gigaparsec.Internal.Token.Text (
TextParsers, ascii, unicode, latin1
)
import Data.Kind (Constraint)
type CanHoldSigned :: Internal.Bits -> * -> Constraint
type CanHoldSigned = Internal.CanHoldSigned
type CanHoldUnsigned :: Internal.Bits -> * -> Constraint
type CanHoldUnsigned = Internal.CanHoldUnsigned