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,
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.
§ 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.