11.8 预定义的迭代器表达式
本节定义标准的OCL迭代器表达式。在抽象语法中这些都是IteratorExp的实例。这些迭代器表达式总是有一个做为源的集合表达式,正如在第8章(抽象语法)中良构规则中定义的那样。这些预定义的迭代器表达式按照不同的集合类型来展示。每个迭代器表达式的语义通过跌倒器到‘iterate’构造的映射来定义。这意味这这些迭代器表达式的语义不需要在ygie单独的语义子章节中来定义。
在如下所有的OCL表达式中,等号左边是要定义的IteratorExp,等号右边是等同的IterateExp。名称source, body和iterator分别指示抽象语法中相应的角色:
source | IteratorExp的source表达式 |
---|---|
body | IteratorExp的body表达式 |
iterator | IteratorExp的iterator变量 |
result | IteratorExp的result 变量 |
11.8.1 使用Iterator表达式扩展标准库
可以在标准库中添加新的迭代器表达式。如果这么做,那么新迭代器的语义需要通过将迭代器映射到现有的构造来定义,与预定义的迭代器的语义相同的处理方式来实现(参见11.9)。