Rosetta Code/Fix code tags: Difference between revisions

m
→‎{{header|Phix}}: syntax coloured
(Added Wren)
m (→‎{{header|Phix}}: syntax coloured)
Line 830:
=={{header|Phix}}==
{{trans|D}}
<!--<lang Phix>(phixonline)-->
<lang Phix>constant ltext = `_div abap actionscript actionscript3 ada apache
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
applescript apt_sources asm asp autoit avisynth bash basic4gl bf
<span style="color: #008080;">constant</span> <span style="color: #000000;">ltext</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">`_div abap actionscript actionscript3 ada apache
blitzbasic bnf boo c c_mac caddcl cadlisp cfdg cfm cil cobol cpp
applescript apt_sources asm asp autoit avisynth bash basic4gl bf
cpp-qt csharp css d delphi diff dos dot eiffel email fortran
blitzbasic bnf boo c c_mac caddcl cadlisp cfdg cfm cil cobol cpp
freebasic genero gettext glsl gml gnuplot groovy haskell hq9plus
cpp-qt csharp css d delphi diff dos dot eiffel email fortran
html4strict idl ini inno intercal io java java5 javascript kixtart
freebasic genero gettext glsl gml gnuplot groovy haskell hq9plus
klonec klonecpp latex lisp lolcode lotusformulas lotusscript
html4strict idl ini inno intercal io java java5 javascript kixtart
lscript lua m68k make matlab mirc modula3 mpasm mxml mysql nsis
klonec klonecpp latex lisp lolcode lotusformulas lotusscript
objc ocaml ocaml-brief oobas oracle11 oracle8 pascal per perl php
lscript lua m68k make matlab mirc modula3 mpasm mxml mysql nsis
php-brief pic16 pixelbender plsql povray powershell progress
objc ocaml ocaml-brief oobas oracle11 oracle8 pascal per perl php
prolog providex python qbasic r rails reg robots ruby sas scala
php-brief pic16 pixelbender plsql povray powershell progress
scheme scilab sdlbasic smalltalk smarty sql tcl teraterm text
prolog providex python qbasic r rails reg robots ruby sas scala
thinbasic tsql typoscript vb vbnet verilog vhdl vim visualfoxpro
scheme scilab sdlbasic smalltalk smarty sql tcl teraterm text
visualprolog whitespace winbatch xml xorg_conf xpp z80`,
thinbasic tsql typoscript vb vbnet verilog vhdl vim visualfoxpro
langs = split(substitute(ltext,"\n"," "))
visualprolog whitespace winbatch xml xorg_conf xpp z80`</span><span style="color: #0000FF;">,</span>
 
<span style="color: #000000;">langs</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">substitute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ltext</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">))</span>
function fix_tags(string text)
for i=1 to length(langs) do
<span style="color: #008080;">function</span> <span style="color: #000000;">fix_tags</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">text</span><span style="color: #0000FF;">)</span>
string lang = langs[i],
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">langs</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
openl = sprintf("<%s>",{lang}),
<span style="color: #004080;">string</span> <span style="color: #000000;">lang</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">langs</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span>
openc = sprintf("<code %s>",{lang}),
<span style="color: #000000;">openl</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"&lt;%s&gt;"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">lang</span><span style="color: #0000FF;">}),</span>
lopen = sprintf("<lang %s>",{lang}),
<span style="color: #000000;">openc</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"&lt;code %s&gt;"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">lang</span><span style="color: #0000FF;">}),</span>
closl = sprintf("</%s>",{lang}),
<span style="color: #000000;">lopen</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"&lt;lang %s&gt;"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">lang</span><span style="color: #0000FF;">}),</span>
closc = sprintf("</%s>",{"code"}),
<span style="color: #000000;">closl</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"&lt;/%s&gt;"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">lang</span><span style="color: #0000FF;">}),</span>
lclos = sprintf("</%s>",{"lang"})
<span style="color: #000000;">closc</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"&lt;/%s&gt;"</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"code"</span><span style="color: #0000FF;">}),</span>
text = substitute_all(text,{openl,openc,closl,closc},
<span style="color: #000000;">lclos</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"&lt;/%s&gt;"</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"lang"</span><span style="color: #0000FF;">})</span>
{lopen,lopen,lclos,lclos})
<span style="color: #000000;">text</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">text</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">openl</span><span style="color: #0000FF;">,</span><span style="color: #000000;">openc</span><span style="color: #0000FF;">,</span><span style="color: #000000;">closl</span><span style="color: #0000FF;">,</span><span style="color: #000000;">closc</span><span style="color: #0000FF;">},</span>
end for
<span style="color: #0000FF;">{</span><span style="color: #000000;">lopen</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lopen</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lclos</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lclos</span><span style="color: #0000FF;">})</span>
return text
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
end function
<span style="color: #008080;">return</span> <span style="color: #000000;">text</span>
 
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
constant test = """
lorem ipsum <c>some c code</c>dolor sit amet, <csharp>some
<span style="color: #008080;">constant</span> <span style="color: #000000;">test</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
csharp code</csharp> consectetur adipisicing elit, <code r>
lorem ipsum <&lt;c>&gt;some c code<&lt;/c>&gt;dolor sit amet, <&lt;csharp>&gt;some
some r code </code>sed do eiusmod tempor incididunt
csharp code<&lt;/csharp>&gt; consectetur adipisicing elit, <&lt;code r>&gt;
"""
some r code <&lt;/code>&gt;sed do eiusmod tempor incididunt
puts(1,fix_tags(test))</lang>
"""</span>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">fix_tags</span><span style="color: #0000FF;">(</span><span style="color: #000000;">test</span><span style="color: #0000FF;">))</span>
<!--</lang>-->
{{out}}
<pre>
7,796

edits