當從其他數據類型創建複合數據類型時,如果使用括弧括住其中一個數據類型,則所有包含該括弧括住數據類型的數據類型也必須用括弧括住。
例如,假設您使用下列範本來定義 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)
上述範例會產生語法錯誤,因為剖析器篩選條件假設它遇到的任何括號屬於最外層的內容、下一個括號屬於下一個內容等等。