2013年2月7日木曜日

データ型 - 部分型 - 内部部分型化

内部部分型化は、構造型の親の型を詳細化します。構成要素の中で、どの要素が存在し、存在する場合にとりうる値は何かを規定します。

型の記法

  内部部分型化 ::= WITH COMPONENTS 単一型制限 | WITH COMPONENTS 複数型制限
  単一型制限 ::= 部分型仕様
  複数型制限 ::= { 型制限 } | { ... , 型制限 }

  型制限 ::= 名前付き制限リスト
  名前付き制限リスト ::= 名前つき制限 | 名前つき制限 , 名前付き制限リスト
  名前付き制限 ::= 識別子 制限 | 識別子
  制限 ::= 値制限 存在制限
  値制限 ::= 部分型仕様 | empty
  存在制限 ::= PRESENT | ABSENT | empty
  PRESENT : 対応する要素値が存在
  ABSENT   : 対応する要素値が存在しない
  empty   : { 型制限 }の場合、PRESENTと同じ意味
               { ... , 型制限 }の場合、特別な制限はない

型の記法の例

  Envelope ::= SET {
  typeA TypeA,
  typeB TypeB OPTIONAL,
  typeC TypeC OPTIONAL
  }
  ABEnvelope ::= Envelope ( WITH COMPONENTS {
  ... ,
  typeB PRESENT,
  typeC ABSENT })
  ACEnvelope ::= Envelope ( WITH COMPONENTS {
  ... ,
  typeB ABSENT,
  typeC PRESENT })

  ABEnvelope ::= Envelope ( WITH COMPONENTS { typeA, typeB } )
  ACEnvelope ::= Envelope ( WITH COMPONENTS { typeA, typeC } )


0 件のコメント:

コメントを投稿