-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added POSTPONE error handling. Drive-by code simplifications. #446
Conversation
: postpone bl word dup find ?dup 0= if | ||
count rvs type '?' emit cr abort then | ||
rot drop -1 = if [ ' literal compile, | ||
' compile, literal ] then compile, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At this point, I don't really understand what the ' literal compile, ' compile, literal
twister does anymore. But it seems to work fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's still the same two logical parts. The first three words were already there, and the last three replace ['] compile,
; the brackets perform things at compile time of postpone
, it still looks up compile,
, and literal
transfers the result from the compile time stack to the run time stack. The '
and literal
do the same job as inside the compiled [']
. I do agree it's a little boggling to see the long string of 3 words 7 times in rapid succession. It's because we don't yet have postpone
and [']
; the block would read if postpone literal ['] compile, then
with them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I get it now. Thank you!
Looks like a move of |
The move of |
Thank you for the |
No description provided.