X-Git-Url: http://nitlanguage.org diff --git a/contrib/jwrapper/grammar/javap.sablecc b/contrib/jwrapper/grammar/javap.sablecc index 4e9165a..0777c88 100644 --- a/contrib/jwrapper/grammar/javap.sablecc +++ b/contrib/jwrapper/grammar/javap.sablecc @@ -9,16 +9,18 @@ separator = ('.'|'/'); Parser Ignored blank; -multi_files = class_or_interface*; +multi_files = compiled_from? class_or_interface; class_or_interface = class_declaration | interface_declaration; -class_declaration = class_header '{' field_declaration* '}'; +compiled_from = 'Compiled from "' identifier+ '.java"'; + +class_declaration = class_header '{' property_declaration* '}'; class_header = modifier* 'class' full_class_name extends_declaration? implements_declaration? throws_declaration?; interface_declaration = modifier* 'interface' full_class_name extends_interface_declaration? - '{' field_declaration* '}'; + '{' property_declaration* '}'; modifier = 'public'|'private'|'protected'|'static'|'final'|'native'|'synchronized'|'abstract'|'threadsafe'|'transient'|'volatile'; type = type_specifier '[]'*; @@ -50,7 +52,7 @@ statement_block = '{' statement* '}'; variable_id = identifier '[]'*; method_id = identifier; -field_declaration = method_declaration | constructor_declaration | variable_declaration | static_declaration | ';'; +property_declaration = method_declaration | constructor_declaration | variable_declaration | static_declaration | ';'; variable_declaration = modifier* type variable_id throws_declaration? ';'; method_declaration = modifier* generic_param? type method_id '(' parameter_list? ')' throws_declaration? ';'; constructor_declaration = modifier* full_class_name '(' parameter_list? ')' throws_declaration? ';';