module UU.Scanner.Token where

import UU.Scanner.GenToken(GenToken(..)) 
import UU.Scanner.Position(Pos) 

type Token = GenToken String EnumValToken String

data EnumValToken
  = TkVarid
  | TkConid
  | TkString
  | TkChar
  | TkInteger8
  | TkInteger10
  | TkInteger16
  | TkFraction
  | TkTextnm
  | TkTextln 
  | TkOp
  | TkConOp
  | TkError
  deriving (EnumValToken -> EnumValToken -> Bool
(EnumValToken -> EnumValToken -> Bool)
-> (EnumValToken -> EnumValToken -> Bool) -> Eq EnumValToken
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnumValToken -> EnumValToken -> Bool
$c/= :: EnumValToken -> EnumValToken -> Bool
== :: EnumValToken -> EnumValToken -> Bool
$c== :: EnumValToken -> EnumValToken -> Bool
Eq, Eq EnumValToken
Eq EnumValToken =>
(EnumValToken -> EnumValToken -> Ordering)
-> (EnumValToken -> EnumValToken -> Bool)
-> (EnumValToken -> EnumValToken -> Bool)
-> (EnumValToken -> EnumValToken -> Bool)
-> (EnumValToken -> EnumValToken -> Bool)
-> (EnumValToken -> EnumValToken -> EnumValToken)
-> (EnumValToken -> EnumValToken -> EnumValToken)
-> Ord EnumValToken
EnumValToken -> EnumValToken -> Bool
EnumValToken -> EnumValToken -> Ordering
EnumValToken -> EnumValToken -> EnumValToken
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: EnumValToken -> EnumValToken -> EnumValToken
$cmin :: EnumValToken -> EnumValToken -> EnumValToken
max :: EnumValToken -> EnumValToken -> EnumValToken
$cmax :: EnumValToken -> EnumValToken -> EnumValToken
>= :: EnumValToken -> EnumValToken -> Bool
$c>= :: EnumValToken -> EnumValToken -> Bool
> :: EnumValToken -> EnumValToken -> Bool
$c> :: EnumValToken -> EnumValToken -> Bool
<= :: EnumValToken -> EnumValToken -> Bool
$c<= :: EnumValToken -> EnumValToken -> Bool
< :: EnumValToken -> EnumValToken -> Bool
$c< :: EnumValToken -> EnumValToken -> Bool
compare :: EnumValToken -> EnumValToken -> Ordering
$ccompare :: EnumValToken -> EnumValToken -> Ordering
$cp1Ord :: Eq EnumValToken
Ord)

reserved                :: String -> Pos -> Token
reserved :: String -> Pos -> Token
reserved                =  String -> Pos -> Token
forall key tp val. key -> Pos -> GenToken key tp val
Reserved 

valueToken              :: EnumValToken -> String -> Pos -> Token
valueToken :: EnumValToken -> String -> Pos -> Token
valueToken              =  EnumValToken -> String -> Pos -> Token
forall key tp val. tp -> val -> Pos -> GenToken key tp val
ValToken 

errToken                :: String -> Pos -> Token
errToken :: String -> Pos -> Token
errToken                =  EnumValToken -> String -> Pos -> Token
valueToken EnumValToken
TkError