web解释器模式的知识点有哪些

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

语法建模

作为解释器模式的标准做法,定义了语言的语法之后的步骤就是为每种语言要素准备一个类。对于四则运算的例子,其类结构如下:

web解释器模式的知识点有哪些

类图稍微大了一些,下面以几条规则为例进行说明。

1. 泛化关系

示例:[5]PrimaryExpr::=NumericLiteral|ParenthesizedExpr| FunctionCall

式[5]的含义为基本表达式PrimaryExpr可以是数值型字面值NumerLiteral、带括号表达式ParemthesizedExpr、函数调用中的某一种。转化成类关系就是泛化关系。所有适用PrimaryExpr的地方都可以使用NumericLiteral、ParenthesizedExpr、FunctionCall中的一种来代替。

2.组合关系

[2]AdditiveExpr::=MultiplicativeExpr(("+">

当AdditiveExpr由多个MultiplicativeExpr构成时,二者之间的关系又可以看作是组合关系。

当只有一个MultiplicativeExpr的时候,式[2]可以退化为:

AdditiveExpr::=MultiplicativeExpr

这种情况可以认为二者之间是简单的泛化关系。

3.简单组合关系

[7]ParenthesizedExpr::="(" Expr ")"

式[7]可以看作1对1的简单组合关系。
 

形成语法树

回头看一下前一篇文章中的表达式:

100.0 * sin(29 + (23 * 6)) + sqrt(cos(34 * 5))

这个表达式转换成语法树如下:

web解释器模式的知识点有哪些

分析过程是沿着类图由上而下进行,直至找到适合的类型为止。例如最初的分析从AdditiveExpr开始,它的下级节点应该是多个MultiplicativeExpr,但是右侧不符合MultiplicativeExpr的条件,因此沿着类图向下搜索直至找到符合条件的FuncitonCall为止。如此周而复始就可以得到整个语法树。

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

相关文章

支付宝万能福可以替代任何福字,没有集齐五福的用户快来试试...
TV盒子助手是一款可以远程管理智能电视、电视盒子的应用,主...
Kindle无法导入电子书怎么办?Kindle电子书阅读器是一款非常...
蓝奏云是现在很多用户下载资源时都会遇到的一款网盘,用户体...
华为Mate20怎么设置触摸屏幕亮屏?对于全面屏的手机来说,苹...
华为怎么关闭锁屏杂志?华为手机在屏幕锁定之后再次打开会看...