In generated C, only format printable characters as char literals

This commit is contained in:
Max Brunsfeld 2014-08-07 08:12:15 -07:00
parent b155994491
commit 9366f11dcb
6 changed files with 58 additions and 55 deletions

View file

@ -232,11 +232,10 @@ class CCodeGenerator {
string condition_for_character_range(const rules::CharacterRange &range) {
string lookahead("lookahead");
if (range.min == range.max) {
return lookahead + " == '" + escape_char(range.min) + "'";
return lookahead + " == " + escape_char(range.min);
} else {
return string("'") + escape_char(range.min) + string("' <= ") +
lookahead + " && " + lookahead + " <= '" + escape_char(range.max) +
"'";
return escape_char(range.min) + string(" <= ") + lookahead + " && " +
lookahead + " <= " + escape_char(range.max);
}
}