J'ai regardé ceci moi-même et j'ai lu la liste de diffusion de Flex pour voir si quelqu'un y avait pensé. Faire en sorte que Flex lise unicode est une tâche complexe ...
Le codage UTF-8 peut être effectué, et la plupart des autres codages (les 16) conduiront à des tables massives pilotant les automates.
Une méthode commune jusqu'à présent est:
Ce que je n'était tout simplement écrire des modèles qui correspondent à des caractères simples UTF-8 . Ils ressemblent quelque chose comme ce qui suit, mais vous voudrez peut-être relire la spécification UTF-8 parce que j'ai écrit cela il y a si longtemps.
Vous aurez bien sûr besoin de combiner ceux-ci puisque vous voulez des chaînes Unicode, pas seulement des caractères individuels.
UB [\200-\277] %%
[\300-\337]{UB} { do something }
[\340-\357]{UB}{2} { do something }
[\360-\367]{UB}{3} { do something }
[\370-\373]{UB}{4} { do something }
[\374-\375]{UB}{5} { do something }
depuis la liste de diffusion.
Je peux envisager de créer un correctif approprié pour le support UTF-8 après l'avoir examiné plus en détail. La solution ci-dessus semble impossible à maintenir pour les gros fichiers .l. Et c'est vraiment moche! Vous pouvez utiliser des plages similaires pour créer un '.' Règle de substitution pour correspondre à tous les caractères ASCII et UTF-8, mais toujours plutôt moche.
espérons que cela aide!
Si cela fonctionne, super :) un support Unicode approprié serait bien. –
D'accord. Je cours un autre problème maintenant, Flex vérifie "if (yychar <= YYEOF) {/ * scanning terminé * /}", mais mes caractères UTF-8 sont négatifs :( –
Vous aurez des tonnes de problèmes. à l'interne, ce sera une mission de réécrire le code ecs, le générateur de table et les choses, peut-être mieux de repartir de zéro: P wanna help? –