diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-04-10 19:00:43 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-04-10 19:10:17 +0200 |
commit | aeaeba2d7362a055c5c78f410a743ea977d8cd36 (patch) | |
tree | eceab3dcaf74b3d224aaab9481c0f051bed10c9c /src/output_lr0.cpp | |
parent | 475326bf1295f1985b1853d04ca036156bcad889 (diff) | |
download | solar-aeaeba2d7362a055c5c78f410a743ea977d8cd36.tar solar-aeaeba2d7362a055c5c78f410a743ea977d8cd36.zip |
Add support for escape sequences in character symbols
Diffstat (limited to 'src/output_lr0.cpp')
-rw-r--r-- | src/output_lr0.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/output_lr0.cpp b/src/output_lr0.cpp index 86206a3..b821333 100644 --- a/src/output_lr0.cpp +++ b/src/output_lr0.cpp @@ -42,11 +42,7 @@ void output_lr0_t::emit_state_shift(unsigned i) { if (it == generator->get_shifts().end()) continue; - if (token.get_type() == SYMBOL_TYPE_CHAR) - std::fprintf(source_file, "\t\t\tcase '%c':\n", token.get_value()[0]); - else - std::fprintf(source_file, "\t\t\tcase %s%s:\n", token_prefix(), token.get_value().c_str()); - + std::fprintf(source_file, "\t\t\tcase %s:\n", symbol_case(token).c_str()); std::fprintf(source_file, "\t\t\t\tparser->stack[parser->top].value.token = *value;\n"); std::fprintf(source_file, "\t\t\t\tparser->stack[++parser->top].state = %u;\n", unsigned(it->second)); std::fprintf(source_file, "\t\t\t\treturn 1;\n\n"); |