Uso do parse - Manipulando texto



Inserindo palavras no texto:

Red []

a: "Not great Britain nor small Britain, just Britain"

parse a [any [to "Britain" insert "blue " skip]]

print a


Not great blue Britain nor small blue Britain, just blue Britain


Observe que skip foi adicionado à regra para evitar um loop infinito: to leva o input para antes do match, portanto, "Britain" seria correspondido ininterruptamente se não usássemos o skip.


Removendo palavras do texto:

Red []

a: "Not great Britain nor small Britain, just Britain"

parse a [ any [to remove "Britain"]] ;seems to work the same as [to "Britain" remove "Britain"]

print a


Not great  nor small , just


Explicando o código:


Primeiro:


; "any" repete a regra até que não encontre mais um match


Então:



; "to 'Britain" leva o input até ANTES do match ('Britain')  e remove esse match


Mudando palavras do texto:

Red []

a: "Not great Britain nor small Britain, just Britain"

parse a [ any [to "Britain" change "Britain" "Australia"]] ;[to change "Britain" "Australia"] também funciona!

print a


Not great Australia nor small Australia, just Australia