TshetUinhEncoder.工具.音韻屬性到韻鏡位置們 的原始碼

# -*- coding: utf-8 -*-

from .. import 常量
from ..轉換 import 韻目到韻, 母到組
from ..韻鏡位置 import 韻鏡位置

[文件] def 音韻屬性到韻鏡位置們(: str, 韻目: str, : str): ''' 將音韻屬性轉換爲韻鏡位置。 ''' 韻鏡母 = { '幫': '幫非', '滂': '滂敷', '並': '並奉', '明': '明微', '精': '精照', '清': '清穿', '從': '從牀', '心': '心審', '邪': '邪禪', '莊': '精照', '初': '清穿', '崇': '從牀', '生': '心審', '俟': '邪禪', '章': '精照', '昌': '清穿', '常': '從牀', '書': '心審', '船': '邪禪', '云': '喻', '以': '喻' }.get(, ) = 韻目到韻(韻目) # 開合分韻:戈果過 韻鏡開合們 = ('合' if 韻目 in '戈果過' else '開合') if in 常量.開合兼備的韻 else (None,) = 母到組() # 切韻一等韻、二等韻、四等韻只排在韻鏡一等、二等、四等 # 切韻三等韻中的幽韻也排在韻鏡四等 if in 常量.一等韻: 韻鏡等們 = '一' elif in 常量.二等韻: 韻鏡等們 = '二' elif in 常量.四等韻 or == '幽': 韻鏡等們 = '四' # 切韻三等韻(除幽韻)、一三等韻、二三等韻的情況 else: # 處理切韻音韻地位不取切韻三等的情況 if in 常量.一三等韻: 韻鏡等們 = '一' # 切韻一三等韻若取一等,則韻鏡排在一等 elif in 常量.二三等韻: 韻鏡等們 = '二' # 切韻二三等韻若取二等,則韻鏡排在二等 else: 韻鏡等們 = '' # 處理切韻音韻地位取切韻三等的情況 if == '精': 韻鏡等們 += '四' # 切韻三等的精組字排在韻鏡四等 elif == '莊': if 韻鏡等們 != '二': 韻鏡等們 += '二' # 切韻三等的莊組字排在韻鏡二等 elif in 常量.重紐母 and in 常量.重紐韻: 韻鏡等們 += '三四' # 重紐排在韻鏡三等或四等 else: 韻鏡等們 += '三' # 其餘情況排在三等 return [韻鏡位置(韻鏡母, 韻鏡開合, 韻鏡等, , ) for 韻鏡開合 in 韻鏡開合們 for 韻鏡等 in 韻鏡等們]