maybe this is what you were after

 rule1: [start: copy string1 [ [to " - " (?? string1)] | to newline] copy
string2 to end]
== [start: copy string1 [[to " - " (?? string1)] | to newline] copy
string2 to end]
>> string1
== "this is a - "
>> string2
== "parsing test"
>>

notice the first optional matching pattern is in its own block.



On Fri, 2 Aug 2002, Robert M. Muench wrote:

> Hi, please have a look at this code and try it out:
>
> ---START
>
> rebol []
>
> rule1: [start: copy string1 [to " - " (?? string1) | to newline] copy
> string2 to end]
> rule2: [start: copy string1 [to " - " (?? string1) 3 skip | to newline]
> copy string2 to end]
>
> text: "this is a - parsing test"
>
> parse/all text rule1
>
> ?? string1
> ?? string2
>
> print "-----"
>
> parse/all text rule2
>
> ?? string1
> ?? String2
>
> ---END
>
> >> do %parsing-error.r
> string1: "this is a - "
> string1: "this is a"
> string2: " - parsing test"
> -----
> string1: "this is a"
> string1: "this is a - "
> string2: "parsing test"
> == "parsing test"
>
> I find some things very strange here:
>
> Rule1:
> - Why does string1 contain " - " when printed from inside
>   the rule? The rule states 'to and not 'thru? IMO string1
>   should be "this is a"
> - After the parsing string1 holds what I did expect in the
>   first place too. This indicates that the varaibles input
>   gets copied to will be changed after the parsing. But when and how?
>
> Rule2:
> - This time the string1 is as expected inside the rule but
>   changes to include the to " - " sequence after the parsing
>
> Any idea what's up here? Is this a bug? Robert
>
>
> --
> To unsubscribe from this list, please send an email to
> [EMAIL PROTECTED] with "unsubscribe" in the
> subject, without the quotes.
>

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to