燕郊网站建设,网页设计实验心得,大型门户网站有哪些,在线生成网页网站给定一个语言#xff0c;定义它的文法的一种表示#xff0c;并定义一个解释器#xff0c;这个解释器使用该表示来解释语言中的句子。
#include iostream
#include string
using namespace std;class Context { };class Expression {
public:virtual ~Expre…给定一个语言定义它的文法的一种表示并定义一个解释器这个解释器使用该表示来解释语言中的句子。
#include iostream
#include string
using namespace std;class Context { };class Expression {
public:virtual ~Expression() { }virtual void Interpret(const Context c) 0;
};class TerminalExpression :public Expression {
public:TerminalExpression(const string statement) {_statement statement;}void Interpret(const Context c) {cout this-_statement -- TerminalExpression endl;}private:string _statement;
};class NonterminalExpression :public Expression {
public:NonterminalExpression(Expression* expression, int times) {_expression expression;_times times;}void Interpret(const Context c) {for (int i 0; i _times; i) {_expression-Interpret(c);}}private:Expression *_expression;int _times;
};int main() {Context *c new Context();Expression *tp new TerminalExpression(echo);Expression *ntp new NonterminalExpression(tp, 4);ntp-Interpret(*c);delete ntp;delete tp;delete c;return 0;
}