複合テンプレート データ型の問題
複合データ型を他のデータ型から作成し、かっこを使用していずれかのデータ型を囲む場合は、かっこで囲まれたデータ型を囲むすべてのデータ型もかっこで囲む必要があります。
たとえば、次のテンプレートを使用して 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)
パーサー フィルターでは、検出されたかっこが最も外側のコンテキストに属し、次のかっこが次のコンテキストに属していると見なされるため、上記の例では構文エラーが生成されます。