Actually, the ()'s are not causing the results you're getting. For rule-based
parsing, spaces are ignored unless you use the /ALL refinement.
To get the results you want try:
parse/all str [some rule-block]
[EMAIL PROTECTED] wrote:
> Newby question...
>
> Can anyone tell me what is going on here? The following output is produced by
> the script below
>
> one
> (
> two three
> )
> four
> (
> five
> (
> six seven
> )
> eight
> )
>
> Why do "two" and "three" appear as one string (same with "six" and "seven")
> and not split up at the space between them like everything else is - obviously
> the () have something to do with this - but I can't find an explanation
> anywhere. Also, what mods would I need to make to force it to split these
> particular strings at the whitespace?
>
> REBOL []
>
> blk: []
>
> brkt-chars: charset ["()"]
> brkt: [some brkt-chars]
>
> word-chars: charset [#"a" - #"z" #"A" - #"Z" #"0" - #"9"]
> word: [some word-chars]
>
> word-def: [word]
> brkt-def: [brkt]
>
> get-word: [copy value word-def (insert tail blk trim value)]
> get-brkt: [copy value brkt-def (insert tail blk trim value)]
>
> rule-block: [get-word | get-brkt | skip]
>
> str: "one (two three) four (five (six seven) eight)"
>
> parse str [some rule-block]
> foreach item blk [print item]
>
> Thanks in anticipation (I've only been playing with REBOL for about a week so
> forgive my ignorance if this should really be obvious).
>
> David