1710 Commits

Author SHA1 Message Date
Ben Gruver
aa06a4c782 Improve parsing of an invalid SmaliMethod with no .end method
This ensures that we still generate a SmaliMethod in this case, instead
of erroring out when not matching the END_METHOD_DIRECTIVE and aborting
the main SmaliMethod mark.
2015-02-14 18:09:29 -08:00
Ben Gruver
4a9e7df53e Fix some warnings in the debugger code 2015-02-08 16:15:26 -08:00
Ben Gruver
6649a75532 Add some required runReadAction wrappers in SmaliCodeFragmentFactory 2015-02-01 20:16:39 -08:00
Ben Gruver
e6da8cd564 Massage the tries before using them for method analysis 2015-02-01 20:14:37 -08:00
Ben Gruver
78bd9c29a9 Improve error handling around method parameter lists 2015-01-31 10:27:09 -08:00
Ben Gruver
3b7332192b Improve error handling for single-token productions 2015-01-30 18:46:11 -08:00
Ben Gruver
7e6f050bac Refactor how errors are handled throughout the parser 2015-01-27 19:28:36 -08:00
Ben Gruver
a06ac49b6b Fix the array data SmalideaMethod test 2015-01-27 19:27:48 -08:00
Ben Gruver
0a5f278d5f Start adding better support for invalid classes/methods
This tweaks the nullability of various methods/parameters, and ensures
they are accessed appropriately
2015-01-25 18:36:54 -08:00
Ben Gruver
a227c0b142 Add and fix the InvalidClassDirective test 2015-01-25 14:02:29 -08:00
Ben Gruver
2d39ef6337 Add and fix a parser test for a blank file 2015-01-25 14:02:25 -08:00
Ben Gruver
0f8017e16a Remove stale license noticeds from NOTICE file 2015-01-22 16:50:49 -08:00
Ben Gruver
a5efca6fe6 Add support for evaluating pNN style registers 2015-01-22 09:42:48 -08:00
Ben Gruver
0a2debe4e6 Add support for the payload instructions while calculating offsets 2015-01-21 09:32:01 -08:00
Ben Gruver
a7f77ff8d0 Add support for array-data 2015-01-21 09:32:01 -08:00
Ben Gruver
0dd228064d Add support for sparse/packed switch instructions 2015-01-21 09:32:01 -08:00
Ben Gruver
9b97cfdf48 Implement try blocks in SmalideaMethod 2015-01-21 09:32:01 -08:00
Ben Gruver
762bf07e35 Add tests for the dexlib2 adapters 2015-01-21 09:32:01 -08:00
Ben Gruver
4645cc437d Implement parsing for escaped strings 2015-01-21 09:32:01 -08:00
Ben Gruver
1570315fcf Implement advanced/multi resolve for SmaliClassTypeElement 2015-01-21 09:32:01 -08:00
Ben Gruver
a28e8f2363 Add a CodeFragmentFactory to allow evaluation of arbitrary registers 2015-01-21 09:32:01 -08:00
Ben Gruver
cbd87b904e Create a psi-backed dexlib2 Method implementation 2015-01-21 09:32:01 -08:00
Ben Gruver
5897c08299 Implement reference functionality for SmaliFieldReference 2015-01-21 09:32:01 -08:00
Ben Gruver
81d77d0dab Implement reference functionality for SmaliMethodReference 2015-01-21 09:32:01 -08:00
Ben Gruver
60c41a3b14 Fix some warnings in SmaliCompositeElement 2015-01-21 09:32:01 -08:00
Ben Gruver
ec63d20bb8 Implement reference functionality for label references 2015-01-21 09:32:01 -08:00
Ben Gruver
190ce57ab6 Add findNext and findPrevSiblingByClass to SmaliCompositeElement 2015-01-21 09:32:01 -08:00
Ben Gruver
6513dc0124 Implement initial debugging support 2015-01-21 09:32:01 -08:00
Ben Gruver
d61e3c2947 junit.framework.Assert -> org.junit.Assert 2015-01-21 09:32:01 -08:00
Ben Gruver
a788ab1dc3 Implement basic support for instruction offsets 2015-01-21 09:32:01 -08:00
Ben Gruver
2ab03ae212 Don't modify modifier outside of a write command 2015-01-21 09:32:01 -08:00
Ben Gruver
145cd6d518 Fix up the test configuration 2015-01-21 09:32:00 -08:00
Ben Gruver
56d5befed4 Implement non-code/body parts of SmaliMethod and related functionality 2015-01-21 09:32:00 -08:00
Ben Gruver
12b3579577 Implement some of the initial .register and register reference stuff 2015-01-21 09:32:00 -08:00
Ben Gruver
3048a6c897 Extract out some of the common TypeElement implementation 2015-01-21 09:32:00 -08:00
Ben Gruver
5844bd6dd0 Flesh out SmaliField and related methods 2015-01-21 09:32:00 -08:00
Ben Gruver
2fd677db88 Tweak how array descriptors are parsed
This is needed to allow smalidea to have an outer array type element to
represent the type as a whole, and an inner class type element for the
actual element type
2015-01-21 09:32:00 -08:00
Ben Gruver
b4b9c6c387 Get qualifiedName from stub in when possible in SmaliClass 2015-01-21 09:32:00 -08:00
Ben Gruver
9a1db48dc5 Flesh out SmaliAnnotation and related classes/methods 2015-01-21 09:32:00 -08:00
Ben Gruver
6d81598612 Implement SmaliClass.getName()
This is the remaining piece to allow references to smali types from java
code
2015-01-21 09:32:00 -08:00
Ben Gruver
bc200776bc Implement extends and implements list
This also includes the relevant implementations in SmaliClass
2015-01-21 09:32:00 -08:00
Ben Gruver
31aad6b5cd Implement SmaliClassType and SmaliClassTypeElement
This implements enough plumbing to get basic class references working
from within smali files.
2015-01-21 09:32:00 -08:00
Ben Gruver
f563e1d367 Add support for primitives and arrays in the NameUtils conversion methods 2015-01-21 09:32:00 -08:00
Ben Gruver
d91aabc5f9 Implement initial SmaliExtendsList and SmaliImplementsList 2015-01-21 09:32:00 -08:00
Ben Gruver
3bd51ea4e4 Implement SmaliAnnotation.getQualifiedName() and related tests 2015-01-21 09:32:00 -08:00
Ben Gruver
010b0fb998 Add PsiModifierList implementation
Also implement PsiModifierList-related methods in SmaliClass
2015-01-21 09:32:00 -08:00
Ben Gruver
056b1a6556 Add PsiClassOwner implementation to SmaliFile
Also add tests for implemented methods in SmaliFile and SmaliClass
2015-01-21 09:32:00 -08:00
Ben Gruver
649239bcce Add an initial stub implementation of PsiAnnotation 2015-01-21 09:32:00 -08:00
Ben Gruver
db1b08807f Implement PsiClass.getQualifiedName() 2015-01-21 09:32:00 -08:00
Ben Gruver
7106c64346 Add an initial stub implementation of PsiClass 2015-01-21 09:32:00 -08:00