next up previous
Next: 1 General Operator TypeSpec Up: 4 MP high level Previous: 2 Basic type specifications

3 Operator type specifications

The most simple of prototypes consist of a single Basic TypeSpec, as in the example above. For more complex data structures such as matrices, arrays of structures, and recursive data structures, operators must appear within the prototype tree. These more complex objects can be constructed from four basic structuring operators: structures, unions, arrays, and pointers. User-defined structures are also supported. Syntactically, we define:

<Operator TypeSpec> ::= 
    <General Operator TypeSpec> 
      |<Meta Operator TypeSpec>
 
<General Operator TypeSpec> ::=
    MP_CommonOperatorPkt(MP_Struct)n<MP TypeSpec>n 
    | MP_CommonOperatorPkt(MP_Union)n<MP TypeSpec>n 
    |<OperatorPacket>(OP)n<MP TypeSpec>n
 
<Meta Operator TypeSpec> ::= 
    MP_CommonMetaOperatorPkt(MP_Array) <Prototype AP> 
    | MP_CommonMetaOperatorPkt(MP_Pointer) <Pointer AP> 
 
<Pointer AP> ::= 
    <Prototype AP>| AP(MP_RecursiveStructAnnot)
     | AP(MP_RecursiveUnionAnnot)
 
<OperatorPacket> ::= 
    MP_OperatorPkt | MP_CommonOperatorPkt
 
where OP is any operator. An index n to a packet specification indicates that the packet has n arguments within the prototype tree (all MP TypeSpecs).



 
next up previous
Next: 1 General Operator TypeSpec Up: 4 MP high level Previous: 2 Basic type specifications
| ZCA Home | Reports |