# Operators "=" ASSIGN; "\+" PLUS; "\-" MINUS; "\*" TIMES; "@" DEREF; "&" ADDRESS; "/" SLASH; "^" XOR; "\|" OR_BIT; "&" AND_BIT; "or" OR; "and" AND; "." PERIOD; # Groups "\(" LPAREN; "\)" RPAREN; "\[" LBRAC; "\]" RBRAC; "\{" LCURL; "\}" RCURL; # Comparators "==" EQL; "!=" NEQ; "<" LSS; ">" GTR; "<=" LEQ; ">=" GEQ; # Modifiers "const" CONST; # Punctuation "\;" SEMICOLON; "," COMMA; # Control Flow "while" WHILE; "for" FOR; "break" BREAK; "continue" CONTINUE; "if" IF; "else if" ELSE_IF; "else" ELSE; # Functions "\->" YIELDS; "\(\)" NONE; "fn" FUNCTION; # Low-Level Constructs. "[a-zA-Z][a-zA-Z0-9]*" IDENT; "\-?[0-9]*" INTEGER; "[0-9]*.[0-9]+" FLOAT; "'[a-zA-Z]'" CHAR; # A limitation of the lexer. Will add \c eventually. "[ \t\n\r]" ;