You are here

Tcl -> Python 변환 도구

admin의 아바타

출처: http://www-01.ibm.com/support/docview.wss?uid=swg24012144

Tcl 코드를 Python으로 변환하는 도구입니다.

아래의 Tcl 코드(hello.tcl)를 변환해보겠습니다.

set var "Hello"

proc greeting {msg} {
        puts $msg
}

greeting $var

for {set i 0} {$i <10} {incr i} {
        if {$i % 2 == 0} then {
                puts $i
        }
}

아래와 같이 Python 코드로 변환해보면..

C:\Temp\ggg>"C:\Program Files\Java\jdk1.7.0_79\jre\bin\java.exe" -cp Jacl2Jython
.jar com.ibm.ws.ast.jacl2jython.Jacl2JythonParser hello.tcl

IBM Jacl-2-Jython Conversion Assistant V2.5: - Licenced Material - Property of I
BM.
(c) Copyright IBM Corporation 2005,2006 - All Rights Reserved.
US Government Users Restricted Rights - Use, duplication or disclosure
restricted by GSA ADB Schedule Contract with IBM Corp.

Jacl 파일=hello.tcl에서 읽는 중 ...
Jacl 프로그램이 구문 분석되었습니다.
임시 Jython 파일=hello.tmp 작성 중...
Jacl 프로그램이 변환되었습니다.
Jython PostProcessing(코드 축소) 처리 중 ...
Jacl2Jython이 완료되었습니다.  Jython 프로그램=hello.py
+---------------------------------------------------------------------------+
|  참고: 생성된 Jython은 예비이며 수동 검증이 필요합니다.  |
+----------------------------***********--------------******-************---+

다음과 같이 변환 되었습니다.

#
#####################################################################
## NOTE: This code is PRELIMINARY, it requires MANUAL VERIFICATION ##
##                    ***********              ******************* ##
#####################################################################
#

import sys
def wsadminToList(inStr):
        outList=[]
        if (len(inStr)>0 and inStr[0]=='[' and inStr[-1]==']'):
                tmpList = inStr[1:-1].split() #splits space-separated lists,
        else:
                tmpList = inStr.split("\n")   #splits for Windows or Linux
        for item in tmpList:
                item = item.rstrip();         #removes any Windows "\r"
                if (len(item)>0):
                        outList.append(item)
        return outList
#endDef

var = "Hello"

def greeting ( msg ):
        print msg
#endDef

greeting(var )

i = 0  #forStart
while ( i < 10 ):  #forTest
        if (i % 2 == 0):
                print i
        #endIf
        i += 1  #forNext
#endWhile  (#endFor)

동작하는데 문제 없이 변환이 된것 같네요.
하지만.. 이 툴이 어느 정도의 실용성이 있는지는 모르겠습니다.. ^^;;
재미로.. 돌려 보심이..

첨부 파일파일 크기
Package icon Jacl2Jython_v25.zip370.48 KB
포럼: