llvm-journey

LLVM Journey
git clone git://0xff.ir/g/llvm-journey.git
Log | Files | Refs | README | LICENSE

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:
Mkaleidoscope_parser.hpp | 24++++++++++++------------
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;