Возможно, потому что self.current_char
находится в LETTER
на первой итерации.Тогда вы не меняете его во втором if
, поэтому он продолжает оставаться в ПИСЬМАХ.
Вы должны сделать:
def make_tokens(self):
tokens = []
while self.current_char is not None:
if self.current_char.isspace():
print("debug if")
# self.advance() remove this
# continue remove this
elif self.current_char == "''":
print("debug elif 1")
tokens.append(Token(STRING, self.string()))
elif self.current_char in LETTERS:
print("debug elif 2")
tokens.append(Token(IDENTIFIER, self.identifier))
self.advance() # add this
return(tokens)
print("debug make tokens end")