|
| 1 | +start -> java_statement ; |
| 2 | + |
| 3 | +java_statement -> |
| 4 | + class_declaration |
| 5 | + | interface_declaration |
| 6 | + | enum_declaration |
| 7 | + | method_signature |
| 8 | + | variable_declaration |
| 9 | + | comment |
| 10 | + ; |
| 11 | + |
| 12 | +class_declaration -> kw_class _ java_type_name _ "{" _ class_body _ "}" ; |
| 13 | + |
| 14 | +class_body -> class_member [ _ ";" _ class_member ] ; |
| 15 | + |
| 16 | +class_member -> |
| 17 | + [ access_modifier _ ] |
| 18 | + [ kw_static _ ] |
| 19 | + [ kw_final _ ] |
| 20 | + [ [ kw_private | kw_public | kw_protected ] _ ] |
| 21 | + method_signature |
| 22 | + | variable_declaration |
| 23 | + ; |
| 24 | + |
| 25 | +method_signature -> |
| 26 | + [ access_modifier _ ] |
| 27 | + [ kw_static _ ] |
| 28 | + [ kw_final _ ] |
| 29 | + return_type _ java_method_name "(" _ parameter_list ")" ; |
| 30 | + |
| 31 | +return_type -> kw_void | java_type ; |
| 32 | + |
| 33 | +parameter_list -> [ parameter [ _ "," _ parameter ] ] ; |
| 34 | + |
| 35 | +parameter -> java_type _ java_variable_name ; |
| 36 | + |
| 37 | +variable_declaration -> |
| 38 | + [ kw_final _ ] |
| 39 | + java_type _ java_variable_name [ _ "=" _ java_expression ] ";" ; |
| 40 | + |
| 41 | +java_type -> kw_int | kw_string | kw_boolean | kw_double | kw_float | kw_char | kw_long | kw_short | kw_byte | kw_void | java_reference_type ; |
| 42 | + |
| 43 | +java_reference_type -> class_type | interface_type | array_type ; |
| 44 | + |
| 45 | +class_type -> java_type_name ; |
| 46 | + |
| 47 | +interface_type -> kw_interface _ java_type_name ; |
| 48 | + |
| 49 | +array_type -> java_type "[]" ; |
| 50 | + |
| 51 | +java_expression -> |
| 52 | + java_variable_name |
| 53 | + | java_literal |
| 54 | + | java_method_call |
| 55 | + ; |
| 56 | + |
| 57 | +java_literal -> |
| 58 | + java_number_literal |
| 59 | + | java_string_literal |
| 60 | + | java_boolean_literal |
| 61 | + ; |
| 62 | + |
| 63 | +java_number_literal -> "0" | "1" | "2" | "42" | "100" | "200" | "404" ; |
| 64 | + |
| 65 | +java_string_literal -> "\"" "\"" ; |
| 66 | + |
| 67 | +java_boolean_literal -> "true" | "false" ; |
| 68 | + |
| 69 | +java_method_call -> java_variable_name "(" _ argument_list ")" ; |
| 70 | + |
| 71 | +argument_list -> [ java_expression [ _ "," _ java_expression ] ] ; |
| 72 | + |
| 73 | +java_variable_name -> "x" | "y" | "z" | "result" | "data" | "input" ; |
| 74 | + |
| 75 | +java_method_name -> "main" | "calculate" | "setValue" | "getResult" ; |
| 76 | + |
| 77 | +java_type_name -> "String" | "Integer" | "Double" | "Float" | "Object" | "CustomType" ; |
| 78 | + |
| 79 | +interface_declaration -> kw_interface _ java_type_name _ "{" _ interface_body _ "}" ; |
| 80 | + |
| 81 | +interface_body -> interface_method_signature [ _ ";" _ interface_method_signature ] ; |
| 82 | + |
| 83 | +interface_method_signature -> [ kw_static _ ] return_type _ java_method_name "(" _ parameter_list ")" ; |
| 84 | + |
| 85 | +enum_declaration -> kw_enum _ java_type_name _ "{" _ enum_member_list _ "}" ; |
| 86 | + |
| 87 | +enum_member_list -> enum_member [ _ "," _ enum_member ] ; |
| 88 | + |
| 89 | +enum_member -> java_variable_name [ _ "=" _ java_expression ] ; |
| 90 | + |
| 91 | +access_modifier -> kw_public | kw_private | kw_protected ; |
| 92 | + |
| 93 | +comment -> |
| 94 | + single_line_comment |
| 95 | + | multi_line_comment |
| 96 | + | javadoc_comment |
| 97 | + ; |
| 98 | + |
| 99 | +single_line_comment -> "//" _ comment_text ; |
| 100 | + |
| 101 | +multi_line_comment -> "/*" _ comment_text _ "*/" ; |
| 102 | + |
| 103 | +javadoc_comment -> "/**" _ comment_text _ "*/" ; |
| 104 | + |
| 105 | +comment_text -> |
| 106 | + "Method to calculate the result" |
| 107 | + | "TODO: Improve performance" |
| 108 | + | "This is a constructor" |
| 109 | + | "@param description" |
| 110 | + | "@returns description" |
| 111 | + | "@throws exception" |
| 112 | + | "@deprecated Use alternative method" |
| 113 | + ; |
| 114 | + |
| 115 | +kw_class -> "class" ; |
| 116 | +kw_interface -> "interface" ; |
| 117 | +kw_enum -> "enum" ; |
| 118 | +kw_static -> "static" ; |
| 119 | +kw_final -> "final" ; |
| 120 | +kw_private -> "private" ; |
| 121 | +kw_public -> "public" ; |
| 122 | +kw_protected -> "protected" ; |
| 123 | +kw_void -> "void" ; |
| 124 | +kw_int -> "int" ; |
| 125 | +kw_string -> "String" ; |
| 126 | +kw_boolean -> "boolean" ; |
| 127 | +kw_double -> "double" ; |
| 128 | +kw_float -> "float" ; |
| 129 | +kw_char -> "char" ; |
| 130 | +kw_long -> "long" ; |
| 131 | +kw_short -> "short" ; |
| 132 | +kw_byte -> "byte" ; |
| 133 | +kw_return -> "return" ; |
| 134 | +kw_this -> "this" ; |
0 commit comments