표현식에서 이름 해석
EGL 표현식에서 이름은 다음을 가리킵니다.
- 매개변수
- 변수
- 필드
- 함수
- 파트(이름이 규정된 경우)
이름 해석 프로세스는 표현식의 위치에 관계 없이 동일합니다(표현식은 지정 명령문, 함수 호출 또는 기타 위치에 있을 수 있음). 파트 이름을 해석하는 규칙은 다릅니다. EGL 파트 해석 규칙의 내용을 참조하십시오.
표현식에 있는 이름을 해석하기 위해 EGL은 다음 선언을
순서대로 조사합니다.
- 로컬 변수와 매개변수. 함수 내에 선언된 변수입니다. 여기에는 함수의 매개변수 목록과 레코드 변수 이름이 포함됩니다(해당 레코드 내의 필드 이름은 포함되지 않음). 이 카테고리에서 중복된 이름은 허용되지 않습니다.
- 로컬 입출력(I/O) 오브젝트. 함수에 고유한 입출력(I/O) 오브젝트와
기타 필드입니다. 입출력(I/O) 오브젝트는 get 문에서
참조되는 SQL 레코드의 배열을 포함할 수 있습니다. 이와 동일한
레벨에는 함수에 매개변수로 선언되거나 전달되는 레코드
변수의 필드가 있습니다. 함수 레벨에서 선언된 레코드 변수를
1단계에서 찾을 수 있습니다. 프로그램 레벨에서 선언된 레코드
변수는 이 단계에서 찾을 수 있습니다. 이 카테고리에서는 중복된
이름을 사용할 수 있습니다.
예를 들어, 두 개의 레코드 변수가 각각 customerNumber 필드가 있는 동일한 CustomerRecord 정의를 기반으로 할 수 있습니다. 이 경우 모호성이 없도록 이름 customerNumber를 레코드 변수의 이름으로 규정해야 합니다.
다른 예로 동일한 이름의 프로그램 레벨 레코드 변수와 함수 레벨 필드를 들 수 있습니다. 이 경우에는 다음 중 하나 이상의 조치를 수행하십시오.- 프로그램 레벨 레코드 변수의 이름을 this 키워드로 규정하십시오.
- allowUnqualifiedItemReferences 특성을 YES로 설정하십시오.
- DataTable의 이름, 양식 또는 해당 필드를 포함하는 구조화 레코드로 필드를 규정하십시오. 비구조화 레코드의 필드 이름은 항상 레코드 이름으로 규정되어야 합니다.
- 프로그램 변수. 프로그램 레벨에서 선언된 변수입니다. 이 변수는 매개변수 목록(호출된 프로그램의 경우)과 레코드 변수 이름을 포함합니다(해당 레코드의 필드 이름은 포함하지 않음). 이 카테고리에서 중복된 이름은 허용되지 않습니다.
- 양식 이름. 해당 양식 이름을 다음 방법 중 하나로 선언할 수
있습니다.
- use 선언에서 선언합니다.
- inputForm 특성으로 지정합니다.
- 프로그램의 매개변수 목록에서 선언합니다.
- 프로그램에서 함수의 입출력(I/O) 명령문에서 선언합니다.
- 데이터 테이블 이름. use 선언에서 데이터 테이블 이름을 조사합니다. 이 카테고리에서 중복된 이름은 허용되지 않습니다.
- 필드. EGL이 3 - 5단계의 레코드, 양식, 데이터 테이블에 있는 모든 필드를 조사합니다. 이 카테고리의 중복된 이름은 모호성이 없도록 규정되어야 합니다.
- 라이브러리 변수. use 선언에 지정된 사용자 라이브러리의 변수입니다. 이 카테고리의 중복된 이름은 라이브러리의 이름으로 규정되어야 합니다.
- 시스템 변수. 마지막으로 EGL이 EGL 시스템 라이브러리의 변수를 조사합니다. 이 카테고리에는 중복된 이름이 없습니다.