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.
