我正在處理的項目具有自定義文件格式和預定義的結構。該結構非常簡單且通用(我無法改變它):它由(嵌套)命令和類型化屬性組成。如何使用XText創建方言
使用這種結構,已經創建了幾種方言。方言是通用語法的「實例化」,並指定命令的名稱和含義以及期望的屬性。
我爲這些方言之一創建了一個EMF模型,並且我想重用XText來輕鬆創建專業的文本編輯器,並且能夠將我的模型讀取和寫入正確的格式。
現在我有一個選擇。一方面,我可以直接定位方言,並將相同語法中的定製文件結構和方言中的概念混合在一起。另一方面,我可以創建一個描述文件結構的語法,並且在此之上我可以描述我的方言。
我應該遵循哪種方式?我認爲後者是最好的,但我怎樣才能創建一個描述這兩層的語法呢?
謝謝你的鏈接,但它似乎不符合我的要求...如果我正確地理解它,它是一種用新元素擴展語法(和/或替換現有的語法)的方法。相反,我有一個定義文檔結構的通用語法,我想對元素施加額外的語義約束。 作爲一個類比,考慮通用XML(文檔由netsted元素組成,包含在角度支撐中)和特定的XML模式(它限制元素的名稱和順序)。 – Matteo
在這種情況下,您可以執行類似的操作:創建擴展語法,從父級複製基本規則,然後編寫額外的驗證檢查。您的需求可能有點矯枉過正,但它應該起作用。 –
即使它看起來很醜,我認爲這是唯一的方法... – Matteo