You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Norbert Preining edited this page Oct 6, 2017
·
2 revisions
module expression
In various syntax elements not only module names itself, but whole
module expressions can appear. A typical example is
open <mod_exp> .
which opens a module expression. The following constructs are
supported:
module name
~ using the name of a module
renaming
~ <mod_exp> * { <mappings> }
This expressions describes a new module where sort and/or
operators are renamed.
`<mappings>` are like in the case of [`view`](/CafeOBJ/cafeobj/wiki/view) a comma
separated list of mappings of either sorts (`sort` and `hsort`) or
operators (`op` and `bop`). Source names may be qualified, while
target names are not, they are required to be new names. Renaming
is often used in combination with [instantiation](/CafeOBJ/cafeobj/wiki/instantiation).
summation
~ <mod_exp> + <mod_exp>
This expression describes a module consisting of all the module
elements of the summands. If a submodule is imported more than
once, it is assumed to be shared.