-- | Bnf tokens
module Data.Cfg.Bnf.Token(
Token(..),
TokenType(..)
) where
-- | Token types
data TokenType = ERROR
| FULL_STOP -- ^ @.@
| LOWER_IDENTIFIER
-- ^ an identifier made of lower-case characters possibly
-- separated by underscores
| OR -- ^ @|@
| UPPER_IDENTIFIER
-- ^ an identifier made of upper-case characters possibly
-- separated by underscores
| YIELDS -- ^ @::=@
deriving (Eq, Show)
-- | Basic Bnf tokens. They do not contain location information.
data Token = Token TokenType String
deriving (Eq, Show)