-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmEstProyecto.bas
342 lines (293 loc) · 9.14 KB
/
mEstProyecto.bas
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
Attribute VB_Name = "mEstProyecto"
Option Explicit
Enum eTipoRutinas
TIPO_SUB = 1
TIPO_FUN = 2
TIPO_PROPIEDAD = 6
End Enum
Enum eTipoArchivo
TIPO_ARCHIVO_FRM = 1
TIPO_ARCHIVO_BAS = 2
TIPO_ARCHIVO_CLS = 3
TIPO_ARCHIVO_OCX = 4
TIPO_ARCHIVO_PAG = 5
TIPO_ARCHIVO_REL = 6
TIPO_ARCHIVO_DSR = 7
End Enum
Enum eEstado
NOCHEQUEADO = 0
LIVE = 1
DEAD = 2
End Enum
Enum eTipoPropiedad
TIPO_GET = 1
TIPO_LET = 2
TIPO_SET = 3
End Enum
Type eDatosVariables
Nombre As String
NombreVariable As String
Publica As Boolean
Operador As String
KeyNode As String
Estado As eEstado
Tipo As String
TipoVb As String
Predefinido As Boolean 'tipo variant x defecto ?
UsaDim As Boolean 'para versiones > 4 debiera usar private
UsaGlobal As Boolean 'para versiones > 4 debiersa usar public
UsaPrivate As Boolean 'para constantes con const x =
BasicOldStyle As Boolean 'definida al viejo estilo basic $,%,&
Linea As Integer 'linea de la rutina
End Type
Type eDatosControl
Nombre As String 'nombre del control
Clase As String 'clase del control
Eventos As String 'eventos programados
Numero As Integer 'cantidad de controles
Descripcion As String 'descripcion
End Type
Type eTipoDeVariable
TipoDefinido As String
Cantidad As Integer
End Type
Type eDatosParametros
PorValor As Boolean
Nombre As String
Glosa As String
TipoParametro As String
Estado As eEstado
BasicStyle As Boolean
End Type
Type eInfoAnalisis
Icono As Integer
Problema As String
Linea As Integer
End Type
Type eCodigo
Codigo As String
Linea As Integer
End Type
Type eRutinas
Nombre As String
NombreRutina As String
Aparams() As eDatosParametros 'informacion de los parametros
nVariables As Long
aVariables() As eDatosVariables 'variables de las rutinas
aRVariables() As eTipoDeVariable 'resumen de las variables
aAnalisis() As eInfoAnalisis
nAnalisis As Integer
Tipo As eTipoRutinas 'funcion/sub/propiedad
TipoProp As eTipoPropiedad 'get/let/set
Publica As Boolean
KeyNode As String
TempFileName As String
TempCodigoRutina As String
aCodigoRutina() As eCodigo 'guardar el codigo de la rutina
NumeroDeLineas As Integer
NumeroDeComentarios As Integer
NumeroDeBlancos As Integer
TotalLineas As Integer
Estado As eEstado 'usada/no usada
RegresaValor As Boolean 'usado para las funciones
Mensaje As String
IsObjectSub As Boolean 'es sub de control ?
IsMenu As Boolean
IsSeparador As Boolean
Linea As Integer 'linea del archivo
TipoRetorno As String
BasicStyle As Boolean
End Type
Type eElementosTipos
Nombre As String
Tipo As String
Estado As eEstado
KeyNode As String
Linea As Integer
End Type
Type eTipos
Nombre As String
NombreVariable As String
Publica As Boolean
KeyNode As String
Estado As eEstado
Linea As Integer
aElementos() As eElementosTipos
End Type
Type eElementosEnum
Nombre As String
Valor As String
Estado As eEstado
KeyNode As String
Linea As Integer
End Type
Type eEnum
Nombre As String
NombreVariable As String
Publica As Boolean
KeyNode As String
Estado As eEstado
Linea As Integer
aElementos() As eElementosEnum
End Type
Type eDatos
OptionExplicit As Boolean 'usa option explicit
Explorar As Boolean 'analizar archivo
Nombre As String 'nombre
PathFisico As String 'path fisico
FileSize As Long 'tamaño
FILETIME As String 'fecha/hora
ObjectName As String 'nombre logico
Descripcion As String
Usado As Boolean 'se hace referencia a alguna variable/sub/propiedad
TipoDeArchivo As eTipoArchivo 'frm,bas,cls,pag,ocx
aGeneral() As eCodigo 'guardar codigo de general
aAnalisis() As eInfoAnalisis 'arreglo donde se guarda los problemas de analisis
nAnalisis As Integer 'contador del arreglo de analisis
Linea As Integer 'linea de codigo de la seccion general
KeyNodeFrm As String 'llaves de los nodos
KeyNodeBas As String 'llaves de los nodos
KeyNodeCls As String 'llaves de los nodos
KeyNodeKtl As String 'llaves de los nodos
KeyNodePag As String 'llaves de los nodos
KeyNodeRel As String 'llaves de los nodos
KeyNodeDsr As String 'llaves de los nodos
nControles As Integer 'total de controles de archivo
aControles() As eDatosControl 'guardar controles
nVariables As Integer
nVariablesPrivadas As Integer
nVariablesPublicas As Integer
aVariables() As eDatosVariables 'guardar variables
aTipoVariable() As eTipoDeVariable 'acumulador de tipos de variables
KeyNodeVar As String
nConstantes As Integer
nConstantesPrivadas As Integer
nConstantesPublicas As Integer
aConstantes() As eDatosVariables 'guardar constantes
KeyNodeCte As String
nEnumeraciones As Integer
nEnumeracionesPrivadas As Integer
nEnumeracionesPublicas As Integer
aEnumeraciones() As eEnum 'guardar enumeraciones
KeyNodeEnum As String
nArray As Integer
nArrayPrivadas As Integer
nArrayPublicas As Integer
aArray() As eDatosVariables 'guardar arrays
KeyNodeArr As String
nRutinas As Integer
nTipoSub As Integer
nTipoSubPublicas As Integer
nTipoSubPrivadas As Integer
KeyNodeSub As String
NumeroDeLineas As Integer
NumeroDeLineasEnBlanco As Integer
NumeroDeLineasComentario As Integer
TotalLineas As Integer
aRutinas() As eRutinas 'guardar rutinas
nTipoFun As Integer
nTipoFunPublica As Integer
nTipoFunPrivada As Integer
KeyNodeFun As String
nTipoApi As Integer
KeyNodeApi As String
aApis() As eDatosVariables 'guardar apis
nTipos As Integer
nTiposPrivadas As Integer
nTiposPublicas As Integer
aTipos() As eTipos 'guardar tipos
KeyNodeTipo As String
nPropiedades As Integer
nPropertyLet As Integer
nPropertySet As Integer
nPropertyGet As Integer
KeyNodeProp As String
nEventos As Integer
nEventosPrivadas As Integer
nEventosPublicas As Integer
aEventos() As eDatosVariables 'guardar eventos
KeyNodeEvento As String
MiembrosPrivados As Integer
MiembrosPublicos As Integer
End Type
Public Enum eTipoDepencia
TIPO_DLL = 1
TIPO_OCX = 2
TIPO_RES = 3
TIPO_PAGE = 4
End Enum
Public Type eDependencias
Tipo As eTipoDepencia
Archivo As String
GUID As String
KeyNode As String
Name As String
ContainingFile As String
HelpString As String
HelpFile As String
MajorVersion As Long
MinorVersion As Long
FileSize As Long
FILETIME As String
End Type
Public Enum eTipoProyecto
PRO_TIPO_NONE = 0
PRO_TIPO_EXE = 1
PRO_TIPO_DLL = 2
PRO_TIPO_OCX = 3
PRO_TIPO_EXE_X = 4
End Enum
Public Type eProyecto
Nombre As String
Archivo As String
Icono As Integer
Version As Integer
PathFisico As String
ExeName As String
TipoProyecto As eTipoProyecto
FileSize As Long
FILETIME As String
Startup As String
Analizado As Boolean
aArchivos() As eDatos
aDepencias() As eDependencias
End Type
Public ProyectoO As eProyecto
Public ProyectoD As eProyecto
Public Type eTotalesProyecto
TotalVariables As Long
TotalVariablesPrivadas As Long
TotalVariablesPublicas As Long
TotalConstantes As Long
TotalConstantesPrivadas As Long
TotalConstantesPublicas As Long
TotalEnumeraciones As Long
TotalEnumeracionesPrivadas As Long
TotalEnumeracionesPublicas As Long
TotalApi As Long
TotalArray As Long
TotalArrayPrivadas As Long
TotalArrayPublicas As Long
TotalTipos As Long
TotalTiposPrivadas As Long
TotalTiposPublicas As Long
TotalSubs As Long
TotalSubsPrivadas As Long
TotalSubsPublicas As Long
TotalFunciones As Long
TotalFuncionesPrivadas As Long
TotalFuncionesPublicas As Long
TotalLineasDeCodigo As Long
TotalLineasEnBlancos As Long
TotalLineasDeComentarios As Long
TotalPropiedades As Long
TotalPropertyLets As Integer
TotalPropertySets As Integer
TotalPropertyGets As Integer
TotalControles As Long
TotalEventos As Long
TotalMiembrosPrivados As Long
TotalMiembrosPublicos As Long
End Type
Public TotalesProyectoO As eTotalesProyecto
Public TotalesProyectoD As eTotalesProyecto