P/ECE用Tclインタプリタ対応状況 (2014/11/08)

対応しているコマンド
コマンド名構文備考
appendappend varName ?value ...? 
array anymorearray anymore arrayName searchId 
array donesearcharray donesearch arrayName searchId 
array namesarray names arrayNamemode,patternは対応していません。
array nextelementarray nextelement arrayName searchId 
array sizearray size arrayName 
array startsearcharray startsearch arrayName 
breakbreak 
catchcatch script ?varName? 
closeclose channelId 
concatconcat ?arg ...? 
continuecontinue 
eofeof channelId 
errorerror messageinfo,codeは対応していません。
evaleval arg ?arg ...? 
exitexit ?returnCode? 
exprexpr arg ?arg ...?+,-,*,/,%,<,<=,==,=>,>,~,&,|,^,!,&&,||,…?…:…,$…,(…),"…",{…},[…]の演算子に対応しています。数学関数は対応していません。
flushflush channelId 
forfor start test next body 
foreachforeach varname list body「foreach varlist1 list1 ?varlist2 list2 ... ? body」の構文は対応していません。
formatformat formatString ?arg ...? 
getsgets channelId ?varName? 
globglob ?switches? pattern ?pattern ...?switchesは-nocomplainのみ対応しています。
globalglobal varname ?varname ...? 
ifif expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN? 
incrincr varName ?increment? 
joinjoin list ?joinString? 
lappendlappend varName ?value ...? 
lindexlindex list index「lindex list ?index ... ?」の構文は対応していません。
linsertlinsert list index element ?element ...? 
listlist ?arg ...? 
llengthllength list 
lrangelrange list first last 
lreplacelreplace list first last ?element ...? 
lsearchlsearch list patternoptionsは対応していません。
lsortlsort ?options? listoptionsは-increasing,-decreasingのみ対応しています。
openopen fileName ?access?permissions,コマンドパイプラインは対応していません。
procproc name args body 
putsputs ?-nonewline? ?channelId? string 
renamerename oldName newName 
returnreturn ?string?-code,-errorinfo,-errorcodeは対応していません。
scanscan string format ?varName ...? 
seekseek channelId offset ?origin? 
setset varName ?value? 
sourcesource fileName 
splitsplit string ?splitChars? 
string comparestring compare string1 string2-nocase,-lengthは対応していません。
string firststring first string1 string2startIndexは対応していません。
string indexstring index string charIndex 
string laststring last string1 string2lastIndexは対応していません。
string lengthstring length string 
string matchstring match pattern string-nocaseは対応していません。
string rangestring range string first last 
string reversestring reverse string'string reverse'は、Tcl8.5a6で追加されたコマンドです。
string tolowerstring tolower stringfirst,lastは対応していません。
string toupperstring toupper stringfirst,lastは対応していません。
string trimstring trim string ?chars? 
string trimleftstring trimleft string ?chars? 
string trimrightstring trimright string ?chars? 
switchswitch ?options? string pattern body ?pattern body ...?-regexpは対応していません。
switchswitch ?options? string {pattern body ?pattern body ...?}-regexpは対応していません。
telltell channelId 
unsetunset ?name name name ...?--,-nocomplainは対応していません。
upleveluplevel ?level? arg ?arg ...? 
upvarupvar ?level? otherVar myVar ?otherVar myVar ...? 
whilewhile test body 

対応していない主要なコマンド
コマンド名対応していない理由備考
cdP/ECEにはフォルダ階層が無いから。 
execP/ECEにはサブプロセスが無いから。 
fileあまり使わないから。 
infoあまり使わないから。 
pwdP/ECEにはフォルダ階層が無いから。 
readテキストファイルの読み込みならば、putsで充分だから。 
regexp対応するとコードサイズが増えすぎるから。大抵はstring matchで用が足りるから。 
regsub対応するとコードサイズが増えすぎるから。 
timeあまり使わないから。 
trace対応するとコードサイズが増えすぎるから。Tkを使う時はtraceも利用することが多い。ウィジェットが適切なイベントを持っていない場合に、ウィジェットが変数を変更するのを監視してイベントの代用とする等。しかし、Tcl単独ではtraceを使用することはあまり無いので、今回は対応しなかった。