I'm resuming my documentation of Red at helpin.red , and working on the parse chapters. There is a lot to be done there.
Since I can't find information about many keywords, I'm learning by trial-and-error, but I stumble on some inexplicable behaviours, for example: Red blog says that
break should "break out of a matching loop, returning success". I try it but it returns false (failure?):
block: [1 2 3 4] print parse block [ integer! (print 1) integer! (print 2) break integer! (print 3) integer! (print 4) ]
1 2 false
It seems to me as the same as ´fail´ or ´reject´. How come?
I think I have checked all the available online documentation. Is there any hidden or unknown document that explain parse's keywords?
breakbreaks the outer loop, that's it.
while. That is the information I was missing. I thought of a "matching loop" as the parsing itself. It is a matching loop after all. Hence my surprise when a parse with
layout [tb: box wrap 10x1000 ". . . . . . . . ."]
ifkeyword, for example. I got examples for that today here at gitter, btw.
What is the right way to refresh text-list face?
mylist: ["one" "two" "three"] view [text-list data mylist [ change at face/data face/selected "hi there" ]] ; text-list is not updated when clicked print mylist ; though underlying list is
It does not work better if I add
But strangely it works with
mylist: ["one" "two" "three"] view [text-list data mylist [ change at face/data face/selected "hi there" face/data: face/data ]] ; now text-list is updated when clicked