cao-0.1: src/Language/CAO/Parser/Tokens.hs
{-
Module : $Header$
Description : CAO language tokens.
Copyright : (c) SMART Team / HASLab
License : GPL
Maintainer : Paulo Silva <paufil@di.uminho.pt>
Stability : experimental
Portability : non-portable
-}
module Language.CAO.Parser.Tokens where
import Language.CAO.Common.SrcLoc
data TokenInfo
= TokenInfo
{ tSymb :: Token
, tText :: !String
, tLoc :: SrcLoc
}
data Token
= TokenDef
| TokenTypedef
| TokenConst
| TokenOfType
| TokenOf
| TokenAssign
| TokenReturn
| TokenOSB
| TokenCSB
| TokenOCB
| TokenCCB
| TokenSemiColon
| TokenComma
| TokenDoublePeriod
| TokenPeriod
| TokenTrue
| TokenFalse
| TokenVoid
| TokenUnsigned
| TokenSigned
| TokenRegister
| TokenInt
| TokenBits
| TokenBool
| TokenVector
| TokenMatrix
| TokenMod
| TokenStruct
| TokenIf
| TokenElse
| TokenWhile
| TokenSeq
| TokenTo
| TokenBy
| TokenEq
| TokenAnd
| TokenOr
| TokenGET
| TokenLET
| TokenGT
| TokenLT
| TokenNot
| TokenNotEqual
| TokenXor
| TokenPlus
| TokenMinus
| TokenTimes
| TokenDiv
| TokenPower
| TokenRemainder
| TokenBitNot
| TokenBitAnd
| TokenBitOr
| TokenBitXor
| TokenShiftUp
| TokenShiftDown
| TokenRotUp
| TokenRotDown
| TokenConcat
| TokenOB
| TokenCB
| TokenIntValue { int_value :: Integer }
| TokenUnsignedBitsValue { bit_value :: ![Bool] }
| TokenSignBitsValue { bit_value :: ![Bool] }
| TokenStr { str_value :: !String }
| TokenTypeAlias { str_value :: !String }
| TokenEOF
| TokenError