直譯器模式設計路由器

2021-12-30 05:40:56 字數 1583 閱讀 7856

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。

1.abstractexpression(抽象表示式) 宣告乙個抽象的解釋操作,這個介面為抽象語法樹中所有的節點所共享。

2.terminalexpression(終結符表示式) 實現與文法中的終結符相關聯的解釋操作。 乙個句子中的每個終結符需要該類的乙個例項。

3.nonterminalexpression(非終結符表示式) 為文法中的非終結符實現解釋(interpret)操作。

4.context(上下文) 包含直譯器之外的一些全域性資訊。

4.1 需求分析

設計乙個簡單的路由器,能夠對url實現rewrit和對數字url的解析。

4.2 類圖設計

4.3 原始碼設計

fromurl = $fromurl;

$this->realurl = $realurl;

}public function setfromurl($fromurl)

public function getfromurl()

public function setrealurl($realurl)

public function getrealurl()

}/*}}}*/

//路由規則

inte***ce routerrule

/*}}}*/

//對映類規則

class rewriterouterrule implements routerrule

public function interpret(context $context)

return false;

}public function getrealurl()

}/*}}}*/

//數字轉化類

class digrouterrule implements routerrule

return false;

}public function getrealurl()

public function setrealurl($realurl)

}/*}}}*/

//路由器

class router

//排程

public function dispatch(context $context)

}return false;

}}/*}}}*/

class client

else

}}/*}}}*/

client::main($ar**);

?>

4.4 結果演示

路由器連線路由器

有兩種方法!無論哪種,和貓接的主路由總是不變!只要改從路由的設定!第一。從路由還是當路由用!設定 路由a為主路由,路由b為從路由!假設你現在有兩個路由 路由a 和 路由b 同時使用的是adsl撥號上網。首先,設定路由a的wan口狀態設定為pppoe撥號狀態,然後填入adsl撥號的賬號和密碼。然後,設...

cisco路由器模式

使用者模式 特權模式 全域性配置模式 使用者模式 使用者模式 user exec mode 路由器剛進入的就是使用者模式,提示符為 最前面的符號 在這一級別下,使用者只可以檢視路由器的一些基本狀態,不可以進行命令配置。特權模式 特權模式 privileged exec mode 通過在使用者模式下輸...

直譯器 設計模式

知識點 直譯器 interpreter 知識內容 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。示例 include include includeusing namespace std class context class variableexp...