Switch to edit mode.
Name(s): from_roman1: "Copied from Lao-Tzu (#8084):from_roman May 17 02:27:07 1997" 2: what = args[1] 3: q = 1 4: n = 0 5: while (!(q > length(what))) 6: if (what[q] == "M") 7: n = n + 1000 8: elseif (what[q] == "D") 9: n = n + 500 10: elseif (what[q] == "C" && `what[q + 1] ! E_RANGE => "A"' == "M") 11: n = n + 900 12: q = q + 1 13: elseif (what[q] == "C" && `what[q + 1] ! E_RANGE => "A"' == "D") 14: n = n + 400 15: q = q + 1 16: elseif (what[q] == "C") 17: n = n + 100 18: elseif (what[q] == "L") 19: n = n + 50 20: elseif (what[q] == "X" && `what[q + 1] ! E_RANGE => "A"' == "C") 21: n = n + 90 22: q = q + 1 23: elseif (what[q] == "X" && `what[q + 1] ! E_RANGE => "A"' == "L") 24: n = n + 40 25: q = q + 1 26: elseif (what[q] == "X") 27: n = n + 10 28: elseif (what[q] == "V") 29: n = n + 5 30: elseif (what[q] == "I" && `what[q + 1] ! E_RANGE => "A"' == "X") 31: n = n + 9 32: q = q + 1 33: elseif (what[q] == "I" && `what[q + 1] ! E_RANGE => "A"' == "V") 34: n = n + 4 35: q = q + 1 36: elseif (what[q] == "I") 37: n = n + 1 38: else 39: raise(E_NONE, "Error with converting to roman numerals..") 40: endif 41: q = q + 1 42: endwhile 43: return n