"""
著作權所有 (C) 民國102年 意傳文化科技
開發者：薛丞宏
網址：http://意傳.台灣
語料來源：請看各資料庫內說明

本程式乃自由軟體，您必須遵照SocialCalc設計的通用公共授權（Common Public Attribution License, CPAL)來修改和重新發佈這一程式，詳情請參閱條文。授權大略如下，若有歧異，以授權原文為主：
	１．得使用、修改、複製並發佈此程式碼，且必須以通用公共授權發行；
	２．任何以程式碼衍生的執行檔或網路服務，必須公開該程式碼；
	３．將此程式的原始碼當函式庫引用入商業軟體，且不需公開非關此函式庫的任何程式碼

此開放原始碼、共享軟體或說明文件之使用或散佈不負擔保責任，並拒絕負擔因使用上述軟體或說明文件所致任何及一切賠償責任或損害。

臺灣言語工具緣起於本土文化推廣與傳承，非常歡迎各界用於商業軟體，但希望在使用之餘，能夠提供建議、錯誤回報或修補，回饋給這塊土地。

感謝您的使用與推廣～～勞力！承蒙！
"""
from 臺灣言語工具.字詞組集句章.解析整理.拆文分析器 import 拆文分析器
from 臺灣言語工具.字詞組集句章.基本元素.公用變數 import 無音
from 臺灣言語工具.字詞組集句章.基本元素.公用變數 import 本調符號
from 臺灣言語工具.字詞組集句章.解析整理.字物件篩仔 import 字物件篩仔
from 臺灣言語工具.字詞組集句章.音標系統.閩南語.臺灣閩南語羅馬字拼音 import 臺灣閩南語羅馬字拼音
from 臺灣言語工具.字詞組集句章.解析整理.解析錯誤 import 解析錯誤
from 臺灣言語工具.字詞組集句章.基本元素.公用變數 import 標點符號


class 臺羅變調暫時處理:
	分析器=拆文分析器()
	本調記號=分析器.產生對齊字(本調符號, 無音)
	篩仔=字物件篩仔()
	
	變調規則={'1':'7','2':'1','3':'2','5':'7','7':'3',}
	def 變調(self,句物件):
		字陣列=self.篩仔.篩出字物件(句物件)
		尾本調=[]
		for 所在 in range(len(字陣列)):
			if 所在+1<len(字陣列):
				if 字陣列[所在+1]==self.本調記號:
					尾本調.append(True)
				else:
					尾本調.append(False)
			else:
				尾本調.append(True)
		for 所在 in range(len(字陣列)):
			if not 尾本調[所在]:
				if 字陣列[所在].音!=無音 and 字陣列[所在].音 not in 標點符號:
					臺羅=self.轉臺羅韻調(臺灣閩南語羅馬字拼音(字陣列[所在].音))
					字陣列[所在]=self.分析器.產生對齊字(字陣列[所在].型,臺羅.音標)
		return 字陣列

	def 轉臺羅韻調(self,臺羅):
		if 臺羅.韻.endswith('h'):
			if 臺羅.調=='4':
				臺羅.調='2'
			elif 臺羅.調=='8':
				臺羅.調='3'
			else:
				raise 解析錯誤('喉塞尾調錯誤！！{0}'.format(臺羅.音標))
			臺羅.韻=臺羅.韻[:-1]
		elif 臺羅.韻.endswith('p') or 臺羅.韻.endswith('t') or 臺羅.韻.endswith('k'):
			if 臺羅.調=='4':
				臺羅.調='8'
			elif 臺羅.調=='8':
				臺羅.調='10'
			else:
				raise 解析錯誤('入尾調錯誤！！{0}'.format(臺羅.音標))
		else:
			if 臺羅.調 in self.變調規則:
				臺羅.調=self.變調規則[臺羅.調]
			else:
				raise 解析錯誤('非入調錯誤！！{0}'.format(臺羅.音標))
		臺羅.做音標()
		return 臺羅
			
		
				
			
				
				
