설명
기고자: Alex 주석이나 $control을 인식하기 전에 1 %xx%가 대체됩니다.
소형 모델 유형 :GAMS
카테고리 : GAMS 테스트 라이브러리
메인 파일 : macro01.gms
$title 여러 매크로 테스트 (MACRO01,SEQ=403)
$onText
기여자: 알렉스
$offText
* 주석이나 $control을 인식하기 전에 1 %xx%가 대체됩니다.
$set star * 댓글입니다
$set dco $show
%별%
%dco%
* 2 매크로 확장은 주석 및 $control을 인식하도록 시스템을 재설정하지 않습니다.
$피망 슬롯 star * 주석입니다.
$피망 슬롯 dco $show
dco
별
;
$if errorfree $abort 오류가 발생해야 합니다.
$clearErrors
* 3개의 매크로 이름은 환경 변수와 충돌하지 않습니다.
$set setid 다른 이름 공간에 있습니다.
$피망 슬롯 setid는 '뭔가 다른 것'을 표시합니다.
$쇼
세트드;
'%setid%'를 표시;
* 4 $ 컨트롤에는 매크로 확장이 없습니다.
$피망 슬롯 댓글 쓰레기
$remark 댓글입니다
$if not errorfree $abort 잘못된 매크로 대체
* $피망 슬롯에는 대체 항목이 5개 없습니다.
$피망 슬롯 이전 이름 새 이름
$피망 슬롯 oldname display '이것은 dco가 아니어야 합니다.';
$if errorfree $abort 매크로에서 잘못된 매크로 대체
$clearErrors
$쇼
* 6개의 오프텍스트는 그대로 유지됩니다.
$피망 슬롯 offtext 이상해요
$피망 슬롯 ontext 이것도 이상해요
$onText
세트드
비고
$remark
$offText
$onEcho > 매크로2.inc
세트드
옛 이름
$offEcho
* 7 데칼이 정의되어 있고 올바른 유형인지 확인하세요.
$if NOT 정의 setid $abort 매크로 정의 테스트 누락
$if NOT 선언 setid $abort 누락된 매크로 선언 테스트
$if NOT mactype setid $abort 매크로 유형 테스트가 누락되었습니다.
* 8개 선언 목록 테스트
$피망 슬롯 매크로이름 newname2
이전 이름 설정
매크로명;
$if errorfree $abort는 대체를 수행하지 않아야 합니다.
$clearErrors
* 도메인 목록에서 9개의 매크로 대체가 이루어져야 합니다.
$피망 슬롯 나야
$ 매크로 jm j
$피망 슬롯 ijm 메신저,jm
$피망 슬롯 ijma(k) k,k
i, j를 설정;
set ijset(im,jm,ijm,ijma(i),ijma(jm));
$if not errorfree $abort 잘못된 매크로 대체
* 10 .local이 인식됩니다.
q /1*3/,i /2*4/ 설정; 별칭(q,w); 매개변수 b(*) / 1 2, 3 8 /, c(*);
$피망 슬롯 qq(i) 합계(i.local, b(i))
c(q) = qq(q); 중단$sum(q, c(q) - sum(w, b(w))) c;
* 11 기본값은 arument를 확장하지 않는 것입니다.
변수 x(*,*);
$피망 슬롯 f(i) 합계(q, x(i,q))
$피망 슬롯 equ(x) 방정식 equ_&x; equ_&x.. &x =e= 0;
* 방정식 equ_f(I); equ_f(i)..f(i) =e= 0;
등식(f(i))
* 12 $onExpand는 매크로 인수를 처리/확장합니다.
$onExpand
* 방정식 equ_sum(q, x(i,q)); equ_sum(q, x(i,q)).. sum(q, x(i,q)) =e= 0;
등식(f(i))
$if errorfree $abort 오류가 발생해야 합니다.
$clearErrors
* 13 매크로를 재정의하면 기본적으로 오류가 발생해야 합니다.
$피망 슬롯 reDef(x) 디스플레이 x;
$피망 슬롯 reDef(x)는 '다른 것'을 표시합니다.
$if errorfree $abort 오류가 발생해야 합니다.
$clearErrors
* 14 매크로가 아닌 기호를 매크로로 재정의하면 $onMultiR에서도 오류가 발생합니다.
reDef2를 설정하십시오.
$onMultiR
$피망 슬롯 reDef2(x)는 '다른 것'을 표시합니다.
$if errorfree $abort 오류가 발생해야 합니다.
$clearErrors
* 13 매크로 재정의는 $onMultiR을 사용해도 괜찮습니다.
$피망 슬롯 reDef3(x) x를 설정합니다.
reDef3(이것)
$if set이 아닌 경우 Type this $abort 이것은 세트여야 합니다.
$피망 슬롯 reDef3(x) 매개변수 x;
reDef3(그)
$if parType that $abort 매개변수여야 합니다.
$종료