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

World: r3wp

[Parse] Discussion of PARSE dialect

[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  ;-)
BrianH
24-Dec-2008
[3380]
I finished the Parse Proposals cleanup again. Enjoy!
Maxim
24-Dec-2008
[3381]
so, I put a lot of thought into it, and with the new stuff... especially 
  'CHANGE  'AT 'ONLY ,  the problem with 'UNFOLD is that its too 
problem specific.

the general idea was to build a system which basically does an:

rule: [ any [at change only [  rule  ]] | skip]


the problem is that what to skip and what to change, differs from 
problem to problem, and since these are tied up within subrules, 
they become hard to use within a generalized procedure.


in R2 the above is pretty harsh to implement, although it can be 
done... with the use of the 'USE operation, these words already make 
recursivity and stack issues pretty easy to tackle..