複合範本數據類型問題

當從其他數據類型創建複合數據類型時,如果使用括弧括住其中一個數據類型,則所有包含該括弧括住數據類型的數據類型也必須用括弧括住。

例如,假設您使用下列範本來定義 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)

上述範例會產生語法錯誤,因為剖析器篩選條件假設它遇到的任何括號屬於最外層的內容、下一個括號屬於下一個內容等等。