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

World: r3wp

[Parse] Discussion of PARSE dialect

Steeve
8-Nov-2008
[2969]
2, 3 tips 
I know that Brian is great contributor but I think sometimes 
it tends to reject a bit too easily ideas of others. 
Why I am saying this, is that I am not always convinced by his 
arguments but he acts as if the issue was resolved in advance. 
(I may have a problem with that) 

About who is credited with what, I think that this is not 

important too, however it was a bit of supris seeing the name of 
Brian on 
most of the ideas, then as I said previously, this makes 

many years that these Improvements have been suggested by different 
people. 

Obviously this is not an important step, but Brian, you puting your 
name 

everywhere pretexting you collect ideas is a little ... how to say 
that ?
pretentious. 

Personally, I am a large user of parsing. 
I think this is the most important function in Rebol. 
You can do practically everything with it.
Design dialects, interfaces, and many others things. 

Parse can build programs by clearly showing the data structures your 
are dealing with. 
Thus our scripts win in readability. 


During all these years, I was very frustrated seeing some limitations. 

I thought, oh my God, if only we could do this simply, REBOL would 
be so powerful. 

My view is that parse should be extended (as far as possible) to 
gain in expressiveness.

One thing I don't like with parse, is the cumbersome process to pass 
parameters to functions. 

I give an example. 
usually we do: [copy parm my-rule (my-func parm)] 

If parse knew recognize when to call a function we could write: 
	[Myfunc my-rule] 

This would be much more compact and expressive. 

More, we could use return value of myfunc to guess if the parsing 
should continue or not. 

This development would discard most of proposals that were made because 
we could add many new commands very easily. 
(IF NOT ALL RETURN etc ...)
Graham
8-Nov-2008
[2970x3]
Steeve, that looks like a major change ... whereas I think Carl is 
just asking for enhancements.  Maybe Rebol4 ??
ps: I don't mind being confused with BrianH :)
maybe that way I'll gain access to some of the private channels ! 
lol
Steeve
8-Nov-2008
[2973]
u could, you are a celebrity (for me, after what i said to Brian, 
there's no chance) ;-)
Graham
8-Nov-2008
[2974x2]
All this parse stuff is over my head .. I try to avoid headaches. 
 Let the experts work it out I say.
I just want to be able to better parse XML namespaces and all.
Steeve
8-Nov-2008
[2976x2]
i agree, better is my second name, lol
and my english is to poor to dealing with experts
Graham
8-Nov-2008
[2978x2]
you could write in french ...
Off topic ... but one of my first chat programs used SOAP to do automatic 
translations
Steeve
8-Nov-2008
[2980x2]
i think i do a little better than automatic translators.
no ? ;-)
Graham
8-Nov-2008
[2982]
But it means that native french speakers could read it as you intended 
...
Steeve
8-Nov-2008
[2983x4]
but the
French Reboler are not very interesting with my strayings
The French forum lost many contributors during last years
currently most of them are beginners
Graham
8-Nov-2008
[2987]
that's a world wide phenomenon
Steeve
8-Nov-2008
[2988]
DockKimbel never participate, Didec is scarce, there is only Shadwolf.
BrianH
8-Nov-2008
[2989x2]
Steeve, your latest suggestion is very similar to the RULE! type 
REP (11). Unfortunately, Graham is right that this would basically 
require rewriting PARSE from scratch as a function type. This is 
something I have wanted to do for years, and will get the chance 
to do so once R3's user-defined datatypes are available. I like the 
way you think :)
I was not putting my name everywhere on those proposals. I only put 
my name on the proposals I came up with personally, including proposals 
from the REPs that I came up with during the conversations that led 
up to the REPs being collected. The issues that I say have been resolved 
were resolved in conversations with Carl earlier this week. We had 
already been discussing these problems for a couple days before you 
joined in.
Steeve
8-Nov-2008
[2991]
ok it is only that the decision process seemed a bit opaque
BrianH
8-Nov-2008
[2992x3]
Almost all of the proposals in the Parse Proposals page are derived 
from Gabriele's parse REPs page. Most of the subsequent requests 
were covered by one or more of those REPs. We had a pretty exhaustive 
discussion about the subject years ago and PARSE hasn't changed since, 
so its problems and limitations have been mostly the same.
I am not being pretentious - I really did come up with those proposals 
on my own before the first comment was made to the blog or here. 
I have been asking for more proposals but so far there haven't been 
that many that weren't already covered. And it is not a problem for 
me to reject proposals - it is my job. I've already pushed through 
more proposals than Carl is comfortable with, but I have hope that 
they will be accepted. Please give more suggestions, but consider 
that they will be debated before they will be accepted. Only the 
best would even be considered by Carl (he's got more stringent standards 
than mine).
The final decisions are made by Carl. He's the language director 
and he'll be implementing this stuff. If he say it can't happen, 
it can't happen. If I say that it can happen later when another feature 
is added, you can be sure that I have already figured out how to 
do so - I wouldn't say otherwise.
Steeve
8-Nov-2008
[2995]
do you mean that only accepted proposals by Carl  are in the wiki 
? i tought that all the ideas could be inserted in the wiki not only 
those accepted
BrianH
8-Nov-2008
[2996x3]
Even those haven't been accepted yet. He hasn't even accepted his 
own ideas - they need more work.
However, every proposal in the wiki through REVERSE has been reviewed 
and discussed by Carl and were only added after he liked them. The 
latter ones were added the next day, based on my own ideas and those 
of Peter Wood.
I have run out of ideas, and am asking for more. Through discussions 
with Carl I have a pretty good idea about what would be rejected, 
and what has already been rejected. If you want to make more suggestions, 
please review the proposals that have been made already in the Parse 
Proposals wiki and Gabriele's REPs. If your suggestion is covered 
by something suggested in one of those places you can be sure that 
they have already been debated to death. If not, I'd love to hear 
it :)
Steeve
8-Nov-2008
[2999x2]
ok i try again a new proposal:
ALL [rule1 | rule2 | rule3] 

