# -*- coding: utf-8 -*-
import warnings
# 經典韻系
# 首字爲認定的標準韻,之後爲非標準韻
# 非標準韻的情況:
# - 異體字(如眞→真)
# - 後世韻書更改韻目(如殷→欣)
# - 後世韻書拆分韻目(如真→真諄)
#
# 特例:王三有兩個嚴韻
_非標準韻表 = (
'東 董蕫 送 屋',
'冬 湩 宋 沃𣵽',
'鍾鐘 腫 用 燭',
'江 講 絳 覺',
'支 紙 寘',
'脂 旨 至',
'之 止 志',
'微 尾 未',
'魚 語 御',
'虞 麌噳 遇',
'模 姥 暮莫',
'齊 薺 霽',
'佳 蟹 卦',
'皆𣅜 駭 怪',
'灰 賄 隊',
'咍 海 代',
'真眞諄𧩽 軫準 震稕 質術',
'臻 𧤛 櫬 櫛',
'文 吻 問 物勿',
'殷欣 隱 焮 迄',
'元 阮 願 月',
'魂䰟 混 慁圂 沒',
'痕 很佷 恨𢙃 麧',
'寒桓 旱緩 翰換 曷末',
'刪𠜂 潸 諫 鎋舝',
'山 產産 襇襉 黠',
'先 銑 霰 屑㞕',
'仙㒨 獮𤣗 線 薛𧀼',
'蕭 篠筱 嘯',
'宵霄 小 笑𥬇',
'肴爻 巧 效',
'豪𩫚 晧 号',
'歌戈 哿果 箇過',
'麻 馬 禡',
'陽 養 漾 藥',
'唐 蕩 宕 鐸',
'庚 梗 映敬 陌',
'耕 耿 諍 麥',
'清淸 靜 勁 昔㫺',
'青靑 迥 徑 錫',
'蒸 拯抍 證 職',
'登 等 嶝隥 德',
'尤 有 宥',
'侯矦 厚𠪀 候𠊱𠋫',
'幽 黝 幼㓜',
'侵 寑寢 沁 緝',
'覃𧟹 感 勘 合',
'談 敢𠭖 闞 盍盇',
'鹽 琰 豔 葉',
'添沾 忝 㮇栝 怗帖',
'咸 豏 陷 洽',
'銜 檻 鑑㽉 狎',
'嚴 儼广 釅驗 業',
'凡 范 梵 乏',
'祭',
'廢',
'泰夳',
'夬𡗒',
)
_標準韻映射表 = {非標準韻: 非標準韻們[0] for 非標準韻們 in _非標準韻表 for 非標準韻 in 非標準韻們.replace(' ', '')}
[文件]
def 韻目到韻(韻: str) -> str:
'''
將切韻系韻書的韻目轉換爲韻。
此函式具有冪等性,即 ``韻目到韻(韻目到韻(韻目)) == 韻目到韻(韻目)`` 永遠成立。
Examples:
>>> 韻目到韻('物')
'文'
>>> 韻目到韻('敬')
'庚'
>>> 韻目到韻('東')
'東'
'''
if 韻 == '驗':
warning = "There is more confusion between 鹽B and 嚴 in 集韻, so '驗' (廣韻鹽B) becomes 嚴 in 集韻"
warnings.warn(warning)
return _標準韻映射表[韻]