* 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 = b4 romans1 " " rdigit any("0123456789") . adigit arabic1 = adigit arabic1 romans = replace(romans,"MDCLX","CLXVI") :(arabic1) arabic1_end * Test and display tstr = "MMX MCMXCIX MCDXCII MLXVI CDLXXVI " tloop tstr break(' ') . r span(' ') = :f(out) astr = astr r '=' arabic1(r) ' ' :(tloop) out output = astr end