World: r3wp
[Parse] Discussion of PARSE dialect
older newer | first last |
BenBran 6-Jan-2010 [4811] | for completeness in R3 - I tried the lines above: >> parse "GET /a.html HTTP/1.1" ["get " return to " "] ** Script Error: Invalid argument: ?native? ** Where: halt-view ** Near: parse "GET /a.html HTTP/1.1" ["get " return to " "] I must be missing something simple |
BrianH 6-Jan-2010 [4812] | What version of REBOL are you using? system/version ... |
BenBran 6-Jan-2010 [4813] | >> help system SYSTEM is an object of value: version tuple! 2.7.7.3.1 build date! 1-Jan-2010/12:15:27-8:00 product word! View core tuple! 2.7.7 components block! length: 60 |
BrianH 6-Jan-2010 [4814] | That is R2, not R3. |
BenBran 6-Jan-2010 [4815] | doh! |
BrianH 6-Jan-2010 [4816] | You were right, it was something simple :) |
BenBran 6-Jan-2010 [4817x2] | lol :-) |
yes it works perfect in R3. Thanks again. | |
Graham 14-Jan-2010 [4819] | >> parse [ <tag> ] [ copy t tag! ] == true >> t == [<tag>] never noticed it made a block! before |
ChristianE 14-Jan-2010 [4820x5] | >> parse [ <tag> ] [ set t tag! ] == true >> t == <tag> |
There's a difference between COPY and SET in block parsing mode. | |
From the docs: SET - set the next value to a variable COPY - copy the next match sequence to a variable | |
Good the remember when dealing with "sequences": >> parse [ <tag> </tag> ] [ copy t [ tag! tag!] ] == true >> t == [<tag> </tag>] >> parse [ <tag> </tag> ] [ set t [ tag! tag!] ] == true >> t == <tag> | |
the = to. | |
Graham 14-Jan-2010 [4825] | I've always used 'set ... not sure why I used 'copy this time! |
Graham 29-Jan-2010 [4826x3] | <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SelectResponse xmlns="http://sdb.amazonaws.com/doc/2009-04-15/"><SelectResult><Item><Name>2010-01-29T09:54:48.000ZI3s3NjIxRjZERDI1MUY0QzQyMDk4M0JDMzkwMERGOEQxQTVDRDY5MzEwfQ==</Name><Attribute><Name>Subject</Name><Value>hello?</Value></Attribute><Attribute><Name>Userid</Name><Value>Guest</Value></Attribute><Attribute><Name>UTCDate</Name><Value>2010-01-29T09:54:48.000Z</Value></Attribute></Item><Item><Name>2010-01-29T09:58:36.000ZI3swMTZBODg3QjAxNDQ2NEU5OENCNTA3OTc5OTg0Mjc1MTJGQzkxQTc0fQ==</Name><Attribute><Name>Subject</Name><Value>First Message</Value></Attribute><Attribute><Name>Userid</Name><Value>Graham</Value></Attribute><Attribute><Name>UTCDate</Name><Value>2010-01-29T09:58:36.000Z</Value></Attribute></Item><Item><Name>2010-01-29T11:06:18.000ZI3tFREFCRUYwNTY4OTdBMzcwODM2NzJGQUE5MzAwRUE3NjYwMTMwMTY5fQ==</Name><Attribute><Name>Subject</Name><Value>Index working</Value></Attribute><Attribute><Name>Userid</Name><Value>Graham</Value></Attribute><Attribute><Name>UTCDate</Name><Value>2010-01-29T11:06:18.000Z</Value></Attribute></Item></SelectResult><ResponseMetadata><RequestId>14873461-626a-44bf-2d7d-c1b23694b2e0</RequestId><BoxUsage>0.0000411449</BoxUsage></ResponseMetadata></SelectResponse></SOAP-ENV:Body></SOAP-ENV:Envelope> |
results: copy [] parse result [ thru <SelectResult> some [ thru <Item> copy item to </Item> ( ?? item if parse item [ thru <Name> copy itemid to </Name> thru {<Name>Subject</Name>} thru <Value> copy subject to </Value> thru {<Name>Userid</Name>} thru <Value> copy userid to </Value> thru {<Name>UTCDate</Name>} thru <Value> copy utcdate to </Value> to end ][ repend results [ utcdate itemid userid subject ] ] ) ] ] | |
This parse works fine in R2, but doesn't work in R3 ... I coudn't see why last night ... still can't ... | |
Steeve 29-Jan-2010 [4829x3] | Is that result a block or string ? |
because in a string you can't find tag! values | |
i'm wrong T_T | |
Graham 29-Jan-2010 [4832] | It's a string ... |
Steeve 29-Jan-2010 [4833] | but i'm still wrong ;-) |
Graham 29-Jan-2010 [4834x2] | Yes, tags are a type of string ... |
this is what I get for item e>2010-01-29T11:06:18.000ZI3tFREFCRUYwNTY4OTdBMzcwODM2NzJGQUE5MzAwRUE3NjYwMTMwMTY5fQ==</Name><Attribute><Name>Subject</Name><Value>Index working</Value></Attribute><Attribute><Name>Userid</Name><Value>Graham</Value></Attribute><Attribute><Name>UTCDate</Name><Value>2010-01-29T11:06:18.000Z</Value></Attribute> | |
Steeve 29-Jan-2010 [4836x2] | >> parse "<a><item>" [thru <a> ??] end!: "item>" == false |
a bug | |
Graham 29-Jan-2010 [4838] | I'm not familiar with that ... what should it say? |
Steeve 29-Jan-2010 [4839x2] | It should say: >> parse "<a><item>" [thru <a> ??] end!: "<item>" == false |
parsing thru a tag eat one more char | |
Graham 29-Jan-2010 [4841] | Ah .. ?? is a new debugging function |
Steeve 29-Jan-2010 [4842] | yep |
Graham 29-Jan-2010 [4843x2] | Should have known about it last night! Would have saved me sometime :( |
Well, this looks like an unreported bug ... | |
Steeve 29-Jan-2010 [4845] | exactly |
Graham 29-Jan-2010 [4846] | Shall you or I curecode it? |
Steeve 29-Jan-2010 [4847x2] | you |
;-) | |
Graham 29-Jan-2010 [4849x2] | okey dokey |
Now I know I can't use r3 for parsing xml .... :( http://www.curecode.org/rebol3/ticket.rsp?id=1449 | |
Steeve 29-Jan-2010 [4851] | you can, just replace <tag> by a real string "<tag>" |
Graham 29-Jan-2010 [4852x4] | ugly ! :) |
Point taken ... | |
Is there any likelihood of the parse enhancements making it to r2? Anyone know? | |
( without the bugs of course ) | |
Steeve 29-Jan-2010 [4856] | 0% |
BrianH 29-Jan-2010 [4857x2] | And there is a great likelihood of the bugs being fixed in R3. And there aren't many in PARSE, just that tag bug afaik. |
Graham, I deleted bug #1449 since it was already reported as #682. See also #854 and #1160 (and #10, which was incorrectly "fixed"). | |
Graham 29-Jan-2010 [4859] | your response says it was fixed ... |
BrianH 29-Jan-2010 [4860] | Partially - it used to be worse. That's why it's marked a "problem". |
older newer | first last |