모듈:샌드박스/Johnuniq/유닛

Module
-- 모듈의 도우미 기능을 테스트합니다.단위 정보를 가져오도록 변환합니다. -- 사용방법 : {{#invoke: sandbox/Johnuniq/unit main} -- 「모듈 토크」를 참조해 주세요.샌드박스/Johnuniq/유닛]]  현지의 기능. 수집()  -- 항목을 저장할 테이블을 반환합니다.  돌아가다 {   n = 0,   더하다 = 기능. (자신, 아이템)    자신.n = 자신.n + 1    자신[자신.n] = 아이템   끝.,   합류하다 = 기능. (자신, 세프)    돌아가다 table.concat(자신, 세프)   끝.,  } 끝.  현지의 테스트 = {  -- unitcode 값 플래그(L=link, N=name, U=us, S=flags)  'kg',  'kg 12.3L',  'm',  'm-1 S',  'm 12 L S',  'km L',  'ft 99 L',  'km3 L',  'km3 12.3 N',  'km3 12.3 L N',  'km3 12.3 L NU',  'km3 12.3 L N US',  '푸',  '푸엘에스', }  현지의 기능. 제조_실(본문)  현지의 플래그 = { L=링크, N=이름, U='우리', S='실패' }  현지의 유닛 코드, 옵션들  현지의 표시하다 = 수집()  표시하다:더하다('유닛의 기능')  위해서 아이템 에서 본문:gmatch(%S+') 하다   한다면 유닛 코드 그리고나서    현지의 k, v    k = 플래그[아이템]    한다면 k 그리고나서     한다면 아이템 == 'S' 그리고나서      v = 켜다'     또 다른      v = '진짜'     끝.    또 다른     k = '값'     v = 톤수(아이템)    끝.    한다면 옵션들 그리고나서     표시하다:더하다(', ')    또 다른     옵션들 = {}     표시하다:더하다(', {')    끝.    옵션들[k] = v    표시하다:더하다(k .. '=' .. v)   또 다른    유닛 코드 = 아이템    표시하다:더하다("'" .. 아이템 .. "'")   끝.  끝.  한다면 옵션들 그리고나서   표시하다:더하다('}')  끝.  표시하다:더하다(')')  돌아가다 유닛 코드, 옵션들, 표시하다:합류하다() 끝.  현지의 기능. 주된()  현지의 get_unit(유닛을 취득하다) = 요구하다('모듈:변환/샌드박스')._유닛  현지의 결과. = 수집()  위해서 _, 아이템 에서 아이페어(테스트) 하다   현지의 유닛 코드, 옵션들, 표시하다 = 제조_실(아이템)   현지의 구성 단위 = get_unit(유닛을 취득하다)(유닛 코드, 옵션들)   결과.:더하다('')   결과.:더하다('>' .. 표시하다)   결과.:더하다(string.format('%40s %9s %s',    구성 단위.본문,    구성 단위.알 수 없는 그리고. '(마이너스)' 또는 '',    구성 단위.정렬 범위 또는 ''   ))  끝.  돌아가다 '<예비>\n' .. .본문.노우키(결과.:합류하다('\n')) .. '\n</pre>\n' 끝.  돌아가다 { 주된 = 주된 }