enum CatspeakToken
enum CatspeakToken { 
  PAREN_LEFT,
  PAREN_RIGHT,
  BOX_LEFT,
  BOX_RIGHT,
  BRACE_LEFT,
  BRACE_RIGHT,
  COLON,
  SEMICOLON,
  COMMA,
  DOT,
  ARROW,
  ASSIGN,
  ASSIGN_MULTIPLY,
  ASSIGN_DIVIDE,
  ASSIGN_SUBTRACT,
  ASSIGN_PLUS,
  REMAINDER,
  MULTIPLY,
  DIVIDE,
  DIVIDE_INT,
  SUBTRACT,
  PLUS,
  EQUAL,
  NOT_EQUAL,
  GREATER,
  GREATER_EQUAL,
  LESS,
  LESS_EQUAL,
  NOT,
  BITWISE_NOT,
  SHIFT_RIGHT,
  SHIFT_LEFT,
  BITWISE_AND,
  BITWISE_XOR,
  BITWISE_OR,
  AND,
  OR,
  XOR,
  PIPE_RIGHT,
  PIPE_LEFT,
  DO,
  IF,
  ELSE,
  WHILE,
  FOR,
  LOOP,
  MATCH,
  USE,
  LET,
  FUN,
  BREAK,
  CONTINUE,
  RETURN,
  NEW,
  IMPL,
  SELF,
  PARAMS,
  IDENT,
  VALUE,
  WHITESPACE,
  COMMENT,
  EOF,
  OTHER,
  // 3 fields omitted
}A token in Catspeak is a series of characters with meaning, usually
separated by whitespace. These meanings are represented by unique
elements of the CatspeakToken enum.
Example
Some examples of tokens in Catspeak, and their meanings:
if(is aCatspeakToken.IF)else(is aCatspeakToken.ELSE)12.3(is aCatspeakToken.VALUE)+(is aCatspeakToken.PLUS)
§ PAREN_LEFT
PAREN_LEFTThe ( character.
§ PAREN_RIGHT
PAREN_RIGHTThe ) character.
§ BOX_LEFT
BOX_LEFTThe [ character.
§ BOX_RIGHT
BOX_RIGHTThe ] character.
§ BRACE_LEFT
BRACE_LEFTThe { character.
§ BRACE_RIGHT
BRACE_RIGHTThe } character.
§ COLON
COLONThe : character.
§ SEMICOLON
SEMICOLONThe ; character.
§ COMMA
COMMAThe , character.
§ DOT
DOTThe . operator.
§ ARROW
ARROWThe => operator.
§ ASSIGN
ASSIGNThe = operator.
§ ASSIGN_MULTIPLY
ASSIGN_MULTIPLYThe *= operator.
§ ASSIGN_DIVIDE
ASSIGN_DIVIDEThe /= operator.
§ ASSIGN_SUBTRACT
ASSIGN_SUBTRACTThe -= operator.
§ ASSIGN_PLUS
ASSIGN_PLUSThe += operator.
§ REMAINDER
REMAINDERThe remainder % operator.
§ MULTIPLY
MULTIPLYThe * operator.
§ DIVIDE
DIVIDEThe / operator.
§ DIVIDE_INT
DIVIDE_INTThe integer division // operator.
§ SUBTRACT
SUBTRACTThe - operator.
§ PLUS
PLUSThe + operator.
§ EQUAL
EQUALThe relational == operator.
§ NOT_EQUAL
NOT_EQUALThe relational != operator.
§ GREATER
GREATERThe relational > operator.
§ GREATER_EQUAL
GREATER_EQUALThe relational >= operator.
§ LESS
LESSThe relational < operator.
§ LESS_EQUAL
LESS_EQUALThe relational <= operator.
§ NOT
NOTThe logical negation ! operator.
§ BITWISE_NOT
BITWISE_NOTThe bitwise negation ~ operator.
§ SHIFT_RIGHT
SHIFT_RIGHTThe bitwise right shift >> operator.
§ SHIFT_LEFT
SHIFT_LEFTThe bitwise left shift << operator.
§ BITWISE_AND
BITWISE_ANDThe bitwise and & operator.
§ BITWISE_XOR
BITWISE_XORThe bitwise xor ^ operator.
§ BITWISE_OR
BITWISE_ORThe bitwise or | operator.
§ AND
ANDThe logical and operator.
§ OR
ORThe logical or operator.
§ XOR
XORThe logical xor operator.
§ PIPE_RIGHT
PIPE_RIGHTThe functional pipe right |> operator.
§ PIPE_LEFT
PIPE_LEFTThe functional pipe left <| operator.
§ DO
DOThe do keyword.
§ IF
IFThe if keyword.
§ ELSE
ELSEThe else keyword.
§ WHILE
WHILEThe while keyword.
§ FOR
FOR🔬 This is an experimental feature. It may change at any moment.
The for keyword.
§ LOOP
LOOP🔬 This is an experimental feature. It may change at any moment.
The loop keyword.
§ MATCH
MATCH🔬 This is an experimental feature. It may change at any moment.
The match keyword.
§ USE
USE🔬 This is an experimental feature. It may change at any moment.
The use keyword.
§ LET
LETThe let keyword.
§ FUN
FUNThe fun keyword.
§ BREAK
BREAKThe break keyword.
§ CONTINUE
CONTINUEThe continue keyword.
§ RETURN
RETURNThe return keyword.
§ NEW
NEWThe new keyword.
§ IMPL
IMPL🔬 This is an experimental feature. It may change at any moment.
The impl keyword.
§ SELF
SELF🔬 This is an experimental feature. It may change at any moment.
The self keyword.
§ PARAMS
PARAMS🔬 This is an experimental feature. It may change at any moment.
The params keyword.
§ IDENT
IDENTRepresents a variable name.
§ VALUE
VALUERepresents a GML value. This could be one of:
string literal:
"hello world"verbatim literal:
@"\(0_0)/ no escapes!"integer:
1,2,5float:
1.25,0.5character:
'A','0','\n'boolean:
trueorfalseundefined
§ WHITESPACE
WHITESPACERepresents a sequence of non-breaking whitespace characters.
§ COMMENT
COMMENTRepresents a comment.
§ EOF
EOFRepresents the end of the file.
§ OTHER
OTHERRepresents any other unrecognised character.
📝 NoteIf the compiler encounters a token of this type, it will typical raise an exception. This likely indicates that a Catspeak script has a syntax error somewhere.