From: Alexis Laferrière Date: Mon, 20 Jul 2015 00:17:35 +0000 (-0400) Subject: contrib/jwrapper grammar: style clean up X-Git-Tag: v0.7.7~18^2~29 X-Git-Url: http://nitlanguage.org contrib/jwrapper grammar: style clean up Signed-off-by: Alexis Laferrière --- diff --git a/contrib/jwrapper/grammar/javap.sablecc b/contrib/jwrapper/grammar/javap.sablecc index ba92bc4..dcb413c 100644 --- a/contrib/jwrapper/grammar/javap.sablecc +++ b/contrib/jwrapper/grammar/javap.sablecc @@ -1,11 +1,15 @@ Grammar javap; +// --- Lexer identifier = ('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'$'|'0'..'9')*; blank = (' '|'\n'|'\t'|'\r')+; separator = ('.'|'/'); +brackets = '[]'; +wildcard = '?'; +// --- Parser Ignored blank; @@ -19,42 +23,53 @@ class_declaration = modifier* class_or_interface full_class_name class_or_interface = 'class'|'interface'; -modifier = 'public'|'private'|'protected'|'static'|'final'|'native'|'synchronized'|'abstract'|'threadsafe'|'transient'|'volatile'; -type = type_specifier '[]'*; -type_specifier = 'boolean'|'byte'|'char'|'short'|'int'|'float'|'long'|'double' | type_ref; +modifier + = 'public'|'private'|'protected'|'static'|'final'|'native'|'synchronized'|'abstract'|'threadsafe'|'transient'|'volatile'; +type = primitive_type brackets*; +primitive_type + = 'boolean'|'byte'|'char'|'short'|'int'|'float'|'long'|'double' + | type_ref; -type_ref = full_class_name | generic_identifier 'extends' full_class_name | '?'; -type_refs = {tail:} type_refs ',' type_ref | {head:} type_ref; +type_ref + = full_class_name + | generic_identifier 'extends' full_class_name + | question_mark; generic_param = '<' generic_parameter_list '>'; -generic_parameter_list = {tail:} generic_parameter_list ',' parameter | {head:} parameter; -generic_identifier = full_class_name | '?'; - -full_class_name = full_class_name separator class_name | class_name; +generic_parameter_list + = {tail:} generic_parameter_list ',' parameter + | {head:} parameter; +generic_identifier + = full_class_name + | wildcard; + +full_class_name + = {tail:} full_class_name separator class_name + | {head:} class_name; class_name = identifier generic_param?; -interface_name = full_class_name; -interface_list = {tail:} interface_list ',' interface_name | {head:} interface_name; - parameter = type '...'?; -parameter_list_comp = {tail:} parameter_list_comp ',' parameter | {head:} parameter; -parameter_list = parameter_list_comp; - -exception = type; -exception_list = exception_list ',' exception | exception; +parameter_list + = {tail:} parameter_list ',' parameter + | {head:} parameter; -statement = variable_declaration | statement_block | ';'; -statement_block = '{' statement* '}'; - -variable_id = identifier '[]'*; +attribute_id = identifier brackets*; method_id = identifier; -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? ';'; +property_declaration + = {method:} modifier* generic_param? type method_id '(' parameter_list? ')' throws_declaration? ';' + | {constructor:} modifier* full_class_name '(' parameter_list? ')' throws_declaration? ';' + | {attribute:} modifier* type attribute_id throws_declaration? ';' + | {static:} modifier* '{' '}' ';' + | ';'; + implements_declaration = 'implements' interface_list*; -extends_interface_declaration = 'extends' interface_list*; extends_declaration = 'extends' type; -static_declaration = modifier* '{' '}' ';'; +interface_list + = {tail:} interface_list ',' full_class_name + | {head:} full_class_name; + throws_declaration = 'throws' exception_list?; +exception_list + = {tail:} exception_list ',' type + | {head:} type; diff --git a/contrib/jwrapper/src/javap_visitor.nit b/contrib/jwrapper/src/javap_visitor.nit index 9c1440d..375e7dd 100644 --- a/contrib/jwrapper/src/javap_visitor.nit +++ b/contrib/jwrapper/src/javap_visitor.nit @@ -143,7 +143,7 @@ redef class Nidentifier end # Primitive array node -redef class N_39d_91d_93d_39d +redef class Nbrackets redef fun accept_visitor(v) do if v.declaration_type == "variable" then @@ -253,7 +253,7 @@ end # # # Method declaration -redef class Nmethod_declaration +redef class Nproperty_declaration_method redef fun accept_visitor(v) do v.declaration_type = "method" @@ -270,7 +270,7 @@ redef class Nmethod_declaration end # Constructor declaration -redef class Nconstructor_declaration +redef class Nproperty_declaration_constructor redef fun accept_visitor(v) do v.declaration_type = "constructor" @@ -280,7 +280,7 @@ redef class Nconstructor_declaration end # Variable property declaration -redef class Nvariable_declaration +redef class Nproperty_declaration_attribute redef fun accept_visitor(v) do v.declaration_type = "variable" @@ -295,7 +295,7 @@ redef class Nvariable_declaration end # Static property declaration -redef class Nstatic_declaration +redef class Nproperty_declaration_static redef fun accept_visitor(v) do v.declaration_type = "static" @@ -305,7 +305,7 @@ redef class Nstatic_declaration end # Identifier of a variable -redef class Nvariable_id +redef class Nattribute_id redef fun accept_visitor(v) do v.declaration_element = "id"