4 class TokenType(enum.Enum):
5 LEFT_PARENTHESE = enum.auto()
6 RIGHT_PARENTHESE = enum.auto()
7 LEFT_BRACE = enum.auto()
8 RIGHT_BRACE = enum.auto()
9 LEFT_BRACKET = enum.auto()
10 RIGHT_BRACKET = enum.auo()
20 BANG_EQUALS = enum.auto()
22 EQUALS_EQUALS = enum.auto()
23 LESS_THAN = enum.auto()
24 LESS_THAN_EQUALS = enum.auto()
25 GREATER_THAN = enum.auto()
26 GREATER_THAN_EQUALS = enum.auto()
28 IDENTIFIER = enum.auto()
46 def error(line, message):
47 report(line, '', message)
49 def report(line, where, message):
50 print('[line {}] Error {}: {}'.format(
59 tokens = scan_tokens(source)
65 with open(path, 'r') as f:
79 if __name__ == '__main__':
81 print('Usage: pylox [script]')
84 elif len(sys.argv) == 2: