사용자 언어 프로그램은 #include 지시문을 통해 다른 ULP 파일의 코드를 재사용할 수 있습니다. 이에 대한 문법은 다음과 같습니다.
#include "filename"
현재 소스 파일(즉, #include 지시문이 포함된 파일)과 동일한 디렉토리에서 먼저 filename 파일을 찾습니다. 해당 위치에 파일이 없는 경우 ULP 디렉토리 경로에 포함된 디렉토리에서 검색합니다.
최대 포함 깊이는 10입니다.
각 #include
지시문은 한 번만 처리됩니다. 이렇게 하면 동일한 변수 또는 함수에 대한 정의가 여러 개 존재하지 않게 됩니다. 정의가 여러 개 있으면 오류가 발생합니다.
filename에 디렉토리 경로가 포함되어 있는 경우 디렉토리 구분 문자로 슬래시를 사용하는 것이 좋습니다(Windows에서도 해당). Windows 드라이브 문자는 사용하지 않아야 합니다. 이러한 드라이브 문자를 사용하면 사용자 언어 프로그램이 모든 플랫폼에서 실행됩니다.
시간이 지나면서 최신 버전의 EAGLE이 새롭거나 수정된 사용자 언어 기능을 구현할 수 있으며, 이러한 경우 이전 버전의 EAGLE에서 이러한 ULP를 실행하게 되면 오류 메시지가 발생할 수 있습니다. 사용자에게 이 ULP에 적어도 특정 버전의 EAGLE이 필요하다는 전용 메시지를 제공하기 위해 ULP에는 #require
지시문이 포함될 수 있습니다. 이에 대한 문법은 다음과 같습니다.
#require version
version은 다음 양식의 실수 상수로 제공해야 합니다.
V.RRrr
V가 버전 번호이면 RR은 릴리즈 번호이고, rr은 (선택 사항) 리비전 번호입니다(둘 모두 10보다 작은 경우 선행 0으로 채워짐). 예를 들어, ULP에 EAGLE 버전 4.11r06(#require 지시문을 처음 구현한 베타 버전)이 필요한 경우 다음을 사용할 수 있습니다.
#require 4.1106
버전 5.1.2에 대한 적절한 지시문은 다음과 같습니다.
#require 5.0102
모든 사용자 언어 프로그램에는 해당 함수, 사용 방법 및 작성한 사람에 대한 정보가 포함되어 있어야 합니다. 지시문은 다음과 같습니다.
#usage text [, text...]
이 정보를 사용할 수 있도록 하는 표준 방법을 구현합니다. #usage
지시문이 있는 경우 제어판에서 해당 문자(문자열 상수여야 함)를 사용하여 프로그램에 대한 설명을 표시합니다.
예를 들어 ULP가 dlgMessageBox()
에서 이 정보를 사용해야 하는 경우 프로그램에서 내장 상수 usage를 통해 해당 문자를 사용할 수 있습니다.
주 프로그램 파일의 #usage
지시문(RUN 명령으로 시작한 지시문)만 적용됩니다. 따라서 순수 include 파일에는 고유한 #usage 지시문이 있을 수 있으며 반드시 있어야 합니다.
표시할 정보를 찾을 때 제어판에서 나머지 모든 문자를 구문 분석할 필요가 없도록 파일의 시작 부분에 #usage
지시문을 두는 것이 가장 좋습니다.
사용 정보를 여러 언어로 사용할 수 있게 될 경우 개별 언어의 문자를 쉼표로 구분해야 합니다. 이러한 각 문자는 해당 언어의 2문자 코드로 시작하고(language()
함수가 전달) 그 뒤에는 콜론과 여러 공백이 올 수 있습니다. 실제 시스템에서 사용된 언어에 해당하는 문자가 없는 경우 처음 지정된 문자가 사용됩니다(일반적으로 가장 많은 사용자가 프로그램에 액세스할 수 있도록 하려면 영어여야 함).
#usage "en: A sample ULP\n"
"Implements an example that shows how to use the EAGLE User Language\n"
"Usage: RUN sample.ulp\n"
"Author: john@home.org",
"de: Beispiel eines ULPs\n"
"Implementiert ein Beispiel das zeigt, wie man die EAGLE User Language benutzt\n"
"Aufruf: RUN sample.ulp\n"
"Author: john@home.org"