直譯器模式

2021-06-14 12:30:31 字數 884 閱讀 8778

#include

#include

//#include

#include

#include

using namespace std;

// 直譯器模式:給定一種語言,定義它的文法的一種表示,並定義乙個直譯器  

// 該直譯器使用該表示來解釋語言中的句子  

// 類似於程式語言或者指令碼  

// 假設情景是乙個指令碼控制系統  

// wasd上下左右方向,正數數字為移動步數  

// 簡化一下吧,測試和開發支援wasd字母,移動步數為1-9的正整數  

class fire 

;  class action 

else 

}  virtual void excute() = 0; 

protected: 

int     m_nnum; 

}; 

// w  

class forward : public action 

}  }; 

// a  

class left : public action 

}  }; 

class right : public action 

}  }; 

// s  

class back : public action 

}  }; 

void interper(string &str) 

if (paction) 

}  int main()

printf("\n"); 

cout<<"\nok\n";

return 1;

}

直譯器模式

1 模式定義 直譯器模式 interpreter pattern 定義語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 意思是使用規定格式和語法的 它是一種類行為型模式。2 模式結構 直譯器模式包含如下角色 abstractexpression 抽象表示式 terminalexpre...

直譯器模式

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。要解決的問題 如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構造乙個直譯器,該直譯器通過解釋這些句子來解決該問題。的好處 當有乙個語言需要解...

直譯器模式

例項 實現乙個簡單的 直譯器 uml類圖 實現 演奏內容 class playcontext set 表示式 abstract class expression else 執行 public abstract void excute string key,double value 音符 class ...