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

対応しているコマンド
コマンド名構文備考
appendappend varName ?value ...? 
array anymorearray anymore arrayName searchId 
array donesearcharray donesearch arrayName searchId 
array getarray get arrayName ?pattern? 
array namesarray names arrayName ?pattern?modeは対応していません。
array nextelementarray nextelement arrayName searchId 
array setarray set arrayName list 
array sizearray size arrayName 
array startsearcharray startsearch arrayName 
array unsetarray unset arrayName ?pattern? 
breakbreak 
catchcatch script ?varName? 
closeclose channelId 
concatconcat ?arg ...? 
continuecontinue 
dict appenddict append dictionaryVariable key ?string ...? 
dict createdict create ?key value ...? 
dict existsdict exists dictionaryValue key ?key ...? 
dict getdict get dictionaryValue ?key ...? 
dict incrdict incr dictionaryVariable key ?increment? 
dict keysdict keys dictionaryValue ?globPattern? 
dict lappenddict lappend dictionaryVariable key ?value ...? 
dict mergedict merge ?dictionaryValue ...? 
dict removedict remove dictionaryValue ?key ...? 
dict replacedict replace dictionaryValue ?key value ...? 
dict setdict set dictionaryVariable key ?key ...? value 
dict sizedict size dictionaryValue 
dict unsetdict unset dictionaryVariable key ?key ...? 
dict valuesdict values dictionaryValue ?globPattern? 
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 ...? 
lassignlassign list ?varName ...?'lassign'は、Tcl8.5で追加されたコマンドです。
lindexlindex list ?index ...? 
linsertlinsert list index element ?element ...? 
listlist ?arg ...? 
llengthllength list 
lrangelrange list first last 
lrepeatlrepeat count ?value ...?'lrepeat'は、Tcl8.5で追加されたコマンドです。
lreplacelreplace list first last ?element ...? 
lsearchlsearch ?options? list patternoptionsは-index,-subindicesのみ対応しています。-index,-subindicesは、Tcl8.5で追加されたオプションです。
lsetlset varName ?index ...? newValue 
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 isstring is class ?-strict? ?-failindex varname? stringclassはalnum,alpha,control,digit,graph,lower,print,punct,space,upper,xdigitのみ対応しています。
string laststring last string1 string2lastIndexは対応していません。
string lengthstring length string 
string matchstring match pattern string-nocaseは対応していません。
string rangestring range string first last 
string repeatstring repeat string count 
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 ?-nocomplain? ?--? ?name ...? 
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を使用することはあまり無いので、今回は対応しなかった。