⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java12.cup

📁 java语法解释器生成器
💻 CUP
📖 第 1 页 / 共 2 页
字号:
// 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 + -