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

World: r3wp

[Parse] Discussion of PARSE dialect

BrianH
16-Apr-2007
[1737]
Many of the requests here would be handled easily by the extensions 
we proposed last year.
Gabriele
16-Apr-2007
[1738x2]
it looks like that 3.0 won't have a new parse, but i don't have any 
details and i'm just guessing.
it's also true that some requests could be implemented rather easily... 
so maybe they can make it in for the first release.
PeterWood
16-Apr-2007
[1740]
Does that imply there won't be a Unicode Charset with which to parse 
unicode strings?
btiffin
16-Apr-2007
[1741x2]
There is going to be a unicode! datatype
sorry.  Didn't finish...hit wrong key...


but I'm not sure what that means for charsets
Henrik
17-Apr-2007
[1743]
Perhaps vector! will play a part in solving the unicode problem
Pekr
17-Apr-2007
[1744]
having Unicode datytype does not mean we have unicode datatype ;-)
Gabriele
17-Apr-2007
[1745]
you can make a bitset with 65000 bits in r2... so why not in r3?
Pekr
17-Apr-2007
[1746x2]
Gabriele - how do you create unicode (mostly 16bit, or varrying) 
charset in R2? :-)
btw - pity R3 does not integrate any parser helpers, which could 
make life easier
Ladislav
17-Apr-2007
[1748]
what do you mean by "does not integrate" and by "parser helpers"?
Pekr
17-Apr-2007
[1749x3]
helpers = suggestions ... historically there were 2 or 3 lists with 
various suggestions, to some of them even Carl said he could consider 
to add them. First one was Robert's site, next one was yours, and 
several times ono various altme channels?
I don't know, as for me, I just wanted to|thru [a | b | c] :-)
I would let others more skilled parse gurus to raise their wishes 
...
Gabriele
17-Apr-2007
[1752x2]
petr, i didn't say r3 won't improve on parse, i said that the first 
release may not have the new features.
we won't stop at 3.0... there will be a 3.1 and so on... at least 
we hope so :)
Gabriele
18-Apr-2007
[1754x3]
(lost my connection yesterday night and the message i was typing...)
parsing utf-8 in r2 is easy. utf-16 and utf-32 are less confortable 
but should be easy too.
of course with r3 it's much easier because - i guess - you can just 
parse the unicode! string.
Rebolek
24-May-2007
[1757]
Is it possible to combine two bitset!s?
Maxim
24-May-2007
[1758]
using  'union
Rebolek
24-May-2007
[1759x2]
great, thanks!
Is there some way to make this work: parse "aaa" [some "a" "a"] or 
PARSE just don't work this way?
Geomol
24-May-2007
[1761]
What do you mean?
>> parse "aaa" [some "a"]
== true

Why the second "a"?
Rebolek
24-May-2007
[1762]
It may seem strange I know, but this is automaticaly created rule
Geomol
24-May-2007
[1763]
Parsing for [some "a" "a"] will return false, because you've already 
parsed past the "a"s.
Rebolek
24-May-2007
[1764]
OK I need to find some other way :) Is it possible to go back in 
parse? -1 skip doesn't seem to work.
Geomol
24-May-2007
[1765]
I was thinking the same. I seem to remember, that at some time (some 
version of REBOL), -1 skip did work!? Hmm...
Rebolek
24-May-2007
[1766]
Wasn't it just proposed for R3?
Geomol
24-May-2007
[1767]
A clumsy way of doing it:
>> parse "aaa" [some "a" p: (p: skip p -1) :p "a"]
== true
Rebolek
24-May-2007
[1768]
OK thanks, that may help
Anton
24-May-2007
[1769x2]
That's not so clumsy. You want to backtrack and that's what you're 
doing.
obviously you could use (p: back p)
Rebolek
24-May-2007
[1771]
Even better. Thanks Anton. Seems that "-1 skip" should not be that 
hard to implement
BrianH
24-May-2007
[1772]
parse "aaa" [some [p: "a"] :p "a"]
Rebolek
24-May-2007
[1773]
I think this needs (p: back p) before :p.
BrianH
24-May-2007
[1774x2]
Not in my version. The p is set before the position advances past 
the "a", so it is already back.
The p is reset before "a" is consumed - that is why I put [p: "a"] 
in [].
Rebolek
24-May-2007
[1776]
So why it does return 'false here? p is empty on :p.
BrianH
24-May-2007
[1777x3]
Interesting. It seems to be setting the last p before it fails on 
the last iteration of "a".
Clearly I need a temporary.
parse "aaa" [some [p1: "a" (p2: :p1)] :p2 "a"]
Anton
24-May-2007
[1780]
I have done this sort of thing before.
Rebolek
24-May-2007
[1781]
temporary, or step back
BrianH
24-May-2007
[1782]
A temporary will work better with parts of unknown size, and be faster 
too.
Rebolek
24-May-2007
[1783]
OK
BrianH
24-May-2007
[1784x2]
Still, you might want to apply rewrite rules to your generated parse 
rules - that code seems a little sloppy.
Peephole fixing?
Rebolek
24-May-2007
[1786]
rewrite rules?