규정자
두 개의 동일한 이릉이 동시에 범위에 있을 수 없습니다.
그러나 다른 파트에서 액세스할 수 있는 대부분의 ID는 논리적으로
컨테이너 내부에 있는 메모리의 영역(프로그램과 같은
기본 논리 파트)을 참조합니다. 이런 경우 점 구문을 사용하여
엔클로징 컨테이너의 이름으로 이름을 규정할 수 있습니다. 이 방법으로
다음 ID를 규정할 수 있습니다.
- 레코드 내의 필드
- 양식 내의 필드
- 라이브러리 내의 변수 또는 함수
- 패키지 내의 파트
예를 들어, customerBalance 변수가
레코드 변수 myCustomer에 있는 경우 사용자 코드는
변수를 레코드의 필드로 참조합니다.
myCustomer.customerBalance
동일한 ID가 두 개의 범위에 있는 경우 ID에 대한 규정되지
않은 참조는 가장 로컬인 범위에 대한 참조입니다. 규정자를
사용하여 이러한 동작을 대체할 수 있습니다. customerLib
라이브러리에 액세스하기 위해 use 선언을 사용하는 프로그램을 검토합니다.
프로그램과 라이브러리가 각각 getCustomer() 함수를 선언합니다.
다음과 같은 방법으로 변수 이름을 규정할 수 있습니다.
- 프로그램의 함수가 규정자가 없는 getCustomer()를 호출하는 경우 EGL은 로컬(프로그램)버전을 호출합니다.
- 라이브러리의 이름을 사용하여 함수 이름을 규정하는 경우에는
EGL이 라이브러리에서 함수를 호출합니다.
customerLib.getCustomer(); - 파트 이름 앞에 패키지 이름(예: customerPackage)을 표시하면
import 문에서 파트를 참조하지 않은 경우에도
EGL이 다른 패키지에서 라이브러리 또는 데이터 테이블을 호출할 수 있습니다.
customerPackage.customerLib.getCustomer();패키지 이름은 항상 논리 파트 이름을 규정하며 변수, 상수 또는 함수 이름 바로 앞에 올 수 없습니다. 로컬 ID가 데이터 테이블 또는 라이브러리가 상주하는 패키지와 다른 패키지에 있는 경우 로컬 ID는 데이터 테이블 또는 라이브러리 이름과 같을 수 있습니다. 데이터 테이블 또는 라이브러리 이름을 참조하려면 패키지 이름을 포함하십시오.
자세한 정보는 표현식에서 이름 해석의 내용을 참조하십시오.