AUTOGEN_LEX = src/parse/lex.cc
AUTOGEN_LEX_CONF = src/parse/lex_conf.cc
AUTOGEN_PARSEOPT = src/conf/parse_opts.cc
-AUTOGEN_SUBSTTAGS = src/codegen/subst_tags.cc
AUTOGEN_PARSER = src/parse/parser.cc
AUTOGEN_PARSER_HDR = src/parse/y.tab.h
AUTOGEN = \
$(AUTOGEN_LEX_CONF) \
$(AUTOGEN_PARSER) \
$(AUTOGEN_PARSER_HDR) \
- $(AUTOGEN_PARSEOPT) \
- $(AUTOGEN_SUBSTTAGS)
+ $(AUTOGEN_PARSEOPT)
nodist_re2c_SOURCES = $(AUTOGEN)
# bootstrap sources
BOOTSTRAP_LEX = bootstrap/src/parse/lex.cc
BOOTSTRAP_LEX_CONF = bootstrap/src/parse/lex_conf.cc
BOOTSTRAP_PARSEOPT = bootstrap/src/conf/parse_opts.cc
-BOOTSTRAP_SUBSTTAGS = bootstrap/src/codegen/subst_tags.cc
BOOTSTRAP_PARSER = bootstrap/src/parse/parser.cc
BOOTSTRAP_PARSER_HDR = bootstrap/src/parse/y.tab.h
BOOTSTRAP_DOC = bootstrap/doc/re2c.1
$(BOOTSTRAP_DOC) \
$(BOOTSTRAP_PARSER) \
$(BOOTSTRAP_PARSER_HDR) \
- $(BOOTSTRAP_PARSEOPT) \
- $(BOOTSTRAP_SUBSTTAGS)
+ $(BOOTSTRAP_PARSEOPT)
# custom sources
CUSTOM_LEX = src/parse/lex.re
CUSTOM_LEX_CONF = src/parse/lex_conf.re
CUSTOM_PARSEOPT = src/conf/parse_opts.re
-CUSTOM_SUBSTTAGS = src/codegen/subst_tags.re
CUSTOM_PARSER = src/parse/parser.ypp
CUSTOM = \
$(CUSTOM_LEX) \
$(CUSTOM_LEX_CONF) \
$(CUSTOM_PARSER) \
- $(CUSTOM_PARSEOPT) \
- $(CUSTOM_SUBSTTAGS)
+ $(CUSTOM_PARSEOPT)
# docs
SRC_DOC = doc/manpage.rst
+++ /dev/null
-/* Generated by re2c 0.16 on Sat May 14 15:27:19 2016 */
-#line 1 "../src/codegen/subst_tags.re"
-#include "src/codegen/emit.h"
-#include "src/codegen/input_api.h"
-#include "src/conf/opt.h"
-#include "src/globals.h"
-
-namespace re2c
-{
-
-std::string subst_tags(const std::string &action,
- const std::valarray<Tag> &tags, size_t ltag, size_t htag)
-{
- if (ltag >= htag) {
- return action;
- }
-
- std::string result;
- const char
- *head = action.c_str(),
- *last = head + action.length(),
- *tail = head,
- *base;
-
- loop:
-#line 27 "src/codegen/subst_tags.cc"
-{
- char yych;
- long yytag1name;
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 128,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
- base = head;
- yych = *head;
- if (yych <= 0x00) goto yy2;
- if (yych == '@') goto yy6;
- goto yy4;
-yy2:
- ++head;
-#line 33 "../src/codegen/subst_tags.re"
- {
- if (base == last) {
- result.append(tail, base);
- return result;
- }
- goto loop;
- }
-#line 80 "src/codegen/subst_tags.cc"
-yy4:
- ++head;
-yy5:
-#line 31 "../src/codegen/subst_tags.re"
- { goto loop; }
-#line 86 "src/codegen/subst_tags.cc"
-yy6:
- yych = *++head;
- if (yych <= 'Z') {
- if (yych <= '/') goto yy5;
- if (yych <= '9') {
- yytag1name = (head - base);
- goto yy7;
- }
- if (yych <= '@') goto yy5;
- yytag1name = (head - base);
- } else {
- if (yych <= '_') {
- if (yych <= '^') goto yy5;
- yytag1name = (head - base);
- } else {
- if (yych <= '`') goto yy5;
- if (yych >= '{') goto yy5;
- yytag1name = (head - base);
- }
- }
-yy7:
- ++head;
- yych = *head;
- if (yybm[0+yych] & 128) {
- goto yy7;
- }
-#line 41 "../src/codegen/subst_tags.re"
- {
- const std::string name((base + yytag1name), head);
- for (size_t i = ltag; i < htag; ++i) {
- const Tag &t = tags[i];
- if (name == *t.name) {
- result.append(tail, base);
- result.append(opts->input_api.expr_tag(tags, t));
- tail = head;
- break;
- }
- }
- goto loop;
- }
-#line 127 "src/codegen/subst_tags.cc"
-}
-#line 54 "../src/codegen/subst_tags.re"
-
-}
-
-} // namespace re2c
std::string vartag_expr(const std::string *name, size_t rule);
std::string vartag_name_fallback(const Tag &tag);
std::string vartag_expr_fallback(const Tag &tag);
-std::string subst_tags(const std::string &action,
- const std::valarray<Tag> &tags, size_t ltag, size_t htag);
} // namespace re2c
{
const Rule &rule = dfa.rules[rule_idx];
const RuleInfo *info = rule.info;
+ const std::valarray<Tag> &tags = dfa.tags;
if (rule.trail != Tag::NONE) {
- o.wstring(opts->input_api.stmt_restorectx(ind, dfa.tags, dfa.tags[rule.trail], dfa.basetag));
+ o.wstring(opts->input_api.stmt_restorectx(ind, tags, tags[rule.trail], dfa.basetag));
+ }
+ for (size_t t = rule.ltag; t < rule.htag; ++t) {
+ o.wstring(opts->input_api.stmt_tag_finalizer(ind, tags, tags[t]));
}
if (opts->target == opt_t::SKELETON) {
if (!yySetupRule.empty()) {
o.wind(ind).wstring(yySetupRule).ws("\n");
}
- const std::string action = subst_tags(code->text, dfa.tags, rule.ltag, rule.htag);
o.wline_info(code->loc.line, code->loc.filename.c_str())
- .wind(ind).wstring(action).ws("\n")
+ .wind(ind).wstring(code->text).ws("\n")
.wdelay_line_info();
} else if (!cond.empty()) {
std::string action = opts->condGoto;
OutputFile &o = output.source;
OutputBlock &ob = o.block();
- std::set<std::string> tagnames;
+ std::set<std::string> tagnames, tagvars;
if (basetag) {
const size_t ntags = tags.size();
for (size_t i = 0; i < ntags; ++i) {
if (t.type == Tag::VAR && t.var.orig == i) {
tagnames.insert(vartag_name(t.name, t.rule));
}
+ if (t.name != NULL) {
+ tagvars.insert(*t.name);
+ }
}
const bool *copy = tagpool[copy_tags];
for (size_t i = 0; i < ntags; ++i) {
{
emit_data(*skeleton);
emit_start(*skeleton, o, max_fill, need_backup, need_backupctx,
- need_accept, basetag, tagnames);
+ need_accept, basetag, tagnames, tagvars);
uint32_t i = 2;
emit_body (o, i, used_labels, initial_label);
emit_end(*skeleton, o, need_backup, need_backupctx);
return s + expr_dist() + ";\n";
}
-std::string InputAPI::expr_tag(const std::valarray<Tag> &tags, const Tag &tag) const
+std::string InputAPI::stmt_tag_finalizer(uint32_t ind,
+ const std::valarray<Tag> &tags, const Tag &tag) const
{
std::string expr;
-
if (tag.type == Tag::VAR) {
const Tag &orig = tags[tag.var.orig];
expr = vartag_expr(orig.name, orig.rule);
if (type_ == DEFAULT) {
// optimize '(YYCTXMARKER + ((YYCURSOR - YCTXMARKER) - tag))'
// to '(YYCURSOR - tag)'
- return "(" + opts->yycursor + " - " + dist + ")";
+ return indent(ind) + *tag.name + " = " + opts->yycursor + " - " + dist + ";\n";
}
expr = opts->tags_yydist + "() - " + dist;
} else {
}
}
- return (type_ == DEFAULT)
- ? "(" + opts->yyctxmarker + " + " + expr + ")"
- : opts->tags_yytag + "(" + expr + ")";
+ const std::string stmt = type_ == DEFAULT
+ ? *tag.name + " = " + opts->yyctxmarker + " + " + expr
+ : opts->tags_yytag + "(" + *tag.name + ", " + expr + ")";
+
+ return indent(ind) + stmt + ";\n";
}
std::string InputAPI::stmt_restore (uint32_t ind) const
std::string expr_dist () const;
std::string stmt_dist (uint32_t ind, const bool *tagmask,
const std::valarray<Tag> &tags) const;
- std::string expr_tag(const std::valarray<Tag> &tags, const Tag &tag) const;
+ std::string stmt_tag_finalizer(uint32_t ind,
+ const std::valarray<Tag> &tags, const Tag &tag) const;
std::string stmt_restore (uint32_t ind) const;
std::string stmt_restorectx(uint32_t ind,
const std::valarray<Tag> &tags, const Tag &tag, bool basetag) const;
+++ /dev/null
-#include "src/codegen/emit.h"
-#include "src/codegen/input_api.h"
-#include "src/conf/opt.h"
-#include "src/globals.h"
-
-namespace re2c
-{
-
-std::string subst_tags(const std::string &action,
- const std::valarray<Tag> &tags, size_t ltag, size_t htag)
-{
- if (ltag >= htag) {
- return action;
- }
-
- std::string result;
- const char
- *head = action.c_str(),
- *last = head + action.length(),
- *tail = head,
- *base;
-
- loop: /*!re2c
-
- re2c:define:YYCTYPE = char;
- re2c:define:YYCURSOR = head;
- re2c:define:YYCTXMARKER = base;
- re2c:yyfill:enable = 0;
- re2c:flags:tags = 1;
-
- * { goto loop; }
-
- "\x00" {
- if (base == last) {
- result.append(tail, base);
- return result;
- }
- goto loop;
- }
-
- "@" @name [a-zA-Z0-9_]+ {
- const std::string name(@name, head);
- for (size_t i = ltag; i < htag; ++i) {
- const Tag &t = tags[i];
- if (name == *t.name) {
- result.append(tail, base);
- result.append(opts->input_api.expr_tag(tags, t));
- tail = head;
- break;
- }
- }
- goto loop;
- }
- */
-}
-
-} // namespace re2c
void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill,
bool backup, bool backupctx, bool accept, bool basetag,
- const std::set<std::string> &tagnames)
+ const std::set<std::string> &tagnames,
+ const std::set<std::string> &tagvars)
{
const size_t
sizeof_cunit = opts->encoding.szCodeUnit(),
if(basetag) {
o.ws("\n#define YYRESTORECTX(dist) cursor = ctxmarker + dist");
o.ws("\n#define YYDIST() (cursor - ctxmarker)");
+ o.ws("\n#define YYTAG(tag, dist) tag = ctxmarker + dist");
} else {
o.ws("\n#define YYRESTORECTX() cursor = ctxmarker");
}
output_tags_default(o.stream(), 2, tagnames);
o.ws("\n").wstring(opts->input_api.stmt_backupctx(2));
}
+
+ std::set<std::string>::const_iterator
+ var1 = tagvars.begin(),
+ var2 = tagvars.end();
+ if (var1 != var2) {
+ o.ws("\n").wind(2).ws("YYCTYPE *").wstring(*var1);
+ for (++var1; var1 != var2; ++var1) {
+ o.ws(", *").wstring(*var1);
+ }
+ o.ws(";");
+ }
+
o.ws("\n");
if (opts->bFlag && BitMap::first) {
BitMap::gen(o, 2, 0, std::min(0x100u, opts->encoding.nCodeUnits()));
void emit_prolog(OutputFile & o);
void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill,
bool backup, bool backupctx, bool accept, bool basetag,
- const std::set<std::string> &tagnames);
+ const std::set<std::string> &tagnames,
+ const std::set<std::string> &tagvars);
void emit_end(const Skeleton &skel, OutputFile &o, bool backup, bool backupctx);
void emit_epilog(OutputFile &o, const std::set<std::string> &names);
void emit_action(const Skeleton &skel, OutputFile &o, uint32_t ind,
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
{
char yych;
default: goto yy17;
}
yy17:
+ ZZ_CTX(p3, zz_0p3);
+ ZZ_CTX(p2, zz_0p2);
+ ZZ_CTX(p1, zz_0p1);
{
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, ZZ_CTX(zz_0p1)),
- parse_oct(ZZ_CTX(zz_0p1) + 1, ZZ_CTX(zz_0p2)),
- parse_oct(ZZ_CTX(zz_0p2) + 1, ZZ_CTX(zz_0p3)),
- parse_oct(ZZ_CTX(zz_0p3) + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
yy18:
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
{
char yych;
default: goto yy17;
}
yy17:
+ p3 = YYCTXMARKER + zz_0p3;
+ p2 = YYCTXMARKER + zz_0p2;
+ p1 = YYCTXMARKER + zz_0p1;
{
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, (YYCTXMARKER + zz_0p1)),
- parse_oct((YYCTXMARKER + zz_0p1) + 1, (YYCTXMARKER + zz_0p2)),
- parse_oct((YYCTXMARKER + zz_0p2) + 1, (YYCTXMARKER + zz_0p3)),
- parse_oct((YYCTXMARKER + zz_0p3) + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
yy18:
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
long zz_0p1;long zz_0p2;long zz_0p3;
{
default: goto yy17;
}
yy17:
+ ZZ_CTX(p3, zz_0p3);
+ ZZ_CTX(p2, zz_0p2);
+ ZZ_CTX(p1, zz_0p1);
{
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, ZZ_CTX(zz_0p1)),
- parse_oct(ZZ_CTX(zz_0p1) + 1, ZZ_CTX(zz_0p2)),
- parse_oct(ZZ_CTX(zz_0p2) + 1, ZZ_CTX(zz_0p3)),
- parse_oct(ZZ_CTX(zz_0p3) + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
yy18:
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
/*!tags:re2c*/
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
long zz_0p1;long zz_0p2;long zz_0p3;
{
default: goto yy17;
}
yy17:
+ p3 = YYCTXMARKER + zz_0p3;
+ p2 = YYCTXMARKER + zz_0p2;
+ p1 = YYCTXMARKER + zz_0p1;
{
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, (YYCTXMARKER + zz_0p1)),
- parse_oct((YYCTXMARKER + zz_0p1) + 1, (YYCTXMARKER + zz_0p2)),
- parse_oct((YYCTXMARKER + zz_0p2) + 1, (YYCTXMARKER + zz_0p3)),
- parse_oct((YYCTXMARKER + zz_0p3) + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
yy18:
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!tags:re2c*/
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
*/
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
ptrdiff_t zz_0p1 = 0, zz_0p2 = 0, zz_0p3 = 0;
default: goto yy17;
}
yy17:
+ ZZ_CTX(p3, zz_0p3);
+ ZZ_CTX(p2, zz_0p2);
+ ZZ_CTX(p1, zz_0p1);
{
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, ZZ_CTX(zz_0p1)),
- parse_oct(ZZ_CTX(zz_0p1) + 1, ZZ_CTX(zz_0p2)),
- parse_oct(ZZ_CTX(zz_0p2) + 1, ZZ_CTX(zz_0p3)),
- parse_oct(ZZ_CTX(zz_0p3) + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
yy18:
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
/*!tags:re2c sep="\n"; line="long @@ = 0;"; line=; sep=; */
ptrdiff_t /*!tags:re2c sep=", "; line="@@ = 0"; */;
/*!re2c
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
ptrdiff_t zz_0p1 = 0, zz_0p2 = 0, zz_0p3 = 0;
default: goto yy17;
}
yy17:
+ p3 = YYCTXMARKER + zz_0p3;
+ p2 = YYCTXMARKER + zz_0p2;
+ p1 = YYCTXMARKER + zz_0p1;
{
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, (YYCTXMARKER + zz_0p1)),
- parse_oct((YYCTXMARKER + zz_0p1) + 1, (YYCTXMARKER + zz_0p2)),
- parse_oct((YYCTXMARKER + zz_0p2) + 1, (YYCTXMARKER + zz_0p3)),
- parse_oct((YYCTXMARKER + zz_0p3) + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
yy18:
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!tags:re2c sep="\n"; line="long @@ = 0;"; line=; sep=; */
ptrdiff_t /*!tags:re2c sep=", "; line="@@ = 0"; */;
/*!re2c
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
*/
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
contexts_t ctxs;
{
default: goto yy17;
}
yy17:
+ ZZ_CTX(p3, ctxs.zz_0p3);
+ ZZ_CTX(p2, ctxs.zz_0p2);
+ ZZ_CTX(p1, ctxs.zz_0p1);
{
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, ZZ_CTX(ctxs.zz_0p1)),
- parse_oct(ZZ_CTX(ctxs.zz_0p1) + 1, ZZ_CTX(ctxs.zz_0p2)),
- parse_oct(ZZ_CTX(ctxs.zz_0p2) + 1, ZZ_CTX(ctxs.zz_0p3)),
- parse_oct(ZZ_CTX(ctxs.zz_0p3) + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
yy18:
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
contexts_t ctxs;
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
contexts_t ctxs;
{
default: goto yy17;
}
yy17:
+ p3 = YYCTXMARKER + ctxs.zz_0p3;
+ p2 = YYCTXMARKER + ctxs.zz_0p2;
+ p1 = YYCTXMARKER + ctxs.zz_0p1;
{
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, (YYCTXMARKER + ctxs.zz_0p1)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p1) + 1, (YYCTXMARKER + ctxs.zz_0p2)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p2) + 1, (YYCTXMARKER + ctxs.zz_0p3)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p3) + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
yy18:
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
contexts_t ctxs;
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
*/
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
contexts_t ctxs;
{
default: goto yy17;
}
yy17:
+ ZZ_CTX(p3, ctxs.zz_0p3);
+ ZZ_CTX(p2, ctxs.zz_0p2);
+ ZZ_CTX(p1, ctxs.zz_0p1);
{
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, ZZ_CTX(ctxs.zz_0p1)),
- parse_oct(ZZ_CTX(ctxs.zz_0p1) + 1, ZZ_CTX(ctxs.zz_0p2)),
- parse_oct(ZZ_CTX(ctxs.zz_0p2) + 1, ZZ_CTX(ctxs.zz_0p3)),
- parse_oct(ZZ_CTX(ctxs.zz_0p3) + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
yy18:
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
contexts_t ctxs;
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
contexts_t ctxs;
{
default: goto yy17;
}
yy17:
+ p3 = YYCTXMARKER + ctxs.zz_0p3;
+ p2 = YYCTXMARKER + ctxs.zz_0p2;
+ p1 = YYCTXMARKER + ctxs.zz_0p1;
{
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, (YYCTXMARKER + ctxs.zz_0p1)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p1) + 1, (YYCTXMARKER + ctxs.zz_0p2)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p2) + 1, (YYCTXMARKER + ctxs.zz_0p3)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p3) + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
yy18:
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
contexts_t ctxs;
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
*/
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
contexts_t ctxs;
-#line 39 "tags/conf6.--tags--input(custom).c"
+#line 38 "tags/conf6.--tags--input(custom).c"
{
char yych;
YYBACKUPCTX ();
yy2:
YYSKIP ();
yy3:
-#line 55 "tags/conf6.--tags--input(custom).re"
+#line 54 "tags/conf6.--tags--input(custom).re"
{ printf("error\n"); return; }
-#line 62 "tags/conf6.--tags--input(custom).c"
+#line 61 "tags/conf6.--tags--input(custom).c"
yy4:
YYSKIP ();
YYBACKUP ();
default: goto yy17;
}
yy17:
-#line 60 "tags/conf6.--tags--input(custom).re"
+ ZZ_CTX(p3, ctxs.zz_0p3);
+ ZZ_CTX(p2, ctxs.zz_0p2);
+ ZZ_CTX(p1, ctxs.zz_0p1);
+#line 59 "tags/conf6.--tags--input(custom).re"
{
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, ZZ_CTX(ctxs.zz_0p1)),
- parse_oct(ZZ_CTX(ctxs.zz_0p1) + 1, ZZ_CTX(ctxs.zz_0p2)),
- parse_oct(ZZ_CTX(ctxs.zz_0p2) + 1, ZZ_CTX(ctxs.zz_0p3)),
- parse_oct(ZZ_CTX(ctxs.zz_0p3) + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
-#line 272 "tags/conf6.--tags--input(custom).c"
+#line 274 "tags/conf6.--tags--input(custom).c"
yy18:
YYSKIP ();
yych = YYPEEK ();
yych = YYPEEK ();
goto yy17;
}
-#line 68 "tags/conf6.--tags--input(custom).re"
+#line 67 "tags/conf6.--tags--input(custom).re"
}
#define YYRESTORE() s = marker
#define YYBACKUPCTX() basectx = s
#define YYRESTORECTX(dist) s = basectx + dist
-#define ZZ_CTX(dist) (basectx + dist)
+#define ZZ_CTX(tag, dist) tag = basectx + dist
#define ZZ_DIST() (s - basectx)
- const char *marker;
- const char *basectx;
+ const char *marker, *basectx, *p1, *p2, *p3;
contexts_t ctxs;
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(basectx, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, s));
+ parse_oct(basectx, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, s));
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
contexts_t ctxs;
-#line 31 "tags/conf6.--tags.c"
+#line 30 "tags/conf6.--tags.c"
{
char yych;
YYCTXMARKER = YYCURSOR;
yy2:
++YYCURSOR;
yy3:
-#line 45 "tags/conf6.--tags.re"
+#line 44 "tags/conf6.--tags.re"
{ printf("error\n"); return; }
-#line 54 "tags/conf6.--tags.c"
+#line 53 "tags/conf6.--tags.c"
yy4:
yych = *(YYMARKER = ++YYCURSOR);
switch (yych) {
default: goto yy17;
}
yy17:
-#line 50 "tags/conf6.--tags.re"
+ p3 = YYCTXMARKER + ctxs.zz_0p3;
+ p2 = YYCTXMARKER + ctxs.zz_0p2;
+ p1 = YYCTXMARKER + ctxs.zz_0p1;
+#line 49 "tags/conf6.--tags.re"
{
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, (YYCTXMARKER + ctxs.zz_0p1)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p1) + 1, (YYCTXMARKER + ctxs.zz_0p2)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p2) + 1, (YYCTXMARKER + ctxs.zz_0p3)),
- parse_oct((YYCTXMARKER + ctxs.zz_0p3) + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
-#line 252 "tags/conf6.--tags.c"
+#line 254 "tags/conf6.--tags.c"
yy18:
yych = *++YYCURSOR;
switch (yych) {
yych = *YYCURSOR;
goto yy17;
}
-#line 58 "tags/conf6.--tags.re"
+#line 57 "tags/conf6.--tags.re"
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
contexts_t ctxs;
/*!re2c
re2c:define:YYCTYPE = char;
d oct @p3
d oct {
printf("%u.%u.%u.%u\n",
- parse_oct(YYCTXMARKER, @p1),
- parse_oct(@p1 + 1, @p2),
- parse_oct(@p2 + 1, @p3),
- parse_oct(@p3 + 1, YYCURSOR));
+ parse_oct(YYCTXMARKER, p1),
+ parse_oct(p1 + 1, p2),
+ parse_oct(p2 + 1, p3),
+ parse_oct(p3 + 1, YYCURSOR));
return;
}
*/
}
yy5:
YYCURSOR = YYCTXMARKER + yyt0;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 1 p }
yy6:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
yy10:
YYCURSOR = YYCTXMARKER + yyt0;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 2 p }
yy11:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
goto yy18;
}
yy18:
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 1 p }
yy19:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
yy23:
YYCURSOR = YYCTXMARKER + yyt0p;
- { (YYCTXMARKER + yyt1p) }
+ p = YYCTXMARKER + yyt1p;
+ { 2 p }
}
goto yy29;
}
yy29:
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 1 p }
yy30:
yyaccept = 1;
YYMARKER = ++YYCURSOR;
}
yy35:
YYCURSOR = YYCTXMARKER + yyt1;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 2 p }
}
default: goto yy43;
}
yy43:
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 1 p }
yy44:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
}
yy47:
YYCURSOR = YYCTXMARKER + yyt1;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { 2 p }
}
/*!re2c
- "a" @p "b"* / "d"* { @p }
- "a" @p "b"* / "c"* { @p }
+ "a" @p "b"* / "d"* { 1 p }
+ "a" @p "b"* / "c"* { 2 p }
* {}
*/
/*!re2c
- "a" @p "b"* { @p }
- "a" @p "b"* / "c"* { @p }
+ "a" @p "b"* { 1 p }
+ "a" @p "b"* / "c"* { 2 p }
* {}
*/
/*!re2c
- "a" @p "b"* { @p }
- "a" @p "b"* / "cd"* { @p }
+ "a" @p "b"* { 1 p }
+ "a" @p "b"* / "cd"* { 2 p }
* {}
*/
/*!re2c
- "a" @p "b"+ { @p }
- "a" @p "b"+ / "cd"* { @p }
+ "a" @p "b"+ { 1 p }
+ "a" @p "b"+ / "cd"* { 2 p }
* {}
*/
}
yy5:
++YYCURSOR;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { p }
yy7:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
{}
yy14:
++YYCURSOR;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { p }
yy16:
yych = *(YYMARKER = ++YYCURSOR);
switch (yych) {
// in the other case non-looping transition goes first (and tags are not lost).
/*!re2c
- (@p "ac")* "b" { @p }
+ (@p "ac")* "b" { p }
* {}
*/
/*!re2c
- (@p "bc")* "a" { @p }
+ (@p "bc")* "a" { p }
* {}
*/
default: goto yy2;
}
yy2:
- { 3 (YYCTXMARKER + yyt1p) }
+ p = YYCTXMARKER + yyt1p;
+ { 3 p }
yy3:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
default: goto yy7;
}
yy7:
- { 2 (YYCTXMARKER + yyt1p) }
+ p = YYCTXMARKER + yyt1p;
+ { 2 p }
yy8:
yych = *++YYCURSOR;
switch (yych) {
/*!re2c
"ababa" { 1 }
- "ab" @p "a" "c"? { 2 @p }
- @p "a"? { 3 @p }
+ "ab" @p "a" "c"? { 2 p }
+ @p "a"? { 3 p }
*/
default: goto yy2;
}
yy2:
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { p }
yy3:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
/*!re2c
- ("ab" @p)* { @p }
+ ("ab" @p)* { p }
*/
default: goto yy8;
}
yy8:
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { p }
yy9:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
/*!re2c
- ("a" @p "bc")+ { @p }
+ ("a" @p "bc")+ { p }
* {}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
{
char yych;
}
yy19:
++YYCURSOR;
+ p4 = YYCURSOR - 5;
+ p3 = YYCURSOR - 9;
+ p2 = YYCURSOR - 12;
+ p1 = YYCURSOR - 14;
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- (YYCURSOR - 14) - YYCTXMARKER, YYCTXMARKER,
- (YYCURSOR - 12) - (YYCURSOR - 14), (YYCURSOR - 14),
- (YYCURSOR - 9) - (YYCURSOR - 12), (YYCURSOR - 12),
- (YYCURSOR - 5) - (YYCURSOR - 9), (YYCURSOR - 9),
- YYCURSOR - (YYCURSOR - 5), (YYCURSOR - 5));
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3333"
@p4 "44444" {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- @p4 - @p3, @p3,
- YYCURSOR - @p4, @p4);
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
*/
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
{
char yych;
yy19:
YYSKIP ();
YYRESTORECTX (YYDIST() - 5);
+ YYTAG(p3, YYDIST() - 4);
+ YYTAG(p2, YYDIST() - 7);
+ YYTAG(p1, YYDIST() - 9);
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- YYTAG(YYDIST() - 9) - YYCTXMARKER, YYCTXMARKER,
- YYTAG(YYDIST() - 7) - YYTAG(YYDIST() - 9), YYTAG(YYDIST() - 9),
- YYTAG(YYDIST() - 4) - YYTAG(YYDIST() - 7), YYTAG(YYDIST() - 7),
- YYCURSOR - YYTAG(YYDIST() - 4), YYTAG(YYDIST() - 4),
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
}
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3333"
/ "44444" {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
{
char yych;
yy19:
++YYCURSOR;
YYCURSOR -= 5;
+ p3 = YYCURSOR - 4;
+ p2 = YYCURSOR - 7;
+ p1 = YYCURSOR - 9;
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- (YYCURSOR - 9) - YYCTXMARKER, YYCTXMARKER,
- (YYCURSOR - 7) - (YYCURSOR - 9), (YYCURSOR - 9),
- (YYCURSOR - 4) - (YYCURSOR - 7), (YYCURSOR - 7),
- YYCURSOR - (YYCURSOR - 4), (YYCURSOR - 4),
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3333"
/ "44444" {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
{
char yych;
default: goto yy3;
}
yy2:
+ p4 = YYCTXMARKER + yyt0p4;
+ p3 = YYCTXMARKER + yyt0p3;
+ p2 = YYCTXMARKER + yyt0p2;
+ p1 = YYCTXMARKER + yyt0p1;
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- (YYCTXMARKER + yyt0p1) - YYCTXMARKER, YYCTXMARKER,
- (YYCTXMARKER + yyt0p2) - (YYCTXMARKER + yyt0p1), (YYCTXMARKER + yyt0p1),
- (YYCTXMARKER + yyt0p3) - (YYCTXMARKER + yyt0p2), (YYCTXMARKER + yyt0p2),
- (YYCTXMARKER + yyt0p4) - (YYCTXMARKER + yyt0p3), (YYCTXMARKER + yyt0p3),
- YYCURSOR - (YYCTXMARKER + yyt0p4), (YYCTXMARKER + yyt0p4));
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
yy3:
}
return 0;
}
-re2c: warning: line 17: rule matches empty string [-Wmatch-empty-string]
+re2c: warning: line 16: rule matches empty string [-Wmatch-empty-string]
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"*
@p4 "4"* {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- @p4 - @p3, @p3,
- YYCURSOR - @p4, @p4);
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
*/
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
{
char yych;
}
yy2:
YYRESTORECTX (yyt0);
+ YYTAG(p3, yyt0p3);
+ YYTAG(p2, yyt0p2);
+ YYTAG(p1, yyt0p1);
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- YYTAG(yyt0p1) - YYCTXMARKER, YYCTXMARKER,
- YYTAG(yyt0p2) - YYTAG(yyt0p1), YYTAG(yyt0p1),
- YYTAG(yyt0p3) - YYTAG(yyt0p2), YYTAG(yyt0p2),
- YYCURSOR - YYTAG(yyt0p3), YYTAG(yyt0p3),
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
yy3:
}
return 0;
}
-re2c: warning: line 17: rule matches empty string [-Wmatch-empty-string]
+re2c: warning: line 24: rule matches empty string [-Wmatch-empty-string]
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"*
/ "4"* {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
{
char yych;
}
yy2:
YYCURSOR = YYCTXMARKER + yyt0;
+ p3 = YYCTXMARKER + yyt0p3;
+ p2 = YYCTXMARKER + yyt0p2;
+ p1 = YYCTXMARKER + yyt0p1;
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- (YYCTXMARKER + yyt0p1) - YYCTXMARKER, YYCTXMARKER,
- (YYCTXMARKER + yyt0p2) - (YYCTXMARKER + yyt0p1), (YYCTXMARKER + yyt0p1),
- (YYCTXMARKER + yyt0p3) - (YYCTXMARKER + yyt0p2), (YYCTXMARKER + yyt0p2),
- YYCURSOR - (YYCTXMARKER + yyt0p3), (YYCTXMARKER + yyt0p3),
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
}
return 0;
}
-re2c: warning: line 17: rule matches empty string [-Wmatch-empty-string]
+re2c: warning: line 16: rule matches empty string [-Wmatch-empty-string]
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"*
/ "4"* {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
{
char yych;
}
yy11:
++YYCURSOR;
+ p4 = YYCURSOR - 1;
+ p3 = YYCTXMARKER + yyt0p3;
+ p2 = YYCTXMARKER + (yyt0p3 - 1);
+ p1 = YYCTXMARKER + yyt0p1;
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- (YYCTXMARKER + yyt0p1) - YYCTXMARKER, YYCTXMARKER,
- (YYCTXMARKER + (yyt0p3 - 1)) - (YYCTXMARKER + yyt0p1), (YYCTXMARKER + yyt0p1),
- (YYCTXMARKER + yyt0p3) - (YYCTXMARKER + (yyt0p3 - 1)), (YYCTXMARKER + (yyt0p3 - 1)),
- (YYCURSOR - 1) - (YYCTXMARKER + yyt0p3), (YYCTXMARKER + yyt0p3),
- YYCURSOR - (YYCURSOR - 1), (YYCURSOR - 1));
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"*
@p4 "4" {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- @p4 - @p3, @p3,
- YYCURSOR - @p4, @p4);
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
*/
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
{
char yych;
yy11:
YYSKIP ();
YYRESTORECTX (YYDIST() - 1);
+ YYTAG(p3, yyt0p3);
+ YYTAG(p2, (yyt0p3 - 1));
+ YYTAG(p1, yyt0p1);
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- YYTAG(yyt0p1) - YYCTXMARKER, YYCTXMARKER,
- YYTAG((yyt0p3 - 1)) - YYTAG(yyt0p1), YYTAG(yyt0p1),
- YYTAG(yyt0p3) - YYTAG((yyt0p3 - 1)), YYTAG((yyt0p3 - 1)),
- YYCURSOR - YYTAG(yyt0p3), YYTAG(yyt0p3),
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
}
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"*
/ "4" {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
{
char yych;
yy11:
++YYCURSOR;
YYCURSOR -= 1;
+ p3 = YYCTXMARKER + yyt0p3;
+ p2 = YYCTXMARKER + (yyt0p3 - 1);
+ p1 = YYCTXMARKER + yyt0p1;
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- (YYCTXMARKER + yyt0p1) - YYCTXMARKER, YYCTXMARKER,
- (YYCTXMARKER + (yyt0p3 - 1)) - (YYCTXMARKER + yyt0p1), (YYCTXMARKER + yyt0p1),
- (YYCTXMARKER + yyt0p3) - (YYCTXMARKER + (yyt0p3 - 1)), (YYCTXMARKER + (yyt0p3 - 1)),
- YYCURSOR - (YYCTXMARKER + yyt0p3), (YYCTXMARKER + yyt0p3),
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"*
/ "4" {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
{
char yych;
yych = *YYCURSOR;
goto yy15;
yy13:
+ p4 = YYCTXMARKER + yyt0p4;
+ p3 = YYCTXMARKER + (yyt0p4 - 1);
+ p2 = YYCTXMARKER + yyt0p2;
+ p1 = YYCTXMARKER + (yyt0p2 - 1);
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- (YYCTXMARKER + (yyt0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
- (YYCTXMARKER + yyt0p2) - (YYCTXMARKER + (yyt0p2 - 1)), (YYCTXMARKER + (yyt0p2 - 1)),
- (YYCTXMARKER + (yyt0p4 - 1)) - (YYCTXMARKER + yyt0p2), (YYCTXMARKER + yyt0p2),
- (YYCTXMARKER + yyt0p4) - (YYCTXMARKER + (yyt0p4 - 1)), (YYCTXMARKER + (yyt0p4 - 1)),
- YYCURSOR - (YYCTXMARKER + yyt0p4), (YYCTXMARKER + yyt0p4));
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
yy14:
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3, *p4;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"
@p4 "4"* {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- @p4 - @p3, @p3,
- YYCURSOR - @p4, @p4);
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ p4 - p3, p3,
+ YYCURSOR - p4, p4);
return;
}
*/
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
{
char yych;
goto yy15;
yy13:
YYRESTORECTX (yyt0);
+ YYTAG(p3, (yyt0 - 1));
+ YYTAG(p2, yyt0p2);
+ YYTAG(p1, (yyt0p2 - 1));
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- YYTAG((yyt0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
- YYTAG(yyt0p2) - YYTAG((yyt0p2 - 1)), YYTAG((yyt0p2 - 1)),
- YYTAG((yyt0 - 1)) - YYTAG(yyt0p2), YYTAG(yyt0p2),
- YYCURSOR - YYTAG((yyt0 - 1)), YYTAG((yyt0 - 1)),
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
yy14:
#include <stddef.h>
#include <stdio.h>
-static void lex(const char *YYCURSOR)
+static void lex(const char *s)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+#define YYPEEK() *s
+#define YYSKIP() ++s
+#define YYBACKUP() marker = s
+#define YYRESTORE() s = marker
+#define YYBACKUPCTX() base = s
+#define YYRESTORECTX(dist) s = base + dist
+#define YYTAG(tag, dist) tag = base + dist
+#define YYDIST() (s - base)
+ const char *marker, *base, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"
/ "4"* {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
- YYCURSOR);
+ p1 - base, base,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ s - p3, p3,
+ s);
return;
}
*/
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
{
char yych;
goto yy15;
yy13:
YYCURSOR = YYCTXMARKER + yyt0;
+ p3 = YYCTXMARKER + (yyt0 - 1);
+ p2 = YYCTXMARKER + yyt0p2;
+ p1 = YYCTXMARKER + (yyt0p2 - 1);
{
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- (YYCTXMARKER + (yyt0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
- (YYCTXMARKER + yyt0p2) - (YYCTXMARKER + (yyt0p2 - 1)), (YYCTXMARKER + (yyt0p2 - 1)),
- (YYCTXMARKER + (yyt0 - 1)) - (YYCTXMARKER + yyt0p2), (YYCTXMARKER + yyt0p2),
- YYCURSOR - (YYCTXMARKER + (yyt0 - 1)), (YYCTXMARKER + (yyt0 - 1)),
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
static void lex(const char *YYCURSOR)
{
- const char *YYMARKER;
- const char *YYCTXMARKER;
+ const char *YYMARKER, *YYCTXMARKER, *p1, *p2, *p3;
/*!re2c
re2c:define:YYCTYPE = char;
re2c:yyfill:enable = 0;
@p3 "3"
/ "4"* {
printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
- @p1 - YYCTXMARKER, YYCTXMARKER,
- @p2 - @p1, @p1,
- @p3 - @p2, @p2,
- YYCURSOR - @p3, @p3,
+ p1 - YYCTXMARKER, YYCTXMARKER,
+ p2 - p1, p1,
+ p3 - p2, p2,
+ YYCURSOR - p3, p3,
YYCURSOR);
return;
}
default: goto yy6;
}
yy6:
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { p }
}
// this is crucial if 'r' contains tags (tag duplication is forbidden)
/*!re2c
- (@p "a")+ { @p }
+ (@p "a")+ { p }
* { d }
*/
}
yy13:
++YYCURSOR;
- { (YYCTXMARKER + yyt0p) }
+ p = YYCTXMARKER + yyt0p;
+ { p }
}
/*!re2c
re2c:flags:tags = 1;
- "b" @p "a" | "ca" { @p }
+ "b" @p "a" | "ca" { p }
* {}
*/
+++ /dev/null
-/* Generated by re2c */
-// Be careful with substitution of tag names:
-// if one tag's name is a prefix of another tag's name,
-// tag with longer name must be substituted first.
-
-
-{
- YYCTYPE yych;
- long yyt0p;
- long yyt0p1;
- long yyt0p12;
- long yyt0p123;
- YYCTXMARKER = YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- switch (yych) {
- case 'a': goto yy4;
- default: goto yy2;
- }
-yy2:
- ++YYCURSOR;
-yy3:
- {}
-yy4:
- yych = *(YYMARKER = ++YYCURSOR);
- switch (yych) {
- case 'a':
- case 'b': goto yy6;
- default: goto yy3;
- }
-yy5:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy6:
- switch (yych) {
- case 'a': goto yy5;
- case 'b':
- yyt0p12 = (YYCURSOR - YYCTXMARKER);
- goto yy8;
- default: goto yy7;
- }
-yy7:
- YYCURSOR = YYMARKER;
- goto yy3;
-yy8:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- switch (yych) {
- case 'b': goto yy8;
- case 'c':
- yyt0p123 = (YYCURSOR - YYCTXMARKER);
- goto yy10;
- default: goto yy7;
- }
-yy10:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- switch (yych) {
- case 'c': goto yy10;
- case 'd':
- yyt0p = (YYCURSOR - YYCTXMARKER);
- goto yy12;
- default: goto yy7;
- }
-yy12:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- switch (yych) {
- case 'd': goto yy12;
- case 'e':
- yyt0p1 = (YYCURSOR - YYCTXMARKER);
- goto yy14;
- default: goto yy7;
- }
-yy14:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- switch (yych) {
- case 'e': goto yy14;
- default: goto yy16;
- }
-yy16:
- { (YYCTXMARKER + yyt0p) (YYCTXMARKER + yyt0p1) (YYCTXMARKER + yyt0p12) (YYCTXMARKER + yyt0p123) }
-}
-
+++ /dev/null
-// Be careful with substitution of tag names:
-// if one tag's name is a prefix of another tag's name,
-// tag with longer name must be substituted first.
-
-/*!re2c
- "a"+ @p12 "b"+ @p123 "c"+ @p "d"+ @p1 "e"+ { @p @p1 @p12 @p123 }
- * {}
-*/