RosettaCodeData/Task/Roman-numerals-Decode/SNOBOL4/roman-numerals-decode-3.sno
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

13 lines
578 B
Text

* Roman to Arabic
define("arabic1(romans,arabic1)rdigit,adigit,b4")
romans1 = " 0 IX9 IV4 III3 II2 I1 VIII8 VII7 VI6 V5" :(arabic1_end)
arabic1 ident(romans) :s(return)
romans (break("IV") | rem) . b4 rem . rdigit = replace(b4,"MDCLX","CLXVI")
romans1 " " rdigit any("0123456789") . adigit
arabic1 = adigit arabic1 :(arabic1)
arabic1_end
* Test and display
tstr = " MMX MCMXCIX MCDXCII MLXVI CDLXXVI "
tstr span(' ') break(' ') $ r *?(astr = astr r '=' arabic1(r) ' ') fail
output = astr
end