plan9port

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

reroman (647B)


      1 awk ' # reroman
      2 #   Output: string (tab) arab1            [(space) arab2]
      3 #   Input:  string (tab) arab1 or roman1  [(space) arab2 or roman2]
      4 
      5 BEGIN	{ FS = OFS = "\t"
      6 	  # set a[1] = "i", a[2] = "ii", ...
      7 	  s =   "i ii iii iv v vi vii viii ix x"
      8 	  s = s " xi xii xiii xiv xv xvi xvii xviii xix xx"
      9 	  s = s " xxi xxii xxiii xxiv xxv xxvi xxvii xxviii xxix xxx"
     10 	  split(s, a, " ")
     11 	}
     12 $2 < 0	{ n = split($2, b, " ")
     13 	  for (i = 1; i <= n; i++) {
     14 		if (b[i] >= 0) continue
     15 	  	j = 1000 + b[i]
     16 	  	if (j in a) b[i] = a[j]
     17 	  	else print "reroman: bad number: " $0  | "cat 1>&2"
     18 	  }
     19 	  $2 = b[1]
     20 	  if (n > 1) $2 = b[1] " " b[2]
     21 	}
     22 	{ print }
     23 ' $*