当前位置: 首页 > news >正文

射阳做网站多少钱个人做网站的必要性

射阳做网站多少钱,个人做网站的必要性,wordpress 主题 更换,长沙3天2晚自由行攻略定义 给定一个语言#xff0c;定义它的文法的一种表示#xff0c;并定义一种解释器#xff0c;这个解释器使用该表示来解释语言中的句子。 应用场景 在软件构建过程中#xff0c;如果某一特定领域的问题比较复杂#xff0c;类似的结构不断重复出现#xff0c;如果使用…定义 给定一个语言定义它的文法的一种表示并定义一种解释器这个解释器使用该表示来解释语言中的句子。 应用场景 在软件构建过程中如果某一特定领域的问题比较复杂类似的结构不断重复出现如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下将特定领域的问题表达为某种语法规则下的句子然后构建一个解释器来解释这样的句子从而达到解决问题的目的。 结构 代码示例 //Interpreter.h /****************************************************/ #ifndef INTERPRETER_H #define INTERPRETER_H #include iostream #include vector #include string #include algorithm #include stackusing namespace std;// 抽象表达式类 class Expression { public:// 解释virtual int interpret() 0;};// 数字表达式类 class NumberExpression : public Expression { public:// 构造函数NumberExpression(int num) : number(num) {}// 解释virtual int interpret() { return number; }private:int number; };// 加法表达式类 class AddExpression : public Expression { public:// 构造函数AddExpression(Expression* left, Expression* right) : left(left), right(right) {}// 解释virtual int interpret() { return left-interpret() right-interpret(); }private:Expression* left;Expression* right; };// 减法表达式类 class SubExpression : public Expression { public:// 构造函数SubExpression(Expression* left, Expression* right) : left(left), right(right) {}// 解释virtual int interpret() { return left-interpret() - right-interpret(); }private:Expression* left;Expression* right; };// 解释器类 class Interpreter { public:// 构造函数Interpreter(string exp) : expression(exp) {}// 解释int interpret() {stackExpression* s;// 遍历表达式字符for (int i 0; i expression.length(); i) {if (isdigit(expression[i])) {// 识别数字int j i;while (j expression.length() isdigit(expression[j])) {j;}int num stoi(expression.substr(i, j - i));s.push(new NumberExpression(num));i j - 1;}else if (expression[i] ) {// 把左数提取出来Expression* left s.top();s.pop();// 识别右数int j i 1;while (j expression.length() isdigit(expression[j])) {j;}Expression* right new NumberExpression(stoi(expression.substr(i 1, j - (i 1))));// 左数右数的表达式放入栈中s.push(new AddExpression(left, right));i j - 1;}else if (expression[i] -) {// 把左数提取出来Expression* left s.top();s.pop();// 识别右数int j i 1;while (j expression.length() isdigit(expression[j])) {j;}Expression* right new NumberExpression(stoi(expression.substr(i 1, j - (i 1))));// 左数-右数的表达式放入栈中s.push(new SubExpression(left, right));i j - 1;}}return s.top()-interpret();}private:string expression; };#endif//test.cpp /****************************************************/ #include Interpreter.h#include unordered_map int main() {unordered_mapstring, int variables;string input;while (getline(cin, input)) {cout input: input endl;Interpreter interpreter(input);variables[input] interpreter.interpret();cout result: variables[input] endl;}return 0; }运行结果 要点总结 Interpreter模式的应用场合是Interpreter模式应用中的难点只有满足“业务规则频繁变化且类似的结构不断重复出现并且容易抽象为语法规则的问题”才适合使用Interpreter模式。使用Interpreter模式来表示文法规则从而可以使用面向对象技巧来方便地“扩展”文法。Interpreter模式比较适合简单的文法表示对于复杂的文法表示Interperter模式会产生比较大的类层次结构需要求助于语法分析生成器这样的标准工具。
http://www.hkea.cn/news/14572094/

相关文章:

  • 山东网站建设方案制作wordpress 园林模板
  • 柳江企业网站建设公司中国空间站设计在轨飞行几年
  • 杭州e时代网站建设让Wordpress只支持手机访问
  • 西安网站建设hyk123洪梅东莞网站建设
  • 制作网站问题和解决方法网站平台设计
  • 小企业网站建设的大品牌wordpress 会员下载
  • 北京高端网站建设优势做字网站
  • 苏州市住房和城乡建设局网站首页app设计网站模板
  • 广东网站设计公司建网站怎么选择服务器
  • 网站搭建策略与方法有哪些方面电子商务网站建设人才调研
  • 大图做网站背景加载慢舞阳网站建设
  • 西安网站建设服务三亚网站建设哪家好
  • 旅游网站规划说明市场调研报告内容
  • 广西响应式网站建设金融建设网站
  • 龙游住房和城乡建设局网站如何建立自己网站平台
  • 建设工程项目管理信息门户网站wordpress官方源文件结构
  • 营销型网站哪家做的好莆田企业制作网站
  • 蜘蛛云建站网站做网站哪些方面会侵权
  • 西安门户网站建设开网店货源从哪里找最好
  • 中国最好的网站建设公司1天学会搭建营销网站
  • 男男做暧暧视频网站ftp地址格式怎么写
  • 网站建设企划书个人开投资公司条件
  • 王璞网站开发实战一元抢宝网站开发
  • 个人网站建设技术网站建设带支付源码
  • 微商分销如何搭建分销模式做seo优化产品网站
  • 外贸网站源码哪个好电子商务网站建设策划说
  • 山东网站建设公司排名wordpress销售和会员
  • 大型网站建设价格广东全屋定制十大名牌
  • 网站模板文件下载网站建设策划书5000字
  • 社团网站建设的功能定位wordpress dux搜索无法使用