Je crée une grammaire en utilisant JavaCC et j'ai rencontré un petit problème. J'essaie de permettre à tout caractère valide dans l'ensemble étendu ASCII d'être reconnu par le compilateur résultant. Après avoir examiné les mêmes exemples de javacc (principalement l'exemple montrant la JavaCC Grammer lui-même), je mis en place le jeton suivant pour reconnaître mes personnages:Reconnaissance de caractères étendus en utilisant JAVACC
< CHARACTER:
( (~["'"," ","\\","\n","\r"])
| ("\\"
(["n","t","b","r","f","\\","'","\""]
| ["0"-"7"] (["0"-"7"])?
| ["0"-"3"] ["0"-"7"] ["0"-"7"]
)
)
)
>
Si je comprends cela correctement, il devrait être mise en correspondance sur la représentation octal de tous les caractères ASCII, de 0 à 377 (qui couvre les 256 caractères de l'ensemble ASCII étendu). Cela fonctionne comme prévu pour tous les caractères du clavier (a-z, 0-9,?,./Etc) et même pour la plupart des caractères spéciaux (©, ¬ ®). Cependant, chaque fois que j'essaie d'analyser le symbole 'trademark' (™) mon analyseur jette continuellement une exception de fin de fichier, indiquant qu'il est incapable de reconnaître le symbole. Existe-t-il un moyen évident d'améliorer ma définition d'un personnage pour permettre l'acceptation du symbole de la marque?