language-lua2-0.1.0.4: 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