I'm not sure I understand what you are really trying to do.  Usually
with parse, once you describe the format of what you want to parse and 
the output wou desire, the parse rules just fall out onto the screen.
Correct me if I'm wrong:

Input is a block with the following format:
A <text> tag followed by a series of words with any number of non
<text> or </text> tags interspersed and ends with a </text> tag.

The desired output is the same block except that every place there is
a non <text> tag in the block a <text> tag should be placed after it
and before the next series of words.  The ending </text> tag should be 
removed.

For this you don't need parse at all.  Just march through the block
and insert the new <text> tag as needed:
y: [
        <text> This is some text <tag> with a tag added </tag> and then some text 
</text>
]

forall y [
        all [tag? y/1 y/1 <> <text> y/1 <> </text> insert next y <text>]
        all [y/1 = </text> remove y y: back y]
]

probe y: head y

Perhaps your rules are a bit more complicated in which caase you need
to define them and then see what's the best way to do it.  Parse may
be necessary but this simple case can be done quickly another way.

Sterling

> Hello all.
> 
> How do you parse this...
> y: [
> <text> This is some text <tag> with a tag added </tag> and then some text </text>
> ]
> 
> 
> So that you get this
> 
> n: [
> <text> This is some text
> <tag>
> <text> with a tag added
> </tag> 
> <text> and then some text
> ]
> 
> I tried this... 
> 
> n: []
> z: parse y none
> 
> foreach val z [
> either find val "<" [append n val] [append n rejoin [{<text> } val]]
> ]
> 
> But then I get
> 
> n: [
> <text>
> <text> This
> <text> is
> <text> some
> <text> text
> <tag>
> <text> with 
> <text> a
> <text> tag
> <text> added
> </tag>
> <text> and
> <text> then
> <text> some
> <text> text
> </text>
> ]
> 
> So how do I "collect" all the text until the next "tag"?
> 
> Terry Brownell
> 
> -- 
> 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