summaryrefslogtreecommitdiffstats
path: root/src/output_lr0.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/output_lr0.cpp')
-rw-r--r--src/output_lr0.cpp6
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");