1This is a roadmap to the code layout in snit.tcl. 2 3Package Definition 4* package provide 5* ::snit:: namespace definition; exports Snit commands. 6 7Major Variable Definitions (this includes a whole lot of code) 8* ::snit:: variable definitions: 9 * reservedArgs 10 * prettyStackTrace Not used currently 11 12* ::snit::typeTemplate Template code shared by all Snit types. 13 As the type definition is parsed, it 14 produced text that gets inserted into 15 this template; then the template is 16 evaluated as though it were sourced 17 from a normal .tcl file. 18 * Type namespace definition 19 * User's typevariable definitions 20 * Commands for use in type code 21 * alias installhull 22 * alias install 23 * alias typevariable 24 * alias variable 25 * alias mytypevar 26 * alias typevarname Deprecated 27 * alias myvar 28 * alias varname Deprecated 29 * alias myproc 30 * alias codename Deprecated 31 * alias mymethod 32 * alias mytypemethod 33 * alias from 34 * Snit's internal variables 35 * See dictionary.txt 36 * Template Code -- Stuff that gets filled in. 37 * proc Snit_instanceVars Initializes instance variables 38 * proc Snit_typeconstructor 39 * Default Procs -- Stuff that's sometimes replaced. 40 * proc Snit_constructor The default constructor 41 * proc Snit_destructor The default destructor (empty) 42 * %COMPILEDDEFS% 43 * Call the Type Constructor 44 45* ::snit::nominalTypeProc Template for the normal type proc. 46* ::snit::simpleTypeProc Template for the simple type proc. 47 This is used when "-hastypemethods no"; 48 all it does is create instances. 49 50* ::snit::nominalInstanceProc Template for the body of the normal 51 instance proc. Supports method 52 caching, delegation, etc. 53* ::snit::simpleInstanceProc Template for the body of the simple 54 instance proc, used when 55 "-simpledispatch yes". Doesn't 56 support delegation, upvar, 57 hierarchical methods, or exotic return 58 types. 59 60* Snit compilation variables 61 * compiler The name of the slave interpreter used 62 to "compile" type definitions 63 * compile Array, accumulates results of 64 "compiling" type definitions 65 * reservedwords List of names that can't be used as 66 macros. Basically, any command 67 defined before the first macro. 68 69Compilation Commands 70* proc ::snit::Comp.Init 71* proc ::snit::Comp.Compile 72* proc ::snit::Comp.SaveOptionInfo 73* proc ::snit::Comp.Define 74* proc ::snit::Comp.statement.pragma 75* proc ::snit::Comp.statement.widgetclass 76* proc ::snit::Comp.statement.hulltype 77* proc ::snit::Comp.statement.constructor 78* proc ::snit::Comp.statement.destructor 79* proc ::snit::Comp.statement.option 80* proc ::snit::Comp.OptionNameIsValid 81* proc ::snit::Comp.statement.oncget 82* proc ::snit::Comp.statement.onconfigure 83* proc ::snit::Comp.statement.method 84* proc ::snit::Comp.CheckMethodName 85* proc ::snit::Comp.statement.typemethod 86* proc ::snit::Comp.statement.typeconstructor 87* proc ::snit::Comp.statement.proc 88* proc ::snit::Comp.statement.typevariable 89* proc ::snit::Comp.statement.variable 90* proc ::snit::Comp.statement.typecomponent 91* proc ::snit::Comp.DefineTypeComponent 92* proc ::snit::Comp.statement.component 93* proc ::snit::Comp.DefineComponent 94* proc ::snit::Comp.statement.delegate 95* proc ::snit::Comp.DelegatedTypemethod 96* proc ::snit::Comp.DelegatedMethod 97* proc ::snit::Comp.DelegatedOption 98* proc ::snit::Comp.statement.expose 99 100Public Commands 101* proc ::snit::compile 102* proc ::snit::type 103* proc ::snit::widgetadaptor 104* proc ::snit::widget 105* proc ::snit::typemethod 106* proc ::snit::method 107* proc ::snit::macro 108 109Utility Commands 110* proc ::snit::Expand 111* proc ::snit::Mappend 112* proc ::snit::CheckArgs 113* proc ::snit::Capitalize 114 115Snit Runtime Library 116 117The commands defined here are used by Snit-generated code at run-time 118rather than compile time. 119 120* Object Creation 121** ::snit::RT.type.typemethod.create 122** ::snit::RT.widget.typemethod.create 123** ::snit::RT.MakeInstanceCommand 124** ::snit::RT.InstanceTrace 125** ::snit::RT.ConstructInstance 126** ::snit::RT.UniqueName 127** ::snit::RT.UniqueInstanceNamespace 128** ::snit::RT.OptionDbGet 129* Object Destruction 130** ::snit::RT.method.destroy 131** ::snit::RT.DestroyObject 132** ::snit::RT.RemoveInstanceTrace 133* Typecomponent Management and Typemethod Caching 134** ::snit::RT.TypecomponentTrace 135** ::snit::RT.UnknownTypemethod 136* Component Management and Method Caching 137** ::snit::RT.Component 138** ::snit::RT.ComponentTrace 139** ::snit::RT.UnknownMethod 140** ::snit::RT.ClearInstanceCaches 141* Component Installation 142** ::snit::RT.installhull 143** ::snit::RT.install 144* Method/Variable Name Qualification 145** ::snit::RT.variable 146** ::snit::RT.mytypevar 147** ::snit::RT.myvar 148** ::snit::RT.myproc 149** ::snit::RT.codename 150** ::snit::RT.mytypemethod 151** ::snit::RT.mymethod 152** ::snit::RT.CallInstance 153* Utilities 154** ::snit::RT.from 155* Type Destruction 156** ::snit::RT.typemethod.destroy 157* Option Handling 158** ::snit::RT.method.cget 159** ::snit::RT.CacheCgetCommand 160** ::snit::RT.method.configurelist 161** ::snit::RT.CacheConfigureCommand 162** ::snit::RT.method.configure 163** ::snit::RT.GetOptionDbSpec 164* Type Introspection 165** ::snit::RT.typemethod.info 166** ::snit::RT.typemethod.info.typevars 167** ::snit::RT.typemethod.info.typemethods 168** ::snit::RT.typemethod.info.instances 169* Instance Introspection 170** ::snit::RT.method.info 171** ::snit::RT.method.info.type 172** ::snit::RT.method.info.typevars 173** ::snit::RT.method.info.typemethods 174** ::snit::RT.method.info.methods 175** ::snit::RT.method.info.vars 176** ::snit::RT.method.info.options 177 178