Changing SET-WORD! and GET-WORD! in PARSE

I've never been a fan of how SET-WORD! and GET-WORD! are used for marking/seeking in PARSE.

Early on I found it confusing. pos: is a "set"...but is it setting the parse position...or setting a variable to contain the current parse position? :-/

I also thought with GET-WORD! it would be nice if you could write thru :end, and it would know you meant the variable and not the keyword.

Gabriele's Topaz apparently uses SET-WORD! to mean SET. If you want to mark a position into a variable, you say pos: here, which makes sense. It doesn't seem he's changed the meaning of GET-WORD!, but I'd want to switch to use a SEEK keyword.

SET would still work, but we might (?) drop the support for SET-WORD! that was added to SET in order to make it work with function locals gathering. Though maybe there's no particular reason to make set x: integer! illegal.

I am not particularly worried about people not being able to copy and paste Rebol2 parse rules in their entirety and have it work. Very little will work if you copy and paste it from history...unless you are using the Redbol emulation. (And if you are using the Redbol emulation, we may be able to get things more compatible with Rebol2 than Red!)

But one concern could be the distinctiveness of PARSE code decreasing. Although SET is legal in Rebol code, it's not used very it kind of helps make code look more PARSE-y. I dunno. It's probably not that important.

1 Like