복합 템플릿 데이터 형식 문제
다른 데이터 형식에서 복합 데이터 형식을 만들고 데이터 형식 중 하나를 묶는 데 괄호를 사용하는 경우 괄호로 괄호로 묶인 데이터 형식을 묶은 모든 데이터 형식도 괄호로 묶어야 합니다.
예를 들어 다음 템플릿을 사용하여 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)
위의 예제에서는 파서 필터가 발생하는 괄호가 가장 바깥쪽 컨텍스트에 속하고 다음 괄호가 다음 컨텍스트에 속한다고 가정하므로 구문 오류를 생성합니다.