language-lua2-0.1.0.0: src/Language/Lua/Token.hs
module Language.Lua.Token where
import Data.Data
import GHC.Generics (Generic)
data Token
= TkAnd -- ^ and
| TkBreak -- ^ break
| TkDo -- ^ do
| TkElse -- ^ else
| TkElseif -- ^ elseif
| TkEnd -- ^ end
| TkFalse -- ^ false
| TkFor -- ^ for
| TkFunction -- ^ function
| TkGoto -- ^ goto
| TkIf -- ^ if
| TkIn -- ^ in
| TkLocal -- ^ local
| TkNil -- ^ nil
| TkNot -- ^ not
| TkOr -- ^ or
| TkRepeat -- ^ repeat
| TkReturn -- ^ return
| TkThen -- ^ then
| TkTrue -- ^ true
| TkUntil -- ^ until
| TkWhile -- ^ while
| TkPlus -- ^ +
| TkDash -- ^ \-
| TkMult -- ^ \*
| TkFloatDiv -- ^ /
| TkModulo -- ^ %
| TkExponent -- ^ ^
| TkLength -- ^ #
| TkBitwiseAnd -- ^ &
| TkTilde -- ^ ~
| TkBitwiseOr -- ^ |
| TkLShift -- ^ <<
| TkRShift -- ^ \>\>
| TkFloorDiv -- ^ //
| TkEq -- ^ ==
| TkNeq -- ^ ~=
| TkLeq -- ^ <=
| TkGeq -- ^ \>=
| TkLt -- ^ <
| TkGt -- ^ >
| TkAssign -- ^ =
| TkLParen -- ^ (
| TkRParen -- ^ )
| TkLBrace -- ^ {
| TkRBrace -- ^ }
| TkLBracket -- ^ [
| TkRBracket -- ^ ]
| TkLabel -- ^ ::
| TkSemi -- ^ ;
| TkColon -- ^ :
| TkComma -- ^ ,
| TkDot -- ^ .
| TkConcat -- ^ ..
| TkVararg -- ^ ...
| TkQuote -- ^ '
| TkDoubleQuote -- ^ "
| TkIdent String
| TkStringLit String
| TkIntLit String
| TkFloatLit String
deriving (Data, Eq, Generic, Show, Typeable)
showToken :: Token -> String
showToken TkAnd = "and"
showToken TkBreak = "break"
showToken TkDo = "do"
showToken TkElse = "else"
showToken TkElseif = "elseif"
showToken TkEnd = "end"
showToken TkFalse = "false"
showToken TkFor = "for"
showToken TkFunction = "function"
showToken TkGoto = "goto"
showToken TkIf = "if"
showToken TkIn = "in"
showToken TkLocal = "local"
showToken TkNil = "nil"
showToken TkNot = "not"
showToken TkOr = "or"
showToken TkRepeat = "repeat"
showToken TkReturn = "return"
showToken TkThen = "then"
showToken TkTrue = "true"
showToken TkUntil = "until"
showToken TkWhile = "while"
showToken TkPlus = "+"
showToken TkDash = "-"
showToken TkMult = "*"
showToken TkFloatDiv = "/"
showToken TkModulo = "%"
showToken TkExponent = "^"
showToken TkLength = "#"
showToken TkBitwiseAnd = "&"
showToken TkTilde = "~"
showToken TkBitwiseOr = "|"
showToken TkLShift = "<<"
showToken TkRShift = ">>"
showToken TkFloorDiv = "//"
showToken TkEq = "=="
showToken TkNeq = "~="
showToken TkLeq = "<="
showToken TkGeq = ">="
showToken TkLt = "<"
showToken TkGt = ">"
showToken TkAssign = "="
showToken TkLParen = "("
showToken TkRParen = ")"
showToken TkLBrace = "{"
showToken TkRBrace = "}"
showToken TkLBracket = "["
showToken TkRBracket = "]"
showToken TkLabel = "::"
showToken TkSemi = ";"
showToken TkColon = ":"
showToken TkComma = ","
showToken TkDot = "."
showToken TkConcat = ".."
showToken TkVararg = "..."
showToken TkQuote = "'"
showToken TkDoubleQuote = "\""
showToken (TkIdent s) = s
showToken (TkStringLit s) = s
showToken (TkIntLit s) = s
showToken (TkFloatLit s) = s