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