Bonjour à tous
Je regarde comment fonctionne ANTLR, et je suis bloqué sur le problème suivant
je souhaite parser quelque chose qui reseemble à ceci
Instruction Idenfieur
Instruction $HexaDecimalvalue
j'ai donc créer mes règles comme ceci (c'est un résumé):
Mon parseur fonctionne bien sauf dans un cas précis;: Quand ma valeur hexadécimal commence par A,b,c,d,e,f.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 line: instruction ( Identifier | '$' numericvalue ); numericvalue: HexaNumber ; HexaNumber : ('-' | '+')? ( '0'..'9' | 'a'..'f' | 'A'..'F')+ ; Identifier : ('_' | Letter) ('_' | Letter | Figure)* ;
j'ai compris pourquoi, mais je ne sais pas comment le résoudre
Quand ma valeur hexadecimal commence par une lettre, mon lexer traduit le texte en identifier. et du coup je ne match plus avec ma grammaire.
Par exemple, FAFA est aussi un un nombre hexadécimal qu'une chaine de caractère
Comment puis je résoudre ce conflit
merci
Partager