📄 java12.cup
字号:
// 19.8.4) Static Initializersstatic_initializer ::= STATIC block ;// 19.8.5) Constructor Declarationsconstructor_declaration ::= modifiers_opt constructor_declarator throws_opt constructor_body ;constructor_declarator ::= simple_name LPAREN formal_parameter_list_opt RPAREN ;constructor_body ::= LBRACE explicit_constructor_invocation block_statements RBRACE | LBRACE explicit_constructor_invocation RBRACE | LBRACE block_statements RBRACE | LBRACE RBRACE ;explicit_constructor_invocation ::= THIS LPAREN argument_list_opt RPAREN SEMICOLON | SUPER LPAREN argument_list_opt RPAREN SEMICOLON | primary DOT THIS LPAREN argument_list_opt RPAREN SEMICOLON | primary DOT SUPER LPAREN argument_list_opt RPAREN SEMICOLON ;// 19.9) Interfaces// 19.9.1) Interface Declarationsinterface_declaration ::= modifiers_opt INTERFACE IDENTIFIER extends_interfaces_opt interface_body ;extends_interfaces_opt ::= | extends_interfaces ;extends_interfaces ::= EXTENDS interface_type | extends_interfaces COMMA interface_type ;interface_body ::= LBRACE interface_member_declarations_opt RBRACE ;interface_member_declarations_opt ::= | interface_member_declarations ;interface_member_declarations ::= interface_member_declaration | interface_member_declarations interface_member_declaration ;interface_member_declaration ::= constant_declaration | abstract_method_declaration | class_declaration | interface_declaration | SEMICOLON ;constant_declaration ::= field_declaration ;abstract_method_declaration ::= method_header SEMICOLON ;// 19.10) Arraysarray_initializer ::= LBRACE variable_initializers COMMA RBRACE | LBRACE variable_initializers RBRACE | LBRACE COMMA RBRACE | LBRACE RBRACE ;variable_initializers ::= variable_initializer | variable_initializers COMMA variable_initializer ;// 19.11) Blocks and Statementsblock ::= LBRACE block_statements_opt RBRACE ;block_statements_opt ::= | block_statements ;block_statements ::= block_statement | block_statements block_statement ;block_statement ::= local_variable_declaration_statement | statement | class_declaration | interface_declaration ;local_variable_declaration_statement ::= local_variable_declaration SEMICOLON ;local_variable_declaration ::= type variable_declarators | FINAL type variable_declarators ;statement ::= statement_without_trailing_substatement | labeled_statement | if_then_statement | if_then_else_statement | while_statement | for_statement ;statement_no_short_if ::= statement_without_trailing_substatement | labeled_statement_no_short_if | if_then_else_statement_no_short_if | while_statement_no_short_if | for_statement_no_short_if ;statement_without_trailing_substatement ::= block | empty_statement | expression_statement | switch_statement | do_statement | break_statement | continue_statement | return_statement | synchronized_statement | throw_statement | try_statement ;empty_statement ::= SEMICOLON ;labeled_statement ::= IDENTIFIER COLON statement ;labeled_statement_no_short_if ::= IDENTIFIER COLON statement_no_short_if ;expression_statement ::= statement_expression SEMICOLON ;statement_expression ::= assignment | preincrement_expression | predecrement_expression | postincrement_expression | postdecrement_expression | method_invocation | class_instance_creation_expression ;if_then_statement ::= IF LPAREN expression RPAREN statement ;if_then_else_statement ::= IF LPAREN expression RPAREN statement_no_short_if ELSE statement ;if_then_else_statement_no_short_if ::= IF LPAREN expression RPAREN statement_no_short_if ELSE statement_no_short_if ;switch_statement ::= SWITCH LPAREN expression RPAREN switch_block ;switch_block ::= LBRACE switch_block_statement_groups switch_labels RBRACE | LBRACE switch_block_statement_groups RBRACE | LBRACE switch_labels RBRACE | LBRACE RBRACE ;switch_block_statement_groups ::= switch_block_statement_group | switch_block_statement_groups switch_block_statement_group ;switch_block_statement_group ::= switch_labels block_statements ;switch_labels ::= switch_label | switch_labels switch_label ;switch_label ::= CASE constant_expression COLON | DEFAULT COLON ;while_statement ::= WHILE LPAREN expression RPAREN statement ;while_statement_no_short_if ::= WHILE LPAREN expression RPAREN statement_no_short_if ;do_statement ::= DO statement WHILE LPAREN expression RPAREN SEMICOLON ;for_statement ::= FOR LPAREN for_init_opt SEMICOLON expression_opt SEMICOLON for_update_opt RPAREN statement ;for_statement_no_short_if ::= FOR LPAREN for_init_opt SEMICOLON expression_opt SEMICOLON for_update_opt RPAREN statement_no_short_if ;for_init_opt ::= | for_init ;for_init ::= statement_expression_list | local_variable_declaration ;for_update_opt ::= | for_update ;for_update ::= statement_expression_list ;statement_expression_list ::= statement_expression | statement_expression_list COMMA statement_expression ;identifier_opt ::= | IDENTIFIER ;break_statement ::= BREAK identifier_opt SEMICOLON ;continue_statement ::= CONTINUE identifier_opt SEMICOLON ;return_statement ::= RETURN expression_opt SEMICOLON ;throw_statement ::= THROW expression SEMICOLON ;synchronized_statement ::= SYNCHRONIZED LPAREN expression RPAREN block ;try_statement ::= TRY block catches | TRY block catches_opt finally ;catches_opt ::= | catches ;catches ::= catch_clause | catches catch_clause ;catch_clause ::= CATCH LPAREN formal_parameter RPAREN block ;finally ::= FINALLY block ;// 19.12) Expressionsprimary ::= primary_no_new_array | array_creation_expression ;primary_no_new_array ::= literal | THIS | LPAREN expression RPAREN | class_instance_creation_expression | field_access | method_invocation | array_access | primitive_type DOT CLASS | VOID DOT CLASS | array_type DOT CLASS | name DOT CLASS | name DOT THIS ;class_instance_creation_expression ::= NEW class_type LPAREN argument_list_opt RPAREN | NEW class_type LPAREN argument_list_opt RPAREN class_body | primary DOT NEW IDENTIFIER LPAREN argument_list_opt RPAREN | primary DOT NEW IDENTIFIER LPAREN argument_list_opt RPAREN class_body ;argument_list_opt ::= | argument_list ;argument_list ::= expression | argument_list COMMA expression ;array_creation_expression ::= NEW primitive_type dim_exprs dims_opt | NEW class_or_interface_type dim_exprs dims_opt | NEW primitive_type dims array_initializer | NEW class_or_interface_type dims array_initializer ;dim_exprs ::= dim_expr | dim_exprs dim_expr ;dim_expr ::= LBRACK expression RBRACK ;dims_opt ::= | dims ;dims ::= LBRACK RBRACK | dims LBRACK RBRACK ;field_access ::= primary DOT IDENTIFIER | SUPER DOT IDENTIFIER | name DOT SUPER DOT IDENTIFIER ;method_invocation ::= name LPAREN argument_list_opt RPAREN | primary DOT IDENTIFIER LPAREN argument_list_opt RPAREN | SUPER DOT IDENTIFIER LPAREN argument_list_opt RPAREN | name DOT SUPER DOT IDENTIFIER LPAREN argument_list_opt RPAREN ;array_access ::= name LBRACK expression RBRACK | primary_no_new_array LBRACK expression RBRACK ;postfix_expression ::= primary | name | postincrement_expression | postdecrement_expression ;postincrement_expression ::= postfix_expression PLUSPLUS ;postdecrement_expression ::= postfix_expression MINUSMINUS ;unary_expression ::= preincrement_expression | predecrement_expression | PLUS unary_expression | MINUS unary_expression | unary_expression_not_plus_minus ;preincrement_expression ::= PLUSPLUS unary_expression ;predecrement_expression ::= MINUSMINUS unary_expression ;unary_expression_not_plus_minus ::= postfix_expression | COMP unary_expression | NOT unary_expression | cast_expression ;cast_expression ::= LPAREN primitive_type dims_opt RPAREN unary_expression | LPAREN expression RPAREN unary_expression_not_plus_minus | LPAREN name dims RPAREN unary_expression_not_plus_minus ;multiplicative_expression ::= unary_expression | multiplicative_expression MULT unary_expression | multiplicative_expression DIV unary_expression | multiplicative_expression MOD unary_expression ;additive_expression ::= multiplicative_expression | additive_expression PLUS multiplicative_expression | additive_expression MINUS multiplicative_expression ;shift_expression ::= additive_expression | shift_expression LSHIFT additive_expression | shift_expression RSHIFT additive_expression | shift_expression URSHIFT additive_expression ;relational_expression ::= shift_expression | relational_expression LT shift_expression | relational_expression GT shift_expression | relational_expression LTEQ shift_expression | relational_expression GTEQ shift_expression | relational_expression INSTANCEOF reference_type ;equality_expression ::= relational_expression | equality_expression EQEQ relational_expression | equality_expression NOTEQ relational_expression ;and_expression ::= equality_expression | and_expression AND equality_expression ;exclusive_or_expression ::= and_expression | exclusive_or_expression XOR and_expression ;inclusive_or_expression ::= exclusive_or_expression | inclusive_or_expression OR exclusive_or_expression ;conditional_and_expression ::= inclusive_or_expression | conditional_and_expression ANDAND inclusive_or_expression ;conditional_or_expression ::= conditional_and_expression | conditional_or_expression OROR conditional_and_expression ;conditional_expression ::= conditional_or_expression | conditional_or_expression QUESTION expression COLON conditional_expression ;assignment_expression ::= conditional_expression | assignment ;assignment ::= left_hand_side assignment_operator assignment_expression ;left_hand_side ::= name | field_access | array_access ;assignment_operator ::= EQ | MULTEQ | DIVEQ | MODEQ | PLUSEQ | MINUSEQ | LSHIFTEQ | RSHIFTEQ | URSHIFTEQ | ANDEQ | XOREQ | OREQ ;expression_opt ::= | expression ;expression ::= assignment_expression ;constant_expression ::= expression ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -