2013-04-30 8 views
0

Eh bien, j'utilise lex pour trouver les jetons. Je veux obtenir la valeur du jeton Identificateur qui vient après la classe de jeton, comment puis-je le faire. Par exemple, ma fonction doit renvoyer l'identifiant après le jeton de classe. Y a-t-il un moyen de le faire?Trouver un jeton particulier

jetons lexicales genrated par lex se présente comme suit: -

 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) 

après avoir donné ce courant de jeton en entrée pour fonctionner, il doit retourner « animal » comme la valeur de jeton « Identifiant » qui suit « classe ' jeton.

Répondre

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 
Questions connexes