次の方法で共有


複合テンプレート データ型の問題

複合データ型を他のデータ型から作成し、かっこを使用していずれかのデータ型を囲む場合は、かっこで囲まれたデータ型を囲むすべてのデータ型もかっこで囲む必要があります。

たとえば、次のテンプレートを使用して GPD 整数の一覧を定義するとします。

*Template:  LIST_OF_INTS
{
    *Type:  DATATYPE
    *DataType:   ARRAY
    *ElementType:  INTEGER
    *RequiredDelimiter: ","
    *OptionalDelimiter: "<20 09>"
    *ElementTags: (int)
    *ArraySize: *
}
*Template:  LIST_OF_LIST_OF_INTS
{
    *Type:  DATATYPE
    *DataType:   ARRAY
    *ElementType:  LIST_OF_INTS
    *RequiredDelimiter: ":"
    *OptionalDelimiter: "<20 09>"
    *ElementTags: (IntList)
    *ArraySize: *
}

それから、次の値は、LIST_OF_LIST_OF_INTS データ型の有効で同等の式です。

*ListList: 1,2,3:10,11,12:20,21,22 
*ListList: (1,2,3:10,11,12:20,21,22)
*ListList: ((1,2,3):(10,11,12):(20,21,22))

ただし、次の値はかっこ規則の入れ子に違反しています。

*ListList: (1,2,3):(10,11,12):(20,21,22)

パーサー フィルターでは、検出されたかっこが最も外側のコンテキストに属し、次のかっこが次のコンテキストに属していると見なされるため、上記の例では構文エラーが生成されます。