Incr TCL (ITCL) er den første af de objektorienterede udvidelser til TCL -sproget . Delvist implementeret i C -sprog . Med dens brug skrives biblioteket af grafiske widgets incr Widgets (iWidgets). Navnet på denne udvidelse er en slags "oversættelse" af C++- navnet til Tcl-sproget , incr -kommandoen , ligesom ++- operationen , øger dets argument med 1.
Sammen med XOtcl og SNIT er det en af de tre mest populære objektorienterede Tcl-udvidelser [1] .
ITCL - definerer følgende kommandoer:
Som et eksempel er der givet en objektindpakning over Tcl-tekstfiler. Viser brugen af konfiguratorer.
klasse fil { # beskriv og sæt startværdier # af lokale variabler private variabel fid "" offentlig variabel navn "" offentlig variabel adgang "r" # define constructor og destructor constructor { args } { eval configure $args # configure aktiverer konfiguratorer } destructor { if { $fid != "" } { luk $fid } } #describe class methods metode få {} metode put { line } metode eof {} } # definere metodelegemer body File::get {} { returner [ får $fid ] } body File::put { line } { sætter $fid $line } body File::eof {} { returner [ :: eof $fid ] } # definer konfigurator for # globalt variabelnavn # konfigurator for adgang er ikke oprettet configbody File::name { if { $fid != "" } { luk $fid } sæt fid [ åben $name $access ] } # # File-klassen i aktion: # # opret et File x -objekt #configure dens navn x configure - name / etc / passwd #viser indholdet af filen, linje for linje, mens { ! [ xeof ] } { sætter "=> [x get]" } #delete objekt slet objekt xDe forskellige medlemmer af en klasse er beskrevet med følgende kommandoer, der er tilgængelige i klassedefinitionen: constructor , destructor , method , proc (i modsætning til en metode er ikke nedarvet), variabel , almindelig (ligner statisk i C++), offentlig , beskyttet , privat , sæt og array . Nedarvning indstilles med kommandoen nedarv . Multipel arv er tilladt. Alle metoder er virtuelle. Når du definerer en klasse, kan du bruge metaprogrammeringsteknikker , for eksempel til at definere flere lokale variable i en loop, sammen med sæt og få adgangskoder til dem [3] .
Et sammensat hold (eller ensemble) er defineret som:
ensemble name comp kommando arg arg ...eller
ensemble navnesammensætning { delnavnDele argumenter krop … … ensemblenavnSubConst { _ _ delnavnUnderdele argumenter body … … } } _Tcl-ensembler er en praktisk syntaktisk tilføjelse til standard Tcl- navneområde-ensemble -mekanismen . Denne mekanisme giver dig mulighed for at gruppere flere kommandoer i ét navneområde - et ensemble. Kald kommandoen - en del af ensemblet ser sådan ud:
nameConst nameParts argumenterDer kan være et hvilket som helst antal ensemblekonstruktioner med samme navn, alle de dele, der er defineret i dem, vil blive inkluderet i det samme ensemble [4] .