Skip to content
DevBJ
Go back

Tcl 명령을 여러 줄로 나눠 작성하는 방법

Updated:
Editor

긴 Tcl 명령은 줄 끝의 backslash로 이어 쓰고, 여러 줄짜리 script body는 중괄호로 묶는다. 중괄호는 자동 실행이나 단순한 줄 연결이 아니라 하나의 argument를 묶는 문법이다.

backslash로 한 명령을 이어 쓰기

set result [expr {3 + \
    4}]
puts $result

backslash 바로 뒤의 newline은 공백 하나로 바뀌므로 이 코드는 한 Tcl 명령으로 해석된다. 줄 끝 backslash 뒤에 공백이나 주석을 두면 newline이 이어지지 않으므로 주의한다.

중괄호 안에 여러 줄 script 넣기

if {
    $x > 0 &&
    $y > 0
} then {
    puts "Both values are positive"
}

if 명령은 첫 번째 중괄호 argument를 expression으로, 두 번째 중괄호 argument를 실행할 script로 처리한다. 개행은 해당 중괄호 안에 있으므로 명령이 중간에서 끝나지 않는다.

여러 줄 문자열과 script는 다르다

set message {
    first line
    second line
}

이 코드는 개행과 들여쓰기가 포함된 문자열을 만든다. 중괄호 안의 내용이 명령이 되는 것은 아니며, 해당 argument를 받는 명령이 script로 평가할 때에만 실행된다. 입력 문자열을 무심코 eval하지 않는다.

SDC/XDC 명령은 Tcl 문법을 사용하지만 get_ports, get_clocks 같은 command와 collection 규칙은 각 EDA 도구에 속한다. 여러 줄 배치는 Tcl 문법과 해당 도구의 명령 문서를 각각 확인한다.

공식 자료

원문 기록

한 줄 요약

backslash-newline은 하나의 명령을 이어 쓰고, 중괄호는 Tcl 명령에 전달할 argument나 script body를 묶는다.


Share this post on:

Previous Post
SystemVerilog에서 rising edge를 한 clock pulse로 만들기
Next Post
Tcl 리스트에서 여러 값을 안전하게 제외하는 방법