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

World: r3wp

[Parse] Discussion of PARSE dialect

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?
Oldes
24-May-2007
[1787]
that you will not have [some "a" "a"] but just [some "a"]
Rebolek
24-May-2007
[1788]
Well, I'm not exactly sure if that's possible, I have to do some 
tests
BrianH
24-May-2007
[1789x2]
By rewrite rules, I mean something like what Gabriele came up with 
for the rebcode assembler a while ago. Since I helped refine his 
work, I may still have a copy somewhere. I'll take a look.
I'm not sure I helped with this one, now that I think of it. It's 
one of his literate programming projects, here:
http://www.colellachiara.com/soft/Misc/
Look for rewrite.*
Gabriele
24-May-2007
[1791]
that one is different from the one in rebcode, but the principle 
is about the same.
Rebolek
24-May-2007
[1792x2]
OK I'll check it, thanks
is it possible to convert bitset! back to something readable?
Geomol
24-May-2007
[1794]
Define readable! ;-) Maybe you could use a combination of to-string, 
to-binary, debase and things like that.
Rebolek
24-May-2007
[1795]
if i do (a: charset "abc") i want to do also (decharset a) to get 
"abc" :) that's readable ;)
Volker
24-May-2007
[1796]
loop thru all possible chars, print matches ;)
Rebolek
24-May-2007
[1797]
yes, but that's really not the fastet way :)