모듈:루프/샌드박스용

Module
-- 이 모듈은 {{for loop}}을(를) 구현합니다.  현지의 취득하다 = 요구하다('모듈:인수').취득하다 현지의 네, 아니요 = 요구하다('모듈:네, 아니요.) 현지의 p = {}  기능. p.주된()  현지의 args = 취득하다(, {   다듬다 = 거짓의,   공백 제거 = 거짓의  })  돌아가다 p.메인(args) 끝.  기능. p.메인(args)  현지의 템플릿 = args['콜] 또는 '실패'  현지의 콜 템플릿 = 네, 아니요(args.서브홀 또는 "", 진실의) 또는 것은 아니다. .서브스트()  현지의 변수 패램 = args.pv  변수 패램 = 톤수(변수 패램) 또는 변수 패램 또는 1 -- 위치 파라미터의 수정  현지의 variableValPrefix = args.접두사 또는 ''  현지의 variableValPostfix = args.포스트픽스 또는 ''  현지의 세프 = args[1] 또는 ''  현지의 상수 Args = p.get Constants(args)  현지의 가변값 = p.getVariableVals(args)   현지의 결과 = ''  현지의 addSeparator = 거짓의;  위해서 _, v  아이페어(가변값) 하다   v = .본문.다듬다(v)   한다면 #v > 0 또는 것은 아니다. 네, 아니요(args.스킵 블랭크) 그리고나서    한다면 addSeparator 그리고나서     결과 = 결과 .. 세프    끝.    addSeparator = 진실의;    현지의 타르 = 상수 Args    타르[변수 패램] = variableValPrefix .. v .. variableValPostfix    한다면 콜 템플릿 그리고나서     현지의 산출량 = p.call Template(템플릿, 타르)     한다면 #.본문.다듬다(산출량) == 0 그리고나서      addSeparator = 거짓의     끝.     결과 = 결과 .. 산출량    또 다른     현지의 make Template(템플릿 만들기) = 요구하다('모듈:템플릿 호출').호출     결과 = 결과 .. make Template(템플릿 만들기)(템플릿, 타르)    끝.   끝.  끝.  돌아가다 결과 끝.  기능. p.get Constants(args)  현지의 constantArgNums(상수 ArgNums) = p.GetArgNums(GetArgNums)(args, 'pc', 'n')  현지의 상수 Args = {}  위해서 _, 숫자  아이페어(constantArgNums(상수 ArgNums)) 하다   현지의 키알그 = 'pc' .. 스트링(숫자) .. 'n'   현지의  = 'pc' .. 스트링(숫자) .. 'v'   현지의 열쇠 = args[키알그]   열쇠 = 톤수(열쇠) 또는 열쇠   현지의 가치 = args[]   상수 Args[열쇠] = 가치  끝.  돌아가다 상수 Args 끝.  기능. p.getVariableVals(args)  현지의 가변값 = {}  한다면 args.개시하다 또는 args.이제 그만 또는 args.타고 그리고나서   한다면 args[2] 그리고나서    에러("시작/중지/기준 및 번호 매개 변수가 모두 지정됨")   끝.   현지의 개시하다 = 톤수(args.개시하다 또는 1)   현지의 이제 그만 = 톤수(args.이제 그만 또는 1)   현지의 타고 = 톤수(args.타고 또는 1)   위해서 i = 개시하다, 이제 그만, 타고 하다    가변값 [#가변값 + 1] = i   끝.  또 다른   위해서 i, v  아이페어(args) 하다    한다면 i ~= 1 그리고나서     가변값[i - 1] = v    끝.   끝.  끝.  돌아가다 가변값 끝.  기능. p.GetArgNums(GetArgNums)(args, 접두사, 접미사)  -- 기존 인수 번호가 포함된 테이블을 반환합니다.  --지정된 프레픽스 및 서픽스에 대해 지정합니다.  현지의 숫자 = {}  현지의 양식 = '^' .. 접두사 .. '([1-9]%d*)' .. 접미사 .. '
                
위해서 k, _ 쌍들(args) 하다 현지의 숫자 = 스트링(k):경기(양식) 한다면 숫자 그리고나서 숫자[#숫자 + 1] = 톤수(숫자) 끝. 끝. table.displaces(숫자) 돌아가다 숫자 끝. 기능. p.call Template(템플릿, 타르) 돌아가다 .get Current Frame(전류 프레임)():확장 템플릿{직함 = 템플릿, args = 타르} 끝. 돌아가다 p