Нахождение определенного токена
Ну, я использую lex для поиска токенов. Я хочу получить значение токена идентификатора, которое идет после класса токена, как мне это сделать.
Например, моя функция должна возвращать идентификатор после токена класса. Есть ли способ сделать это?
Лексические токены, генерируемые lex, выглядят следующим образом:
LexToken(SEMICOLON,';',15,125)
LexToken(RETURN,'return',16,127)
LexToken(SEMICOLON,';',16,134)
LexToken(RCURLY,'}',17,136)
LexToken(CLASS,'class',20,140)
LexToken(IDENTIFIER,'animal',20,146)
после передачи этого потока токена в качестве входных данных функции он должен вернуть "animal" в качестве значения токена "Identifier", который следует за токеном "class".
1 ответ
Решение
while True:
tok = lexer.token()
if not tok: break # No more input
print tok.type, tok.value, tok.line, tok.lexpos
if flag==1:
flag=0
print tok.value # here u get the value.
if tok.type=='CLASS':
flag=1