Sto provando a creare un parser Bison per gestire i caratteri UTF-8. Non voglio che il parser interpreti effettivamente i valori dei caratteri Unicode, ma voglio che analizzi la stringa UTF-8 come una sequenza di byte.Can Bison analizza i caratteri UTF-8?
momento Bison genera il seguente codice che è problematico:
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
Il problema è che molti byte della stringa UTF-8 avrà un valore negativo, e Bison interpreta valori negativi come EOF, e si ferma
C'è un modo per aggirare questo?
Bene, il mio lexer gestisce i caratteri UTF-8 bene, ma il parser Bison interrompe l'analisi non appena vede un valore negativo. Si prega di avvisare. –
Stai leggendo il tuo file 1 byte alla volta? o 1 carattere codificato utf-8 alla volta? – eduffy
1 byte alla volta. –