r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Parse] Discussion of PARSE dialect

Maxim
24-Dec-2008
[3330x2]
I was working on another idea where only THAT rule failed !
for a general failure, the above works for sure.
[unknown: 5]
24-Dec-2008
[3332]
yeah that will work Brian.  i think I was setting the word that I 
had placed at the end and that is why it failed before.
BrianH
24-Dec-2008
[3333]
That is the equivalent of the CHECK proposal.
[unknown: 5]
24-Dec-2008
[3334]
What is the Check proposal?
Maxim
24-Dec-2008
[3335]
look in:   http://www.rebol.net/wiki/Parse_Project
BrianH
24-Dec-2008
[3336]
Read the parse proposals linked above.
Maxim
24-Dec-2008
[3337]
its also a good read to know many of the "tricks" in parse   :-)
[unknown: 5]
24-Dec-2008
[3338]
By the way what I currently have been doing is setting a value to 
another word to differentiate why the parse failed - whether it was 
syntax or because of an invalid word.
Maxim
24-Dec-2008
[3339]
(of R2)
BrianH
24-Dec-2008
[3340]
I was the editor of the proposals and manager of the proposal process.
Maxim
24-Dec-2008
[3341]
I remember posting on the blogs a long time ago... its nice to see 
it was all compiled.... thanks brian !
[unknown: 5]
24-Dec-2008
[3342]
Yeah currently I would just set another value called 'flag in the 
parens and then check it after the parse was complete.  If it was 
true then I know a word wasn't found.
BrianH
24-Dec-2008
[3343]
In theory, the best proposals (I have a list in my head) will be 
able to be compiled to R2 parse rules. Tested theory :)
Maxim
24-Dec-2008
[3344x2]
the whole of the enhancements will make PARSE SOOOOOOO much more 
conscice and fun to use for advanced stuff.     :-)
I now have a real reason to want R3.
[unknown: 5]
24-Dec-2008
[3346]
I don't  know if  'Check functionality really needs to be BUILT as 
much as just communicated.
BrianH
24-Dec-2008
[3347]
Did you see my advanced example at the bottom? :)
[unknown: 5]
24-Dec-2008
[3348]
It shows the power of parse.
Maxim
24-Dec-2008
[3349]
not yet... reading it as I chat, cook and do some income tax stuff... 
I' m a bit like reichart... I've got an exec kernel in my brain  
 ;-)
[unknown: 5]
24-Dec-2008
[3350]
In fact that method I was showing is how TRETBASE will be parsing 
search criteria to ensure only acceptable words are used in the block 
that will be reduced.
BrianH
24-Dec-2008
[3351]
A lot of the workarounds require variables, which can be difficult 
to use concurrently. The proposals are all attempts to get around 
that.
[unknown: 5]
24-Dec-2008
[3352]
That idea is to put all the operators (since they are words in the 
words containers along with field names which get later set to values 
and other set-words as desired).
Maxim
24-Dec-2008
[3353]
the main thing is about the recursiveness.
[unknown: 5]
24-Dec-2008
[3354]
I do that will calling my rule inside the rule.
Maxim
24-Dec-2008
[3355]
remark has a stack which it must manage manually... proposals might 
make some of that management useless.
BrianH
24-Dec-2008
[3356]
The CHECK workaround is the easiest way to do reserved words that 
can change at runtime.
[unknown: 5]
24-Dec-2008
[3357x2]
Here is what I currently had:


rule: [some [set w word! (unless find valid-A w [flag: true]) | into 
[rule] | any-type!]] ; rule for parsing the Ablock
Actually the last part of that rule was for testing something currently.
Maxim
24-Dec-2008
[3359]
I might have a new proposal brian.  but I am reading the whol... 
to make sure its not somewhere in the current ideas.
BrianH
24-Dec-2008
[3360x3]
You would be surprised. The modifying proiposals are not going to 
be expanded though.
Still, if we missed something suggest it here first :)
I had enough trouble with someone who was making hostile changes 
without discussing them first :(

Not that your changes would be hostile, but discussing them is still 
good.
Maxim
24-Dec-2008
[3363]
I love the idea of 'REVERSE  :-)
BrianH
24-Dec-2008
[3364x2]
Particularly the REVERSE rule variant. There are some sweet ones 
in there :)
Whoops, Peta added some more false comments. Must fix...
Maxim
24-Dec-2008
[3366]
the new stuff allows what I want to do, but still makes it non-trivial... 
a bit like the first example.


a lot is done in so few lines... but its not obvious to analyse... 

my idea was for a system called 'PERSIST
BrianH
24-Dec-2008
[3367]
Please go on - we already rejected something with a name like that, 
perhaps yours is different.
Maxim
24-Dec-2008
[3368x2]
as in :

PERSIST rule1 rule2

its a mixture of  [any change at only ]  as your first example
the idea being, as long as rule1 matches, return the AT of that rule, 
executing the second one there.
BrianH
24-Dec-2008
[3370x2]
?
It sounds like AT.
Maxim
24-Dec-2008
[3372x3]
the differentiation is quite subtle, and I am pretty sure that the 
rejected was mine   hehehe.
but new that I  have rebuild remark WITH parse and that I have read 
the proposals, I am in a much better state to explain it, I think.
but it will need precise thinking... something I can't cook up in 
a matter of seconds without generating a lot of short questions like 
the above.
BrianH
24-Dec-2008
[3375]
Cool. I understand everything on that page, so your timing is good 
for a discussion :)
Maxim
24-Dec-2008
[3376x4]
a better way of calling could be 'UNFOLD if you think about it functionally.
remark is the basis for my proposal.   I can already to what I propose 
in parse v2... but I beleive it could be done so simply and could 
reduce your first example (the recursive file list) to a 5 line affair.
maybe even less ;-)
so I'll try to cook up an example of how it would be used, and the 
effect it would have... then you can tell me if I'm nuts  ;-)