summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/SourceIndexVisitor.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-20 01:22:38 -0400
committerGravatar jeff2014-08-20 01:22:38 -0400
commitfbeb2b73ab51f3244454a63893fee6d847fd859d (patch)
tree4e5208e18b98e0679204973e1c30ae54ff0dd5a9 /src/cuchaz/enigma/analysis/SourceIndexVisitor.java
parentfinished reference navigation system. Still need to debug and polish it, but ... (diff)
downloadenigma-fork-fbeb2b73ab51f3244454a63893fee6d847fd859d.tar.gz
enigma-fork-fbeb2b73ab51f3244454a63893fee6d847fd859d.tar.xz
enigma-fork-fbeb2b73ab51f3244454a63893fee6d847fd859d.zip
missed a file
Diffstat (limited to 'src/cuchaz/enigma/analysis/SourceIndexVisitor.java')
-rw-r--r--src/cuchaz/enigma/analysis/SourceIndexVisitor.java524
1 files changed, 524 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/analysis/SourceIndexVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexVisitor.java
new file mode 100644
index 0000000..4e98989
--- /dev/null
+++ b/src/cuchaz/enigma/analysis/SourceIndexVisitor.java
@@ -0,0 +1,524 @@
1/*******************************************************************************
2 * Copyright (c) 2014 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Public License v3.0
5 * which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/gpl.html
7 *
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11package cuchaz.enigma.analysis;
12
13import com.strobel.assembler.metadata.TypeDefinition;
14import com.strobel.decompiler.languages.java.ast.Annotation;
15import com.strobel.decompiler.languages.java.ast.AnonymousObjectCreationExpression;
16import com.strobel.decompiler.languages.java.ast.ArrayCreationExpression;
17import com.strobel.decompiler.languages.java.ast.ArrayInitializerExpression;
18import com.strobel.decompiler.languages.java.ast.ArraySpecifier;
19import com.strobel.decompiler.languages.java.ast.AssertStatement;
20import com.strobel.decompiler.languages.java.ast.AssignmentExpression;
21import com.strobel.decompiler.languages.java.ast.AstNode;
22import com.strobel.decompiler.languages.java.ast.BinaryOperatorExpression;
23import com.strobel.decompiler.languages.java.ast.BlockStatement;
24import com.strobel.decompiler.languages.java.ast.BreakStatement;
25import com.strobel.decompiler.languages.java.ast.CaseLabel;
26import com.strobel.decompiler.languages.java.ast.CastExpression;
27import com.strobel.decompiler.languages.java.ast.CatchClause;
28import com.strobel.decompiler.languages.java.ast.ClassOfExpression;
29import com.strobel.decompiler.languages.java.ast.Comment;
30import com.strobel.decompiler.languages.java.ast.CompilationUnit;
31import com.strobel.decompiler.languages.java.ast.ComposedType;
32import com.strobel.decompiler.languages.java.ast.ConditionalExpression;
33import com.strobel.decompiler.languages.java.ast.ConstructorDeclaration;
34import com.strobel.decompiler.languages.java.ast.ContinueStatement;
35import com.strobel.decompiler.languages.java.ast.DoWhileStatement;
36import com.strobel.decompiler.languages.java.ast.EmptyStatement;
37import com.strobel.decompiler.languages.java.ast.EnumValueDeclaration;
38import com.strobel.decompiler.languages.java.ast.ExpressionStatement;
39import com.strobel.decompiler.languages.java.ast.FieldDeclaration;
40import com.strobel.decompiler.languages.java.ast.ForEachStatement;
41import com.strobel.decompiler.languages.java.ast.ForStatement;
42import com.strobel.decompiler.languages.java.ast.GotoStatement;
43import com.strobel.decompiler.languages.java.ast.IAstVisitor;
44import com.strobel.decompiler.languages.java.ast.Identifier;
45import com.strobel.decompiler.languages.java.ast.IdentifierExpression;
46import com.strobel.decompiler.languages.java.ast.IfElseStatement;
47import com.strobel.decompiler.languages.java.ast.ImportDeclaration;
48import com.strobel.decompiler.languages.java.ast.IndexerExpression;
49import com.strobel.decompiler.languages.java.ast.InstanceInitializer;
50import com.strobel.decompiler.languages.java.ast.InstanceOfExpression;
51import com.strobel.decompiler.languages.java.ast.InvocationExpression;
52import com.strobel.decompiler.languages.java.ast.JavaTokenNode;
53import com.strobel.decompiler.languages.java.ast.Keys;
54import com.strobel.decompiler.languages.java.ast.LabelStatement;
55import com.strobel.decompiler.languages.java.ast.LabeledStatement;
56import com.strobel.decompiler.languages.java.ast.LambdaExpression;
57import com.strobel.decompiler.languages.java.ast.LocalTypeDeclarationStatement;
58import com.strobel.decompiler.languages.java.ast.MemberReferenceExpression;
59import com.strobel.decompiler.languages.java.ast.MethodDeclaration;
60import com.strobel.decompiler.languages.java.ast.MethodGroupExpression;
61import com.strobel.decompiler.languages.java.ast.NewLineNode;
62import com.strobel.decompiler.languages.java.ast.NullReferenceExpression;
63import com.strobel.decompiler.languages.java.ast.ObjectCreationExpression;
64import com.strobel.decompiler.languages.java.ast.PackageDeclaration;
65import com.strobel.decompiler.languages.java.ast.ParameterDeclaration;
66import com.strobel.decompiler.languages.java.ast.ParenthesizedExpression;
67import com.strobel.decompiler.languages.java.ast.PrimitiveExpression;
68import com.strobel.decompiler.languages.java.ast.ReturnStatement;
69import com.strobel.decompiler.languages.java.ast.SimpleType;
70import com.strobel.decompiler.languages.java.ast.SuperReferenceExpression;
71import com.strobel.decompiler.languages.java.ast.SwitchSection;
72import com.strobel.decompiler.languages.java.ast.SwitchStatement;
73import com.strobel.decompiler.languages.java.ast.SynchronizedStatement;
74import com.strobel.decompiler.languages.java.ast.TextNode;
75import com.strobel.decompiler.languages.java.ast.ThisReferenceExpression;
76import com.strobel.decompiler.languages.java.ast.ThrowStatement;
77import com.strobel.decompiler.languages.java.ast.TryCatchStatement;
78import com.strobel.decompiler.languages.java.ast.TypeDeclaration;
79import com.strobel.decompiler.languages.java.ast.TypeParameterDeclaration;
80import com.strobel.decompiler.languages.java.ast.TypeReferenceExpression;
81import com.strobel.decompiler.languages.java.ast.UnaryOperatorExpression;
82import com.strobel.decompiler.languages.java.ast.VariableDeclarationStatement;
83import com.strobel.decompiler.languages.java.ast.VariableInitializer;
84import com.strobel.decompiler.languages.java.ast.WhileStatement;
85import com.strobel.decompiler.languages.java.ast.WildcardType;
86import com.strobel.decompiler.patterns.Pattern;
87
88import cuchaz.enigma.mapping.ClassEntry;
89
90public class SourceIndexVisitor implements IAstVisitor<SourceIndex,Void>
91{
92 @Override
93 public Void visitTypeDeclaration( TypeDeclaration node, SourceIndex index )
94 {
95 TypeDefinition def = node.getUserData( Keys.TYPE_DEFINITION );
96 ClassEntry classEntry = new ClassEntry( def.getInternalName() );
97 index.addDeclaration( node.getNameToken(), classEntry );
98
99 return node.acceptVisitor( new SourceIndexClassVisitor( classEntry ), index );
100 }
101
102 protected Void recurse( AstNode node, SourceIndex index )
103 {
104 for( final AstNode child : node.getChildren() )
105 {
106 child.acceptVisitor( this, index );
107 }
108 return null;
109 }
110
111 @Override
112 public Void visitMethodDeclaration( MethodDeclaration node, SourceIndex index )
113 {
114 return recurse( node, index );
115 }
116
117 @Override
118 public Void visitConstructorDeclaration( ConstructorDeclaration node, SourceIndex index )
119 {
120 return recurse( node, index );
121 }
122
123 @Override
124 public Void visitFieldDeclaration( FieldDeclaration node, SourceIndex index )
125 {
126 return recurse( node, index );
127 }
128
129 @Override
130 public Void visitEnumValueDeclaration( EnumValueDeclaration node, SourceIndex index )
131 {
132 return recurse( node, index );
133 }
134
135 @Override
136 public Void visitParameterDeclaration( ParameterDeclaration node, SourceIndex index )
137 {
138 return recurse( node, index );
139 }
140
141 @Override
142 public Void visitInvocationExpression( InvocationExpression node, SourceIndex index )
143 {
144 return recurse( node, index );
145 }
146
147 @Override
148 public Void visitMemberReferenceExpression( MemberReferenceExpression node, SourceIndex index )
149 {
150 return recurse( node, index );
151 }
152
153 @Override
154 public Void visitSimpleType( SimpleType node, SourceIndex index )
155 {
156 return recurse( node, index );
157 }
158
159 @Override
160 public Void visitIdentifierExpression( IdentifierExpression node, SourceIndex index )
161 {
162 return recurse( node, index );
163 }
164
165 @Override
166 public Void visitComment( Comment node, SourceIndex index )
167 {
168 return recurse( node, index );
169 }
170
171 @Override
172 public Void visitPatternPlaceholder( AstNode node, Pattern pattern, SourceIndex index )
173 {
174 return recurse( node, index );
175 }
176
177 @Override
178 public Void visitTypeReference( TypeReferenceExpression node, SourceIndex index )
179 {
180 return recurse( node, index );
181 }
182
183 @Override
184 public Void visitJavaTokenNode( JavaTokenNode node, SourceIndex index )
185 {
186 return recurse( node, index );
187 }
188
189 @Override
190 public Void visitIdentifier( Identifier node, SourceIndex index )
191 {
192 return recurse( node, index );
193 }
194
195 @Override
196 public Void visitNullReferenceExpression( NullReferenceExpression node, SourceIndex index )
197 {
198 return recurse( node, index );
199 }
200
201 @Override
202 public Void visitThisReferenceExpression( ThisReferenceExpression node, SourceIndex index )
203 {
204 return recurse( node, index );
205 }
206
207 @Override
208 public Void visitSuperReferenceExpression( SuperReferenceExpression node, SourceIndex index )
209 {
210 return recurse( node, index );
211 }
212
213 @Override
214 public Void visitClassOfExpression( ClassOfExpression node, SourceIndex index )
215 {
216 return recurse( node, index );
217 }
218
219 @Override
220 public Void visitBlockStatement( BlockStatement node, SourceIndex index )
221 {
222 return recurse( node, index );
223 }
224
225 @Override
226 public Void visitExpressionStatement( ExpressionStatement node, SourceIndex index )
227 {
228 return recurse( node, index );
229 }
230
231 @Override
232 public Void visitBreakStatement( BreakStatement node, SourceIndex index )
233 {
234 return recurse( node, index );
235 }
236
237 @Override
238 public Void visitContinueStatement( ContinueStatement node, SourceIndex index )
239 {
240 return recurse( node, index );
241 }
242
243 @Override
244 public Void visitDoWhileStatement( DoWhileStatement node, SourceIndex index )
245 {
246 return recurse( node, index );
247 }
248
249 @Override
250 public Void visitEmptyStatement( EmptyStatement node, SourceIndex index )
251 {
252 return recurse( node, index );
253 }
254
255 @Override
256 public Void visitIfElseStatement( IfElseStatement node, SourceIndex index )
257 {
258 return recurse( node, index );
259 }
260
261 @Override
262 public Void visitLabelStatement( LabelStatement node, SourceIndex index )
263 {
264 return recurse( node, index );
265 }
266
267 @Override
268 public Void visitLabeledStatement( LabeledStatement node, SourceIndex index )
269 {
270 return recurse( node, index );
271 }
272
273 @Override
274 public Void visitReturnStatement( ReturnStatement node, SourceIndex index )
275 {
276 return recurse( node, index );
277 }
278
279 @Override
280 public Void visitSwitchStatement( SwitchStatement node, SourceIndex index )
281 {
282 return recurse( node, index );
283 }
284
285 @Override
286 public Void visitSwitchSection( SwitchSection node, SourceIndex index )
287 {
288 return recurse( node, index );
289 }
290
291 @Override
292 public Void visitCaseLabel( CaseLabel node, SourceIndex index )
293 {
294 return recurse( node, index );
295 }
296
297 @Override
298 public Void visitThrowStatement( ThrowStatement node, SourceIndex index )
299 {
300 return recurse( node, index );
301 }
302
303 @Override
304 public Void visitCatchClause( CatchClause node, SourceIndex index )
305 {
306 return recurse( node, index );
307 }
308
309 @Override
310 public Void visitAnnotation( Annotation node, SourceIndex index )
311 {
312 return recurse( node, index );
313 }
314
315 @Override
316 public Void visitNewLine( NewLineNode node, SourceIndex index )
317 {
318 return recurse( node, index );
319 }
320
321 @Override
322 public Void visitVariableDeclaration( VariableDeclarationStatement node, SourceIndex index )
323 {
324 return recurse( node, index );
325 }
326
327 @Override
328 public Void visitVariableInitializer( VariableInitializer node, SourceIndex index )
329 {
330 return recurse( node, index );
331 }
332
333 @Override
334 public Void visitText( TextNode node, SourceIndex index )
335 {
336 return recurse( node, index );
337 }
338
339 @Override
340 public Void visitImportDeclaration( ImportDeclaration node, SourceIndex index )
341 {
342 return recurse( node, index );
343 }
344
345 @Override
346 public Void visitInitializerBlock( InstanceInitializer node, SourceIndex index )
347 {
348 return recurse( node, index );
349 }
350
351 @Override
352 public Void visitTypeParameterDeclaration( TypeParameterDeclaration node, SourceIndex index )
353 {
354 return recurse( node, index );
355 }
356
357 @Override
358 public Void visitCompilationUnit( CompilationUnit node, SourceIndex index )
359 {
360 return recurse( node, index );
361 }
362
363 @Override
364 public Void visitPackageDeclaration( PackageDeclaration node, SourceIndex index )
365 {
366 return recurse( node, index );
367 }
368
369 @Override
370 public Void visitArraySpecifier( ArraySpecifier node, SourceIndex index )
371 {
372 return recurse( node, index );
373 }
374
375 @Override
376 public Void visitComposedType( ComposedType node, SourceIndex index )
377 {
378 return recurse( node, index );
379 }
380
381 @Override
382 public Void visitWhileStatement( WhileStatement node, SourceIndex index )
383 {
384 return recurse( node, index );
385 }
386
387 @Override
388 public Void visitPrimitiveExpression( PrimitiveExpression node, SourceIndex index )
389 {
390 return recurse( node, index );
391 }
392
393 @Override
394 public Void visitCastExpression( CastExpression node, SourceIndex index )
395 {
396 return recurse( node, index );
397 }
398
399 @Override
400 public Void visitBinaryOperatorExpression( BinaryOperatorExpression node, SourceIndex index )
401 {
402 return recurse( node, index );
403 }
404
405 @Override
406 public Void visitInstanceOfExpression( InstanceOfExpression node, SourceIndex index )
407 {
408 return recurse( node, index );
409 }
410
411 @Override
412 public Void visitIndexerExpression( IndexerExpression node, SourceIndex index )
413 {
414 return recurse( node, index );
415 }
416
417 @Override
418 public Void visitUnaryOperatorExpression( UnaryOperatorExpression node, SourceIndex index )
419 {
420 return recurse( node, index );
421 }
422
423 @Override
424 public Void visitConditionalExpression( ConditionalExpression node, SourceIndex index )
425 {
426 return recurse( node, index );
427 }
428
429 @Override
430 public Void visitArrayInitializerExpression( ArrayInitializerExpression node, SourceIndex index )
431 {
432 return recurse( node, index );
433 }
434
435 @Override
436 public Void visitObjectCreationExpression( ObjectCreationExpression node, SourceIndex index )
437 {
438 return recurse( node, index );
439 }
440
441 @Override
442 public Void visitArrayCreationExpression( ArrayCreationExpression node, SourceIndex index )
443 {
444 return recurse( node, index );
445 }
446
447 @Override
448 public Void visitAssignmentExpression( AssignmentExpression node, SourceIndex index )
449 {
450 return recurse( node, index );
451 }
452
453 @Override
454 public Void visitForStatement( ForStatement node, SourceIndex index )
455 {
456 return recurse( node, index );
457 }
458
459 @Override
460 public Void visitForEachStatement( ForEachStatement node, SourceIndex index )
461 {
462 return recurse( node, index );
463 }
464
465 @Override
466 public Void visitTryCatchStatement( TryCatchStatement node, SourceIndex index )
467 {
468 return recurse( node, index );
469 }
470
471 @Override
472 public Void visitGotoStatement( GotoStatement node, SourceIndex index )
473 {
474 return recurse( node, index );
475 }
476
477 @Override
478 public Void visitParenthesizedExpression( ParenthesizedExpression node, SourceIndex index )
479 {
480 return recurse( node, index );
481 }
482
483 @Override
484 public Void visitSynchronizedStatement( SynchronizedStatement node, SourceIndex index )
485 {
486 return recurse( node, index );
487 }
488
489 @Override
490 public Void visitAnonymousObjectCreationExpression( AnonymousObjectCreationExpression node, SourceIndex index )
491 {
492 return recurse( node, index );
493 }
494
495 @Override
496 public Void visitWildcardType( WildcardType node, SourceIndex index )
497 {
498 return recurse( node, index );
499 }
500
501 @Override
502 public Void visitMethodGroupExpression( MethodGroupExpression node, SourceIndex index )
503 {
504 return recurse( node, index );
505 }
506
507 @Override
508 public Void visitAssertStatement( AssertStatement node, SourceIndex index )
509 {
510 return recurse( node, index );
511 }
512
513 @Override
514 public Void visitLambdaExpression( LambdaExpression node, SourceIndex index )
515 {
516 return recurse( node, index );
517 }
518
519 @Override
520 public Void visitLocalTypeDeclarationStatement( LocalTypeDeclarationStatement node, SourceIndex index )
521 {
522 return recurse( node, index );
523 }
524}