Rosetta Code/Fix code tags: Difference between revisions

m (Added the Sidef language)
(→‎{{header|Tcl}}: added zkl)
Line 838:
}
set text [string map $replacements $text]</lang>
 
=={{header|zkl}}==
<lang zkl>fcn replace(data,src,dstpat){
re,n,buf:=RegExp(src),0,Data();
while(re.search(data,True,n)){
matched:=re.matched; // L(L(12,3),"c")
data[matched[0].xplode()]=re.sub(data,dstpat,buf); // "\1" --> "c"
n=matched[0].sum(0); // move past change
}
}
data:=File.stdin.read();
foreach src,dst in (T(
T(0'|<(\w+)>|, 0'|<lang \1>|), T(0'|</(\w+)>|,"</" "lang>"),
T(0'|<code (\w+)>|,0'|<lang \1>|) )){
replace(data,src,dst)
}
print(data.text);</lang>
Note: the "</" "lang>" to keep /lang the wiki from getting confused (it is string concatenation).
{{out}}
<pre>
$ cat wikisource.txt
lorem ipsum <c>some c code</c>dolor sit amet, <csharp>some
csharp code</csharp> consectetur adipisicing elit, <code r>
some r code </code>sed do eiusmod tempor incididunt
 
$ zkl bbb < wikisource.txt
lorem ipsum <lang c>some c code</lang>dolor sit amet, <lang csharp>some
csharp code</lang> consectetur adipisicing elit, <lang r>
some r code </lang>sed do eiusmod tempor incididunt
</pre>
 
 
{{omit from|Brlcad}}
Anonymous user