Rebo / Red parse: возможно ли копировать между двумя метками вложение вложенного div - PullRequest
0 голосов
/ 29 апреля 2018

После Разбор Rebol / Red: как копировать между 2 метками Давайте теперь предположим, что мне удалось пометить строку несколькими метками со сложным правилом синтаксического анализа, имеющим вложенный div (независимо от того, какое правило), общий способ копирования между mark1 и mark2, по крайней мере, есть ли конкретный способ для этого типа вложенного примера div:

    {
        <div>
        a ; <- mark1
            <div>
                b
            </div>
            <div>
            c
            </div>
        d ; <- mark2
        </div> 

        <div>
        e
            <div>
                f
            </div>
            <div>
            g
            </div>
        h
        </div>  
    }


    rule: [
        mark1:
        ...
        mark2:
        copy mark1 to mark2
    ]

1 Ответ

0 голосов
/ 30 апреля 2018

Это не проблема с уже показанными решениями, но если вы хотите сделать его немного сложнее, вы можете вернуться к уже определенной / отмеченной точке в вашем src, как в этом примере.

src: {1234567890abcdefghijklmnopqrstuvxyz}
>> parse src [ skip mark: to "a" mark2:  :mark   to "3" mark1: to end]  
== true
>> mark1
== "34567890abcdefghijklmnopqrstuvxyz"

обратите внимание на :mark Он устанавливает указатель на ранее определенную точку.

Так что ответ на ваш предыдущий вопрос будет выглядеть так

rule: [
    to "b" mark1: thru "e" mark2: 
    :mark1 copy text to mark2
]

Здесь замените «b» и «e» в соответствии с вашими желаемыми точками, возможно, «a» и «d».

...