plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

deroman (576B)


      1 awk ' # deroman
      2 #   Input:  string (tab) [arab or roman]
      3 #   Output: string (tab) [arab]
      4 
      5 #	Roman numeral n is replaced by arab n-1000 (e.g., iii -> -997)
      6 BEGIN		{ FS = OFS = "\t"
      7 		  # set a["i"] = 1, a["ii"] = 2, ...
      8 		  s =   "i ii iii iv v vi vii viii ix x"
      9 		  s = s " xi xii xiii xiv xv xvi xvii xviii xix xx"
     10 		  s = s " xxi xxii xxiii xxiv xxv xxvi xxvii xxviii xxix xxx"
     11 		  n = split(s, b, " ")
     12 		  for (i = 1; i <= n; i++) a[b[i]] = i
     13 		}
     14 $2~/^[ivxlc]+$/	{ if ($2 in a) $2 = -1000 + a[$2]
     15 		  else print "deroman: bad number: " $0 | "cat 1>&2"
     16 		}
     17 		{ print }
     18 ' $*