|
|
- module Presyntax.Tokens where
-
- import Data.Text (Text)
- import qualified Data.Text as T
-
- data TokenClass
- = TokVar Text
- | TokEof
-
- | TokLambda
- | TokArrow
-
- | TokOParen
- | TokOBrace
- | TokCParen
- | TokCBrace
-
- | TokStar
- | TokColon
- | TokEqual
- | TokComma
-
- | TokPi1
- | TokPi2
-
- | TokSemi
- deriving (Eq, Show, Ord)
-
- tokSize :: TokenClass -> Int
- tokSize (TokVar x) = T.length x
- tokSize TokEof = 0
- tokSize TokLambda = 1
- tokSize TokOParen = 1
- tokSize TokOBrace = 1
- tokSize TokCBrace = 1
- tokSize TokCParen = 1
- tokSize TokStar = 1
- tokSize TokColon = 1
- tokSize TokEqual = 1
- tokSize TokComma = 1
- tokSize TokSemi = 1
- tokSize TokArrow = 2
- tokSize TokPi1 = 2
- tokSize TokPi2 = 2
-
- data Token
- = Token { tokenClass :: TokenClass
- , tokStartLine :: !Int
- , tokStartCol :: !Int
- }
- deriving (Eq, Show, Ord)
|