大B:“抽象表達式角色:聲明一個抽象的解釋操作,這個接口爲所有具體表達式角色,抽象語法樹中的節(jié)點,都要實現(xiàn)的。”
小A:“什麼叫做抽象語法樹呢?”
大B:“抽象語法樹的每一個節(jié)點都代表一個語句,而在每個節(jié)點上都可以執(zhí)行解釋方法。這個解釋方法的執(zhí)行就代表這個語句被解釋。由於每一個語句都代表這個語句被解釋。由於每一個語句都代表一個常見的問題的實例,因此每一個節(jié)點上的解釋操作都代表對一個問題實例的解答。”
小A:“這樣啊!”
大B:“解釋器模式還包括終結(jié)符表達式角色:具體表達式。1、與文法中的終結(jié)符相關(guān)聯(lián)的解釋操作2、句子中的每個終結(jié)符需要該類的一個實例與之對應。3、終結(jié)符表達式角色:具體表達式。a、法中的每條規(guī)則R:=R1R2……Rn都需要一個非終結(jié)符錶帶式角色。b、從R1到Rn的每個符號都維護一個抽象表達式角色的實例變量。c、現(xiàn)解釋操作,解釋一般要遞歸地調(diào)用表示從R1到Rn的那些對象的解釋操作。4、下文(環(huán)境)角色:包含解釋器之外的一些全局信息。5、用戶角色:a、建(或者被給定)表示該文法定義的語言中的一個特定的句子的抽象語法樹。b、用解釋操作。”