mirror of
https://github.com/open-thought/reasoning-gym.git
synced 2026-04-19 12:58:07 +00:00
70 lines
1.6 KiB
Python
70 lines
1.6 KiB
Python
class Token:
|
|
|
|
INT = "INT"
|
|
VOID = "VOID"
|
|
TRUE = "TRUE"
|
|
FALSE = "FALSE"
|
|
AND = "AND"
|
|
OR = "OR"
|
|
NOT = "NOT"
|
|
RETURN = "RETURN"
|
|
IF = "IF"
|
|
ELSE = "ELSE"
|
|
WHILE = "WHILE"
|
|
FOR = "FOR"
|
|
DO = "DO"
|
|
BREAK = "BREAK"
|
|
CONTINUE = "CONTINUE"
|
|
SWITCH = "SWITCH"
|
|
CASE = "CASE"
|
|
DEFAULT = "DEFAULT"
|
|
COLON = "COLON"
|
|
SEMICOLON = "SEMICOLON"
|
|
COMMA = "COMMA"
|
|
|
|
LPAREN = "LPAREN"
|
|
RPAREN = "RPAREN"
|
|
LBRACE = "LBRACE"
|
|
RBRACE = "RBRACE"
|
|
LBRACK = "LBRACK"
|
|
RBRACK = "RBRACK"
|
|
|
|
ASSIGN = "ASSIGN"
|
|
TERNARY = "TERNARY"
|
|
RELOP = "RELOP"
|
|
BINOP = "BINOP"
|
|
INCREMENT = "INCREMENT"
|
|
DECREMENT = "DECREMENT"
|
|
UNARY_MULTIPLICATIVE = "UNARY_MULTIPLICATIVE"
|
|
|
|
BITWISE_SHIFT = "BITWISE_SHIFT"
|
|
BITWISE_NOT = "BITWISE_NOT"
|
|
BITWISE_AND = "BITWISE_AND"
|
|
BITWISE_OR = "BITWISE_OR"
|
|
BITWISE_XOR = "BITWISE_XOR"
|
|
|
|
WHITESPACE = "WHITESPACE"
|
|
ID = "ID"
|
|
NUM = "NUM"
|
|
STRING = "STRING"
|
|
CHAR = "CHAR"
|
|
|
|
PRINT = "PRINT"
|
|
COMMENT = "COMMENT"
|
|
UNIDENTIFIED = "UNIDENTIFIED"
|
|
|
|
def __init__(self, type, line, column, data=None, original_tokens=None):
|
|
self.type = type
|
|
self.line = line
|
|
self.column = column
|
|
self.data = data
|
|
self.original_tokens = original_tokens
|
|
|
|
def __str__(self):
|
|
result = self.type
|
|
if self.data:
|
|
result += " " + self.data
|
|
result += " (line %s column %s)" % (self.line, self.column)
|
|
if self.original_tokens:
|
|
result += " (original tokens: " + ", ".join([str(t) for t in self.original_tokens]) + ")"
|
|
return result
|