commit 317426df950ebc5ed4a3b40ee6e5e510bc94d38b
parent df7a246c5f31680037e028b2d1ffa899c68a6a49
Author: Mohammad-Reza Nabipoor <m.nabipoor@yahoo.com>
Date: Fri, 28 Aug 2020 17:29:22 +0430
kaleidoscope_parser.hpp: Rename the field of ParseResult
Rename `last` field to `parsed`. Parser should continue from that
position in tokens.
Diffstat:
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/kaleidoscope_parser.hpp b/kaleidoscope_parser.hpp
@@ -13,11 +13,11 @@ namespace detail {
template<typename FwdIt>
struct ParseResult
{
- FwdIt last;
+ FwdIt parsed; // position of successfully parsed token(s)
ASTNode node;
struct
{
- FwdIt pos;
+ FwdIt pos; // position of the error
std::string msg;
} err;
};
@@ -68,7 +68,7 @@ parse_prototype(FwdIt f, FwdIt l)
}
++f;
- r.last = f;
+ r.parsed = f;
r.node = std::move(p);
return r;
}
@@ -89,7 +89,7 @@ parse_expr(FwdIt f, FwdIt l)
(void)err;
- r.last = f;
+ r.parsed = f;
err("not implemented yet");
return r;
}
@@ -117,9 +117,9 @@ parse(FwdIt f, FwdIt l, OutIt nodes, ErrOp error)
auto r = detail::parse_prototype(f, l);
- if (r.last == f) // failure
+ if (r.parsed == f) // failure
return err(r.err.pos, r.err.msg);
- f = r.last;
+ f = r.parsed;
*nodes++ = std::move(r.node);
} break;
@@ -132,9 +132,9 @@ parse(FwdIt f, FwdIt l, OutIt nodes, ErrOp error)
{
auto r = detail::parse_prototype(f, l);
- if (r.last == f) // failure
+ if (r.parsed == f) // failure
return err(r.err.pos, r.err.msg);
- f = r.last;
+ f = r.parsed;
*nodes++ = std::move(r.node);
}
@@ -144,9 +144,9 @@ parse(FwdIt f, FwdIt l, OutIt nodes, ErrOp error)
{
auto r = detail::parse_expr(f, l);
- if (r.last == f) // failure
+ if (r.parsed == f) // failure
return err(r.err.pos, r.err.msg);
- f = r.last;
+ f = r.parsed;
*nodes++ = std::move(r.node);
}
} break;
@@ -161,9 +161,9 @@ parse(FwdIt f, FwdIt l, OutIt nodes, ErrOp error)
default: { // top-level expr
auto r = detail::parse_expr(f, l);
- if (r.last == f) // failure
+ if (r.parsed == f) // failure
return err(r.err.pos, r.err.msg);
- f = r.last;
+ f = r.parsed;
*nodes++ = std::move(r.node);
} break;