#! /bin/sed -f
# Converts numeric pinyin tones to ISO Latin-1 imitations
# Last edited on 1998-07-16 01:45:34 by stolfi
#
# Ignore comments:
/^[#]/b
#
# Decapitalize y and w:
s/Y/ºy/g
s/W/ºw/g
#
# Replace y and w by phonetic equivalents:
s/y/@i/g
s/w/@u/g
#
# Hack something for ü, in case it turns up:
s/ü/uh/g
#
# Mark off the vowel group:
s/\([aeiou][aeiouh]*\)/{\1}/g
#
# Move the tone closer to the vowel group:
s/}\([nrg]*\)\([0-9]\)/}\2\1/g
#
# Convert 1st tone to umlaut:
s/{a}1/ä/g
s/{ai}1/äi/g
s/{ao}1/äo/g
s/{ia}1/iä/g
s/{iua}1/iuä/g
s/{iao}1/iäo/g
s/{ua}1/uä/g
s/{uai}1/uäi/g
s/{uha}1/uhä/g
#
s/{e}1/ë/g
s/{ei}1/ëi/g
s/{ie}1/ië/g
s/{ue}1/uë/g
s/{iue}1/iuë/g
s/{uei}1/uëi/g
s/{uhe}1/uhë/g
#
s/{i}1/ï/g
s/{ii}1/iï/g
s/{ui}1/uï/g
#
s/{o}1/ö/g
s/{ou}1/öu/g
s/{io}1/iö/g
s/{iou}1/iöu/g
s/{uo}1/uö/g
#
s/{u}1/ü/g
s/{uu}1/uü/g
s/{iu}1/iü/g
s/{uh}1/üh/g
#
# Convert 2nd tone to acute accent:
s/{a}2/á/g
s/{ai}2/ái/g
s/{ao}2/áo/g
s/{ia}2/iá/g
s/{iua}2/iuá/g
s/{iao}2/iáo/g
s/{ua}2/uá/g
s/{uai}2/uái/g
s/{uha}2/uhá/g
#
s/{e}2/é/g
s/{ei}2/éi/g
s/{ie}2/ié/g
s/{ue}2/ué/g
s/{iue}2/iué/g
s/{uei}2/uéi/g
s/{uhe}2/uhé/g
#
s/{i}2/í/g
s/{ii}2/ií/g
s/{ui}2/uí/g
#
s/{o}2/ó/g
s/{ou}2/óu/g
s/{io}2/ió/g
s/{iou}2/ióu/g
s/{uo}2/uó/g
#
s/{u}2/ú/g
s/{iu}2/iú/g
s/{uu}2/uú/g
s/{uh}2/úh/g
#
# Convert third tone to circumflex:
s/{a}3/â/g
s/{ai}3/âi/g
s/{ao}3/âo/g
s/{ia}3/iâ/g
s/{iua}3/iuâ/g
s/{iao}3/iâo/g
s/{ua}3/uâ/g
s/{uai}3/uâi/g
s/{uha}3/uhâ/g
#
s/{e}3/ê/g
s/{ei}3/êi/g
s/{ie}3/iê/g
s/{ue}3/uê/g
s/{iue}3/iuê/g
s/{uei}3/uêi/g
s/{uhe}3/uhê/g
#
s/{i}3/î/g
s/{ii}3/iî/g
s/{ui}3/uî/g
#
s/{o}3/ô/g
s/{ou}3/ôu/g
s/{io}3/iô/g
s/{iou}3/iôu/g
s/{uo}3/uô/g
#
s/{u}3/û/g
s/{iu}3/iû/g
s/{uu}3/uû/g
s/{uh}3/ûh/g
#
# Convert fourth tone to grave:
s/{a}4/à/g
s/{ai}4/ài/g
s/{ao}4/ào/g
s/{ia}4/ià/g
s/{iua}4/iuà/g
s/{iao}4/iào/g
s/{ua}4/uà/g
s/{uai}4/uài/g
s/{uha}4/uhà/g
#
s/{e}4/è/g
s/{ei}4/èi/g
s/{ie}4/iè/g
s/{ue}4/uè/g
s/{iue}4/iuè/g
s/{uei}4/uèi/g
s/{uhe}4/uhè/g
#
s/{i}4/ì/g
s/{ii}4/iì/g
s/{ui}4/uì/g
#
s/{o}4/ò/g
s/{ou}4/òu/g
s/{io}4/iò/g
s/{iou}4/iòu/g
s/{uo}4/uò/g
#
s/{u}4/ù/g
s/{iu}4/iù/g
s/{uu}4/uù/g
s/{uh}4/ùh/g
#
# Neutral tone stays unmarked:
s/{\([^{}]*\)}0/\1/g
#
# Restore y and w:
s/@i/y/g
s/@u/w/g
#
# Restore capitalization of y and w:
s/ºy/Y/g
s/ºw/W/g