Commit | Line | Data |
d4567ecb |
1 | This is a roadmap to the code layout in snit.tcl. |
2 | |
3 | Package Definition |
4 | * package provide |
5 | * ::snit:: namespace definition; exports Snit commands. |
6 | |
7 | Major 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 | |
69 | Compilation 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 | |
100 | Public 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 | |
109 | Utility Commands |
110 | * proc ::snit::Expand |
111 | * proc ::snit::Mappend |
112 | * proc ::snit::CheckArgs |
113 | * proc ::snit::Capitalize |
114 | |
115 | Snit Runtime Library |
116 | |
117 | The commands defined here are used by Snit-generated code at run-time |
118 | rather 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 | |