.\" 1999 PTM Przemek Borys '\" '\" Copyright (c) 1993 The Regents of the University of California. '\" Copyright (c) 1994-1996 Sun Microsystems, Inc. '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" SCCS: @(#) Tcl.n 1.128 96/08/26 12:59:50 ' '\" The definitions below are for supplemental macros used in Tcl/Tk '\" manual entries. '\" '\" .AP type name in/out ?indent? '\" Start paragraph describing an argument to a library procedure. '\" type is type of argument (int, etc.), in/out is either "in", "out", '\" or "in/out" to describe whether procedure reads or modifies arg, '\" and indent is equivalent to second arg of .IP (shouldn't ever be '\" needed; use .AS below instead) '\" '\" .AS ?type? ?name? '\" Give maximum sizes of arguments for setting tab stops. Type and '\" name are examples of largest possible arguments that will be passed '\" to .AP later. If args are omitted, default tab stops are used. '\" '\" .BS '\" Start box enclosure. From here until next .BE, everything will be '\" enclosed in one large box. '\" '\" .BE '\" End of box enclosure. '\" '\" .CS '\" Begin code excerpt. '\" '\" .CE '\" End code excerpt. '\" '\" .VS ?br? '\" Begin vertical sidebar, for use in marking newly-changed parts '\" of man pages. If an argument is present, then a line break is '\" forced before starting the sidebar. '\" '\" .VE '\" End of vertical sidebar. '\" '\" .DS '\" Begin an indented unfilled display. '\" '\" .DE '\" End of indented unfilled display. '\" '\" .SO '\" Start of list of standard options for a Tk widget. The '\" options follow on successive lines, in four columns separated '\" by tabs. '\" '\" .SE '\" End of list of standard options for a Tk widget. '\" '\" .OP cmdName dbName dbClass '\" Start of description of a specific option. cmdName gives the '\" option's name as specified in the class command, dbName gives '\" the option's name in the option database, and dbClass gives '\" the option's class in the option database. '\" '\" .UL arg1 arg2 '\" Print arg1 underlined, then print arg2 normally. '\" '\" SCCS: @(#) man.macros 1.8 96/02/15 20:02:24 '\" '\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. .if t .wh -1.3i ^B .nr ^l \n(.l .ad b '\" # Start an argument description .de AP .ie !"\\$4"" .TP \\$4 .el \{\ . ie !"\\$2"" .TP \\n()Cu . el .TP 15 .\} .ie !"\\$3"" \{\ .ta \\n()Au \\n()Bu \&\\$1 \\fI\\$2\\fP (\\$3) .\".b .\} .el \{\ .br .ie !"\\$2"" \{\ \&\\$1 \\fI\\$2\\fP .\} .el \{\ \&\\fI\\$1\\fP .\} .\} .. '\" # define tabbing values for .AP .de AS .nr )A 10n .if !"\\$1"" .nr )A \\w'\\$1'u+3n .nr )B \\n()Au+15n .\" .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n .nr )C \\n()Bu+\\w'(in/out)'u+2n .. .AS Tcl_Interp Tcl_CreateInterp in/out '\" # BS - start boxed text '\" # ^y = starting y location '\" # ^b = 1 .de BS .br .mk ^y .nr ^b 1u .if n .nf .if n .ti 0 .if n \l'\\n(.lu\(ul' .if n .fi .. '\" # BE - end boxed text (draw box now) .de BE .nf .ti 0 .mk ^t .ie n \l'\\n(^lu\(ul' .el \{\ .\" Draw four-sided box normally, but don't draw top of .\" box if the box started on an earlier page. .ie !\\n(^b-1 \{\ \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .el \}\ \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .\} .fi .br .nr ^b 0 .. '\" # VS - start vertical sidebar '\" # ^Y = starting y location '\" # ^v = 1 (for troff; for nroff this doesn't matter) .de VS .if !"\\$1"" .br .mk ^Y .ie n 'mc \s12\(br\s0 .el .nr ^v 1u .. '\" # VE - end of vertical sidebar .de VE .ie n 'mc .el \{\ .ev 2 .nf .ti 0 .mk ^t \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' .sp -1 .fi .ev .\} .nr ^v 0 .. '\" # Special macro to handle page bottom: finish off current '\" # box/sidebar if in box/sidebar mode, then invoked standard '\" # page bottom macro. .de ^B .ev 2 'ti 0 'nf .mk ^t .if \\n(^b \{\ .\" Draw three-sided box if this is the box's first page, .\" draw two sides but no top otherwise. .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .\} .if \\n(^v \{\ .nr ^x \\n(^tu+1v-\\n(^Yu \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c .\} .bp 'fi .ev .if \\n(^b \{\ .mk ^y .nr ^b 2 .\} .if \\n(^v \{\ .mk ^Y .\} .. '\" # DS - begin display .de DS .RS .nf .sp .. '\" # DE - end display .de DE .fi .RE .sp .. '\" # SO - start of list of standard options .de SO .SH "OPCJE STANDARDOWE" .LP .nf .ta 4c 8c 12c .ft B .. '\" # SE - end of list of standard options .de SE .fi .ft R .LP Zobacz podręcznik \fBoptions\fR(n) dla dalszych szczegółów o standardowych opcjach. .. '\" # OP - start of full description for a single option .de OP .LP .nf .ta 4c Nazwa linii komend: \\fB\\$1\\fR Nazwa bazy danych: \\fB\\$2\\fR Klasa bazy danych: \\fB\\$3\\fR .fi .IP .. '\" # CS - begin code excerpt .de CS .RS .nf .ta .25i .5i .75i 1i .. '\" # CE - end code excerpt .de CE .fi .RE .. .de UL \\$1\l'|0\(ul'\\$2 .. .TH Tcl 3tcl "" Tcl "Wbudowane komendy Tcl" .BS .SH NAZWA Tcl \- Podsumowanie składni języka Tcl .BE .SH OPIS \fI Uwaga! To tłumaczenie może być nieaktualne!\fP .PP .PP Następujące reguły definiują semantykę języka Tcl: .IP [1] Skrypt Tcl jest łańcuchem, zawierającym jedną, lub więcej komend. Średniki i nowe linie są separatorami komend, chyba że są zacytowane. Zamykające nawiasy są normalnie terminatorami komend. .IP [2] Komenda jest analizowana w dwóch krokach. Najpierw interpreter Tcl rozbija komendę na \fIsłowa\fR i dokonuje opisanych niżej podstawień. Podstawienia te są dokonywane jednakowo dla wszystkich komend. Pierwsze słowo jest używane do lokalizowania procedury komendy, która wykona polecenie, a następnie wszystkie pozostałe słowa komendy są przekazywane do tej procedury. Procedura może interpretować każde ze swoich słów w dowolny sposób, np. jako liczbę całkowitą, nazwę zmiennej, listę, lub skrypt Tcl. Różne komendy różnie interpretują swoje słowa. .IP [3] Słowa komendy są rozdzielane białymi spacjami (poza nowymi liniami, które są separatorami komend). .IP [4] Pierwszy znak słowa to podwójny cudzysłów (``"''), ostatni również. Jeśli między cudzysłowami pojawią się średniki, nawiasy czy białe spacje, to będą one traktowane jak zwykłe znaki włączone w słowo. Podstawianie komend i zmiennych, oraz podstawianie ukośnikowe jest dokonywane na znakach międzycudzysłowowych w sposób opisany niżej. Podwójne cudzysłowy nie są zachowywane jako elementy słowa. .IP [5] Jeśli pierwszy znak słowa jest otwartym nawiasem klamrowym (``{''), to słowo jest kończone klamrą zamykającą, (``}''). Klamry zagnieżdżają się w słowie: każda otwarta klamra musi mieć klamrę zamykającą (jednak jeśli klamra jest cytowana lewym ukośnikiem, to jej działanie nie wymaga klamry zamykającej). Na znakach między klamrami nie dokonuje się żadnych podstawień, nie licząc podstawień lewy ukośnik-nowa linia. Słowo składa się dokładnie ze znaków między klamrami, nie licząc samych klamr. .IP [6] Jeśli słowo zawiera otwarty nawias kwadratowy (``[''), to Tcl dokonuje \fIpodstawienia komendy\fR. Aby tego dokonać, woła rekursywnie interpreter Tcl, który przetwarza znaki znajdujące za nawiasem jako skrypt Tcl. Skrypt może zawierać dowolną liczbę komend i musi być zakończony nawiasem zamykającym (``]''). Wyniki skryptu (np. wynik ostatniej komendy) są podstawiane zamiast nawiasów, wraz ze znakami znajdującymi się między nimi. Może być dowolnie wiele podstawień w pojedynczym słowie. Podstawianie komend nie jest dokonywane na słowach ujętych w nawiasy klamrowe. .IP [7] Jeśli słowo zawiera znak dolara (``$'') to Tcl dokonuje \fIpodstawienia zmiennej\fR: znak dolara i następujące znaki są zastępowane wartością zmiennej. Podstawienie zmiennej może przybrać jedną z postaci: .RS .TP 15 \fB$\fInazwa\fR \fINazwa\fR jest nazwą zmiennej skalarnej; nazwa jest kończona dowolnym znakiem, który nie jest literą, cyfrą, lub podkreśleniem. .TP 15 \fB$\fInazwa\fB(\fIindeks\fB)\fR \fINazwa\fR daje nazwę zmiennej tablicowej, a \fIindeks\fR daje nazwę jej elementu. \fINazwa\fR musi składać się tylko z liter, cyfr i podkreśleń. Na znakach \fIindeksu\fR dokonywane są podstawienia komend, zmiennych i lewych ukośników. .TP 15 \fB${\fInazwa\fB}\fR \fINazwa\fR jest nazwą zmiennej skalarnej. Może zawierać dowolne znaki poza zamykającymi nawiasami klamrowymi. .LP W pojedynczym słowie może być wiele podstawień zmiennych. Na słowach, ujętych w klamry nie jest dokonywane podstawienie zmiennych. .RE .IP [8] Jeśli w słowie znajduje się lewy ukośnik (``\e''), to następuje \fIpodstawienie ukośnikowe\fR. We wszystkich wypadkach, poza opisanymi niżej, ukośnik jest porzucany, a następujący znak jest traktowany jak zwykły i jest włączany w słowo. Umożliwia to włączanie znaków takich, jak podwójne cytaty, nawiasy zamykające i znaki dolara. Następująca tabela pokazuje sekwencje ukośnikowe, które są traktowane szczególnie, wraz z wartościami, które wchodzą w ich miejsce. .RS .TP 6 \e\fBa\fR Dzwonek (0x7). .TP 6 \e\fBb\fR Backspace (0x8). .TP 6 \e\fBf\fR Form feed (0xc). .TP 6 \e\fBn\fR Nowa linia (0xa). .TP 6 \e\fBr\fR Powrót karetki (0xd). .TP 6 \e\fBt\fR Tabulacja (0x9). .TP 6 \e\fBv\fR Tabulacja pionowa (0xb). .TP 6 \e\fB\fIbiałaspacja\fR Zamiast ukośnika, nowej linii i białej (białych) spacji, podstawiany jest pojedynczy znak spacji. Sekwencja ukośnikowa jest unikalna dlatego, że jest podstawiana w oddzielnym przedbiegu przed przetworzeniem komendy. Znaczy to, że będzie podstawiona nawet gdy nastąpi między nawiasami, a wynikająca spacja będzie traktowana jako separator słów (o ile nie jest w cudzysłowach lub klamrach). .TP 6 \e\e Lewy ukośnik (``\e''). .TP 6 \e\fIooo\fR Cyfry \fIooo\fR (jedna, dwie, lub trzy z nich) dają rzeczywistą ósemkową wartość znaku. .TP 6 \e\fBx\fIhh\fR Cyfry szesnastkowe \fIhh\fR dają szesnastkową wartość znaku. Obecna może być dowolna liczba cyfr. .LP Podstawianie ukośnikowe nie jest dokonywane na słowach ujętych w klamry, nie licząc podstawienia ukośnik-nowa linia, opisanego wyżej. .RE .IP [9] Jeśli w miejscu, gdzie Tcl oczekuje pierwszego znaku pierwszego słowa komendy znajduje się znak ``#'', to znak ten i znaki za nim następujące, aż do nowej linii, są traktowane jako komentarz i są ignorowane. Znak komentarza ma znaczenie gdy znajduje się na początku komendy. .IP [10] Każdy znak jest przetwarzany przez interpreter Tcl tylko raz jako element tworzenia słów komendy. Na przykład, jeśli nastąpi podstawienie zmiennych, dalsze podstawienia na wartości zmiennej nie następują; wartość jest wstawiana dosłownie. Jeśli nastąpi podstawianie komend, to zagnieżdżone komendy są przetwarzane całościowo przez rekursywne wywołania interpretera Tcl; przed tym wywołaniem nie są robione żadne podstawienia. Podobnie po wywołaniu nie robi się żadnych dodatkowych podstawień. .IP [11] Podstawienia nie tyczą się ograniczników słów komendy. Na przykład podczas podstawiania zmiennych cała wartość zmiennej staje się częścią pojedynczego słowa, nawet jeśli wartość zmiennej zawiera spacje. .SH "INFORMACJE O TŁUMACZENIU" Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i \fImoże nie być aktualne\fR. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia: .IP man \-\-locale=C 3tcl Tcl .PP Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages\-pl/.