다음을 통해 공유


GDL 중첩 컨텍스트

중첩된 컨텍스트시작 중첩 문자(여는 괄호 또는 여는 대괄호)로 도입됩니다. 일치하는 끝 중첩 문자 (닫는 괄호 또는 닫는 대괄호)가 발견되면 중첩된 컨텍스트가 종료됩니다.

중첩 컨텍스트는 내부적으로 중첩될 수 있습니다. 끝 중첩 문자는 현재 중첩 컨텍스트를 종료하는 데만 사용할 수 있습니다. 끝 중첩 문자가 다른 곳에 표시되면 구문 오류입니다.

중첩된 컨텍스트 내에서 구문 구분 기호 문자 는 구문 구분 기호로 의미를 잃고 중첩된 컨텍스트 구분 기호로도 처리됩니다. 중첩된 컨텍스트 내에서 줄 바꿈 시퀀스는 리터럴이 아닌 공백으로 처리됩니다.

중첩된 컨텍스트는 컨텍스트 외부 또는 다른 중첩된 컨텍스트 내에 나타날 수 있지만 다른 컨텍스트 내에는 나타날 수 없습니다. 다른 중첩된 컨텍스트를 포함한 모든 컨텍스트는 HexSubString 컨텍스트를 제외하고 중첩된 컨텍스트 내에 나타날 수 있습니다.

다음 코드 예제에서는 GDL 중첩 컨텍스트를 보여줍니다.

*good_nests: ( { } [ ( ) ] )

다음 코드 예제에서는 오류가 포함된 GDL 중첩 컨텍스트를 보여 줍니다.

*bad_nests: (  ] *%  end nesting delimiter can only be used within its nesting context.
*bad_nests: (  ]  )
*bad_nests:   ] [   *%  end nesting delimiter can only be used within its nesting context.
*bad_nests: (  [  )   ]   *%  end nesting delimiter can only be used within its nesting*% context.  In this case the ')' char cannot be used within the context begun 
*%by '[' .
*bad_nests:  {  [ ]  }  *% attempt to use construct delimiter to define a nesting context 
*%  outside of a nesting context.

중첩된 컨텍스트의 전체 내용이 의 일부로 처리됩니다. 예를 들어 다음 GDL 코드는 키워드가 "*KeywordA"인 하나의 항목을 나타냅니다. *KeywordB 및 *KeywordC에 대한 별도의 항목으로 보이는 항목이 중첩된 컨텍스트 내에 포함되어 있으므로 조각의 나머지 값은 *KeywordA 값입니다. 실제로 숫자 "12, 38, 709"는 대괄호로 정의된 외부 컨텍스트 안에, 괄호로 정의된 내부 중첩 컨텍스트에 있습니다.

*KeywordA: [
*KeywordB:  List(12, 38, 709)
*KeywordC:  "the small brown fox" ]