Friday, September 23, 2016

Tcl reference manual tcl , tcl - r






+

Tcl - Tool Command Language Le seguenti regole definiscono la sintassi e la semantica del linguaggio Tcl: [1] Comandi. Uno script Tcl è una stringa che contiene uno o più comandi. Punto e virgola e ritorni a capo sono separatori di comando a meno citato come descritto di seguito. Chiudi parentesi sono terminatori di comando durante la sostituzione di comando (vedi sotto) a meno che non citato. [2] di valutazione. Un comando viene valutata in due fasi. Innanzitutto, l'interprete Tcl rompe il comando in parole ed esegue sostituzioni come descritto di seguito. Tali sostituzioni sono eseguite nello stesso modo per tutti i comandi. La prima parola è usata per individuare un procedimento di comando per eseguire il comando, allora tutte le parole di comando vengono passati alla procedura di comando. La procedura di comando è libero di interpretare ciascuna delle sue parole in qualsiasi modo si vuole, come ad esempio un numero intero, nome di variabile, la lista, o uno script Tcl. Diversi comandi interpretano le loro parole in modo diverso. [3] parole. Parole di un comando sono separati da uno spazio bianco (fatta eccezione per i ritorni a capo, che sono separatori di comando). [4] virgolette. Se il primo carattere di una parola è virgolette doppie ( "" ") allora la parola termina con il carattere successivo doppio preventivo. Se punti e virgola, parentesi stretti o spazi bianchi (tra cui a capo) compaiono tra le virgolette poi essi vengono trattati come caratteri ordinari e inclusi nella parola. la sostituzione di comando, sostituzione di variabile, e la sostituzione backslash vengono eseguite sui caratteri tra le virgolette come descritto di seguito. i doppi apici non vengono mantenute come parte della parola. [5] Argomento espansione. Se una parola inizia con la stringa "" seguita da un carattere non di spaziatura, il leader "" viene rimosso e il resto della parola viene analizzato e sostituito come qualsiasi altra parola. Dopo la sostituzione, la parola viene analizzato come lista (senza comando o variabile sostituzioni; sostituzioni backslash vengono eseguite come è normale per una lista e le singole parole interne possono essere circondati da parentesi graffe o caratteri a doppio virgolette), e le sue parole vengono aggiunte al comando di essere sostituito. Per esempio, "cmd un d>" è equivalente a "cmd a b d f". [6] parentesi graffe. Se il primo carattere di una parola è una parentesi graffa aperta ( ""). Bretelle nido all'interno della parola: per ogni coppia aperta aggiuntivo ci deve essere una parentesi di chiusura supplementare (tuttavia, se un tutore aperto o chiuso parentesi all'interno della parola è citato con una barra inversa, allora è non conteggiato nel localizzare il corrispondente parentesi di chiusura). Nessuna sostituzione vengono eseguite sui caratteri tra le parentesi graffe ad eccezione di sostituzioni backslash-newline descritte di seguito, né punti e virgola, a capo, staffe vicino, o spazi bianchi ricevono ogni interpretazione speciale. La parola sarà composto da esattamente i caratteri tra le parentesi esterne, ad esclusione delle parentesi graffe stessi. [7] La ​​sostituzione di comando. Se una parola contiene una parentesi aperta ( "[") poi Tcl esegue la sostituzione di comando. Per fare questo si invoca l'interprete Tcl ricorsivamente per elaborare i caratteri che seguono la parentesi aperta come uno script Tcl. Lo script può contenere qualsiasi numero di comandi e deve essere terminato da una staffa di chiusura ( "]"). Il risultato dello script (cioè il risultato del suo ultimo comando) viene sostituito nella parola al posto delle staffe e tutti i caratteri tra loro. Ci può essere un qualsiasi numero di sostituzioni di comando in una sola parola. La sostituzione di comando non viene eseguita sulle parole racchiuse tra parentesi graffe. [8] La sostituzione di variabili. Se una parola contiene un dollaro-segno ( "$") seguito da una delle forme descritte di seguito, quindi Tcl esegue la sostituzione di variabile. dollaro-segno ei seguenti caratteri sono sostituiti nella parola dal valore di una variabile. sostituzione delle variabili possono assumere una delle seguenti forme: $ nome Nome è il nome di una variabile scalare; il nome è una sequenza di uno o più caratteri che siete una lettera, cifra, sottolineatura o separatori dello spazio dei nomi (due o più colons). Le lettere e le cifre sono solo quelli standard ASCII (0 -. 9 A - Z e a - z). $ Nome (indice) Nome dà il nome di una variabile di matrice e l'indice dà il nome di un elemento all'interno di tale matrice. Nome deve contenere solo lettere, cifre, sottolineature, e separatori di namespace, e può essere una stringa vuota. Le lettere e le cifre sono solo quelli standard ASCII (0 -. 9 A - Z e a - z). sostituzioni di comando, sostituzioni variabili e sostituzioni backslash vengono eseguite sui caratteri di indice. $ Name> Nome è il nome di un elemento variabile o una matrice scalare. Può contenere qualsiasi carattere di sorta tranne che per i primi sostegni. Indica un elemento di matrice se il nome è nella forma "ArrayName (indice)" dove ArrayName non contiene caratteri parentesi aperta "(", o chiudere caratteri parentesi, ">", e l'indice può essere una qualsiasi sequenza di caratteri ad eccezione di vicino caratteri parentesi. Nessun ulteriore sostituzioni vengono eseguite durante l'analisi del nome. Ci può essere un qualsiasi numero di sostituzioni variabili in una sola parola. sostituzione di variabile non viene eseguita sulle parole racchiuse tra parentesi graffe. Si noti che le variabili possono contenere sequenze di caratteri diversi da quelli elencati sopra, ma in questo caso altri meccanismi devono essere usati per accedervi (ad esempio con il modulo unico argomento del comando set). [9] sostituzione Barra rovesciata. Se un backslash ( "\") appare all'interno di una parola, allora la sostituzione barra inversa si verifica. In tutti i casi, ma quelli descritti di seguito il backslash è sceso e il carattere successivo viene trattato come un carattere normale e compreso nella parola. Questo permette di caratteri come virgolette, parentesi vicino, e segni di dollaro da inserire in parole senza innescare il trattamento speciale. La seguente tabella elenca le sequenze di backslash che vengono gestiti appositamente, insieme al valore che sostituisce ogni sequenza. \ Un allarme acustico (campana) (0x7). \ B Backspace (0x8). \ F Avanzamento (0xC). \ N Newline (0xA). \ R ritorno a capo (0xd). \ T Tab (0x9). \ V scheda verticale (0xb). \ & Lt; a capo & gt; spazio bianco Un carattere unico spazio sostituisce la barra inversa, a capo, e tutti gli spazi e le schede dopo il ritorno a capo. Questa sequenza backslash è unico in quanto è sostituito in un passa-pre separata prima che il comando è in realtà analizzata. Ciò significa che sarà sostituito anche quando si verifica tra parentesi, e lo spazio risultante viene trattato come un separatore di parole se non è in parentesi o virgolette. \\ Backslash ( "\"). \ Ooo ooo Il cifre (uno, due o tre di loro) dare un valore ottale otto bit per il carattere Unicode che sarà inserito, nel range 000-377. Il parser si fermerà poco prima di questa gamma trabocca, o quando viene raggiunto il massimo di tre cifre. I bit superiori del carattere Unicode sarà 0. \ x hh Le cifre esadecimali hh (uno o due di loro) danno un valore esadecimale a otto bit per il carattere Unicode che verrà inserito. I bit superiori del carattere Unicode sarà 0. \ u HHHH Le cifre esadecimali hhhh (uno, due, tre, o quattro di loro) invia un valore esadecimale sedici bit per il carattere Unicode che verrà inserito. I bit superiori del carattere Unicode sarà 0. \ U hhhhhhhh Le cifre esadecimali hhhhhhhh (uno fino a otto di loro) danno un valore esadecimale ventuno bit per il carattere Unicode che sarà inserito, nella gamma U + 0000 ..U + 10FFFF. Il parser si fermerà poco prima di questa gamma trabocca, o quando viene raggiunto il massimo di otto cifre. I bit superiori del carattere Unicode sarà 0. La gamma U + 010000..U + 10FFFD è riservato per il futuro. sostituzione backslash non viene eseguita sulle parole racchiuse tra parentesi graffe, ad eccezione di backslash-newline come descritto sopra. [10] Commenti. Se un carattere cancelletto ( "#") appare in un punto dove Tcl si aspetta il primo carattere della prima parola di un comando, quindi il carattere hash ed i personaggi che lo seguono, nel corso del prossimo ritorno a capo, sono trattati come un commento e ignorato. Il carattere di commento ha un significato solo quando appare all'inizio di un comando. [11] Ordine di sostituzione. Ogni carattere viene elaborato esattamente una volta dall'interprete Tcl come parte della creazione parole di un comando. Ad esempio, se la sostituzione variabile si verifica poi ulteriori sostituzioni vengono eseguite sul valore della variabile; il valore viene inserito nella parola integrale. Se la sostituzione di comando si verifica quindi il comando nidificato viene elaborato interamente dalla chiamata ricorsiva all'interprete Tcl; sostituzioni vengono eseguite prima di effettuare la chiamata ricorsiva e nessuna sostituzioni aggiuntivi vengono eseguite sul risultato dello script annidata. Sostituzioni svolgono da sinistra a destra, e ciascuna sostituzione è valutata completamente prima di valutare il prossimo. Pertanto, una sequenza simile sarà sempre impostare la variabile y al valore, 012. [12] Sostituzione e parola confini. Sostituzioni non influenzano la parola confini di un comando, fatta eccezione per l'espansione argomento come specificato nella regola [5]. Ad esempio, durante la sostituzione di variabile l'intero valore della variabile diventa parte di una sola parola, anche se il valore della variabile contiene spazi.




No comments:

Post a Comment