海上升明月

导航

隐式嵌入和无隐式嵌入

隐式嵌入 : ==>

==> 执行的替换是嵌入。既右边表达式的起始位置对应左边表达式的起始位置,结束位置对应结束位置,从而把左边匹配的节点替换成右边的表达式。

img

上图是隐式嵌入执行三次

无隐式嵌入 : ==>>

==>> 执行的规则类似增加。这个规则没有隐式嵌入,所以右边的表达式中需要有左边表达式的原节点才能生效。比如:A ==>> A B 是无效的,a:A ==>> a B 是有效的。并且右边表达式中,匹配元素指示符左边的表达式都是不会在视图中显示的,只有右边元素的表达式会在视图中显示。
例如:a:A ==>> B a A,在视图中和 a:A ==>> a A 的效果是一样的。但是执行的适合还是会创建 B,但是视图中不会显示。

img
初始状态

img
==>> 执行 3 次后(实际上这个 noEmbedding 执行无数次看起来都不会有变化,但是 BigA 是有增加的。)

图例说明

posted on 2023-07-22 11:02  bluenlq  阅读(22)  评论(0编辑  收藏  举报