Probleme mit dem Datentyp der Verbundvorlage
Wenn Verbunddatentypen aus anderen Datentypen erstellt werden und Klammern verwendet werden, um einen der Datentypen einzuschließen, müssen alle Datentypen, die einen Datentyp in Klammern einschließen, ebenfalls in Klammern eingeschlossen werden.
Angenommen, Sie definieren eine Liste von GPD-Ganzzahlen mithilfe der folgenden Vorlagen.
*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: *
}
Anschließend sind die folgenden Werte gültige und gleichwertige Ausdrücke des LIST_OF_LIST_OF_INTS Datentyps.
*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))
Der folgende Wert verstößt jedoch gegen die Schachtelungsregel von Klammern.
*ListList: (1,2,3):(10,11,12):(20,21,22)
Im vorherigen Beispiel wird ein Syntaxfehler generiert, da der Parserfilter davon ausgeht, dass alle Klammern, auf die er trifft, zum äußersten Kontext gehören, die nächste Klammer gehört zum nächsten Kontext usw.