как обратный слеш. Вместо этого это должна быть простая строка, как в примере выше.

ользую ply в качестве своего синтаксического анализатора lex. Мои спецификации следующие:

t_WHILE = r'while'  
t_THEN = r'then'  
t_ID = r'[a-zA-Z_][a-zA-Z0-9_]*'  
t_NUMBER = r'\d+'  
t_LESSEQUAL = r'<='  
t_ASSIGN = r'='  
t_ignore  = r' \t'  

Когда я пытаюсь разобрать следующую строку:

"while n <= 0 then h = 1"

Это дает следующий вывод:

LexToken(ID,'while',1,0)  
LexToken(ID,'n',1,6)  
LexToken(LESSEQUAL,'<=',1,8)  
LexToken(NUMBER,'0',1,11)  
LexToken(ID,'hen',1,14)      ------> PROBLEM!  
LexToken(ID,'h',1,18)  
LexToken(ASSIGN,'=',1,20)  
LexToken(NUMBER,'1',1,22)  

Он не распознает токен THEN, вместо этого он использует «курицу» в качестве идентификатора.

Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос