Version 0.10.2 (????-??-??)
---------------------------
+- Fixed generation of YYDEBUG() when using -d switch.
- Added /*!getstate:re2c */ which triggers generation of the YYGETSTATE() block.
- Added configuration 'state:abort'.
- Changed to not generate yyNext unless configuration 'state:nextlabel' is used.
{
o << "\n";
}
+ if (dFlag)
+ {
+ o << indent(ind) << "YYDEBUG(" << label << ", *YYCURSOR);\n";
+ }
if (state->link)
{
need(o, ind, state->depth, readCh, setMarker);
{
o << "yy" << label << ":\n";
}
- if (dFlag)
+ if (dFlag && !action->isInitial())
{
o << indent(ind) << "YYDEBUG(" << label << ", *YYCURSOR);\n";
}
virtual void emit(std::ostream&, uint, bool&) const = 0;
virtual bool isRule() const;
virtual bool isMatch() const;
+ virtual bool isInitial() const;
virtual bool readAhead() const;
#ifdef PEDANTIC
public:
Initial(State*, uint, bool);
void emit(std::ostream&, uint, bool&) const;
+ bool isInitial() const;
};
class Save: public Match
return false;
}
+inline bool Action::isInitial() const
+{
+ return false;
+}
+
inline bool Action::readAhead() const
{
return !isMatch() || (state && state->next && state->next->action && !state->next->action->isRule());
inline Initial::Initial(State *s, uint l, bool b) : Enter(s, l), setMarker(b)
{ }
+inline bool Initial::isInitial() const
+{
+ return true;
+}
+
inline Save::Save(State *s, uint i) : Match(s), selector(i)
{ }
<h1>Changelog</h1>
<h2>????-??-??: 0.10.2</h2>
<ul>
+<li>Fixed generation of YYDEBUG() when using -d switch.</li>
<li>Added /*!getstate:re2c */ which triggers generation of the YYGETSTATE() block.</li>
<li>Added configuration 'state:abort'.</li>
<li>Changed to not generate yyNext unless configuration 'state:nextlabel' is used.</li>