each rule must be fullfiled one time but in any order (combinatory).

it's equal to [[rule1 rule2 rule3] | [rule1 rule2 ruel3] | [rule2 
rule1 rule3] etc...]
it's not an abstract idea, i had the case in some srcipts
BrianH
8-Nov-2008
[3001x2]
Interesting! It sounds like it is related to OF, Carl's idea to replace 
DELECT. That would be useful for making DELECT-style dialects without 
the parameters being optional. How important is it that the parameters 
be mandatory?
By the way, Carl has already decided that REP 11 will take the form 
of the USE proposal. The RULE! type will have to wait for UDTs.
Steeve
8-Nov-2008
[3003]
Brian, OF optionnal parameters can be constructed using  ALL like 
this:
ALL  [rule1 | rule2 | opt rule3]
so ALL, is more generalist
BrianH
8-Nov-2008
[3004]
That sounds good to me. OF is not set in stone yet, so that should 
definitely be brought up. Good idea :)
Graham
8-Nov-2008
[3005]
quickie ... will words set by parse go into a global context still?
BrianH
8-Nov-2008
[3006]
Yes, but you will be able to make recursion-safe local words with 
USE.
Graham
8-Nov-2008
[3007]
and will we be able to do things like  [ copy obj/var to something 
]
BrianH
8-Nov-2008
[3008]
That sounds like a good idea too.
Graham
8-Nov-2008
[3009]
part of constructing objects while parsing
BrianH
8-Nov-2008
[3010]
If you don't know what the field will be, you might want to append 
to the object instead in a paren. Setting obj/var only works if there 
is already an var field in obj, but append will work even if there 
isn't.
Graham
8-Nov-2008
[3011]
mostly I want to collect all the data into a predefined object
Steeve
8-Nov-2008
[3012]
but if you  do that you must limit the behaviour of INTO.
currently INTO enter in paren! path! and block!.
if think it's to versatile
Graham
8-Nov-2008
[3013]
to reduce the number of variables I work with
Steeve
8-Nov-2008
[3014]
INTO sh
Graham
8-Nov-2008
[3015]
so, for the latter situation ... [ append obj/var to something ] 
will allow me to build the object?
BrianH
8-Nov-2008
[3016]
Steeve, have you looked at the INTO parse proposal on the wiki? It's 
at the end. It's my favorite, if only because of the example :)
Steeve
8-Nov-2008
[3017x2]
the INTO/string, yes i always tought it was an excellent idea Brian
ah ok it's covering my request