Version 18 of Man Tcl - po polsku

Updated 2008-02-04 21:07:55 by PZ

Polish translation of Man Tcl (see Endekalogue for other languages).

Tekst ten jest tłumaczeniem z niemieckiego, które z kolei jest tłumaczeniem z angielskiego 11 reguł określających semantyką 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ę oryginałem dostępnym pod http://www.tcl.tk/man/tcl8.4/TclCmd/Tcl.htm . Także gramatyka i ortografia tego tekstu może pozostawiać wiele do życzenia. Proszę o korekty. Jest to tylko jedno z tłumaczeń, które mają podkreślać międzynarodowy charakter Tcl.

Składnię języka Tcl określają następujące reguły:

1. Polecenia. Skrypt Tcl jest łańcuchem znaków Unikodu, który zawiera jedno lub więcej poleceń języka Tcl. Polecenia są oddzielone średnikami, lub powrotem karetki, jeśli nie są zamaskowane cudzysłowem. Zamykający nawias kwadratowy kończy polecenie w czasie zastępowania - chyba że jest on zamaskowany.

2. Ewaluacja. Wykonanie polecenia jest przeprowadzane w dwóch krokach: wpierw polecenie jest dzielone na słowa, na których dokonywane są zastąpienia; wykonuje się to jednakowo dla wszystkich poleceń. Pierwsze słowo służy jako nazwa polecenia, które jest wykonywane, z argumentami złożonymi z następnych słów. Interpretacja tych słów jest wolna, i zależna od polecenia - na przykład: liczba, nazwa zmiennej, lista, skrypt Tcl. Różne polecenia interpretują swoje słowa na różne sposoby.

3. Słowa. Słowa polecenia są dzielone przez tzw. Whitespace (Odstęp lub Tabulator - ale nie powrót karetki, który dzieli polecenia).

4. Cudzysłów podwójny. Jeśli pierwszym znakiem polecenia jest cudzysłów ("), to słowo kończy się następnym cudzysłowem. Średniki, nawiasy kwadratowe lub Whitespaces są traktowane wewnątrz tekstu między cudzysłowami jak normalne znaki, i są częścią słowa. Na słowie dokonywane są zastąpienia poleceń, zmiennych i ukośnika lewego według opisu poniżej. Cudzysłowy nie stają się elementami słowa.

5. Nawiasy. Jeśli pierwszym znakiem słowa jest otwierający nawias klamrowy ({), to słowo kończy się zamykającym nawiasem (}). Nawiasy ({}) mogą występować wielokrotnie wewnątrz słowa (rekurencyjnie). Każdy otwierający nawias ({) musi posiadać nawias zamykający. (Nawiasy "zamaskowane" ukośnikiem lewym nie grają roli w równowadze nawiasów). Na znakach wewnątrz nawiasów ({}) nie są dokonywane żadne zastąpienia, za wyjątkiem ukośnika lewego z powrotem karetki (\newline). Średniki, powrót karetki i nawiasy kwadratowe nie są szczególnie interpretowane. Wynikowe słowo jest dokładnym łańcuchem znaków stającym między otwierającym i zamykającym nawiasem ({}). Skrajne nawiasy nie należą do słowa.

6. Zastępowanie poleceń. Jeśli w słowie występuje nawias kwadratowy, to dokonywane jest zastąpienie poleceń. Zastępowania są wykonywane przez interpreter TCL rekurencyjnie, znaki po otwartym nawiasie kwadratowym interpretowane są jako skrypt TCL. Taki skrypt wewnątrz kwadratowych nawiasów może zawierać jedno lub wiele poleceń Tcl, i musi kończyć się zamykającym nawiasem kwadratowym. Wynik tego skryptu (ostatniego polecenia w skrypcie) jest wstawiany w miejsce występowanie 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ępowanie nie ma miejsca, jeśli słowa znajdują się w nawiasach ({}).

7. Zastępowanie zmiennej. Jeśli słowo zawiera znak dolara ($), następuje zastąpienie zmiennej. Znak dolara i następujące 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 podkreśleniem (to ograniczenie 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ąpienia poleceń, zmiennej i ukośnika lewego.

${nazwa} nazwa jest nazwą zmiennej skalarnej i może zawierać dowolne znaki z wyjątkiem nawiasu klamrowego }.

W słowie może następować dowolna ilość zastąpień zmiennych. Zastąpienia nie odbywają się wewnątrz nawiasu {}.

8. Zastępowane lewego ukośnika. Jeśli w słowie występuje lewy ukośnik (\), to następuje zamiana ukośnika. W każdym przypadku - oprócz niżej opisanych - ukośnik jest usuwany i następujące znaki są traktowane bez zmian. W ten sposób znaki ({}$) mogą być elementami słów bez wywoływania zastąpień. Szczególnymi zastąpieniami ukośnika 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, wszystkie spacje i tabulatory po powrocie karetki zamieniane są na jedną spację

\ooo 1..3 cyfry systemu ósemkowego dają 8-bitową wartość znaku Unikodu, przez który są zastępowane.

\xhh cyfry systemu szesnastkowego dają 8-bitową wartość znaku Unikodu, przez który są zastępowane. Może występować dowolna ilość cyfr, jednak tylko dwie ostatnie są używane.

\uhhhh cyfry 1-4 systemu szesnastkowego dają 16-bitową wartość znaku Unikodu, przez który są zastępowane.

Zastępowanie lewego ukośnika 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 następującymi znakami do końca wiersza.

10. Kolejność zastąpień. Przy grupowaniu słów każdy znak jest przetwarzany przez parser TCL dokładnie jeden raz. Na przykład, jeśli dokonywana jest zamiana zmiennej, to na powstałym w ten sposób nowym słowie nie są dokonywane żadne inne zamiany. Jeśli następuje zamiana polecenia, to polecenie zagnieżdżone jest dokonywane bezpośrednio przez rekurencyjne wywołanie interpretera Tcl. Przed takim 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ęścią pojedynczego słowa, nawet jeśli zawiera ona spacje.

Tłumaczenie dokonane zostało przez Artura Trzewika Artur Trzewik. Poprawki Wojciech Kocjan. Szereg poprawek interpunkcyjnych i stylistycznych ZB - uwaga: punkt 10. brzmi coś niezbyt zrozumiale (szczególnie zdanie od "Jeśli następuje zamiana...")

Słowniczek (pl-en):

  zastąpienie - substitution
  zagnieżdżony - nested
  powrót karetki - newline
  polecenie - command