J'essaye de faire un analyseur de Bison pour manipuler des caractères UTF-8. Je ne veux pas que l'analyseur interprète réellement les valeurs de caractères Unicode, mais je veux qu'il analyse la chaîne UTF-8 comme une séquence d'octets.Can Bison peut-il analyser les caractères UTF-8?
En ce moment, Bison génère le code suivant qui est problématique:
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
Le problème est que le nombre d'octets de la chaîne UTF-8 aura une valeur négative, et Bison interprète des valeurs négatives comme EOF, et s'arrête.
Y a-t-il un moyen de contourner cela?
Eh bien, mon lexer gère très bien les caractères UTF-8, mais l'analyseur Bison arrête l'analyse dès qu'il voit une valeur négative. S'il vous plaît donnez votre avis. –
Lisez-vous votre fichier 1 octet à la fois? ou 1 caractère encodé utf-8 à la fois? – eduffy
1 octet à la fois. –