Go to the first, previous, next, last section, table of contents.


9.2 The Uses Clause

The uses-clause tells Larch/C++ what traits are used to provide the vocabulary for specifying behavior. See section 4.14 LSL Constants for the syntax of lsl-constant.

uses-clause ::= uses trait-list ;
trait-list ::= trait [ , trait ] ...
trait ::= trait-name [ ( renaming ) ]
trait-name ::= simple-id
renaming ::= replace-list | lsl-sort-list [ , replace-list ]
replace-list ::= replace [ , replace ] ...
replace ::= lsl-sort for lsl-formal
lsl-sort-list ::= lsl-sort [ , lsl-sort ]
lsl-sort ::= simple-id [ lsl-instance-actuals ]
               | built-in-type-name
               | lsl-constant
lsl-instance-actuals ::= [ lsl-sort-list ]
               | < lsl-sort-list >
lsl-formal ::= lsl-sort
               | simple-id [ : lsl-signature ]
lsl-signature ::= [ lsl-sort-list ] -> lsl-sort

The uses-clause with its renamings should be thought of as producing a new trait, which is used by Larch/C++. The syntax for renaming matches that of LSL [Guttag-Horning93], and has the same meaning as in LSL. This "trait" may have a trait-name that would be illegal in LSL, such as Set<int>.


Go to the first, previous, next, last section, table of contents.