이 문서는 실제 v5 이전 토파즈 소스를 현재 문법으로 옮길 때만 쓰는
유일한 구형 문법 안내입니다. 마이너 버전마다 따라가는 업그레이드 경로가
아니며, 호환되는 제품 변경에는 별도의 이전 절차가 필요하지 않습니다.
예전 프로그램의 의도와 결과를 먼저 기록한 뒤 현재 검사기가 남은 경계를
드러내게 하세요.
1. 다시 쓰기 전에 결과 기록하기
진입 파일, 모듈 루트, 입력, 예상 출력, 실패, 파일·네트워크 효과를 먼저 적어 두세요. 예전 페이지에 Rust나 JavaScript, 프레임워크 문법이 섞여 있다면 토파즈 소스와 외부 언어 예제를 분리합니다. 익숙해 보인다는 이유만으로 예전 문서에서 동작을 추측하지 말고 현재 매뉴얼과 정본 예제를 기준으로 삼으세요.
2. 자주 나오는 표기 바꾸기
| 예전 표기 | 현재 표기 | 이유 |
|---|---|---|
mut let x | let mut x | 가변성은 let 뒤에 적습니다. |
[T] | Array<T> | 컬렉션 타입을 명시합니다. |
function(T) -> U | (T) -> U | 함수 타입은 선언 문법과 구분합니다. |
[head, ...tail] | [head, ..tail] | 패턴의 나머지는 ..를 사용합니다. |
args: ...T | ...args: T | 가변 매개변수 표기를 하나로 통일합니다. |
익명 function | (x: T) => expr | 익명 함수는 람다로 적습니다. |
s[i], s.length | s.scalars(), 명시적 문자열 API | 문자열은 바이트 배열로 취급하지 않습니다. |
백틱, ${expr} | 큰따옴표, {expr} | 토파즈 문자열 보간 표기를 사용합니다. |
실패와 값 없음을 구분하기
복구 가능한 실패는 Result, 값이 없을 수 있는 상태는 Option이나 null을 포함한 타입, 계속 실행할 수 없는 상태는 실행 오류로 나눕니다. 자원 정리는 defer나 허용된 using 형식으로 옮깁니다.
모듈 구조를 현재 규칙으로 맞추기
import/export 형식, 모듈 경로, 가시성, 초기화 순서를 모듈과 가시성을 기준으로 다시 정리합니다. 외부 언어 코드는 토파즈 모듈 안에 넣지 말고 빌드나 변환 경계에 둡니다.
3. 예전 코드는 예전 코드로 표시하기
아래 표기는 구형 문법이므로 정본 토파즈 코드 블록이 아니라 text 블록에만
둡니다.
mut let names: [string] = ["Ada"]
let first = names[0]현재 형식은 가변성, 컬렉션 타입, 범위 밖 조회를 명시합니다.
let mut names: Array<string> = ["Ada"]
let first: Option<string> = names.get(0)
print("{first}")Some(Ada)names.get(0)은 Option<string>을 반환하므로, 안전하게 찾은 값이
Some(Ada)로 드러납니다.
4. 문법뿐 아니라 동작도 확인하기
topaz check from-pre-v5.tpz
topaz run from-pre-v5.tpz
검사가 통과하면 다시 쓰기 전에 기록한 결과와 출력을 비교하세요. 모듈 초기화 순서, 컬렉션 순회 순서, 문자열 스칼라 위치, 숫자 오류, 자원 정리와 호스트 프로필 경계도 다시 확인합니다.
배포할 네이티브·Python·Web 대상 가운데 현재 소스를 지원하는 대상만 빌드해 선언한 결과를 비교하세요. 지원하지 않는 형식은 다른 의미나 불완전한 산출물을 만들지 않고 명확한 진단으로 거절되어야 합니다.
5. 자동화의 한계 알기
topaz migrate --from <version> --to <version>는 명시적으로 채택된 인접
v5 경계만 인식합니다. 해당 경계에서 호환되는 소스를 검사하거나 지원되는
패키지 메타데이터를 바꿀 수 있지만, v5 이전 문법을 자동으로 번역하거나
예전 코드의 의미를 추론하지는 않습니다. 클래식은
역사적 맥락으로만 참고하고 현재 언어로 직접 옮기세요.
이전을 마치는 기준
현재 검사기가 통과하고, 필요한 출력을 다시 기록했으며, 선택한 지원 대상이 선언한 결과를 내고, 지원하지 않는 동작은 명시적으로 거절되며, 정본 토파즈 코드 블록에 구형 표기가 남지 않았다면 이 안내서를 떠나도 됩니다. 문법 한눈에 보기로 돌아가 현재 매뉴얼의 필요한 주제를 이어서 읽으세요.