Lexer ocaml

Fermé
mozzilla Messages postés 1 Date d'inscription dimanche 22 avril 2012 Statut Membre Dernière intervention 22 avril 2012 - 22 avril 2012 à 19:20
Bonjour,

j'ai un fichier lexer.mll où j'ai des non terminaux comme

op = ['+' '~' '*']
id = ( ['a'-'z']* | op )

mais si je parse un '+' il sera considéré comme un op
comment faire pour qu'il soit considéré comme un op et comme un id?

Où bien alors si je ne peux pas faire la distinction dans le lexer comment faire dans mon parser.mly quand j'ai :

| x=ID {...}
sans avoir a dupliquer la règle
|x=ID {...}
|x=OP {...}

Merci