typedef std::vector<std::string> code_lines_t;
void emit_action(Output &o, uint32_t ind, const DFA &dfa, const State *s, const std::set<label_t> &used_labels);
-void gen_goto_plain(Output &o, uint32_t ind, const State *from, const State *to, const DFA &dfa, tcid_t tcid, bool skip, bool fill);
-void gen_goto_case(Output &o, uint32_t ind, const State *from, const State *to, const DFA &dfa, tcid_t tcid, bool skip, bool fill);
-void gen_goto_if(Output &o, uint32_t ind, const State *from, const State *to, const DFA &dfa, tcid_t tcid, bool skip, bool fill);
+void gen_goto_plain(Output &o, uint32_t ind, const State *from, const State *to, const DFA &dfa, tcid_t tcid, bool skip, bool eof);
+void gen_goto_case(Output &o, uint32_t ind, const State *from, const State *to, const DFA &dfa, tcid_t tcid, bool skip, bool eof);
+void gen_goto_if(Output &o, uint32_t ind, const State *from, const State *to, const DFA &dfa, tcid_t tcid, bool skip, bool eof);
void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *opts);
std::string vartag_name(tagver_t ver, const std::string &prefix);
std::string vartag_expr(tagver_t ver, const std::string &prefix, const std::string &expression);
}
void gen_goto_case(Output &o, uint32_t ind, const State *from, const State *to,
- const DFA &dfa, tcid_t tcid, bool skip, bool fill)
+ const DFA &dfa, tcid_t tcid, bool skip, bool eof)
{
code_lines_t code;
- gen_goto(code, from, to, dfa, tcid, o.block().opts, skip, fill, o.fill_index);
+ gen_goto(code, from, to, dfa, tcid, o.block().opts, skip, eof, o.fill_index);
const size_t lines = code.size();
if (lines == 1) {
}
void gen_goto(code_lines_t &code, const State *from, const State *to
- , const DFA &dfa, tcid_t tcid, const opt_t *opts, bool skip, bool fill
+ , const DFA &dfa, tcid_t tcid, const opt_t *opts, bool skip, bool eof
, uint32_t fillidx)
{
- if (fill) {
+ if (eof) {
gen_on_eof(code, opts, dfa, from, to, fillidx);
}