commit a copy of snit
[scpubgit/TenDotTcl.git] / snit / roadmap2.txt
CommitLineData
d4567ecb 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