ace-0.0: src/ACE/Types/Tokens.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveDataTypeable #-}
-- | Tokens for ACE.
module ACE.Types.Tokens
(Token(..)
,tokenPos)
where
import Data.Text (Text)
-- | A token
data Token
= Word !(Int,Int) !Text
| QuotedString !(Int,Int) !Text
| Period !(Int,Int)
| Comma !(Int,Int)
| QuestionMark !(Int,Int)
| Genitive !(Int,Int) !Bool
| Number !(Int,Int) !Integer
deriving (Eq)
-- | Get the position of the token.
tokenPos :: Token -> (Int, Int)
tokenPos t =
case t of
Word pos _ -> pos
QuotedString pos _ -> pos
Period pos -> pos
Comma pos -> pos
QuestionMark pos -> pos
Genitive pos _ -> pos
Number pos _ -> pos