Polish translation of Man Tcl Please use UTF-8 charcter coding in your broser to see corect characters. Teks ten jest tłumaczeniem z niemieckiego, które z kolei jest tłumacyeniem z angielskiego, 11 reguł określających semantyke języka Tcl. Ponieważ nie mieszkam w Polsce już wiele lat nie jestem całkiem pewien co do jakości tłumaczenia w razie wątpliwości proszę o kierowanie się orginałem dostępnym pod http://www.tcl.tk/man/tcl8.4/TclCmd/Tcl.htm. Także gramatyka i ortografia tego tekstu może pozostawiać do życzenia. Proszę o korektury. Jest to tylko jedno z tłumaczeń które mają podkreślać internacjonalny charakter Tcl. Syntaks i Semantyka języka Tcl jest zdefiniowana następującymi regułami: '''1. Polecenia''' Tcl-Script jest łańcuchem znaków Unicode, który zawiera jedeno lub wiele poleceń języka Tcl. Polecenia są odzielone przez semikola lub powrót karetki, jeśli nie są zamaskowane cudzesłowem. Zamykający nawias kwadratowy kończy polecenie w czasie zastępownia, chyba że jest on zamaskowany. '''2. Ewaluacja''' Wykonanie polecenie jest przeprowadzane w dwóch krokach. Na początku polecenie jest dzielone na słowa na których dokonywane są zastąpienia. To następuje dla wszystkich poleceń jednakowo. Pierwsze słowo służy za nazwe komendy, która jest wykonywana z argumentami zlożonymi z następnych słów. Iterpretacja tych słów jest wolna i zależna od polecenia, na przykład: liczba, nazwa zmiennej, lista, Tcl-skript. Różne polecenia interpretują swoje śłowa na różne sposoby. '''3. Słowa''' Słowa polecenia są dzielowne przez tzw. Whitespace (Odstręp lub Tabulator, jednak nie powrót karetki, która dzieli polecenia). '''4. Cudzysłow podwójny''' Jesli pierwszem znakiem polecenia jest cudzysłow ("), to słowo kończy się następnym cudzysłowiem. Semikola, nawisy kwadratowe lub Whitespaces sa traktowane wewnątrz między czydzysłowami jak normalne znaki i są częscią słowa. Na słowie dokonywane są zastapienia poleceń, zmienych i ukośnika lewego według opisu poniżej. Czydzysłowia nie stają sie elementami słowa. '''5. Nawiasy''' Jeśli pierwszym zankiem słowa jest nawias ({) to słowo kończone jest pasującym nawiasem (}). Nawiasy ({}) mogą występowac wielokrotnie węwnatrz słowa (rekursywnie). Każdy otwierający nawias ({) musie posiadać nawias zamykający. (Nawiasy zamaskowane ukosnikiem lewym nie grają roli w rownowadze nawiasów). Na znakach wewnątrz nawiasów ({}) nie są dokonywane żadne zastąpienia z wyjątkiem ukosnika lewego z powrotem karetki (\newline). Semikola, powroty karetki i nawiasy kwadratowe nie są szczególnie interpretowane. Rezultujące słowo jest dokładnie łańcuchem znaków stającym między otwierającym i zamykającym nawiasem ({}). Skrajne nawiasy nie należą do słowa. '''6. Zestępowanie poleceń''' Jeśli w słowie występuja nawias kwadratowy to dokonywne jest zastąpienie poleceń. Zastępownia są wykonywane przez interpreter TCL rekursywnie, znaki po otwartym nawiasie kwadratowym interpretowane są jako skript TCL. Taki skript wewnątrz kwadratowych nawisów może zawierać jedno lub wiele poleceń Tcl i musi kończyć się zamykającym nawiasem kwadratowm. Wynik tego skriptu (ostatniego polecenia w skrypcie) jest wstawiany w miejsce wystepowanie kwadratowych nawiasów tak że zastępuje on nawias kwadratowy włącznie z jego zawartością. W jednym słowie może być dokonane dowolnie wiele zastąpień nawiasów kwadratowych. Zastępownie nie mają miesjca jeśli słowo znajduję się w nawiasach ({}) '''7. Zestępowanie zmiennej''' Jeśli słowo zawiera znak dolara ($), następuje zastąpienie zmiennej. Znak dolara i następująoce po nim znaki zastępowane są w słowie przez wartość zmiennej, w następujących formach. $nazwa - nazwa jest nazwą zmiennej skalarnej. Nazwa kończy się pierwszym znakiem który nie jest literą, cyfrą lub podlreśleniem (ta restrykcja może być zniwelowane przez zastosowanie zapisu ${nazwa}) $nazwa(indeks) “nazwa” jest nazwą tablicy. “indeks” jest nazwą elementu w tablicy. Nazwa może składać się wyłącznie z liter, cyfr i podkreślenia _. Na znakach łańcucha indeks dokonywane są zastąpienie poleceń, zmienennej i ukośnika lewego. ${nazwa} "nazwa" jest nazwą zmiennej skalarnej i może zawierać dowolne znaki z wyjątkiem nawiasu }. W słowie może następować dowolna ilość zastąpień zmiennych. Zastąpienie nie odbywają się wewnątrz nawiasu {}. '''8. Zastępowane ukośnika lewego''' Jeśli w słowie występuje ukosnik lewy (\), następuje zamiana ukośnika. W każdym oprocz niżej opisanych przypadkach ukośnik jest usuwany i następujące znaki są traktowane bez zmian. W ten sposób mogą znaki ({}[]$) być elementami słów bez wywołwanie zastąpień. Szczególnymi zastąpieniami ukośniaka są. \a sygnał dżwiękowy (Bell, 0x7) \b backspace 0x8 \f form feed 0xC \n newline 0xA \r powrót karetki 0xD \t tabulator, 0x9 \v tabulator wertykalny, 0xB \(newline)whitespace: Backslash, powrót karetki i wszystki spacje i tabulatoren po powrocie karetki zamieniane są przez jedną spację \ooo 1..3 cyfry systemu ósemkowege dają 8-bitową wartość znaku Uni-Code przez który są zastępowane. \xhh cyfry stemu dają 8-bitową wartość znaku Uni-Code przez który są zastępowane. . Mogą występować dowonie wiele cyfry jednak tylko dwie ostatnie są używane. \uhhhh cyfry 1-4 stemu dają 16-bitową wartość znaku Uni-Code przez który są zastępowane. Zastąpowanie ukośnika lewego nie jest dokonywane na słowach znajdujących się wewnątrz nawiasów {} (wyjątek stanowi \newline. Patrz wyżej) '''9 Komentarze''' Znak # stojący w miejscu w którym oczekiwany jest znak pierwszego słowa polecenia jest ignorowany razem z nastepującymi znakami do końca wiersza. '''10. Kolejność zastąpień''' Każdy znak jest przetwarzany przez parser tcl przy grupowaniu słów dokładnie jeden raz. Jeśli na przykład jest dokonywana zamiana zmiennej to na powstałym przez ten sbośob nowym słowie nie sa dokonywane żadne inne zamiany. Jeśli następuje zamiana polecenia to, polecenie zamknięte w [] jest dokonywane bezpośrednio przez rekursywne wywołanie interpretera Tcl. Przed rekursywnym wywołaniem i także po nim nie są dokonywane żadne zastąpienia. Zamiany są dokonywane w kolejności od lewej do prawej, każda zamiana jest dokonywana aż do końca, przed następną zamianą. '''11 Zastępowania i granice słowa''' Zamiany nie mają wpływu na granice polecenia. Na przykład w czasie zamiany zmiennej kompletna wartość zmiennej (ciągu znaków) staje się częścia pojedynczego słowa, nawet jeśli zawiera ona spacje. Tłumaczenie dokonane zostało przez Artura Trzewika [Artur Trzewik]