117 OutputFile & o = output.source;
124 label_t start_label = o.label_counter.next ();
127 label_t initial_label = bProlog &&
opts->
cFlag
128 ? o.label_counter.next ()
130 for (State * s =
head; s; s = s->
next)
132 s->label = o.label_counter.next ();
134 std::set<label_t> used_labels;
135 count_used_labels (used_labels, start_label, initial_label, o.get_force_start_label ());
145 if (output.skeletons.insert (
name).second)
150 emit_body (o, i, used_labels, initial_label);
159 o.ws(
"\n").wdelay_line_info ();
163 o.ws(
"digraph re2c {\n");
165 else if ((!
opts->
fFlag && o.get_used_yyaccept ())
173 o.wind(ind++).ws(
"{\n");
185 o.wdelay_yyaccept_init (ind);
202 o.wdelay_state_goto (ind);
205 if (used_labels.count(start_label))
210 o.wuser_start_label ();
233 o.wind(ind++).ws(
"{\n");
237 emit_body (o, ind, used_labels, initial_label);
240 o.wind(--ind).ws(
"}\n");
243 if ((!
opts->
cFlag || isLastCond) && bPrologBrace)
245 o.wind(--ind).ws(
"}\n");
std::string replaceParam(std::string str, const std::string ¶m, const _Ty &value)
static void genCondTable(OutputFile &o, uint32_t ind, const std::vector< std::string > &condnames)
static void genCondGoto(OutputFile &o, uint32_t ind, const std::vector< std::string > &condnames)
static void gen(OutputFile &, uint32_t ind, uint32_t, uint32_t)
void emit_end(OutputFile &o, bool backup, bool backupctx) const
void emit_start(OutputFile &o, size_t maxfill, bool backup, bool backupctx, bool accept) const
void emit_data(const char *fname)
void warn_unreachable_rules()
void warn_undefined_control_flow()
void set_initial(label_t label, bool used_marker)
enum re2c::Action::type_t type
std::string condDividerParam