43 Commits

Author SHA1 Message Date
Ben Gruver
1d3d657b7f Improve error recovery of arrow parsing 2015-02-26 09:41:55 -08:00
Ben Gruver
bcc0d5fa64 Improve error handling for missing reference_type_descriptor 2015-02-26 09:37:16 -08:00
Ben Gruver
24b1063e50 Improve parsing error recovery for the end method directive 2015-02-26 08:58:37 -08:00
Ben Gruver
f35c18489b Improve error handling for subannotation parsing 2015-02-21 14:02:54 -08:00
Ben Gruver
4640cc9c5b Improve error handling for literal parsing 2015-02-21 14:02:12 -08:00
Ben Gruver
251d6073b9 Improve error handling for annotation element parsing 2015-02-21 12:43:13 -08:00
Ben Gruver
1325537f8a Improve the error handling of annotation parsing 2015-02-21 12:23:38 -08:00
Ben Gruver
cbde720efa Improve the parsing of a field type 2015-02-20 20:54:31 -08:00
Ben Gruver
01f8c7dc7b Improve how the field annotations/end field thing is parsed 2015-02-20 20:03:45 -08:00
Ben Gruver
d5b748f4f5 Minor improvement to how the colon is parsed for a field declaration 2015-02-20 19:04:44 -08:00
Ben Gruver
dd4e572d0b Ensure there's always a member name element for a field 2015-02-19 20:03:59 -08:00
Ben Gruver
7d0a6c3854 Get rid of recoverWithMarker
Instead, we can just do a mark() before calling recover. herp-a-derp.
2015-02-19 20:01:18 -08:00
Ben Gruver
3505b35057 Merge the empty modifier list with the access list 2015-02-18 20:04:58 -08:00
Ben Gruver
9423a7d7d0 Start improving the error resistance of field declarations 2015-02-16 12:57:49 -08:00
Ben Gruver
f47973006b Split out a separate class access list, to improve parsing 2015-02-16 10:45:26 -08:00
Ben Gruver
6a520231e7 Implement an empty throws list 2015-02-15 12:08:03 -08:00
Ben Gruver
d733304122 Make sure we always get a method prototype and method param list 2015-02-14 20:29:05 -08:00
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
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
a227c0b142 Add and fix the InvalidClassDirective test 2015-01-25 14:02:29 -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
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
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
9a1db48dc5 Flesh out SmaliAnnotation and related classes/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
010b0fb998 Add PsiModifierList implementation
Also implement PsiModifierList-related methods in SmaliClass
2015-01-21 09:32:00 -08:00
Ben Gruver
be0914bc81 Implement initial SmaliCatchStatement and SmaliCatchAllStatement 2015-01-21 09:32:00 -08:00
Ben Gruver
4e834f8323 Implement initial SmaliVoidElementType 2015-01-21 09:32:00 -08:00
Ben Gruver
a85dc013f9 Implement initial SmaliArrayTypeElement 2015-01-21 09:32:00 -08:00
Ben Gruver
d05c6f0f2b Implement initial SmaliClassTypeElement 2015-01-21 09:32:00 -08:00
Ben Gruver
da998c529e Initially implement large chunk of remaining Psi types 2015-01-21 09:32:00 -08:00
Ben Gruver
a3d2e1581e Implement initial SmaliPrimitiveType 2015-01-21 09:32:00 -08:00
Ben Gruver
04ca67d3b2 Implement initial top level statements 2015-01-21 09:32:00 -08:00
Ben Gruver
7389cfbb7e Implement initial SmaliLiteral 2015-01-21 09:32:00 -08:00
Ben Gruver
65eecc51b2 Implement initial SmaliAnnotation 2015-01-21 09:32:00 -08:00
Ben Gruver
4a75c556bb Implement initial SmaliField and SmaliMethod 2015-01-21 09:32:00 -08:00
Ben Gruver
4be4005d61 Improve error recovery in the parser 2015-01-21 09:32:00 -08:00
Ben Gruver
076c60644f Implement a basic parser, generating a flat Psi tree 2015-01-21 09:32:00 -08:00