--
-- Convert Roman Number to Decimal Number
-- http://en.wikipedia.org/wiki/Roman_numerals
-----------------------------------------------------------------------------
sequence arg=command_line()
integer dim = length(arg)
-- peu heeft een compile of interpret mode .
if match("peu",arg[1]) then arg=arg[2..] dim-=1 end if

if dim < 2 then
  puts(1,"Usage: deroman <value>"&'\n')
end if

-- Peu (used as index not as map)
sequence term={{"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"},
               {1000,900,500,400 ,100, 90 ,50 ,40  ,10 ,  9 , 5 ,  4 , 1 }}

integer result=0
include lexi.e
-- dit daar PEU geen ingebouwde REGuliere EXpressie kent 
~L_init(upper(arg[2]))
L_any({})
L_in(term[1]) -- use as reg epx
if L_result[3]=0 -- is index of found in term[1]
then puts(1, "Illegal Roman number!\n")
else while L_result[3]>0 do
     result+=term[2][L_result[3]]
     L_in(term[1]) -- next
     end while
     printf(1,"result = %d\n",result)
end if