모듈:템플릿파
Module:TemplatePar
--[=[ TemplatePar 2015-02-14] 템플릿 매개 변수 유틸리티 * 주장하다 *수표 *카운 * countNotMempty * 소문자 * 일치 * 유효 * verifyprovaluation * TemplatePar() ]=] -- 모듈 글로벌 국부적 템플릿파 = { } 국부적 메시지프리픽스 = "lua-module-TemplatePar-" 국부적 L10nDef = {} L10nDef.에 = { 배드패턴 = "#제보:TemplatePar 패턴 구문 오류", 듀프옵트 = "#제보:TemplatePar 반복 옵션 매개 변수", 듀프룰 = "#제보:TemplatePar 충돌 키/패턴", 텅 빈 = "템플릿의 오류 * 필수 항목에 대한 정의되지 않은 값", 무효의 = "템플릿의 오류 * 잘못된 매개 변수", invalidPar = "#제보:TemplatePar 잘못된 매개 변수", 미니맥스 = "#제보:TemplatePar min > max", 행방불명의 = "#제보:TemplatePar 라이브러리 누락", 멀티스펠 = "템플릿의 오류 * 매개 변수의 여러 철자", noMSGnoCAT = "#제보:템플리트파(TemplatePar) 메시지나 범주 없음", 동일하지 않은 = "#제보:템플릿Par 누락 매개 변수 이름", 찾을 수 없음 = "템플릿의 오류 * 누락된 페이지", 너무 길다 = "템플릿 * 매개 변수가 너무 길 경우", 너무 짧다 = "템플릿 * 매개 변수가 너무 짧음", 정의되지 않은 = "템플릿의 오류 * 필수 매개 변수 누락", 알 수 없는 = "템플릿의 오류 * 알 수 없는 매개 변수 이름", 알 수 없는 규칙 = "#제보:TemplatePar 알 수 없는 규칙" } L10nDef.드 = { 배드패턴 = "#제보:TemplatePar 구문fehler des pattern", 듀프옵트 = "#제보:TemplatePar 옵션매개 변수 widerholt", 듀프룰 = "#제보:TemplatePar Conflikt 키/패턴", 텅 빈 = "Feler bei Vorlage * Pflichteter ohne Wert", 무효의 = "Feller bei Vorlage * 매개변수 ungultig", invalidPar = "#제보:TemplatePar Unguliltiger 매개변수", 미니맥스 = "#제보:TemplatePar min > max", 멀티스펠 = "Feler bei Vorlage * Mehree 매개 변수-Schreibweisen", noMSGnoCAT = "#제보:템플릿파 웨더 멜둥 노치 카테고리", 동일하지 않은 = "#제보:템플릿파 매개변수 nicht angjeben", 찾을 수 없음 = "Feler bei Vorlage * Seite fehlt", 너무 길다 = "Feler bei Vorlage * 매개변수 zu lang", 너무 짧다 = "Feler bei Vorlage * 변수 Zu Kurz", 정의되지 않은 = "Feler bei Vorlage * Pflichtparameter fehlt", 알 수 없는 = "Feler bei Vorlage * 매개 변수 이름 Unbekannt", 알 수 없는 규칙 = "#제보:템플리트파 언베칸테 레겔" } 국부적 패턴 = { [ "ASCII" ] = "^[ -~]*$", [ "ASCII+" ] = "^[ -~]+$", [ "ASCII+1" ] = "^[!-~]+$", [ "n" ] = "^[%-]?[0-9]*$", [ "n>0" ] = "^[0-9]*[1-9][0-9]*$", [ "N+" ] = "^[%-]?[1-9][0-9]*$", [ "N>0" ] = "^[1-9][0-9]*$", [ "x" ] = "^[0-9A-Fa-f]*$", [ "x+" ] = "^[0-9A-Fa-f]+$", [ "X" ] = "^[0-9A-F]*$", [ "X+" ] = "^[0-9A-F]+$", [ "0,0" ] = "^[%-]?[0-9]*,?[0-9]*$", [ "0,0+" ] = "^[%-]?[0-9]+,[0-9]+$", [ "0,0+?" ] = "^[%-]?[0-9]+,?[0-9]*$", [ "0.0" ] = "^[%-]?[0-9]*[%.]?[0-9]*$", [ "0.0+" ] = "^[%-]?[0-9]+%.[0-9]+$", [ "0.0+?" ] = "^[%-]?[0-9]+[%.]?[0-9]*$", [ ".0+" ] = "^[%-]?[0-9]*[%.]?[0-9]+$", [ "ID" ] = "^[A-Za-z]?[A-Za-z_0-9]*$", [ "ID+" ] = "^[A-Za-z][A-Za-z_0-9]*$", [ "ABC" ] = "^[A-Z]*$", [ "ABC+" ] = "^[A-Z]+$", [ "abc" ] = "^[A-Z]*[a-z]*$", [ "Abc+" ] = "^[A-Z][a-z]+$", [ "abc" ] = "^[a-z]*$", [ "abc+" ] = "^[a-z]+$", [ "aBc+" ] = "^[a-z]+[A-Z][A-Za-z]*$", [ "w" ] = "^%S*$", [ "w+" ] = "^%S+$", [ "베이스64" ] = "^[A-Za-z0-9%+/]*$", [ "베이스64+" ] = "^[A-Za-z0-9%+/]+$", [ "aa" ] = "[%a%a]*[%a%a]", [ "이름" ] = 문자열.format( "^[^#<%[%] {}%c-%c]+$", 1, 31, 127 ), [ "+" ] = "%S" } 국부적 패턴CJK = 거짓의 국부적 기능을 하다 포함하다CJK( s ) --CJK 캐릭터가 있나? -- 전제 조건: -- s -- 문자열 -- 사후 조건: - CJK가 없으면 거짓으로 반환 -- 사용: -><패턴CJK -- mw.ustring.charr() -- mw.ustring.match() 국부적 r = 거짓의 만일 아닌 패턴CJK 그때 패턴CJK = mw.우스트링.마를 뜨다( 91, 13312, 45, 40959, 131072, 45, 178207, 93 ) 종지부를 찍다 만일 mw.우스트링.짝을 맞추다( s, 패턴CJK ) 그때 r = 진실의 종지부를 찍다 돌아오다 r 종지부를 찍다 -- CJK() 포함 국부적 기능을 하다 시설( 받아들이다, 시도하다 ) -- 가능한 파일 이름 또는 기타 원본 페이지로 문자열 확인 -- 전제 조건: -- 수락 -- 문자열; 요구 사항 -- 파일 -- file+ -- 파일: -- 파일:+ -- 이미지 -- image+ -- 이미지: -- 이미지:+ -- 시도 -- 문자열; 테스트 대상 -- 사후 조건: -- 오류 키워드 반환 또는 거짓 -- 사용: -- 모듈:파일미디어 -- FileMedia.isType() 국부적 r 만일 시도하다 그리고 시도하다 ~= "" 그때 국부적 행운의, 파일미디어 = 피콜( 요구하다, "모듈:파일미디어" ) 만일 타자를 치다( 파일미디어 ) == "테이블" 그때 파일미디어 = 파일미디어.파일미디어() 국부적 s, 살림을 차리다 = 받아들이다:짝을 맞추다( "^([a-z]+)(:?)%+?$" ) 만일 살림을 차리다 그때 만일 파일미디어.isType( 시도하다, s ) 그때 만일 파일미디어.is파일( 시도하다 ) 그때 r = 거짓의 다른 r = "NotFound" 종지부를 찍다 다른 r = "invalid" 종지부를 찍다 그렇지 않으면 파일미디어.isType( 시도하다, s ) 그때 r = 거짓의 다른 r = "invalid" 종지부를 찍다 다른 r = "missing" 종지부를 찍다 그렇지 않으면 받아들이다:짝을 맞추다( "%+$" ) 그때 r = "empty" 다른 r = 거짓의 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 시설 관리 국부적 기능을 하다 공장 ( 라고 말하다 ) -- 내용 언어로 지역화된 메시지 문자열 검색 -- 전제 조건: -- say -- 문자열; 메시지 ID -- 사후 조건: -- 일부 메시지 문자열 반환 -- 사용: -- > 메시지프리픽스 -> L10nDef -- mw.언어.getContentLanguage() -- mw.mw.new() 국부적 c = mw.언어.getContentLanguage():get코드() 국부적 m = mw.메세지.새로운( 메시지프리픽스 .. 라고 말하다 ) 국부적 r = 거짓의 만일 m:isblank() 그때 국부적 l10n = L10nDef[ c ] 만일 아닌 l10n 그때 l10n = L10nDef[ "엔" ] 종지부를 찍다 r = l10n[ 라고 말하다 ] 다른 m:언어가 있는( c ) r = m:평이한() 종지부를 찍다 만일 아닌 r 그때 r = 문자열.format( "((%s)", 라고 말하다 ) 종지부를 찍다 돌아오다 r 종지부를 찍다 ­ 공장 설립 국부적 기능을 하다 안전 장치를 하다( 이야기, 스캔하다 ) -- 일치 테스트(구문 오류가 있는 사용자 정의) -- 전제 조건: -- story -- 문자열; 매개 변수 값 -- 스캔 -- 문자열; 패턴 -- 사후 조건: -- 반환 nil, 일치하지 않으면 nil, 기타 non-nil -- 사용: -- mw.ustring.match() 돌아오다 mw.우스트링.짝을 맞추다( 이야기, 스캔하다 ) 종지부를 찍다 -- failsafe. 국부적 기능을 하다 실패하다( 스펙을 붙이다, 의심을 품다, 옵션들 ) -- 지역화된 오류 메시지 제출 -- 전제 조건: -- spec -- 문자열; 메시지 ID -- 의심스러운 -- 문자열 또는 nil; 추가 정보 -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- options.properties -- 사후 조건: -- 반환 문자열 -- 사용: ­ 공장 설립 국부적 r = 공장 ( 스펙을 붙이다 ) 만일 타자를 치다( 옵션들 ) == "테이블" 그때 만일 타자를 치다( 옵션들.템플릿 ) == "끈" 그때 만일 #옵션들.템플릿 > 0 그때 r = 문자열.format( "%s(%s)", r, 옵션들.템플릿 ) 종지부를 찍다 종지부를 찍다 종지부를 찍다 만일 의심을 품다 그때 r = 문자열.format( "%s: %s", r, 의심을 품다 ) 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 실패 국부적 기능을 하다 과실을 대다( 저장하다, 핵심을 ) -- 컬렉션 문자열에 키 추가 및 구분 기호 삽입 -- 전제 조건: -- store -- 문자열, nil 또는 false, 수집 문자열 -- 키 -- 문자열 또는 번호; 추가할 항목 -- 사후 조건: -- 반환 문자열, 확장 국부적 r 국부적 s 만일 타자를 치다( 핵심을 ) == "숫자" 그때 s = 토스트링( 핵심을 ) 다른 s = 핵심을 종지부를 찍다 만일 저장하다 그때 r = 문자열.format( "%s; %s", 저장하다, s ) 다른 r = s 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 오류 해결 국부적 기능을 하다 실현 가능한( 분석하다, 옵션들, 목구멍이브 ) -- 값의 내용 확인 -- 전제 조건: -- 분석 -- 분석할 문자열 -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- options.pattern -- 선택사항.핵심을 -- 선택사항.라고 말하다 --abbr -- true: 약어 오류 메시지 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓이거나 답변이 허용되지 않는 경우 -- 사용: -- > 패턴 -- 실패 -- mw.text.csnmp -- 시설 관리 -- failsafe. -- CJK() 포함 국부적 r = 거짓의 국부적 s = 거짓의 국부적 보여 주다 = 못을 박다 국부적 스캔하다 = 거짓의 만일 타자를 치다( 옵션들.무늬를 넣다 ) == "끈" 그때 만일 옵션들.핵심을 그때 r = 실패하다( "듀프 룰", 거짓의, 옵션들 ) 다른 스캔하다 = 옵션들.무늬를 넣다 종지부를 찍다 다른 만일 타자를 치다( 옵션들.핵심을 ) == "끈" 그때 s = mw.문자 메시지를 보내다.다듬다( 옵션들.핵심을 ) 다른 s = "+" 종지부를 찍다 만일 s ~= "*" 그때 스캔하다 = 패턴[ s ] 종지부를 찍다 만일 타자를 치다( 스캔하다 ) == "끈" 그때 만일 s == "n" 또는 s == "0,0" 또는 s == "0.0" 그때 만일 아닌 분석하다:짝을 맞추다( "[0-9]" ) 그리고 아닌 분석하다:짝을 맞추다( "^%s*$" ) 그때 스캔하다 = 거짓의 만일 옵션들.라고 말하다 그때 보여 주다 = 문자열.format( "%s", 옵션들.라고 말하다 ) 종지부를 찍다 만일 목구멍이브 그때 r = 보여 주다 다른 r = 실패하다( "invalid", 보여 주다, 옵션들 ) 종지부를 찍다 종지부를 찍다 종지부를 찍다 그렇지 않으면 s ~= "*" 그때 국부적 op, n, 더하기 = s:짝을 맞추다( "([!=]=?"([-0-9][%S]*)(+?)" ) 만일 op 그때 n = 톤넘버( n ) 만일 n 그때 국부적 i = 톤넘버( 분석하다 ) 만일 i 그때 만일 op == "<" 그때 i = ( i < n ) 그렇지 않으면 op == "<=" 그때 i = ( i <= n ) 그렇지 않으면 op == ">" 그때 i = ( i > n ) 그렇지 않으면 op == ">=" 그때 i = ( i >= n ) 그렇지 않으면 op == "==" 그때 i = ( i == n ) 그렇지 않으면 op == "!=" 그때 i = ( i ~= n ) 다른 n = 거짓의 종지부를 찍다 종지부를 찍다 만일 아닌 i 그때 r = "invalid" 종지부를 찍다 그렇지 않으면 더하기 그때 r = "정의되지 않음" 종지부를 찍다 그렇지 않으면 s:짝을 맞추다( "^image%+?:?$" ) 또는 s:짝을 맞추다( "^file%+?:?$" ) 그때 r = 시설( s, 분석하다 ) n = 진실의 그렇지 않으면 s:짝을 맞추다( "랭W?%+?" ) 그때 n = "lang" -- 랑랑+ -- langW 랑W+ 종지부를 찍다 만일 아닌 n 그리고 아닌 r 그때 r = "알 수 없는 규칙" 종지부를 찍다 만일 r 그때 만일 옵션들.라고 말하다 그때 보여 주다 = 문자열.format( "%s" %s", 옵션들.라고 말하다, s ) 다른 보여 주다 = s 종지부를 찍다 만일 목구멍이브 그때 r = 보여 주다 다른 r = 실패하다( r, 보여 주다, 옵션들 ) 종지부를 찍다 종지부를 찍다 종지부를 찍다 종지부를 찍다 만일 스캔하다 그때 국부적 법률상의, 얻었다 = 피콜( 안전 장치를 하다, 분석하다, 스캔하다 ) 만일 법률상의 그때 만일 아닌 얻었다 그때 만일 s == "aa" 그때 얻었다 = 포함하다CJK( 분석하다 ) 종지부를 찍다 만일 아닌 얻었다 그때 만일 옵션들.라고 말하다 그때 보여 주다 = 문자열.format( "%s", 옵션들.라고 말하다 ) 종지부를 찍다 만일 목구멍이브 그때 r = 보여 주다 다른 r = 실패하다( "invalid", 보여 주다, 옵션들 ) 종지부를 찍다 종지부를 찍다 종지부를 찍다 다른 r = 실패하다( "배드패턴", 문자열.format( "%s *** %s", 스캔하다, 얻었다 ), 옵션들 ) 종지부를 찍다 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 실현가능성 국부적 기능을 하다 먹였다( 건초 더미, 바늘을 꿰다 ) -- 건초더미 지도에서 바늘 찾기 -- 전제 조건: -- 건초 더미 -- 표; 주요 값 맵 -- 바늘 -- any; 식별자 -- 사후 조건: -- 검색된 경우 true 반환 국부적 k, v 을 위해 k, v 에 쌍들( 건초 더미 ) 하다 만일 k == 바늘을 꿰다 그때 돌아오다 진실의 종지부를 찍다 종지부를 찍다 - k, v의 경우 돌아오다 거짓의 종지부를 찍다 ­ 연감 국부적 기능을 하다 을 가져오다( 빛, 옵션들 ) -- 모든 매개 변수를 사용하여 일반 테이블 반환 -- 전제 조건: -- light -- true: template translocation; false: #m -- 옵션 - 테이블; 선택적 세부 정보 -- 선택사항.낮은 -- 사후 조건: -- 반환 테이블; 공백 전용 값이 false인 경우 -- 사용: -- TemplatePar.downcase() -- mw.getCurrentFrame() -- 프레임:getParent() 국부적 g, k, v 국부적 r = { } 만일 옵션들.낮은 그때 g = 템플릿파.다운케이스( 옵션들 ) 다른 g = mw.getCurrentFrame() 만일 빛 그때 g = g:getParent() 종지부를 찍다 g = g.아그 종지부를 찍다 만일 타자를 치다( g ) == "테이블" 그때 r = { } 을 위해 k, v 에 쌍들( g ) 하다 만일 타자를 치다( v ) == "끈" 그때 만일 v:짝을 맞추다( "^%s*$" ) 그때 v = 거짓의 종지부를 찍다 다른 v = 거짓의 종지부를 찍다 만일 타자를 치다( k ) == "숫자" 그때 k = 토스트링( k ) 종지부를 찍다 r[ k ] = v 종지부를 찍다 - k, v의 경우 다른 r = g 종지부를 찍다 돌아오다 r 종지부를 찍다 -- petcheput. 국부적 기능을 하다 형상을 나타내다( 덧셈을, 옵션들 ) -- #invoke 문자열에서 규칙으로 옵션 확장 -- 전제 조건: -- add -- 문자열 또는 nil; 요청된 규칙 -- 옵션 - 테이블; 세부 정보 - ++ .key - ++ .패턴 -- 사후 조건: -- 시퀀스 테이블 반환 국부적 r = 옵션들 만일 타자를 치다( 덧셈을 ) == "끈" 그때 국부적 이야기 = mw.문자 메시지를 보내다.다듬다( 덧셈을 ) 국부적 후보선수 = 이야기:짝을 맞추다( "^/(.*%S)/$" ) 만일 타자를 치다( 후보선수 ) == "끈" 그때 후보선수 = 후보선수:gsub( "%%!", " " ) 후보선수 = 후보선수:gsub( "%%%(%(", "{{" ) 후보선수 = 후보선수:gsub( "%%%)%)", "}}" ) 옵션들.무늬를 넣다 = 후보선수 옵션들.핵심을 = 못을 박다 다른 옵션들.핵심을 = 이야기 옵션들.무늬를 넣다 = 못을 박다 종지부를 찍다 종지부를 찍다 돌아오다 r 종지부를 찍다 -- figured. 국부적 기능을 하다 채우다( 명시된 ) -- split requirement string을 '='로 구분 -- 전제 조건: -- 지정 -- 문자열 또는 nil; 요청된 매개 변수 세트 -- 사후 조건: -- 시퀀스 테이블 반환 -- 사용: -- mw.text.csnmp 국부적 r 만일 명시된 그때 국부적 i, s r = mw.문자 메시지를 보내다.갈라지다( 명시된, "%s*=%s*" ) 을 위해 i = #r, 1, -1 하다 s = r[ i ] 만일 #s == 0 그때 table.remove( r, i ) 종지부를 찍다 종지부를 찍다 - 나, -1의 경우 다른 r = { } 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 채우기 국부적 기능을 하다 최종 결정하다( 제출하다, 옵션들, 액자에 넣다 ) -- 메시지 완료 -- 전제 조건: -- 제출 -- 문자열, 거짓 또는 영(0); 비필수 오류 메시지 -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- 선택사항.형식을 갖추다 -- options.properties -- options.cat -- options.properties -- 프레임 -- 객체 또는 거짓 -- 사후 조건: -- 반환 문자열 또는 거짓 -- 사용: ­ 공장 설립 국부적 r = 거짓의 만일 제출하다 그때 국부적 선택하다, s 국부적 게을러진 = 거짓의 국부적 보여 주다 = 거짓의 만일 타자를 치다( 옵션들 ) == "테이블" 그때 선택하다 = 옵션들 보여 주다 = 선택하다.형식을 갖추다 게을러진 = ( 보여 주다 == "" 또는 보여 주다 == "0" 또는 보여 주다 == "-" ) s = 선택하다.미리보기 만일 타자를 치다( s ) == "끈" 그리고 s ~= "" 그리고 s ~= "0" 그리고 s ~= "-" 그때 만일 게을러진 그때 보여 주다 = "" 게을러진 = 거짓의 종지부를 찍다 만일 아닌 액자에 넣다 그때 액자에 넣다 = mw.getCurrentFrame() 종지부를 찍다 만일 액자에 넣다:전처리하다( "{{REVISIONID}}" ) == "" 그때 만일 s == "1" 그때 보여 주다 = "*" 다른 보여 주다 = s 종지부를 찍다 종지부를 찍다 종지부를 찍다 다른 선택하다 = { } 종지부를 찍다 만일 게을러진 그때 만일 아닌 선택하다.고양이를 그때 r = 문자열.format( "%s %s", 제출하다, 공장 ( "noMSGnoCAT" ) ) 종지부를 찍다 다른 r = 제출하다 종지부를 찍다 만일 r 그리고 아닌 게을러진 그때 국부적 i 만일 아닌 보여 주다 또는 보여 주다 == "*" 그때 보여 주다 = "<스팬 클래스=\"착오\">@@@[/span]" 종지부를 찍다 i = 보여 주다:찾아내다( "@@@", 1, 진실의 ) 만일 i 그때 -- r에 "%3"(예: URL)이 포함될 수 있으므로 gsub() 없음 r = 문자열.format( "%s%s%s", 보여 주다:후보선수( 1, i - 1 ), r, 보여 주다:후보선수( i + 3 ) ) 다른 r = 보여 주다 종지부를 찍다 종지부를 찍다 s = 선택하다.고양이를 만일 타자를 치다( s ) == "끈" 그때 만일 선택하다.에른스 그때 국부적 ns = mw.칭호를 붙이다.getCurrentTitle().네임스페이스 국부적 세인트 = 타자를 치다( 선택하다.에른스 ) 만일 세인트 == "끈" 그때 국부적 스페이스 = 문자열.format( ".*%s%d%s.*", ns ) 국부적 공간 = 문자열.format( " %s ", 선택하다.에른스 ) 만일 공간:짝을 맞추다( 스페이스 ) 그때 선택하다.에른스 = 거짓의 종지부를 찍다 그렇지 않으면 세인트 == "테이블" 그때 을 위해 i = 1, #선택하다.에른스 하다 만일 선택하다.에른스[ i ] == ns 그때 선택하다.에른스 = 거짓의 부숴뜨리다 - 나로서는 종지부를 찍다 종지부를 찍다 - 나로서는 종지부를 찍다 종지부를 찍다 만일 선택하다.에른스 그때 r = "" 다른 만일 아닌 r 그때 r = "" 종지부를 찍다 만일 s:찾아내다( "@@@" ) 그때 만일 타자를 치다( 선택하다.템플릿 ) == "끈" 그때 s = s:gsub( "@@@", 선택하다.템플릿 ) 종지부를 찍다 종지부를 찍다 국부적 i 국부적 고양이들 = mw.문자 메시지를 보내다.갈라지다( s, "%s*#%s*" ) 을 위해 i = 1, #고양이들 하다 s = mw.문자 메시지를 보내다.다듬다( 고양이들[ i ] ) 만일 #s > 0 그때 r = 문자열.format( "%s[Category:%s]", r, s ) 종지부를 찍다 종지부를 찍다 - 나로서는 종지부를 찍다 종지부를 찍다 종지부를 찍다 돌아오다 r 종지부를 찍다 - 최종 결정 국부적 기능을 하다 찾아내다( 건초 더미, 바늘을 꿰다 ) -- 건초더미에서 바늘 찾기 -- 전제 조건: -- 건초 더미 -- 테이블; 키 이름 시퀀스, 낮을 경우 다운케이싱됨 -- 바늘 -- any; 키 이름 -- 사후 조건: -- 검색된 경우 true 반환 국부적 i 을 위해 i = 1, #건초 더미 하다 만일 건초 더미[ i ] == 바늘을 꿰다 그때 돌아오다 진실의 종지부를 찍다 종지부를 찍다 - 나로서는 돌아오다 거짓의 종지부를 찍다 -- 파인더 국부적 기능을 하다 고치다( 유효의, 의무, 얻었다, 옵션들 ) -- 매개변수 분석 수행 -- 전제 조건: -- 유효 -- 테이블; 알려진 매개 변수의 고유 시퀀스 -- duty -- 테이블; 필수 매개변수 순서 -- got -- table; 현재 매개변수 순서 -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- 사후 조건: -- 구성된 대로 문자열 반환, 유효한 경우 비어 있음 -- 사용: -- 파인더 -- 오류 해결 -- 실패 ­ 연감 국부적 k, v 국부적 r = 거짓의 을 위해 k, v 에 쌍들( 얻었다 ) 하다 만일 아닌 찾아내다( 유효의, k ) 그때 r = 과실을 대다( r, k ) 종지부를 찍다 종지부를 찍다 - k, v의 경우 만일 r 그때 r = 실패하다( "unknown", 문자열.format( "%s", r ), 옵션들 ) 다른 -- 모든 이름이 유효함 국부적 i, s 을 위해 i = 1, #의무 하다 s = 의무[ i ] 만일 아닌 먹였다( 얻었다, s ) 그때 r = 과실을 대다( r, s ) 종지부를 찍다 종지부를 찍다 - 나로서는 만일 r 그때 r = 실패하다( "정의되지 않음", r, 옵션들 ) 다른 -- 모두 의무적으로 출석 을 위해 i = 1, #의무 하다 s = 의무[ i ] 만일 아닌 얻었다[ s ] 그때 r = 과실을 대다( r, s ) 종지부를 찍다 종지부를 찍다 - 나로서는 만일 r 그때 r = 실패하다( "empty", r, 옵션들 ) 종지부를 찍다 종지부를 찍다 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 수정 국부적 기능을 하다 납작한( 수집, 옵션들 ) -- 다운코싱된 문자열을 사용하여 모든 테이블 요소 반환 -- 전제 조건: -- 컬렉션 -- 테이블; k=v 쌍 -- 선택사항 - 테이블 또는 영(0); 선택적 메시징 세부사항 -- 사후 조건: -- 반환 테이블, 비어 있거나 오류 메시지가 있는 문자열. -- 사용: -- mw.ustring.lowerfloss -- 오류 해결 -- 실패 국부적 k, v 국부적 r = { } 국부적 e = 거짓의 을 위해 k, v 에 쌍들( 수집 ) 하다 만일 타자를 치다 ( k ) == "끈" 그때 k = mw.우스트링.더 낮게( k ) 만일 r[ k ] 그때 e = 과실을 대다( e, k ) 종지부를 찍다 종지부를 찍다 r[ k ] = v 종지부를 찍다 - k, v의 경우 만일 e 그때 r = 실패하다( "멀티 스피치", e, 옵션들 ) 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 플랫슈즈 국부적 기능을 하다 접다( 옵션들 ) -- 두 테이블을 병합하고, 둘 다 비어 있지 않은 경우 새 시퀀스를 생성하십시오. -- 전제 조건: -- 옵션 - 테이블; 세부 정보 -- options.properties 시퀀스를 변경하지 않고 유지 -- options.추가할 옵션 순서 -- options.낮은 다운케이드 예상 -- 사후 조건: -- 오류일 경우 병합된 테이블 또는 메시지 문자열 반환 -- 사용: -- 파인더 -- 오류 해결 -- 실패 -- 플랫슈즈 국부적 i, e, r, s 국부적 밑의 = 옵션들.의무적인 국부적 연장하다 = 옵션들.선택적 만일 #밑의 == 0 그때 만일 #연장하다 == 0 그때 r = { } 다른 r = 연장하다 종지부를 찍다 다른 만일 #연장하다 == 0 그때 r = 밑의 다른 e = 거짓의 을 위해 i = 1, #연장하다 하다 s = 연장하다[ i ] 만일 찾아내다( 밑의, s ) 그때 e = 과실을 대다( e, s ) 종지부를 찍다 종지부를 찍다 - 나로서는 만일 e 그때 r = 실패하다( "dupopt", e, 옵션들 ) 다른 r = { } 을 위해 i = 1, #밑의 하다 table.insert( r, 밑의[ i ] ) 종지부를 찍다 - 나로서는 을 위해 i = 1, #연장하다 하다 table.insert( r, 연장하다[ i ] ) 종지부를 찍다 - 나로서는 종지부를 찍다 종지부를 찍다 종지부를 찍다 만일 옵션들.낮은 그리고 타자를 치다( r ) == "테이블" 그때 r = 납작한( r, 옵션들 ) 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 접기 국부적 기능을 하다 형체를 이루다( 빛, 옵션들, 액자에 넣다 ) -- 현재 환경에 대한 매개변수 분석 실행 -- 전제 조건: -- light -- true: template translocation; false: #m -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- options.properties -- 선택사항.선택사항 -- 프레임 -- 객체 또는 거짓 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓 -- 사용: -- 접기 -- petcheput. -- 수정 - 최종 결정 국부적 의무, r 만일 타자를 치다( 옵션들 ) == "테이블" 그때 만일 타자를 치다( 옵션들.의무적인 ) ~= "테이블" 그때 옵션들.의무적인 = { } 종지부를 찍다 의무 = 옵션들.의무적인 만일 타자를 치다( 옵션들.선택적 ) ~= "테이블" 그때 옵션들.선택적 = { } 종지부를 찍다 r = 접다( 옵션들 ) 다른 옵션들 = { } 의무 = { } r = { } 종지부를 찍다 만일 타자를 치다( r ) == "테이블" 그때 국부적 얻었다 = 을 가져오다( 빛, 옵션들 ) 만일 타자를 치다( 얻었다 ) == "테이블" 그때 r = 고치다( r, 의무, 얻었다, 옵션들 ) 다른 r = 얻었다 종지부를 찍다 종지부를 찍다 돌아오다 최종 결정하다( r, 옵션들, 액자에 넣다 ) 종지부를 찍다 -- 서식 국부적 기능을 하다 형식을 갖추다( 분석하다, 옵션들 ) -- 값의 유효성 확인 -- 전제 조건: -- 분석 -- 분석할 문자열 -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- 선택사항.라고 말하다 -- options.min -- options.max -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓이거나 답변이 허용되지 않는 경우 -- 사용: -- 실현가능성 -- 실패 국부적 r = 실현 가능한( 분석하다, 옵션들, 거짓의 ) 국부적 보여 주다 만일 옵션들.분 그리고 아닌 r 그때 만일 타자를 치다( 옵션들.분 ) == "숫자" 그때 만일 타자를 치다( 옵션들.맥스. ) == "숫자" 그때 만일 옵션들.맥스. < 옵션들.분 그때 r = 실패하다( "minmax", 문자열.format( "%d > %d", 옵션들.분, 옵션들.맥스. ), 옵션들 ) 종지부를 찍다 종지부를 찍다 만일 #분석하다 < 옵션들.분 그리고 아닌 r 그때 보여 주다 = "<" .. 옵션들.분 만일 옵션들.라고 말하다 그때 보여 주다 = 문자열.format( "%s '%s'", 보여 주다, 옵션들.라고 말하다 ) 종지부를 찍다 r = 실패하다( "너무 짧음", 보여 주다, 옵션들 ) 종지부를 찍다 다른 r = 실패하다( "invalidPar", "min", 옵션들 ) 종지부를 찍다 종지부를 찍다 만일 옵션들.맥스. 그리고 아닌 r 그때 만일 타자를 치다( 옵션들.맥스. ) == "숫자" 그때 만일 #분석하다 > 옵션들.맥스. 그때 보여 주다 = ">" .. 옵션들.맥스. 만일 옵션들.라고 말하다 그때 보여 주다 = 문자열.format( "%s '%s'", 보여 주다, 옵션들.라고 말하다 ) 종지부를 찍다 r = 실패하다( "너무 긴", 보여 주다, 옵션들 ) 종지부를 찍다 다른 r = 실패하다( "invalidPar", "최대", 옵션들 ) 종지부를 찍다 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 형식 지정 국부적 기능을 하다 형식화된( 할당, 접근하다, 옵션들 ) -- 컬렉션에 있는 특정 매개 변수의 유효성을 확인하십시오. -- 전제 조건: -- 할당 -- 수집 -- access -- 컬렉션에 있는 매개 변수의 ID -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓이거나 답변이 허용되지 않는 경우 -- 사용: -- mw.text.csnmp -- 형식 지정 -- 실패 국부적 r = 거짓의 만일 타자를 치다( 할당 ) == "테이블" 그때 국부적 이야기 = 할당.아그[ 접근하다 ] 또는 "" 만일 타자를 치다( 접근하다 ) == "숫자" 그때 이야기 = mw.문자 메시지를 보내다.다듬다( 이야기 ) 종지부를 찍다 만일 타자를 치다( 옵션들 ) ~= "테이블" 그때 옵션들 = { } 종지부를 찍다 옵션들.라고 말하다 = 접근하다 r = 형식을 갖추다( 이야기, 옵션들 ) 종지부를 찍다 돌아오다 r 종지부를 찍다 -- 형식 지정 국부적 기능을 하다 가구를 비치하다( 액자에 넣다, 액션 ) -- .assert() 또는 .valid()의 #invoke 평가 준비 -- 전제 조건: -- frame -- object; #complete 환경 - 액션 - "잘못된" 또는 "잘못된" -- 사후 조건: -- 오류 메시지 또는 ""와 함께 문자열 반환 -- 사용: -- 서식 -- 실패 - 최종 결정 -- TemplatePar.valid() -- TemplatePar.assert() 국부적 옵션들 = { 의무적인 = { "1" }, 선택적 = { "2", "고양이", "errNS", "낮음", "최대", "min", "형식", "preview", "template" }, 템플릿 = 문자열.format( "#cs:%s %s ", "템플릿파", 액션 ) } 국부적 r = 형체를 이루다( 거짓의, 옵션들, 액자에 넣다 ) 만일 아닌 r 그때 국부적 s 옵션들 = { 고양이를 = 액자에 넣다.아그.고양이를, 에른스 = 액자에 넣다.아그.에른스, 낮은 = 액자에 넣다.아그.낮은, 형식을 갖추다 = 액자에 넣다.아그.형식을 갖추다, 미리보기 = 액자에 넣다.아그.미리보기, 템플릿 = 액자에 넣다.아그.템플릿 } 옵션들 = 형상을 나타내다( 액자에 넣다.아그[ 2 ], 옵션들 ) 만일 타자를 치다( 액자에 넣다.아그.분 ) == "끈" 그때 s = 액자에 넣다.아그.분:짝을 맞추다( "^%s*([0-9]+)%s*$" ) 만일 s 그때 옵션들.분 = 톤넘버( s ) 다른 r = 실패하다( "invalidPar", "min=" .. 액자에 넣다.아그.분, 옵션들 ) 종지부를 찍다 종지부를 찍다 만일 타자를 치다( 액자에 넣다.아그.맥스. ) == "끈" 그때 s = 액자에 넣다.아그.맥스.:짝을 맞추다( "^%s*([1-9][0-9]*)%s*$" ) 만일 s 그때 옵션들.맥스. = 톤넘버( s ) 다른 r = 실패하다( "invalidPar", "max=" .. 액자에 넣다.아그.맥스., 옵션들 ) 종지부를 찍다 종지부를 찍다 만일 r 그때 r = 최종 결정하다( r, 옵션들, 액자에 넣다 ) 다른 s = 액자에 넣다.아그[ 1 ] 또는 "" r = 톤넘버( s ) 만일 ( r ) 그때 s = r 종지부를 찍다 만일 액션 == "유효한" 그때 r = 템플릿파.유효의( s, 옵션들, 액자에 넣다 ) 그렇지 않으면 액션 == "assert" 그때 r = 템플릿파.주장하다( s, "", 옵션들 ) 종지부를 찍다 종지부를 찍다 종지부를 찍다 돌아오다 r 또는 "" 종지부를 찍다 - 가구 템플릿파.주장하다 = 기능을 하다 ( 분석하다, 덧셈을, 옵션들 ) -- 단일 문자열에 대해 매개변수 분석 수행 -- 전제 조건: -- 분석 -- 분석할 문자열 -- add -- string : add 오류 메시지, ab/> 사전 준비 -- false 또는 nil: 메시지와 함께 오류 발생 -- 옵션 - 테이블; 선택적 세부 정보 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓 -- 사용: -- 형식 지정 국부적 r = 형식을 갖추다( 분석하다, 옵션들 ) 만일 ( r ) 그때 만일 ( 타자를 치다( 덧셈을 ) == "끈" ) 그때 만일 ( 덧셈을 ~= "" ) 그때 r = 문자열.format( "%s(%s)", 덧셈을, r ) 종지부를 찍다 다른 착오( r, 0 ) 종지부를 찍다 종지부를 찍다 돌아오다 r 종지부를 찍다 -- TemplatePar.assert() 템플릿파.수표 = 기능을 하다 ( 옵션들 ) -- 현재 템플릿 환경에서 매개 변수 분석 실행 -- 전제 조건: -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- options.properties -- 선택사항.선택사항 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓 -- 사용: -- 서식 돌아오다 형체를 이루다( 진실의, 옵션들, 거짓의 ) 종지부를 찍다 -- TemplatePar.check() 템플릿파.수를 세다 = 기능을 하다 () -- 템플릿 매개 변수의 반환 번호 -- 사후 조건: -- 반환 번호, 0부터 시작 -- 사용: -- mw.getCurrentFrame() -- 프레임:getParent() 국부적 k, v 국부적 r = 0 국부적 t = mw.getCurrentFrame():getParent() 국부적 o = t.아그 을 위해 k, v 에 쌍들( o ) 하다 r = r + 1 종지부를 찍다 - k, v의 경우 돌아오다 r 종지부를 찍다 -- TemplatePar.count() 템플릿파.countNotEmpty = 기능을 하다 () -- 공백을 초과하는 템플릿 매개 변수 반환 수 -- 사후 조건: -- 반환 번호, 0부터 시작 -- 사용: -- mw.getCurrentFrame() -- 프레임:getParent() 국부적 k, v 국부적 r = 0 국부적 t = mw.getCurrentFrame():getParent() 국부적 o = t.아그 을 위해 k, v 에 쌍들( o ) 하다 만일 아닌 v:짝을 맞추다( "^%s*$" ) 그때 r = r + 1 종지부를 찍다 종지부를 찍다 - k, v의 경우 돌아오다 r 종지부를 찍다 -- TemplatePar.countNotEmpty() 템플릿파.다운케이스 = 기능을 하다 ( 옵션들 ) -- 다운코싱된 이름을 사용하여 모든 템플릿 매개 변수 -- 전제 조건: -- 선택사항 - 테이블 또는 영(0); 선택적 메시징 세부사항 -- 사후 조건: -- 반환 테이블, 비어 있거나 오류 메시지가 있는 문자열. -- 사용: -- mw.getCurrentFrame() -- 프레임:getParent() -- 플랫슈즈 국부적 t = mw.getCurrentFrame():getParent() 돌아오다 납작한( t.아그, 옵션들 ) 종지부를 찍다 -- TemplatePar.downcase() 템플릿파.유효의 = 기능을 하다 ( 접근하다, 옵션들, 액자에 넣다 ) -- 특정 템플릿 매개 변수의 유효성 검사 -- 전제 조건: -- access -- 템플릿 전폐에서 매개 변수 ID -- 문자열 또는 숫자 -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- frame -- object; #complete 환경 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓이거나 답변이 허용되지 않는 경우 -- 사용: -- mw.text.csnmp -- TemplatePar.downcase() -- 프레임:getParent() -- 형식 지정 -- 실패 - 최종 결정 국부적 r = 타자를 치다( 접근하다 ) 만일 r == "끈" 그때 r = mw.문자 메시지를 보내다.다듬다( 접근하다 ) 만일 #r == 0 그때 r = 거짓의 종지부를 찍다 그렇지 않으면 r == "숫자" 그때 r = 접근하다 다른 r = 거짓의 종지부를 찍다 만일 r 그때 국부적 모조품 만일 타자를 치다( 옵션들 ) ~= "테이블" 그때 옵션들 = { } 종지부를 찍다 만일 옵션들.낮은 그때 모조품 = 템플릿파.다운케이스( 옵션들 ) 다른 모조품 = 액자에 넣다:getParent() 종지부를 찍다 r = 형식화된( 모조품, 접근하다, 옵션들 ) 다른 r = 실패하다( "노네임", 거짓의, 옵션들 ) 종지부를 찍다 돌아오다 최종 결정하다( r, 옵션들, 액자에 넣다 ) 종지부를 찍다 -- TemplatePar.valid() 템플릿파.검증하다 = 기능을 하다 ( 옵션들 ) -- #invoke 매개변수 분석 수행 -- 전제 조건: -- 옵션 - 테이블 또는 영(0); 선택적 세부 정보 -- 사후 조건: -- 구성된 오류 메시지가 포함된 반환 문자열; -- 유효하지 않은 경우 거짓 -- 사용: -- 서식 돌아오다 형체를 이루다( 거짓의, 옵션들, 거짓의 ) 종지부를 찍다 -- TemplatePar.verify() -- 외부 액세스 제공 국부적 p = {} 기능을 하다 p.주장하다( 액자에 넣다 ) -- 일부 단일 문자열에 대해 매개변수 분석 수행 -- 전제 조건: -- frame -- object; #complete 환경 -- 사후 조건: -- 오류 메시지 또는 ""와 함께 문자열 반환 -- 사용: - 가구 돌아오다 가구를 비치하다( 액자에 넣다, "assert" ) 종지부를 찍다 - .assert() 기능을 하다 p.수표( 액자에 넣다 ) -- 템플릿 매개 변수의 유효성 검사 -- 전제 조건: -- frame -- object; #complete 환경 -- 사후 조건: -- 오류 메시지 또는 ""와 함께 문자열 반환 -- 사용: -- 서식 -- 채우기 국부적 옵션들 = { 선택적 = { "모두", "opt", "고양이", "errNS", "낮음", "형식", "preview", "template" }, 템플릿 = "#제보:TemplatePar 검사 " } 국부적 r = 형체를 이루다( 거짓의, 옵션들, 액자에 넣다 ) 만일 아닌 r 그때 옵션들 = { 의무적인 = 채우다( 액자에 넣다.아그.전부 ), 선택적 = 채우다( 액자에 넣다.아그.선택하다 ), 고양이를 = 액자에 넣다.아그.고양이를, 에른스 = 액자에 넣다.아그.에른스, 낮은 = 액자에 넣다.아그.낮은, 형식을 갖추다 = 액자에 넣다.아그.형식을 갖추다, 미리보기 = 액자에 넣다.아그.미리보기, 템플릿 = 액자에 넣다.아그.템플릿 } r = 형체를 이루다( 진실의, 옵션들, 액자에 넣다 ) 종지부를 찍다 돌아오다 r 또는 "" 종지부를 찍다 -- .check() 기능을 하다 p.수를 세다( 액자에 넣다 ) -- 템플릿 매개 변수 개수 -- 사후 조건: -- 숫자가 "0"인 반환 문자열 -- 사용: -- TemplatePar.count() 돌아오다 토스트링( 템플릿파.수를 세다() ) 종지부를 찍다 -- .count . 기능을 하다 p.countNotEmpty( 액자에 넣다 ) -- 비어 있지 않은 템플릿 매개 변수 개수 -- 사후 조건: -- 숫자가 "0"인 반환 문자열 -- 사용: -- TemplatePar.countNotEmpty() 돌아오다 토스트링( 템플릿파.countNotEmpty() ) 종지부를 찍다 -- .countNotEmpty() 기능을 하다 p.짝을 맞추다( 액자에 넣다 ) -- 매개변수 및 매개변수 값의 조합 분석 -- 사후 조건: -- 오류 메시지 또는 ""와 함께 문자열 반환 -- 사용: -- mw.text.csnmp -- mw.ustring.lowerfloss -- 실패 -- 서식 -- TemplatePar.downcase() -- figured. -- 실현가능성 -- 오류 해결 - 최종 결정 국부적 r = 거짓의 국부적 옵션들 = { 고양이를 = 액자에 넣다.아그.고양이를, 에른스 = 액자에 넣다.아그.에른스, 낮은 = 액자에 넣다.아그.낮은, 형식을 갖추다 = 액자에 넣다.아그.형식을 갖추다, 미리보기 = 액자에 넣다.아그.미리보기, 템플릿 = 액자에 넣다.아그.템플릿 } 국부적 k, v, s 국부적 모조품 = { } 을 위해 k, v 에 쌍들( 액자에 넣다.아그 ) 하다 만일 타자를 치다( k ) == "숫자" 그때 s, v = v:짝을 맞추다( "^ *([^=]+) *= *(%S*%S**) *$" ) 만일 s 그때 s = mw.문자 메시지를 보내다.다듬다( s ) 만일 s == "" 그때 s = 거짓의 종지부를 찍다 종지부를 찍다 만일 s 그때 만일 옵션들.낮은 그때 s = mw.우스트링.더 낮게( s ) 종지부를 찍다 만일 모조품[ s ] 그때 s = 모조품[ s ] s[ #s + 1 ] = v 다른 모조품[ s ] = { v } 종지부를 찍다 다른 r = 실패하다( "invalidPar", 토스트링( k ), 옵션들 ) 부숴뜨리다 - k, v의 경우 종지부를 찍다 종지부를 찍다 종지부를 찍다 - k, v의 경우 만일 아닌 r 그때 s = { } 을 위해 k, v 에 쌍들( 모조품 ) 하다 s[ #s + 1 ] = k 종지부를 찍다 - k, v의 경우 옵션들.선택적 = s r = 형체를 이루다( 진실의, 옵션들, 액자에 넣다 ) 종지부를 찍다 만일 아닌 r 그때 국부적 에러 미스, 오류값, 부족하다, 통치를 하다 국부적 타르스 = 액자에 넣다:getParent().아그 옵션들.선택적 = 못을 박다 만일 옵션들.낮은 그때 타르스 = 템플릿파.다운케이스() 다른 타르스 = 액자에 넣다:getParent().아그 종지부를 찍다 에러 미스 = 거짓의 오류값 = 거짓의 을 위해 k, v 에 쌍들( 모조품 ) 하다 옵션들.라고 말하다 = k 에러값 = 거짓의 s = 타르스[ k ] 만일 s 그때 만일 s == "" 그때 부족하다 = 진실의 다른 부족하다 = 거짓의 종지부를 찍다 다른 s = "" 부족하다 = 진실의 종지부를 찍다 을 위해 r, 통치를 하다 에 쌍들( v ) 하다 옵션들 = 형상을 나타내다( 통치를 하다, 옵션들 ) r = 실현 가능한( s, 옵션들, 진실의 ) 만일 r 그때 만일 부족하다 그때 만일 에러 미스 그때 에러 미스 = 문자열.format( "%s '%s'", 에러 미스, k ) 다른 에러 미스 = 문자열.format( "%s", k ) 종지부를 찍다 그렇지 않으면 아닌 에러 미스 그때 오류값 = 과실을 대다( 오류값, r ) 종지부를 찍다 부숴뜨리다 -- r에 대해서는, 규칙. 종지부를 찍다 종지부를 찍다 -- s, rule for s 종지부를 찍다 - k, v의 경우 r = ( 에러 미스 또는 오류값 ) 만일 r 그때 만일 에러 미스 그때 r = 실패하다( "정의되지 않음", 에러 미스, 옵션들 ) 다른 r = 실패하다( "invalid", 오류값, 옵션들 ) 종지부를 찍다 r = 최종 결정하다( r, 옵션들, 액자에 넣다 ) 종지부를 찍다 종지부를 찍다 돌아오다 r 또는 "" 종지부를 찍다 -- .match() 기능을 하다 p.유효의( 액자에 넣다 ) -- 특정 템플릿 매개 변수의 유효성 검사 -- 전제 조건: -- frame -- object; #complete 환경 -- 사후 조건: -- 오류 메시지 또는 ""와 함께 문자열 반환 -- 사용: - 가구 돌아오다 가구를 비치하다( 액자에 넣다, "유효한" ) 종지부를 찍다 - .validuation. 기능을 하다 p.템플릿파() -- 모듈에 대한 기능 액세스 검색 -- 사후 조건: -- 함수와 함께 반환 테이블 돌아오다 템플릿파 종지부를 찍다 -- .TemplatePar() 돌아오다 p