yacc/lex: nie widzi odwrotnego apostrofa

0

Zaczynam przygodę z yacc'em i lex'em. Mam kompletne źródło kompilatora jakiegoś basica, w którym "pionowy" apostrof (który w C jest używany do '0') jest zarezerwowany na komentaż.
Postanowiłem dodać '0' z C w postaci 0, ale niestety nie daję rady: ani , "", ` nie są wyłapywane, tylko lecą od handlera "każdy inny znak":

// plik.l, kompilowany alex.exe'em z http://www.bumblebeesoftware.com/
// tu cała masa tokenów

`      { fprintf(stdout, "jest"); }
\`     { fprintf(stdout, "jest"); }
"`"    { fprintf(stdout, "jest"); }
\x60   { fprintf(stdout, "jest"); }
`[^`]` { fprintf(stdout, "jest"); }

. { sprintf(buf,"invalid character '0x%02x'\n", (unsigned int)yytext[0]); 
	yy_warning(buf);}

Kod basica dla tego: int i = 1``Lexer nie sygnalizuje "jest", a kompilator czepia się pierwszego apostrofu pisząc domyślny błąd "invalid character".

0

a \140 ?

0

Ok już działa. Jak na złość zapomniałem zmienić kompilator basica z domyślnego na ten nowy.

Załapałem że coś jest nie tak dopiero po zmianie "invalid character" na inny string. Kompilator usilnie pokazywał "invalid character".

1 użytkowników online, w tym zalogowanych: 0, gości: 1