web解释器模式的参与者有哪些

本文小编为大家详细介绍“web解释器模式的参与者有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“web解释器模式的参与者有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

适用性

如果某种语言可以表示为足够简单的抽象语法树,而且效率不是最重要因素,就可以使用解释器模式。

结构

web解释器模式的参与者有哪些

参与者


• AbstractExpression (抽象表达式,如Expr)
—声明抽象的解释操作,这个操作被所有的子类共享。

•NonterminalExpression (非终结符表达式,如AdditiveExpr、MultiplicativeExpr等)
— 文法中所有可以分解为下级语法节点组合的语法节点都需要一个NonterminalExpression类来实现其功能
—NonterminalExpression为下级语法节点维护一个AbstractExpression类型的列表。
— 实现解释 (Interpret) 操作。解释 (Interpret) 除了要递归调用表示下级语法节点的解释操作之外,也可以对各个节点的解释结果进行进一步计算。例如AdditiveExpr需要对每个MultiplicativeExpr的解释结果进行广义(加或减)的加法计算。

• TerminalExpression (终结符表达式,如IntegerLiteral等)

— 直接实现文法中的简单操作或计算。
• Context(上下文)
— 包含解释器之外的一些全局信息。
• Client(客户)

— 构建语法树。

调用解释操作。


协作


• Client构建一个抽象语法树. 然后初始化上下文并调用解释操作。构建语法树也可以作为语法节点类的功能来实现。毕竟最熟悉语法节点的就是语法节点类自己。

• 每一非终结符表达式节点调用相应子表达式的解释操作并合成处理结果。而各终结符表达式负责进行不依赖其他节点的简单处理或计算。
• 每一节点的解释操作可以通过上下文来存储和访问解释器的状态。例如取得或储存的计算结果、取得事先定义的常量、调用预先登录函数等都需要通过上下文来实现。

读到这里,这篇“web解释器模式的参与者有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容文章,欢迎关注编程之家行业资讯频道。

相关文章

蚂蚁庄园小课堂2024年6月29日答案是什么?进入支付宝一起饲养...
谷歌小恐龙怎么调出来,我们将连接电脑的网络拔掉或者禁用网...
蚂蚁庄园小课堂2024年6月22日答案是什么?每天蚂蚁庄园小课堂...
火绒为什么不建议大家用,火绒对于用户的要求比较高,查杀病...
百度网盘电脑版订阅的分享在哪?百度网盘电脑版订阅的分享在什...
notepad怎么替换换行符,打开notepad++软件,点击菜单栏的视...