檔案簡要說明
在廣論App程式中存在許多二維陣列、三維陣列來代表資料,為讓資料更具有意義,末學將這些資料以資料結構類別來封裝。LamrimReader.Core中檔名以Util結尾的檔案是程式檔案,其他為資料結構。
處理程式
- BookMapUtil.java ---- 處理論文/字幕對應表的程式。
- SubtitleUtil.java ---- 處理字幕程式。
- TheoryUtil.java ---- 處理論文的程式。
資料結構
- LinearIndex.java ---- 線性座標,計算機字串處理時使用。
- PLIndex.java ---- 頁、行、字座標,人類習慣定位用。
- Subtitle.java ---- 代表字幕的資料結構。
- TheoryParseListener.java ---- TheoryUtil.java 的附屬 Listener,用在解讀廣論原文時使用。
- Dot.java ---- 代表廣論原文中的標點符號。
定位系統說明
人類的閱讀習慣常以頁數、行數、第幾個字等座標指引論文位置(如全球廣論),而計算機在處理字串時則是以線性的 index 在指引位置(如String.chatAt(Index)),代表頁、行、字的資料結構為PLIndex.java,代表線性座標的資料結構為LinearIndex.java,在處理這類資料時常常需要轉換座標,轉換程式為 TheoryUtil.linearToPLIndex() 與 TheoryUtil.pliToLinearIndex()。
附註:
為降低程式複雜度,未將BookMap納入Core程式中,請參閱論文字幕對應表。