diff --git a/shared/bgf/Makefile b/shared/bgf/Makefile index 3e04655e..f1c9a584 100644 --- a/shared/bgf/Makefile +++ b/shared/bgf/Makefile @@ -5,23 +5,23 @@ xdir = ../../topics/extraction all: make clean - make xpath - make fl - make bnf slps dsl - make ada - make c cpp - make csharp - make java jls + make ada.save c.save cpp.save csharp.save dart.save eiffel.save fortran.save modula.save oberon-0.save w3c.save wiki.save + make java-1.save java-2.save java-4.save java-5.save + make metasyntax.save chmod 644 *.bgf norm: ls -1 *.rec.bgf | xargs -n1 ./runnorm +%.save: + rm -f ${gdir}/$*/*.bgf + cd ${gdir}/$* && make save + for f in ${gdir}/$*/*.bgf ; do cp "$$f" $*-`basename "$$f"` ; done + ada: - cd ${gdir}/ada && make build - cp ${gdir}/ada/kempe/iso-ada-1.bgf ada.95.kempe.ext.bgf - cp ${gdir}/ada/kempe/ada.bgf ada.95.kempe.rec.bgf - cp ${gdir}/ada/laemmel-verhoef/ada.bgf ada.95.rlxv.rec.bgf + rm -f ${gdir}/ada/*.bgf + cd ${gdir}/ada && make save + for f in ${gdir}/ada/*.bgf ; do cp "$$f" ada-`basename "$$f"` ; done xpath: cd ${gdir}/xpath && make test diff --git a/shared/bgf/ada-kellogg.bgf b/shared/bgf/ada-kellogg.bgf new file mode 100644 index 00000000..7da4bce1 --- /dev/null +++ b/shared/bgf/ada-kellogg.bgf @@ -0,0 +1,7347 @@ + + + + + compilation_unit + + + + context_items_opt + + + + + library_item + + + subunit + + + + + + + pragma + + + + + + + + pragma + + + + PRAGMA + + + IDENTIFIER + + + pragma_args_opt + + + SEMI + + + + + + pragma_args_opt + + + + + + LPAREN + + + pragma_arg + + + + + + + COMMA + + + pragma_arg + + + + + + + RPAREN + + + + + + + + pragma_arg + + + + + + + + IDENTIFIER + + + RIGHT_SHAFT + + + + + + + expression + + + + + + context_items_opt + + + + + + pragma + + + + + + + + + with_clause + + + + + + + use_clause + + + pragma + + + + + + + + + + + + + + with_clause + + + + + w + + WITH + + + + + c_name_list + + + SEMI + + + + + + c_name_list + + + + compound_name + + + + + + + COMMA + + + compound_name + + + + + + + + + + compound_name + + + + IDENTIFIER + + + + + + + DOT + + + IDENTIFIER + + + + + + + + + + use_clause + + + + + u + + USE + + + + + + + + + TYPE + + + subtype_mark + + + + + + + COMMA + + + subtype_mark + + + + + + + + + c_name_list + + + + + SEMI + + + + + + subtype_mark + + + + compound_name + + + + + + + TIC + + + attribute_id + + + + + + + + + + attribute_id + + + + RANGE + + + DIGITS + + + DELTA + + + ACCESS + + + IDENTIFIER + + + + + + library_item + + + + private_opt + + + + + lib_pkg_spec_or_body + + + subprog_decl_or_rename_or_inst_or_body + + + generic_decl + + + + + + + + private_opt + + + + PRIVATE + + + + + + lib_pkg_spec_or_body + + + + + pkg + + PACKAGE + + + + + + + + + BODY + + + def_id + + + IS + + + pkg_body_part + + + end_id_opt + + + SEMI + + + + + + + def_id + + + spec_decl_part + + + + + + + + + + subprog_decl + + + + + + + p + + PROCEDURE + + + + + def_id + + + + + generic_subp_inst + + + + + formal_part_opt + + + + + renames + + + is_separate_or_abstract_or_decl + + + + + SEMI + + + + + + + + + + + + f + + FUNCTION + + + + + def_designator + + + + + generic_subp_inst + + + + + function_tail + + + + + renames + + + is_separate_or_abstract_or_decl + + + + + SEMI + + + + + + + + + + + + def_id + + + + + cn + + compound_name + + + + + + n + + IDENTIFIER + + + + + + + + generic_subp_inst + + + + IS + + + generic_inst + + + SEMI + + + + + + generic_inst + + + + NEW + + + compound_name + + + + + + + LPAREN + + + value_s + + + RPAREN + + + + + + + + + + parenth_values + + + + LPAREN + + + value + + + + + + + COMMA + + + value + + + + + + + RPAREN + + + + + + value + + + + + + OTHERS + + + RIGHT_SHAFT + + + expression + + + + + + + ranged_expr_s + + + + + + + RIGHT_SHAFT + + + expression + + + + + + + + + + + + ranged_expr_s + + + + ranged_expr + + + + + + + PIPE + + + ranged_expr + + + + + + + + + + ranged_expr + + + + expression + + + + + + + + + DOT_DOT + + + simple_expression + + + + + + + RANGE + + + range + + + + + + + + + + + + range_constraint + + + + RANGE + + + range + + + + + + range + + + + range_dots + + + range_attrib_ref + + + + + + range_dots + + + + simple_expression + + + DOT_DOT + + + simple_expression + + + + + + range_attrib_ref + + + + prefix + + + TIC + + + + r + + RANGE + + + + + + + + + LPAREN + + + expression + + + RPAREN + + + + + + + + + + prefix + + + + IDENTIFIER + + + + + + + + + DOT + + + + + ALL + + + IDENTIFIER + + + + + + + + + + p + + LPAREN + + + + + value_s + + + RPAREN + + + + + + + + + + + + formal_part_opt + + + + + + LPAREN + + + parameter_specification + + + + + + + SEMI + + + parameter_specification + + + + + + + RPAREN + + + + + + + + parameter_specification + + + + def_ids_colon + + + mode_opt + + + subtype_mark + + + init_opt + + + + + + def_ids_colon + + + + defining_identifier_list + + + COLON + + + + + + defining_identifier_list + + + + IDENTIFIER + + + + + + + COMMA + + + IDENTIFIER + + + + + + + + + + mode_opt + + + + + + + + IN + + + + + OUT + + + + + + + OUT + + + ACCESS + + + + + + + + renames + + + + RENAMES + + + + + name + + + + dummy + + definable_operator_symbol + + + + + + + + + + name + + + + IDENTIFIER + + + + + + + + + DOT + + + + + ALL + + + IDENTIFIER + + + CHARACTER_LITERAL + + + + dummy + + is_operator + + + + + + + + + + + + p + + LPAREN + + + + + value_s + + + RPAREN + + + + + + + TIC + + + attribute_id + + + + + + + + + + + + is_operator + + + op + + CHAR_STRING + + + + + + definable_operator_symbol + + + op + + CHAR_STRING + + + + + + parenthesized_primary + + + + + pp + + LPAREN + + + + + + + + + NuLL + + + RECORD + + + + + + + value_s + + + extension_opt + + + + + + + RPAREN + + + + + + extension_opt + + + + + + WITH + + + + + + + NuLL + + + RECORD + + + + + value_s + + + + + + + + + + is_separate_or_abstract_or_decl + + + + + + IS + + + separate_or_abstract + + + + + + + + + + + separate_or_abstract + + + + SEPARATE + + + ABSTRACT + + + + + + def_designator + + + + + n + + compound_name + + + + + + d + + designator + + + + + + + + designator + + + + + op + + definable_operator_symbol + + + + + + n + + IDENTIFIER + + + + + + + + function_tail + + + + func_formal_part_opt + + + RETURN + + + subtype_mark + + + + + + func_formal_part_opt + + + + + + LPAREN + + + func_param + + + + + + + SEMI + + + func_param + + + + + + + RPAREN + + + + + + + + func_param + + + + def_ids_colon + + + in_access_opt + + + subtype_mark + + + init_opt + + + + + + in_access_opt + + + + + + IN + + + ACCESS + + + + + + + + spec_decl_part + + + + + + + + IS + + + + + generic_inst + + + pkg_spec_part + + + + + + + renames + + + + + SEMI + + + + + + pkg_spec_part + + + + basic_declarative_items_opt + + + + + + + PRIVATE + + + basic_declarative_items_opt + + + + + + + end_id_opt + + + + + + basic_declarative_items_opt + + + + + + basic_decl_item + + + pragma + + + + + + + + basic_declarative_items + + + + + + basic_decl_item + + + pragma + + + + + + + + basic_decl_item + + + + + + + pkg + + PACKAGE + + + + + def_id + + + spec_decl_part + + + + + + + + tsk + + TASK + + + + + task_type_or_single_decl + + + + + + + + pro + + PROTECTED + + + + + prot_type_or_single_decl + + + SEMI + + + + + subprog_decl + + + decl_common + + + + + + task_type_or_single_decl + + + + + + TYPE + + + def_id + + + discrim_part_opt + + + task_definition_opt + + + + + + + def_id + + + task_definition_opt + + + + + + + + task_definition_opt + + + + + + IS + + + task_items_opt + + + private_task_items_opt + + + end_id_opt + + + SEMI + + + + + SEMI + + + + + + discrim_part_opt + + + + discrim_part_text + + + + + + discrim_part_text + + + + LPAREN + + + + + BOX + + + discriminant_specifications + + + + + RPAREN + + + + + + known_discrim_part + + + + LPAREN + + + discriminant_specifications + + + RPAREN + + + + + + empty_discrim_opt + + + + + + discrim_part + + discrim_part_text + + + + discriminant_specifications + + + + discriminant_specification + + + + + + + SEMI + + + discriminant_specification + + + + + + + + + + discriminant_specification + + + + def_ids_colon + + + access_opt + + + subtype_mark + + + init_opt + + + + + + access_opt + + + + ACCESS + + + + + + init_opt + + + + + + ASSIGN + + + expression + + + + + + + + task_items_opt + + + + + + pragma + + + + + entrydecls_repspecs_opt + + + + + + entrydecls_repspecs_opt + + + + + + entry_declaration + + + + + + + pragma + + + rep_spec + + + + + + + + + + + + entry_declaration + + + + + e + + ENTRY + + + + + IDENTIFIER + + + discrete_subtype_def_opt + + + formal_part_opt + + + SEMI + + + + + + discrete_subtype_def_opt + + + + + + LPAREN + + + discrete_subtype_definition + + + + + + + + + + + discrete_subtype_definition + + + + range + + + subtype_ind + + + + + + rep_spec + + + + + r + + FOR + + + + + subtype_mark + + + USE + + + rep_spec_part + + + SEMI + + + + + + rep_spec_part + + + + + + RECORD + + + align_opt + + + comp_loc_s + + + END + + + RECORD + + + + + + + AT + + + expression + + + + + expression + + + + + + align_opt + + + + + + AT + + + MOD + + + expression + + + SEMI + + + + + + + + comp_loc_s + + + + + + pragma + + + + + subtype_mark + + + AT + + + expression + + + RANGE + + + range + + + SEMI + + + + + + + + + + private_task_items_opt + + + + + + PRIVATE + + + + + pragma + + + + + entrydecls_repspecs_opt + + + + + + + + prot_type_or_single_decl + + + + + + TYPE + + + def_id + + + discrim_part_opt + + + protected_definition + + + + + + + def_id + + + protected_definition + + + + + + + + protected_definition + + + + IS + + + prot_op_decl_s + + + + + + + PRIVATE + + + prot_member_decl_s + + + + + + + end_id_opt + + + + + + prot_op_decl_s + + + + prot_op_decl + + + + + + prot_op_decl + + + + entry_declaration + + + + + + p + + PROCEDURE + + + + + def_id + + + formal_part_opt + + + SEMI + + + + + + + + f + + FUNCTION + + + + + def_designator + + + function_tail + + + SEMI + + + + + rep_spec + + + pragma + + + + + + prot_member_decl_s + + + + + + prot_op_decl + + + comp_decl + + + + + + + + comp_decl + + + + def_ids_colon + + + component_subtype_def + + + init_opt + + + SEMI + + + + + + decl_common + + + + + + + t + + TYPE + + + + + IDENTIFIER + + + + + + + IS + + + type_def + + + + + + + discrim_part + + + + + + + IS + + + derived_or_private_or_record + + + + + + + + + + + + empty_discrim_opt + + + + + SEMI + + + + + + + + s + + SUBTYPE + + + + + IDENTIFIER + + + IS + + + subtype_ind + + + SEMI + + + + + generic_decl + + + use_clause + + + + + + r + + FOR + + + + + + + + + local_enum_name + + + USE + + + + + + + subtype_mark + + + USE + + + rep_spec_part + + + + + + + SEMI + + + + + + + IDENTIFIER + + + + erd + + COLON + + + + + EXCEPTION + + + RENAMES + + + compound_name + + + + + + + IDENTIFIER + + + + ord + + COLON + + + + + subtype_mark + + + RENAMES + + + name + + + + + + + defining_identifier_list + + + + od + + COLON + + + + + + + EXCEPTION + + + + + CONSTANT + + + ASSIGN + + + + + + + aliased_constant_opt + + + + + + + array_type_definition + + + init_opt + + + + + + + subtype_ind + + + init_opt + + + + + + + + + + + SEMI + + + + + + + + type_def + + + + + + LPAREN + + + enum_id_s + + + RPAREN + + + + + + + RANGE + + + range + + + + + + + MOD + + + expression + + + + + + + DIGITS + + + expression + + + range_constraint_opt + + + + + + + DELTA + + + expression + + + + + + + RANGE + + + range + + + + + + + DIGITS + + + expression + + + range_constraint_opt + + + + + + + + + array_type_definition + + + access_type_definition + + + + + empty_discrim_opt + + + derived_or_private_or_record + + + + + + + + enum_id_s + + + + enumeration_literal_specification + + + + + + + COMMA + + + enumeration_literal_specification + + + + + + + + + + enumeration_literal_specification + + + + IDENTIFIER + + + CHARACTER_LITERAL + + + + + + range_constraint_opt + + + + range_constraint + + + + + + array_type_definition + + + + ARRAY + + + LPAREN + + + index_or_discrete_range_s + + + RPAREN + + + OF + + + component_subtype_def + + + + + + index_or_discrete_range_s + + + + index_or_discrete_range + + + + + + + COMMA + + + index_or_discrete_range + + + + + + + + + + index_or_discrete_range + + + + simple_expression + + + + + + + + + DOT_DOT + + + simple_expression + + + + + + + RANGE + + + + + BOX + + + range + + + + + + + + + + + + + + component_subtype_def + + + + aliased_opt + + + subtype_ind + + + + + + aliased_opt + + + + ALIASED + + + + + + subtype_ind + + + + subtype_mark + + + constraint_opt + + + + + + constraint_opt + + + + + + range_constraint + + + digits_constraint + + + delta_constraint + + + index_constraint + + + discriminant_constraint + + + + + + + + digits_constraint + + + + + d + + DIGITS + + + + + expression + + + range_constraint_opt + + + + + + delta_constraint + + + + + d + + DELTA + + + + + expression + + + range_constraint_opt + + + + + + index_constraint + + + + + p + + LPAREN + + + + + discrete_range + + + + + + + COMMA + + + discrete_range + + + + + + + RPAREN + + + + + + discrete_range + + + + range + + + subtype_ind + + + + + + discriminant_constraint + + + + + p + + LPAREN + + + + + discriminant_association + + + + + + + COMMA + + + discriminant_association + + + + + + + RPAREN + + + + + + discriminant_association + + + + selector_names_opt + + + expression + + + + + + selector_names_opt + + + + association_head + + + + + + + + + association_head + + + + selector_name + + + + + + + PIPE + + + selector_name + + + + + + + RIGHT_SHAFT + + + + + + selector_name + + IDENTIFIER + + + + access_type_definition + + + + ACCESS + + + + + + + protected_opt + + + + + + + PROCEDURE + + + formal_part_opt + + + + + + + FUNCTION + + + func_formal_part_opt + + + RETURN + + + subtype_mark + + + + + + + + + + + constant_all_opt + + + subtype_ind + + + + + + + + + + protected_opt + + + + PROTECTED + + + + + + constant_all_opt + + + + + + CONSTANT + + + ALL + + + + + + + + derived_or_private_or_record + + + + + + abstract_opt + + + NEW + + + subtype_ind + + + WITH + + + + + + + NEW + + + subtype_ind + + + + + + + abstract_tagged_limited_opt + + + + + PRIVATE + + + record_definition + + + + + + + + + + abstract_opt + + + + ABSTRACT + + + + + + record_definition + + + + + + RECORD + + + component_list + + + END + + + RECORD + + + + + + + NuLL + + + RECORD + + + + + + + + component_list + + + + + + NuLL + + + SEMI + + + + + + + component_items + + + + + variant_part + + + + + + + + + empty_component_items + + + variant_part + + + + + + + + component_items + + + + + + pragma + + + comp_decl + + + + + + + + empty_component_items + + + + + + variant_part + + + + + c + + CASE + + + + + discriminant_direct_name + + + IS + + + variant_s + + + END + + + CASE + + + SEMI + + + + + + discriminant_direct_name + + IDENTIFIER + + + + variant_s + + + + variant + + + + + + variant + + + + + w + + WHEN + + + + + choice_s + + + RIGHT_SHAFT + + + component_list + + + + + + choice_s + + + + choice + + + + + + + PIPE + + + choice + + + + + + + + + + choice + + + + OTHERS + + + discrete_with_range + + + expression + + + + + + discrete_with_range + + + + mark_with_constraint + + + range + + + + + + mark_with_constraint + + + + subtype_mark + + + range_constraint + + + + + + abstract_tagged_limited_opt + + + + + + + + + + ABSTRACT + + + TAGGED + + + + + TAGGED + + + + + + + + + LIMITED + + + + + + + + local_enum_name + + IDENTIFIER + + + + enumeration_aggregate + + parenth_values + + + + aliased_constant_opt + + + + + + ALIASED + + + + + + + CONSTANT + + + + + + + + generic_decl + + + + + g + + GENERIC + + + + + generic_formal_part_opt + + + + + + + PACKAGE + + + def_id + + + + + renames + + + + + IS + + + pkg_spec_part + + + + + + + + + + + PROCEDURE + + + def_id + + + formal_part_opt + + + + + renames + + + + + + + + + + + + FUNCTION + + + def_designator + + + function_tail + + + + + renames + + + + + + + + + + + + SEMI + + + + + + generic_formal_part_opt + + + + + + use_clause + + + pragma + + + generic_formal_parameter + + + + + + + + generic_formal_parameter + + + + + + + + + t + + TYPE + + + + + def_id + + + + + + + IS + + + + + + + LPAREN + + + BOX + + + RPAREN + + + + + + + RANGE + + + BOX + + + + + + + MOD + + + BOX + + + + + + + DELTA + + + BOX + + + + + + + DIGITS + + + BOX + + + + + + + + + + + + + + DIGITS + + + BOX + + + + + array_type_definition + + + access_type_definition + + + + + empty_discrim_opt + + + discriminable_type_definition + + + + + + + + + + + discrim_part + + + IS + + + discriminable_type_definition + + + + + + + + + + + + w + + WITH + + + + + + + + + PROCEDURE + + + def_id + + + formal_part_opt + + + subprogram_default_opt + + + + + + + FUNCTION + + + def_designator + + + function_tail + + + subprogram_default_opt + + + + + + + PACKAGE + + + def_id + + + IS + + + NEW + + + compound_name + + + formal_package_actual_part_opt + + + + + + + + + parameter_specification + + + + + SEMI + + + + + + discriminable_type_definition + + + + + + abstract_opt + + + NEW + + + subtype_ind + + + WITH + + + + + + + NEW + + + subtype_ind + + + + + + + abstract_tagged_limited_opt + + + PRIVATE + + + + + + + + subprogram_default_opt + + + + + + IS + + + + + BOX + + + name + + + + + + + + + + formal_package_actual_part_opt + + + + + + LPAREN + + + + + BOX + + + defining_identifier_list + + + + + RPAREN + + + + + + + + subprog_decl_or_rename_or_inst_or_body + + + + + + + p + + PROCEDURE + + + + + def_id + + + + + generic_subp_inst + + + + + formal_part_opt + + + + + renames + + + + + IS + + + + + separate_or_abstract + + + body_part + + + + + + + + + + + + SEMI + + + + + + + + + + + + f + + FUNCTION + + + + + def_designator + + + + + generic_subp_inst + + + + + function_tail + + + + + renames + + + + + IS + + + + + separate_or_abstract + + + body_part + + + + + + + + + + + + SEMI + + + + + + + + + + + + body_part + + + + declarative_part + + + block_body + + + end_id_opt + + + + + + declarative_part + + + + + + pragma + + + declarative_item + + + + + + + + declarative_item + + + + + + + pkg + + PACKAGE + + + + + + + + + body_is + + + + + separate + + + + + pkg_body_part + + + end_id_opt + + + + + + + SEMI + + + + + + + def_id + + + spec_decl_part + + + + + + + + + + + + tsk + + TASK + + + + + + + + + body_is + + + + + separate + + + body_part + + + + + SEMI + + + + + task_type_or_single_decl + + + + + + + + + + pro + + PROTECTED + + + + + + + + + body_is + + + + + separate + + + + + prot_op_bodies_opt + + + end_id_opt + + + + + + + + + prot_type_or_single_decl + + + + + SEMI + + + + + subprog_decl_or_rename_or_inst_or_body + + + decl_common + + + + + + body_is + + + + BODY + + + def_id + + + IS + + + + + + separate + + SEPARATE + + + + pkg_body_part + + + + declarative_part + + + block_body_opt + + + + + + block_body_opt + + + + + + BEGIN + + + handled_stmt_s + + + + + + + + prot_op_bodies_opt + + + + + + entry_body + + + subprog_decl_or_body + + + pragma + + + + + + + + subprog_decl_or_body + + + + + + + p + + PROCEDURE + + + + + def_id + + + formal_part_opt + + + + + + + IS + + + body_part + + + + + + + + + + SEMI + + + + + + + + f + + FUNCTION + + + + + def_designator + + + function_tail + + + + + + + IS + + + body_part + + + + + + + + + + SEMI + + + + + + + + block_body + + + + + b + + BEGIN + + + + + handled_stmt_s + + + + + + handled_stmt_s + + + + statements + + + except_handler_part_opt + + + + + + statements + + + + + + pragma + + + statement + + + + + + + + statement + + + + def_label_opt + + + + + null_stmt + + + exit_stmt + + + return_stmt + + + goto_stmt + + + delay_stmt + + + abort_stmt + + + raise_stmt + + + requeue_stmt + + + accept_stmt + + + select_stmt + + + if_stmt + + + case_stmt + + + + + loop_stmt + + + SEMI + + + + + + + block + + + END + + + SEMI + + + + + + + statement_identifier + + + + + + + loop_stmt + + + id_opt + + + SEMI + + + + + + + block + + + end_id_opt + + + SEMI + + + + + + + + + call_or_assignment + + + + + + + + def_label_opt + + + + + + LT_LT + + + IDENTIFIER + + + GT_GT + + + + + + + + null_stmt + + + + + s + + NuLL + + + + + SEMI + + + + + + if_stmt + + + + + s + + IF + + + + + cond_clause + + + elsifs_opt + + + else_opt + + + END + + + IF + + + SEMI + + + + + + cond_clause + + + + condition + + + + c + + THEN + + + + + statements + + + + + + condition + + expression + + + + elsifs_opt + + + + + + ELSIF + + + cond_clause + + + + + + + + else_opt + + + + + + ELSE + + + statements + + + + + + + + case_stmt + + + + + s + + CASE + + + + + expression + + + IS + + + alternative_s + + + END + + + CASE + + + SEMI + + + + + + alternative_s + + + + case_statement_alternative + + + + + + case_statement_alternative + + + + + s + + WHEN + + + + + choice_s + + + RIGHT_SHAFT + + + statements + + + + + + loop_stmt + + + + iteration_scheme_opt + + + LOOP + + + statements + + + END + + + LOOP + + + + + + iteration_scheme_opt + + + + + + + + WHILE + + + condition + + + + + + + FOR + + + IDENTIFIER + + + IN + + + reverse_opt + + + discrete_subtype_definition + + + + + + + + + + reverse_opt + + + + REVERSE + + + + + + id_opt + + + + + endid + + definable_operator_symbol + + + + + + n + + compound_name + + + + + + + + + + + end_id_opt + + + + END + + + id_opt + + + + + + statement_identifier + + + + + n + + IDENTIFIER + + + + + COLON + + + + + + block + + + + declare_opt + + + block_body + + + + + + declare_opt + + + + + + DECLARE + + + declarative_part + + + + + + + + exit_stmt + + + + + s + + EXIT + + + + + + + label_name + + + + + + + + + WHEN + + + condition + + + + + + + SEMI + + + + + + label_name + + IDENTIFIER + + + + return_stmt + + + + + s + + RETURN + + + + + + + expression + + + + + SEMI + + + + + + goto_stmt + + + + + s + + GOTO + + + + + label_name + + + SEMI + + + + + + call_or_assignment + + + + name + + + + + + + ASSIGN + + + expression + + + + + + + + + + SEMI + + + + + + entry_body + + + + + e + + ENTRY + + + + + def_id + + + entry_body_formal_part + + + entry_barrier + + + IS + + + body_part + + + SEMI + + + + + + entry_body_formal_part + + + + entry_index_spec_opt + + + formal_part_opt + + + + + + entry_index_spec_opt + + + + + + LPAREN + + + FOR + + + def_id + + + IN + + + discrete_subtype_definition + + + + + + + + + + + entry_barrier + + + + WHEN + + + condition + + + + + + entry_call_stmt + + + + name + + + SEMI + + + + + + accept_stmt + + + + + a + + ACCEPT + + + + + def_id + + + entry_index_opt + + + formal_part_opt + + + + + + + DO + + + handled_stmt_s + + + end_id_opt + + + SEMI + + + + + SEMI + + + + + + + + entry_index_opt + + + + + + LPAREN + + + expression + + + + + + + + + + + delay_stmt + + + + + d + + DELAY + + + + + until_opt + + + expression + + + SEMI + + + + + + until_opt + + + + UNTIL + + + + + + select_stmt + + + + + s + + SELECT + + + + + + + + + triggering_alternative + + + THEN + + + ABORT + + + + + selective_accept + + + + + entry_call_alternative + + + + + + + OR + + + delay_alternative + + + + + + + ELSE + + + statements + + + + + + + + + + + END + + + SELECT + + + SEMI + + + + + + triggering_alternative + + + + + + delay_stmt + + + entry_call_stmt + + + + + stmts_opt + + + + + + abortable_part + + stmts_opt + + + + entry_call_alternative + + + + entry_call_stmt + + + stmts_opt + + + + + + selective_accept + + + + guard_opt + + + select_alternative + + + or_select_opt + + + else_opt + + + + + + guard_opt + + + + + + WHEN + + + condition + + + RIGHT_SHAFT + + + + + pragma + + + + + + + + + + select_alternative + + + + accept_alternative + + + delay_alternative + + + + + + t + + TERMINATE + + + + + SEMI + + + + + + + + accept_alternative + + + + accept_stmt + + + stmts_opt + + + + + + delay_alternative + + + + delay_stmt + + + stmts_opt + + + + + + stmts_opt + + + + + + pragma + + + statement + + + + + + + + or_select_opt + + + + + + OR + + + guard_opt + + + select_alternative + + + + + + + + abort_stmt + + + + + a + + ABORT + + + + + name + + + + + + + COMMA + + + name + + + + + + + SEMI + + + + + + except_handler_part_opt + + + + + + EXCEPTION + + + + + exception_handler + + + + + + + + + + exception_handler + + + + + w + + WHEN + + + + + identifier_colon_opt + + + except_choice_s + + + RIGHT_SHAFT + + + statements + + + + + + identifier_colon_opt + + + + + + IDENTIFIER + + + COLON + + + + + + + + except_choice_s + + + + exception_choice + + + + + + + PIPE + + + exception_choice + + + + + + + + + + exception_choice + + + + compound_name + + + OTHERS + + + + + + raise_stmt + + + + + r + + RAISE + + + + + + + compound_name + + + + + SEMI + + + + + + requeue_stmt + + + + + r + + REQUEUE + + + + + name + + + + + + + WITH + + + ABORT + + + + + + + SEMI + + + + + + operator_call + + + + + cs + + CHAR_STRING + + + + + operator_call_tail + + + + + + operator_call_tail + + + + LPAREN + + + value_s + + + RPAREN + + + + + + value_s + + + + value + + + + + + + COMMA + + + value + + + + + + + + + + expression + + + + relation + + + + + + + + + + a + + AND + + + + + + + THEN + + + + + relation + + + + + + + + o + + OR + + + + + + + ELSE + + + + + relation + + + + + + + XOR + + + relation + + + + + + + + + + + + relation + + + + simple_expression + + + + + + + + + IN + + + range_or_mark + + + + + + + + n + + NOT + + + + + IN + + + range_or_mark + + + + + + + EQ + + + simple_expression + + + + + + + NE + + + simple_expression + + + + + + + LT_ + + + simple_expression + + + + + + + LE + + + simple_expression + + + + + + + GT + + + simple_expression + + + + + + + GE + + + simple_expression + + + + + + + + + + + + range_or_mark + + + + range + + + subtype_mark + + + + + + simple_expression + + + + signed_term + + + + + + + + + PLUS + + + signed_term + + + + + + + MINUS + + + signed_term + + + + + + + CONCAT + + + signed_term + + + + + + + + + + + + signed_term + + + + + + + p + + PLUS + + + + + term + + + + + + + + m + + MINUS + + + + + term + + + + + term + + + + + + term + + + + factor + + + + + + + + + STAR + + + factor + + + + + + + DIV + + + factor + + + + + + + MOD + + + factor + + + + + + + REM + + + factor + + + + + + + + + + + + factor + + + + + + NOT + + + primary + + + + + + + ABS + + + primary + + + + + + + primary + + + + + + + EXPON + + + primary + + + + + + + + + + + + primary + + + + name_or_qualified + + + parenthesized_primary + + + allocator + + + NuLL + + + NUMERIC_LIT + + + CHARACTER_LITERAL + + + + + + cs + + CHAR_STRING + + + + + + + operator_call_tail + + + + + + + + + + name_or_qualified + + + + IDENTIFIER + + + + + + + + + DOT + + + + + ALL + + + IDENTIFIER + + + CHARACTER_LITERAL + + + + dummy + + is_operator + + + + + + + + + + + + p + + LPAREN + + + + + value_s + + + RPAREN + + + + + + + TIC + + + + + parenthesized_primary + + + attribute_id + + + + + + + + + + + + + + allocator + + + + + n + + NEW + + + + + name_or_qualified + + + + + + subunit + + + + + sep + + SEPARATE + + + + + LPAREN + + + compound_name + + + RPAREN + + + + + subprogram_body + + + package_body + + + task_body + + + protected_body + + + + + + + + subprogram_body + + + + + + + p + + PROCEDURE + + + + + def_id + + + formal_part_opt + + + IS + + + body_part + + + SEMI + + + + + + + + f + + FUNCTION + + + + + function_tail + + + IS + + + body_part + + + SEMI + + + + + + + + package_body + + + + + p + + PACKAGE + + + + + body_is + + + pkg_body_part + + + end_id_opt + + + SEMI + + + + + + task_body + + + + + t + + TASK + + + + + body_is + + + body_part + + + SEMI + + + + + + protected_body + + + + + p + + PROTECTED + + + + + body_is + + + prot_op_bodies_opt + + + end_id_opt + + + SEMI + + + + + + ABORT + + abort + + + + ABS + + abs + + + + ABSTRACT + + abstract + + + + ACCEPT + + accept + + + + ACCESS + + access + + + + ALIASED + + aliased + + + + ALL + + all + + + + AND + + and + + + + ARRAY + + array + + + + AT + + at + + + + BEGIN + + begin + + + + BODY + + body + + + + CASE + + case + + + + CONSTANT + + constant + + + + DECLARE + + declare + + + + DELAY + + delay + + + + DELTA + + delta + + + + DIGITS + + digits + + + + DO + + do + + + + ELSE + + else + + + + ELSIF + + elsif + + + + END + + end + + + + ENTRY + + entry + + + + EXCEPTION + + exception + + + + EXIT + + exit + + + + FOR + + for + + + + FUNCTION + + function + + + + GENERIC + + generic + + + + GOTO + + goto + + + + IF + + if + + + + IN + + in + + + + IS + + is + + + + LIMITED + + limited + + + + LOOP + + loop + + + + MOD + + mod + + + + NEW + + new + + + + NOT + + not + + + + NuLL + + null + + + + OF + + of + + + + OR + + or + + + + OTHERS + + others + + + + OUT + + out + + + + PACKAGE + + package + + + + PRAGMA + + pragma + + + + PRIVATE + + private + + + + PROCEDURE + + procedure + + + + PROTECTED + + protected + + + + RAISE + + raise + + + + RANGE + + range + + + + RECORD + + record + + + + REM + + rem + + + + RENAMES + + renames + + + + REQUEUE + + requeue + + + + RETURN + + return + + + + REVERSE + + reverse + + + + SELECT + + select + + + + SEPARATE + + separate + + + + SUBTYPE + + subtype + + + + TAGGED + + tagged + + + + TASK + + task + + + + TERMINATE + + terminate + + + + THEN + + then + + + + TYPE + + type + + + + UNTIL + + until + + + + USE + + use + + + + WHEN + + when + + + + WHILE + + while + + + + WITH + + with + + + + XOR + + xor + + + + COMMENT_INTRO + + -- + + + + DOT_DOT + + .. + + + + LT_LT + + << + + + + BOX + + <> + + + + GT_GT + + >> + + + + ASSIGN + + := + + + + RIGHT_SHAFT + + => + + + + NE + + /= + + + + LE + + <= + + + + GE + + >= + + + + EXPON + + ** + + + + PIPE + + | + + + + CONCAT + + & + + + + DOT + + . + + + + EQ + + = + + + + LT_ + + < + + + + GT + + > + + + + PLUS + + + + + + + MINUS + + - + + + + STAR + + * + + + + DIV + + / + + + + LPAREN + + ( + + + + RPAREN + + ) + + + + COLON + + : + + + + COMMA + + , + + + + SEMI + + ; + + + + TIC + + ' + + + + IDENTIFIER + + + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + + + + + + + + + _ + + + + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + + CHARACTER_LITERAL + + + + ' + + + + + + ' + + + + + + CHAR_STRING + + + + " + + + + + + + + + + " + + + + + + NUMERIC_LIT + + + + + + DIGIT + + + + + + + + + + + # + + + BASED_INTEGER + + + + + + + . + + + BASED_INTEGER + + + + + + + # + + + + + + + + + _ + + + + + DIGIT + + + + + + + + + + + + + + + + + + + . + + + + + DIGIT + + + + + + + + + _ + + + + + DIGIT + + + + + + + + + + + EXPONENT + + + + + + + EXPONENT + + + + + + + + + + DIGIT + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + EXPONENT + + + + e + + + + + + + + + + + - + + + + + + + + + DIGIT + + + + + + + + EXTENDED_DIGIT + + + + DIGIT + + + a + + + b + + + c + + + d + + + e + + + f + + + + + + BASED_INTEGER + + + + EXTENDED_DIGIT + + + + + + + + + _ + + + + + EXTENDED_DIGIT + + + + + + + + + + WS_ + + + + + + + \t + + + \f + + + \r\n + + + \r + + + \n + + + + + + COMMENT + + + + COMMENT_INTRO + + + + + + + + + + + + \n + + + + + \r + + + + + \n + + + + + + + + + + + \ No newline at end of file diff --git a/shared/bgf/ada-kempe.bgf b/shared/bgf/ada-kempe.bgf new file mode 100644 index 00000000..ae4d41ca --- /dev/null +++ b/shared/bgf/ada-kempe.bgf @@ -0,0 +1,6890 @@ + + + + + character + + + + graphic_character + + + format_effector + + + other_control_function + + + + + + graphic_character + + + + identifier_letter + + + digit + + + space_character + + + special_character + + + + + + identifier + + + + identifier_letter + + + + + + + + + underline + + + + + letter_or_digit + + + + + + + + + + letter_or_digit + + + + identifier_letter + + + digit + + + + + + numeric_literal + + + + decimal_literal + + + based_literal + + + + + + decimal_literal + + + + numeral + + + + + + + . + + + numeral + + + + + + + + + exponent + + + + + + + + numeral + + + + digit + + + + + + + + + underline + + + + + digit + + + + + + + + + + exponent + + + + + + E + + + + + + + + + + + numeral + + + + + + + E + + + - + + + numeral + + + + + + + + based_literal + + + + base + + + # + + + based_numeral + + + + + + + . + + + based_numeral + + + + + + + # + + + + + exponent + + + + + + + + base + + numeral + + + + based_numeral + + + + extended_digit + + + + + + + + + underline + + + + + extended_digit + + + + + + + + + + extended_digit + + + + digit + + + A + + + B + + + C + + + D + + + E + + + F + + + + + + character_literal + + + + ' + + + graphic_character + + + ' + + + + + + string_literal + + + + " + + + + + string_element + + + + + " + + + + + + string_element + + + + "" + + + non_quotation_mark_graphic_character + + + + + + comment + + + + - + + + - + + + + + non_end_of_line_character + + + + + + + + pragma + + + + pragma + + + identifier + + + + + + + ( + + + pragma_argument_association + + + + + + + , + + + pragma_argument_association + + + + + + + ) + + + + + + + ; + + + + + + pragma_argument_association + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + name + + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + expression + + + + + + + + basic_declaration + + + + type_declaration + + + subtype_declaration + + + object_declaration + + + number_declaration + + + subprogram_declaration + + + abstract_subprogram_declaration + + + package_declaration + + + renaming_declaration + + + exception_declaration + + + generic_declaration + + + generic_instantiation + + + + + + defining_identifier + + identifier + + + + type_declaration + + + + full_type_declaration + + + incomplete_type_declaration + + + private_type_declaration + + + private_extension_declaration + + + + + + full_type_declaration + + + + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + type_definition + + + ; + + + + + task_type_declaration + + + protected_type_declaration + + + + + + type_definition + + + + enumeration_type_definition + + + integer_type_definition + + + real_type_definition + + + array_type_definition + + + record_type_definition + + + access_type_definition + + + derived_type_definition + + + + + + subtype_declaration + + + + subtype + + + defining_identifier + + + is + + + subtype_indication + + + ; + + + + + + subtype_indication + + + + subtype_mark + + + + + constraint + + + + + + + + subtype_mark + + subtype_name + + + + constraint + + + + scalar_constraint + + + composite_constraint + + + + + + scalar_constraint + + + + range_constraint + + + digits_constraint + + + delta_constraint + + + + + + composite_constraint + + + + index_constraint + + + discriminant_constraint + + + + + + object_declaration + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + subtype_indication + + + + + + + := + + + expression + + + + + + + ; + + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + array_type_definition + + + + + + + := + + + expression + + + + + + + ; + + + + + single_task_declaration + + + single_protected_declaration + + + + + + defining_identifier_list + + + + defining_identifier + + + + + + + , + + + defining_identifier + + + + + + + + + + number_declaration + + + + defining_identifier_list + + + : + + + constant + + + := + + + static_expression + + + ; + + + + + + derived_type_definition + + + + + + abstract + + + + + new + + + parent_subtype_indication + + + + + record_extension_part + + + + + + + + range_constraint + + + + range + + + range + + + + + + range + + + + range_attribute_reference + + + + + simple_expression + + + .. + + + simple_expression + + + + + + + + enumeration_type_definition + + + + ( + + + enumeration_literal_specification + + + + + + + , + + + enumeration_literal_specification + + + + + + + ) + + + + + + enumeration_literal_specification + + + + defining_identifier + + + defining_character_literal + + + + + + defining_character_literal + + character_literal + + + + integer_type_definition + + + + signed_integer_type_definition + + + modular_type_definition + + + + + + signed_integer_type_definition + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + modular_type_definition + + + + mod + + + static_expression + + + + + + real_type_definition + + + + floating_point_definition + + + fixed_point_definition + + + + + + floating_point_definition + + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + real_range_specification + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + fixed_point_definition + + + + ordinary_fixed_point_definition + + + decimal_fixed_point_definition + + + + + + ordinary_fixed_point_definition + + + + delta + + + static_expression + + + real_range_specification + + + + + + decimal_fixed_point_definition + + + + delta + + + static_expression + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + digits_constraint + + + + digits + + + static_expression + + + + + range_constraint + + + + + + + + array_type_definition + + + + unconstrained_array_definition + + + constrained_array_definition + + + + + + unconstrained_array_definition + + + + array + + + ( + + + index_subtype_definition + + + + + + + , + + + index_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + index_subtype_definition + + + + subtype_mark + + + range + + + <> + + + + + + constrained_array_definition + + + + array + + + ( + + + discrete_subtype_definition + + + + + + + , + + + discrete_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + discrete_subtype_definition + + + + discrete_subtype_indication + + + range + + + + + + component_definition + + + + + + aliased + + + + + subtype_indication + + + + + + index_constraint + + + + ( + + + discrete_range + + + + + + + , + + + discrete_range + + + + + + + ) + + + + + + discrete_range + + + + discrete_subtype_indication + + + range + + + + + + discriminant_part + + + + unknown_discriminant_part + + + known_discriminant_part + + + + + + unknown_discriminant_part + + (<>) + + + + known_discriminant_part + + + + ( + + + discriminant_specification + + + + + + + ; + + + discriminant_specification + + + + + + + ) + + + + + + discriminant_specification + + + + + + defining_identifier_list + + + : + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + default_expression + + expression + + + + discriminant_constraint + + + + ( + + + discriminant_association + + + + + + + , + + + discriminant_association + + + + + + + ) + + + + + + discriminant_association + + + + + + + + discriminant_selector_name + + + + + + + | + + + discriminant_selector_name + + + + + + + => + + + + + + + expression + + + + + + record_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + record_definition + + + + + + record_definition + + + + + + record + + + component_list + + + end + + + record + + + + + + + null + + + record + + + + + + + + component_list + + + + + + component_item + + + + + component_item + + + + + + + + + + + component_item + + + + + variant_part + + + + + + + null + + + ; + + + + + + + + component_item + + + + component_declaration + + + representation_clause + + + + + + component_declaration + + + + defining_identifier_list + + + : + + + component_definition + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + variant_part + + + + case + + + discriminant_direct_name + + + is + + + variant + + + + + variant + + + + + end + + + case + + + ; + + + + + + variant + + + + when + + + discrete_choice_list + + + => + + + component_list + + + + + + discrete_choice_list + + + + discrete_choice + + + + + + + | + + + discrete_choice + + + + + + + + + + discrete_choice + + + + expression + + + discrete_range + + + others + + + + + + record_extension_part + + + + with + + + record_definition + + + + + + access_type_definition + + + + access_to_object_definition + + + access_to_subprogram_definition + + + + + + access_to_object_definition + + + + access + + + + + general_access_modifier + + + + + subtype_indication + + + + + + general_access_modifier + + + + all + + + constant + + + + + + access_to_subprogram_definition + + + + + + access + + + + + protected + + + + + procedure + + + parameter_profile + + + + + + + access + + + + + protected + + + + + function + + + parameter_and_result_profile + + + + + + + + access_definition + + + + access + + + subtype_mark + + + + + + incomplete_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + ; + + + + + + declarative_part + + + + declarative_item + + + + + + declarative_item + + + + basic_declarative_item + + + body + + + + + + basic_declarative_item + + + + basic_declaration + + + representation_clause + + + use_clause + + + + + + body + + + + proper_body + + + body_stub + + + + + + proper_body + + + + subprogram_body + + + package_body + + + task_body + + + protected_body + + + + + + name + + + + direct_name + + + explicit_dereference + + + indexed_component + + + slice + + + selected_component + + + attribute_reference + + + type_conversion + + + function_call + + + character_literal + + + + + + direct_name + + + + identifier + + + operator_symbol + + + + + + prefix + + + + name + + + implicit_dereference + + + + + + explicit_dereference + + + + name + + + . + + + all + + + + + + implicit_dereference + + name + + + + indexed_component + + + + prefix + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + slice + + + + prefix + + + ( + + + discrete_range + + + ) + + + + + + selected_component + + + + prefix + + + . + + + selector_name + + + + + + selector_name + + + + identifier + + + character_literal + + + operator_symbol + + + + + + attribute_reference + + + + prefix + + + ' + + + attribute_designator + + + + + + attribute_designator + + + + + + identifier + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + Access + + + Delta + + + Digits + + + + + + range_attribute_reference + + + + prefix + + + ' + + + range_attribute_designator + + + + + + range_attribute_designator + + + + Range + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + + aggregate + + + + record_aggregate + + + extension_aggregate + + + array_aggregate + + + + + + record_aggregate + + + + ( + + + record_component_association_list + + + ) + + + + + + record_component_association_list + + + + + + record_component_association + + + + + + + , + + + record_component_association + + + + + + + + + + + null + + + record + + + + + + + + record_component_association + + + + + + + + component_choice_list + + + => + + + + + + + expression + + + + + + component_choice_list + + + + + + component_selector_name + + + + + + + | + + + component_selector_name + + + + + + + + + others + + + + + + extension_aggregate + + + + ( + + + ancestor_part + + + with + + + record_component_association_list + + + ) + + + + + + ancestor_part + + + + expression + + + subtype_mark + + + + + + array_aggregate + + + + positional_array_aggregate + + + named_array_aggregate + + + + + + positional_array_aggregate + + + + + + ( + + + expression + + + , + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + , + + + others + + + => + + + expression + + + ) + + + + + + + + named_array_aggregate + + + + ( + + + array_component_association + + + + + + + , + + + array_component_association + + + + + + + ) + + + + + + array_component_association + + + + discrete_choice_list + + + => + + + expression + + + + + + expression + + + + + + relation + + + + + + + and + + + relation + + + + + + + + + + + relation + + + + + + + and + + + then + + + relation + + + + + + + + + + + relation + + + + + + + or + + + relation + + + + + + + + + + + relation + + + + + + + or + + + else + + + relation + + + + + + + + + + + relation + + + + + + + xor + + + relation + + + + + + + + + + + + relation + + + + + + simple_expression + + + + + + + relational_operator + + + simple_expression + + + + + + + + + + + simple_expression + + + + + not + + + + + in + + + range + + + + + + + simple_expression + + + + + not + + + + + in + + + subtype_mark + + + + + + + + simple_expression + + + + + + unary_adding_operator + + + + + term + + + + + + + binary_adding_operator + + + term + + + + + + + + + + term + + + + factor + + + + + + + multiplying_operator + + + factor + + + + + + + + + + factor + + + + + + primary + + + + + + + ** + + + primary + + + + + + + + + + + abs + + + primary + + + + + + + not + + + primary + + + + + + + + primary + + + + numeric_literal + + + null + + + string_literal + + + aggregate + + + name + + + qualified_expression + + + allocator + + + + + ( + + + expression + + + ) + + + + + + + + logical_operator + + + + and + + + or + + + xor + + + + + + relational_operator + + + + = + + + /= + + + < + + + <= + + + > + + + >= + + + + + + binary_adding_operator + + + + + + + + - + + + & + + + + + + unary_adding_operator + + + + + + + + - + + + + + + multiplying_operator + + + + * + + + / + + + mod + + + rem + + + + + + highest_precedence_operator + + + + ** + + + abs + + + not + + + + + + type_conversion + + + + + + subtype_mark + + + ( + + + expression + + + ) + + + + + + + subtype_mark + + + ( + + + name + + + ) + + + + + + + + qualified_expression + + + + + + subtype_mark + + + '( + + + expression + + + ) + + + + + + + subtype_mark + + + ' + + + aggregate + + + + + + + + allocator + + + + + + new + + + subtype_indication + + + + + + + new + + + qualified_expression + + + + + + + + sequence_of_statements + + + + statement + + + + + statement + + + + + + + + statement + + + + + + + + label + + + + + simple_statement + + + + + + + + + label + + + + + compound_statement + + + + + + + + simple_statement + + + + null_statement + + + assignment_statement + + + exit_statement + + + goto_statement + + + procedure_call_statement + + + return_statement + + + entry_call_statement + + + requeue_statement + + + delay_statement + + + abort_statement + + + raise_statement + + + code_statement + + + + + + compound_statement + + + + if_statement + + + case_statement + + + loop_statement + + + block_statement + + + accept_statement + + + select_statement + + + + + + null_statement + + + + null + + + ; + + + + + + label + + + + << + + + label_statement_identifier + + + >> + + + + + + statement_identifier + + direct_name + + + + assignment_statement + + + + variable_name + + + := + + + expression + + + ; + + + + + + if_statement + + + + if + + + condition + + + then + + + sequence_of_statements + + + + + + + elsif + + + condition + + + then + + + sequence_of_statements + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + if + + + ; + + + + + + condition + + boolean_expression + + + + case_statement + + + + case + + + expression + + + is + + + case_statement_alternative + + + + + case_statement_alternative + + + + + end + + + case + + + ; + + + + + + case_statement_alternative + + + + when + + + discrete_choice_list + + + => + + + sequence_of_statements + + + + + + loop_statement + + + + + + + + loop_statement_identifier + + + : + + + + + + + + + iteration_scheme + + + + + loop + + + sequence_of_statements + + + end + + + loop + + + + + loop_identifier + + + + + ; + + + + + + iteration_scheme + + + + + + while + + + condition + + + + + + + for + + + loop_parameter_specification + + + + + + + + loop_parameter_specification + + + + defining_identifier + + + in + + + + + reverse + + + + + discrete_subtype_definition + + + + + + block_statement + + + + + + + + block_statement_identifier + + + : + + + + + + + + + + + declare + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + end + + + + + block_identifier + + + + + ; + + + + + + exit_statement + + + + exit + + + + + loop_name + + + + + + + + + when + + + condition + + + + + + + ; + + + + + + goto_statement + + + + goto + + + label_name + + + ; + + + + + + subprogram_declaration + + + + subprogram_specification + + + ; + + + + + + abstract_subprogram_declaration + + + + subprogram_specification + + + is + + + abstract + + + ; + + + + + + subprogram_specification + + + + + + procedure + + + defining_program_unit_name + + + parameter_profile + + + + + + + function + + + defining_designator + + + parameter_and_result_profile + + + + + + + + designator + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + operator_symbol + + + + + + defining_designator + + + + defining_program_unit_name + + + defining_operator_symbol + + + + + + defining_program_unit_name + + + + + + + + parent_unit_name + + + . + + + + + + + defining_identifier + + + + + + operator_symbol + + string_literal + + + + defining_operator_symbol + + operator_symbol + + + + parameter_profile + + + + formal_part + + + + + + parameter_and_result_profile + + + + + + formal_part + + + + + return + + + subtype_mark + + + + + + formal_part + + + + ( + + + parameter_specification + + + + + + + ; + + + parameter_specification + + + + + + + ) + + + + + + parameter_specification + + + + + + defining_identifier_list + + + : + + + mode + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + mode + + + + + + in + + + + + + + in + + + out + + + + + out + + + + + + subprogram_body + + + + subprogram_specification + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + designator + + + + + ; + + + + + + procedure_call_statement + + + + + + procedure_name + + + ; + + + + + + + procedure_prefix + + + actual_parameter_part + + + ; + + + + + + + + function_call + + + + function_name + + + + + function_prefix + + + actual_parameter_part + + + + + + + + actual_parameter_part + + + + ( + + + parameter_association + + + + + + + , + + + parameter_association + + + + + + + ) + + + + + + parameter_association + + + + + + + + formal_parameter_selector_name + + + => + + + + + + + explicit_actual_parameter + + + + + + explicit_actual_parameter + + + + expression + + + variable_name + + + + + + return_statement + + + + return + + + + + expression + + + + + ; + + + + + + package_declaration + + + + package_specification + + + ; + + + + + + package_specification + + + + package + + + defining_program_unit_name + + + is + + + + + basic_declarative_item + + + + + + + + + private + + + + + basic_declarative_item + + + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + + + + package_body + + + + package + + + body + + + defining_program_unit_name + + + is + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + ; + + + + + + private_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + ; + + + + + + private_extension_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + abstract + + + + + new + + + ancestor_subtype_indication + + + with + + + private + + + ; + + + + + + use_clause + + + + use_package_clause + + + use_type_clause + + + + + + use_package_clause + + + + use + + + package_name + + + + + + + , + + + package_name + + + + + + + ; + + + + + + use_type_clause + + + + use + + + type + + + subtype_mark + + + + + + + , + + + subtype_mark + + + + + + + ; + + + + + + renaming_declaration + + + + object_renaming_declaration + + + exception_renaming_declaration + + + package_renaming_declaration + + + subprogram_renaming_declaration + + + generic_renaming_declaration + + + + + + object_renaming_declaration + + + + defining_identifier + + + : + + + subtype_mark + + + renames + + + object_name + + + ; + + + + + + exception_renaming_declaration + + + + defining_identifier + + + : + + + exception + + + renames + + + exception_name + + + ; + + + + + + package_renaming_declaration + + + + package + + + defining_program_unit_name + + + renamespackage_name + + + ; + + + + + + subprogram_renaming_declaration + + + + subprogram_specification + + + renames + + + callable_entity_name + + + ; + + + + + + generic_renaming_declaration + + + + + + generic + + + package + + + defining_program_unit_name + + + renames + + + generic_package_name + + + ; + + + + + + + generic + + + procedure + + + defining_program_unit_name + + + renames + + + generic_procedure_name + + + ; + + + + + + + generic + + + function + + + defining_program_unit_name + + + renames + + + generic_function_name + + + ; + + + + + + + + task_type_declaration + + + + task + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + + + + + is + + + task_definition + + + + + + + ; + + + + + + single_task_declaration + + + + task + + + defining_identifier + + + + + + + is + + + task_definition + + + + + + + ; + + + + + + task_definition + + + + + + task_item + + + + + + + + + private + + + + + task_item + + + + + + + + + end + + + + + task_identifier + + + + + + + + task_item + + + + entry_declaration + + + representation_clause + + + + + + task_body + + + + task + + + body + + + defining_identifier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + task_identifier + + + + + ; + + + + + + protected_type_declaration + + + + protected + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + protected_definition + + + ; + + + + + + single_protected_declaration + + + + protected + + + defining_identifier + + + is + + + protected_definition + + + ; + + + + + + protected_definition + + + + + + protected_operation_declaration + + + + + + + + + private + + + + + protected_element_declaration + + + + + + + + + end + + + + + protected_identifier + + + + + + + + protected_operation_declaration + + + + subprogram_declaration + + + entry_declaration + + + representation_clause + + + + + + protected_element_declaration + + + + protected_operation_declaration + + + component_declaration + + + + + + protected_body + + + + protected + + + body + + + defining_identifier + + + is + + + + + protected_operation_item + + + + + end + + + + + protected_identifier + + + + + ; + + + + + + protected_operation_item + + + + subprogram_declaration + + + subprogram_body + + + entry_body + + + representation_clause + + + + + + entry_declaration + + + + entry + + + defining_identifier + + + + + + + ( + + + discrete_subtype_definition + + + ) + + + + + + + parameter_profile + + + ; + + + + + + accept_statement + + + + accept + + + entry_direct_name + + + + + + + ( + + + entry_index + + + ) + + + + + + + parameter_profile + + + + + + + do + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + + + + + ; + + + + + + entry_index + + expression + + + + entry_body + + + + entry + + + defining_identifier + + + entry_body_formal_part + + + entry_barrier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + ; + + + + + + entry_body_formal_part + + + + + + + + ( + + + entry_index_specification + + + ) + + + + + + + parameter_profile + + + + + + entry_barrier + + + + when + + + condition + + + + + + entry_index_specification + + + + for + + + defining_identifier + + + in + + + discrete_subtype_definition + + + + + + entry_call_statement + + + + entry_name + + + + + actual_parameter_part + + + + + ; + + + + + + requeue_statement + + + + requeue + + + entry_name + + + + + + + with + + + abort + + + + + + + ; + + + + + + delay_statement + + + + delay_until_statement + + + delay_relative_statement + + + + + + delay_until_statement + + + + delay + + + until + + + delay_expression + + + ; + + + + + + delay_relative_statement + + + + delay + + + delay_expression + + + ; + + + + + + select_statement + + + + selective_accept + + + timed_entry_call + + + conditional_entry_call + + + asynchronous_select + + + + + + selective_accept + + + + select + + + + + guard + + + + + select_alternative + + + + + + + or + + + + + guard + + + + + select_alternative + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + select + + + ; + + + + + + guard + + + + when + + + condition + + + => + + + + + + select_alternative + + + + accept_alternative + + + delay_alternative + + + terminate_alternative + + + + + + accept_alternative + + + + accept_statement + + + + + sequence_of_statements + + + + + + + + delay_alternative + + + + delay_statement + + + + + sequence_of_statements + + + + + + + + terminate_alternative + + + + terminate + + + ; + + + + + + timed_entry_call + + + + select + + + entry_call_alternative + + + or + + + delay_alternative + + + end + + + select + + + ; + + + + + + entry_call_alternative + + + + entry_call_statement + + + + + sequence_of_statements + + + + + + + + conditional_entry_call + + + + select + + + entry_call_alternative + + + else + + + sequence_of_statements + + + end + + + select + + + ; + + + + + + asynchronous_select + + + + select + + + triggering_alternative + + + then + + + abort + + + abortable_part + + + end + + + select + + + ; + + + + + + triggering_alternative + + + + triggering_statement + + + + + sequence_of_statements + + + + + + + + triggering_statement + + + + entry_call_statement + + + delay_statement + + + + + + abortable_part + + sequence_of_statements + + + + abort_statement + + + + abort + + + task_name + + + + + + + , + + + task_name + + + + + + + ; + + + + + + compilation + + + + compilation_unit + + + + + + compilation_unit + + + + + + context_clause + + + library_item + + + + + + + context_clause + + + subunit + + + + + + + + library_item + + + + + + + + private + + + + + library_unit_declaration + + + + + library_unit_body + + + + + + + private + + + + + library_unit_renaming_declaration + + + + + + + + library_unit_declaration + + + + subprogram_declaration + + + package_declaration + + + generic_declaration + + + generic_instantiation + + + + + + library_unit_renaming_declaration + + + + package_renaming_declaration + + + generic_renaming_declaration + + + subprogram_renaming_declaration + + + + + + library_unit_body + + + + subprogram_body + + + package_body + + + + + + parent_unit_name + + name + + + + context_clause + + + + context_item + + + + + + context_item + + + + with_clause + + + use_clause + + + + + + with_clause + + + + with + + + library_unit_name + + + + + + + , + + + library_unit_name + + + + + + + ; + + + + + + body_stub + + + + subprogram_body_stub + + + package_body_stub + + + task_body_stub + + + protected_body_stub + + + + + + subprogram_body_stub + + + + subprogram_specification + + + is + + + separate + + + ; + + + + + + package_body_stub + + + + package + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + task_body_stub + + + + task + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + protected_body_stub + + + + protected + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + subunit + + + + separate + + + ( + + + parent_unit_name + + + ) + + + proper_body + + + + + + exception_declaration + + + + defining_identifier_list + + + : + + + exception + + + ; + + + + + + handled_sequence_of_statements + + + + sequence_of_statements + + + + + + + exception + + + exception_handler + + + + + exception_handler + + + + + + + + + + + + exception_handler + + + + when + + + + + + + choice_parameter_specification + + + : + + + + + + + exception_choice + + + + + + + | + + + exception_choice + + + + + + + => + + + sequence_of_statements + + + + + + choice_parameter_specification + + defining_identifier + + + + exception_choice + + + + exception_name + + + others + + + + + + raise_statement + + + + raise + + + + + exception_name + + + + + ; + + + + + + generic_declaration + + + + generic_subprogram_declaration + + + generic_package_declaration + + + + + + generic_subprogram_declaration + + + + generic_formal_part + + + subprogram_specification + + + ; + + + + + + generic_package_declaration + + + + generic_formal_part + + + package_specification + + + ; + + + + + + generic_formal_part + + + + generic + + + + + + + generic_formal_parameter_declaration + + + use_clause + + + + + + + + + + generic_formal_parameter_declaration + + + + formal_object_declaration + + + formal_type_declaration + + + formal_subprogram_declaration + + + formal_package_declaration + + + + + + generic_instantiation + + + + + + package + + + defining_program_unit_name + + + is + + + new + + + generic_package_name + + + + + generic_actual_part + + + + + ; + + + + + + + procedure + + + defining_program_unit_name + + + is + + + new + + + generic_procedure_name + + + + + generic_actual_part + + + + + ; + + + + + + + function + + + defining_designator + + + is + + + new + + + generic_function_name + + + + + generic_actual_part + + + + + ; + + + + + + + + generic_actual_part + + + + ( + + + generic_association + + + + + + + , + + + generic_association + + + + + + + ) + + + + + + generic_association + + + + + + + + generic_formal_parameter_selector_name + + + => + + + + + + + explicit_generic_actual_parameter + + + + + + explicit_generic_actual_parameter + + + + expression + + + variable_name + + + subprogram_name + + + entry_name + + + subtype_mark + + + package_instance_name + + + + + + formal_object_declaration + + + + defining_identifier_list + + + : + + + mode + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + formal_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + formal_type_definition + + + ; + + + + + + formal_type_definition + + + + formal_private_type_definition + + + formal_derived_type_definition + + + formal_discrete_type_definition + + + formal_signed_integer_type_definition + + + formal_modular_type_definition + + + formal_floating_point_definition + + + formal_ordinary_fixed_point_definition + + + formal_decimal_fixed_point_definition + + + formal_array_type_definition + + + formal_access_type_definition + + + + + + formal_private_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + + + + formal_derived_type_definition + + + + + + abstract + + + + + new + + + subtype_mark + + + + + + + with + + + private + + + + + + + + + + formal_discrete_type_definition + + (<>) + + + + formal_signed_integer_type_definition + + + + range + + + <> + + + + + + formal_modular_type_definition + + + + mod + + + <> + + + + + + formal_floating_point_definition + + + + digits + + + <> + + + + + + formal_ordinary_fixed_point_definition + + + + delta + + + <> + + + + + + formal_decimal_fixed_point_definition + + + + delta + + + <> + + + digits + + + <> + + + + + + formal_array_type_definition + + array_type_definition + + + + formal_access_type_definition + + access_type_definition + + + + formal_subprogram_declaration + + + + with + + + subprogram_specification + + + + + + + is + + + subprogram_default + + + + + + + ; + + + + + + subprogram_default + + + + default_name + + + <> + + + + + + default_name + + name + + + + formal_package_declaration + + + + with + + + package + + + defining_identifier + + + is + + + new + + + generic_package_name + + + formal_package_actual_part + + + ; + + + + + + formal_package_actual_part + + + + (<>) + + + + + generic_actual_part + + + + + + + + representation_clause + + + + attribute_definition_clause + + + enumeration_representation_clause + + + record_representation_clause + + + at_clause + + + + + + local_name + + + + direct_name + + + + + direct_name + + + ' + + + attribute_designator + + + + + library_unit_name + + + + + + attribute_definition_clause + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + expression + + + ; + + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + name + + + ; + + + + + + + + enumeration_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + enumeration_aggregate + + + ; + + + + + + enumeration_aggregate + + array_aggregate + + + + record_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + record + + + + + mod_clause + + + + + + + component_clause + + + + + end + + + record + + + ; + + + + + + component_clause + + + + component_local_name + + + at + + + position + + + range + + + first_bit + + + .. + + + last_bit + + + ; + + + + + + position + + static_expression + + + + first_bit + + static_simple_expression + + + + last_bit + + static_simple_expression + + + + code_statement + + + + qualified_expression + + + ; + + + + + + restriction + + + + restriction_identifier + + + + + restriction_parameter_identifier + + + => + + + expression + + + + + + + + delta_constraint + + + + delta + + + static_expression + + + + + range_constraint + + + + + + + + at_clause + + + + for + + + direct_name + + + use + + + at + + + expression + + + ; + + + + + + mod_clause + + + + at + + + mod + + + static_expression + + + ; + + + + + \ No newline at end of file diff --git a/shared/bgf/ada-laemmel-verhoef.bgf b/shared/bgf/ada-laemmel-verhoef.bgf new file mode 100644 index 00000000..19d3ac97 --- /dev/null +++ b/shared/bgf/ada-laemmel-verhoef.bgf @@ -0,0 +1,6567 @@ + + + + + pragma + + + + pragma + + + identifier + + + + + + + ( + + + pragma_argument_association + + + + + + + , + + + pragma_argument_association + + + + + + + ) + + + + + + + ; + + + + + + pragma_argument_association + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + name + + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + expression + + + + + + + + basic_declaration + + + + type_declaration + + + subtype_declaration + + + object_declaration + + + number_declaration + + + subprogram_declaration + + + abstract_subprogram_declaration + + + package_declaration + + + renaming_declaration + + + exception_declaration + + + generic_declaration + + + generic_instantiation + + + + + + defining_identifier + + identifier + + + + type_declaration + + + + full_type_declaration + + + incomplete_type_declaration + + + private_type_declaration + + + private_extension_declaration + + + + + + full_type_declaration + + + + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + type_definition + + + ; + + + + + task_type_declaration + + + protected_type_declaration + + + + + + type_definition + + + + enumeration_type_definition + + + integer_type_definition + + + real_type_definition + + + array_type_definition + + + record_type_definition + + + access_type_definition + + + derived_type_definition + + + + + + subtype_declaration + + + + subtype + + + defining_identifier + + + is + + + subtype_indication + + + ; + + + + + + subtype_indication + + + + subtype_mark + + + + + constraint + + + + + + + + subtype_mark + + subtype_name + + + + constraint + + + + scalar_constraint + + + composite_constraint + + + + + + scalar_constraint + + + + range_constraint + + + digits_constraint + + + delta_constraint + + + + + + composite_constraint + + + + index_constraint + + + discriminant_constraint + + + + + + object_declaration + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + subtype_indication + + + + + + + := + + + expression + + + + + + + ; + + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + array_type_definition + + + + + + + := + + + expression + + + + + + + ; + + + + + single_task_declaration + + + single_protected_declaration + + + + + + defining_identifier_list + + + + defining_identifier + + + + + + + , + + + defining_identifier + + + + + + + + + + number_declaration + + + + defining_identifier_list + + + : + + + constant + + + := + + + static_expression + + + ; + + + + + + derived_type_definition + + + + + + abstract + + + + + new + + + parent_subtype_indication + + + + + record_extension_part + + + + + + + + range_constraint + + + + range + + + range_definition + + + + + + range_definition + + + + range_attribute_reference + + + + + simple_expression + + + .. + + + simple_expression + + + + + + + + enumeration_type_definition + + + + ( + + + enumeration_literal_specification + + + + + + + , + + + enumeration_literal_specification + + + + + + + ) + + + + + + enumeration_literal_specification + + + + defining_identifier + + + defining_character_literal + + + + + + defining_character_literal + + character_literal + + + + integer_type_definition + + + + signed_integer_type_definition + + + modular_type_definition + + + + + + signed_integer_type_definition + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + modular_type_definition + + + + mod + + + static_expression + + + + + + real_type_definition + + + + floating_point_definition + + + fixed_point_definition + + + + + + floating_point_definition + + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + real_range_specification + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + fixed_point_definition + + + + ordinary_fixed_point_definition + + + decimal_fixed_point_definition + + + + + + ordinary_fixed_point_definition + + + + delta + + + static_expression + + + real_range_specification + + + + + + decimal_fixed_point_definition + + + + delta + + + static_expression + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + digits_constraint + + + + digits + + + static_expression + + + + + range_constraint + + + + + + + + array_type_definition + + + + unconstrained_array_definition + + + constrained_array_definition + + + + + + unconstrained_array_definition + + + + array + + + ( + + + index_subtype_definition + + + + + + + , + + + index_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + index_subtype_definition + + + + subtype_mark + + + range + + + <> + + + + + + constrained_array_definition + + + + array + + + ( + + + discrete_subtype_definition + + + + + + + , + + + discrete_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + discrete_subtype_definition + + + + discrete_subtype_indication + + + range + + + + + + component_definition + + + + + + aliased + + + + + subtype_indication + + + + + + index_constraint + + + + ( + + + discrete_range + + + + + + + , + + + discrete_range + + + + + + + ) + + + + + + discrete_range + + + + discrete_subtype_indication + + + range_definition + + + + + + discriminant_part + + + + unknown_discriminant_part + + + known_discriminant_part + + + + + + unknown_discriminant_part + + + + ( + + + <> + + + ) + + + + + + known_discriminant_part + + + + ( + + + discriminant_specification + + + + + + + ; + + + discriminant_specification + + + + + + + ) + + + + + + discriminant_specification + + + + + + defining_identifier_list + + + : + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + default_expression + + expression + + + + discriminant_constraint + + + + ( + + + discriminant_association + + + + + + + , + + + discriminant_association + + + + + + + ) + + + + + + discriminant_association + + + + + + + + discriminant_selector_name + + + + + + + | + + + discriminant_selector_name + + + + + + + => + + + + + + + expression + + + + + + record_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + record_definition + + + + + + record_definition + + + + + + record + + + component_list + + + end + + + record + + + + + + + null + + + record + + + + + + + + component_list + + + + + + component_item + + + + + component_item + + + + + + + + + + + component_item + + + + + variant_part + + + + + + + null + + + ; + + + + + + + + component_item + + + + component_declaration + + + representation_clause + + + + + + component_declaration + + + + defining_identifier_list + + + : + + + component_definition + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + variant_part + + + + case + + + discriminant_direct_name + + + is + + + variant + + + + + variant + + + + + end + + + case + + + ; + + + + + + variant + + + + when + + + discrete_choice_list + + + => + + + component_list + + + + + + discrete_choice_list + + + + discrete_choice + + + + + + + | + + + discrete_choice + + + + + + + + + + discrete_choice + + + + expression + + + discrete_range + + + others + + + + + + record_extension_part + + + + with + + + record_definition + + + + + + access_type_definition + + + + access_to_object_definition + + + access_to_subprogram_definition + + + + + + access_to_object_definition + + + + access + + + + + general_access_modifier + + + + + subtype_indication + + + + + + general_access_modifier + + + + all + + + constant + + + + + + access_to_subprogram_definition + + + + + + access + + + + + protected + + + + + procedure + + + parameter_profile + + + + + + + access + + + + + protected + + + + + function + + + parameter_and_result_profile + + + + + + + + access_definition + + + + access + + + subtype_mark + + + + + + incomplete_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + ; + + + + + + declarative_part + + + + declarative_item + + + + + + declarative_item + + + + basic_declarative_item + + + body + + + + + + basic_declarative_item + + + + basic_declaration + + + representation_clause + + + use_clause + + + + + + body + + + + proper_body + + + body_stub + + + + + + proper_body + + + + subprogram_body + + + package_body + + + task_body + + + protected_body + + + + + + name + + + + direct_name + + + explicit_dereference + + + indexed_component + + + slice + + + selected_component + + + attribute_reference + + + type_conversion + + + function_call + + + character_literal + + + + + + direct_name + + + + identifier + + + operator_symbol + + + + + + prefix + + + + name + + + implicit_dereference + + + + + + explicit_dereference + + + + name + + + . + + + all + + + + + + implicit_dereference + + name + + + + indexed_component + + + + prefix + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + slice + + + + prefix + + + ( + + + discrete_range + + + ) + + + + + + selected_component + + + + prefix + + + . + + + selector_name + + + + + + selector_name + + + + identifier + + + character_literal + + + operator_symbol + + + + + + attribute_reference + + + + prefix + + + ' + + + attribute_designator + + + + + + attribute_designator + + + + + + identifier + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + Access + + + Delta + + + Digits + + + + + + range_attribute_reference + + + + prefix + + + ' + + + range_attribute_designator + + + + + + range_attribute_designator + + + + Range + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + + aggregate + + + + record_aggregate + + + extension_aggregate + + + array_aggregate + + + + + + record_aggregate + + + + ( + + + record_component_association_list + + + ) + + + + + + record_component_association_list + + + + + + record_component_association + + + + + + + , + + + record_component_association + + + + + + + + + + + null + + + record + + + + + + + + record_component_association + + + + + + + + component_choice_list + + + => + + + + + + + expression + + + + + + component_choice_list + + + + + + component_selector_name + + + + + + + | + + + component_selector_name + + + + + + + + + others + + + + + + extension_aggregate + + + + ( + + + ancestor_part + + + with + + + record_component_association_list + + + ) + + + + + + ancestor_part + + + + expression + + + subtype_mark + + + + + + array_aggregate + + + + positional_array_aggregate + + + named_array_aggregate + + + + + + positional_array_aggregate + + + + + + ( + + + expression + + + , + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + , + + + others + + + => + + + expression + + + ) + + + + + + + + named_array_aggregate + + + + ( + + + array_component_association + + + + + + + , + + + array_component_association + + + + + + + ) + + + + + + array_component_association + + + + discrete_choice_list + + + => + + + expression + + + + + + expression + + + + + + relation + + + + + + + and + + + relation + + + + + + + + + + + relation + + + + + + + and + + + then + + + relation + + + + + + + + + + + relation + + + + + + + or + + + relation + + + + + + + + + + + relation + + + + + + + or + + + else + + + relation + + + + + + + + + + + relation + + + + + + + xor + + + relation + + + + + + + + + + + + relation + + + + + + simple_expression + + + + + + + relational_operator + + + simple_expression + + + + + + + + + + + simple_expression + + + + + not + + + + + in + + + range_definition + + + + + + + simple_expression + + + + + not + + + + + in + + + subtype_mark + + + + + + + + simple_expression + + + + + + unary_adding_operator + + + + + term + + + + + + + binary_adding_operator + + + term + + + + + + + + + + term + + + + factor + + + + + + + multiplying_operator + + + factor + + + + + + + + + + factor + + + + + + primary + + + + + + + ** + + + primary + + + + + + + + + + + abs + + + primary + + + + + + + not + + + primary + + + + + + + + primary + + + + numeric_literal + + + null + + + string_literal + + + aggregate + + + name + + + qualified_expression + + + allocator + + + + + ( + + + expression + + + ) + + + + + + + + logical_operator + + + + and + + + or + + + xor + + + + + + relational_operator + + + + = + + + /= + + + < + + + <= + + + > + + + >= + + + + + + binary_adding_operator + + + + + + + + - + + + & + + + + + + unary_adding_operator + + + + + + + + - + + + + + + multiplying_operator + + + + * + + + / + + + mod + + + rem + + + + + + highest_precedence_operator + + + + ** + + + abs + + + not + + + + + + type_conversion + + + + + + subtype_mark + + + ( + + + expression + + + ) + + + + + + + subtype_mark + + + ( + + + name + + + ) + + + + + + + + qualified_expression + + + + + + subtype_mark + + + ' + + + ( + + + expression + + + ) + + + + + + + subtype_mark + + + ' + + + aggregate + + + + + + + + allocator + + + + + + new + + + subtype_indication + + + + + + + new + + + qualified_expression + + + + + + + + sequence_of_statements + + + + statement + + + + + statement + + + + + + + + statement + + + + + + + + label + + + + + simple_statement + + + + + + + + + label + + + + + compound_statement + + + + + + + + simple_statement + + + + null_statement + + + assignment_statement + + + exit_statement + + + goto_statement + + + procedure_call_statement + + + return_statement + + + entry_call_statement + + + requeue_statement + + + delay_statement + + + abort_statement + + + raise_statement + + + code_statement + + + + + + compound_statement + + + + if_statement + + + case_statement + + + loop_statement + + + block_statement + + + accept_statement + + + select_statement + + + + + + null_statement + + + + null + + + ; + + + + + + label + + + + << + + + label_statement_identifier + + + >> + + + + + + statement_identifier + + direct_name + + + + assignment_statement + + + + variable_name + + + := + + + expression + + + ; + + + + + + if_statement + + + + if + + + condition + + + then + + + sequence_of_statements + + + + + + + elsif + + + condition + + + then + + + sequence_of_statements + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + if + + + ; + + + + + + condition + + boolean_expression + + + + case_statement + + + + case + + + expression + + + is + + + case_statement_alternative + + + + + case_statement_alternative + + + + + end + + + case + + + ; + + + + + + case_statement_alternative + + + + when + + + discrete_choice_list + + + => + + + sequence_of_statements + + + + + + loop_statement + + + + + + + + loop_statement_identifier + + + : + + + + + + + + + iteration_scheme + + + + + loop + + + sequence_of_statements + + + end + + + loop + + + + + loop_identifier + + + + + ; + + + + + + iteration_scheme + + + + + + while + + + condition + + + + + + + for + + + loop_parameter_specification + + + + + + + + loop_parameter_specification + + + + defining_identifier + + + in + + + + + reverse + + + + + discrete_subtype_definition + + + + + + block_statement + + + + + + + + block_statement_identifier + + + : + + + + + + + + + + + declare + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + end + + + + + block_identifier + + + + + ; + + + + + + exit_statement + + + + exit + + + + + loop_name + + + + + + + + + when + + + condition + + + + + + + ; + + + + + + goto_statement + + + + goto + + + label_name + + + ; + + + + + + subprogram_declaration + + + + subprogram_specification + + + ; + + + + + + abstract_subprogram_declaration + + + + subprogram_specification + + + is + + + abstract + + + ; + + + + + + subprogram_specification + + + + + + procedure + + + defining_program_unit_name + + + parameter_profile + + + + + + + function + + + defining_designator + + + parameter_and_result_profile + + + + + + + + designator + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + operator_symbol + + + + + + defining_designator + + + + defining_program_unit_name + + + defining_operator_symbol + + + + + + defining_program_unit_name + + + + + + + + parent_unit_name + + + . + + + + + + + defining_identifier + + + + + + operator_symbol + + string_literal + + + + defining_operator_symbol + + operator_symbol + + + + parameter_profile + + + + formal_part + + + + + + parameter_and_result_profile + + + + + + formal_part + + + + + return + + + subtype_mark + + + + + + formal_part + + + + ( + + + parameter_specification + + + + + + + ; + + + parameter_specification + + + + + + + ) + + + + + + parameter_specification + + + + + + defining_identifier_list + + + : + + + mode + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + mode + + + + + + in + + + + + + + in + + + out + + + + + out + + + + + + subprogram_body + + + + subprogram_specification + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + designator + + + + + ; + + + + + + procedure_call_statement + + + + + + procedure_name + + + ; + + + + + + + procedure_prefix + + + actual_parameter_part + + + ; + + + + + + + + function_call + + + + function_name + + + + + function_prefix + + + actual_parameter_part + + + + + + + + actual_parameter_part + + + + ( + + + parameter_association + + + + + + + , + + + parameter_association + + + + + + + ) + + + + + + parameter_association + + + + + + + + formal_parameter_selector_name + + + => + + + + + + + explicit_actual_parameter + + + + + + explicit_actual_parameter + + + + expression + + + variable_name + + + + + + return_statement + + + + return + + + + + expression + + + + + ; + + + + + + package_declaration + + + + package_specification + + + ; + + + + + + package_specification + + + + package + + + defining_program_unit_name + + + is + + + + + basic_declarative_item + + + + + + + + + private + + + + + basic_declarative_item + + + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + + + + package_body + + + + package + + + body + + + defining_program_unit_name + + + is + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + ; + + + + + + private_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + ; + + + + + + private_extension_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + abstract + + + + + new + + + ancestor_subtype_indication + + + with + + + private + + + ; + + + + + + use_clause + + + + use_package_clause + + + use_type_clause + + + + + + use_package_clause + + + + use + + + package_name + + + + + + + , + + + package_name + + + + + + + ; + + + + + + use_type_clause + + + + use + + + type + + + subtype_mark + + + + + + + , + + + subtype_mark + + + + + + + ; + + + + + + renaming_declaration + + + + object_renaming_declaration + + + exception_renaming_declaration + + + package_renaming_declaration + + + subprogram_renaming_declaration + + + generic_renaming_declaration + + + + + + object_renaming_declaration + + + + defining_identifier + + + : + + + subtype_mark + + + renames + + + object_name + + + ; + + + + + + exception_renaming_declaration + + + + defining_identifier + + + : + + + exception + + + renames + + + exception_name + + + ; + + + + + + package_renaming_declaration + + + + package + + + defining_program_unit_name + + + renamespackage_name + + + ; + + + + + + subprogram_renaming_declaration + + + + subprogram_specification + + + renames + + + callable_entity_name + + + ; + + + + + + generic_renaming_declaration + + + + + + generic + + + package + + + defining_program_unit_name + + + renames + + + generic_package_name + + + ; + + + + + + + generic + + + procedure + + + defining_program_unit_name + + + renames + + + generic_procedure_name + + + ; + + + + + + + generic + + + function + + + defining_program_unit_name + + + renames + + + generic_function_name + + + ; + + + + + + + + task_type_declaration + + + + task + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + + + + + is + + + task_definition + + + + + + + ; + + + + + + single_task_declaration + + + + task + + + defining_identifier + + + + + + + is + + + task_definition + + + + + + + ; + + + + + + task_definition + + + + + + task_item + + + + + + + + + private + + + + + task_item + + + + + + + + + end + + + + + task_identifier + + + + + + + + task_item + + + + entry_declaration + + + representation_clause + + + + + + task_body + + + + task + + + body + + + defining_identifier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + task_identifier + + + + + ; + + + + + + protected_type_declaration + + + + protected + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + protected_definition + + + ; + + + + + + single_protected_declaration + + + + protected + + + defining_identifier + + + is + + + protected_definition + + + ; + + + + + + protected_definition + + + + + + protected_operation_declaration + + + + + + + + + private + + + + + protected_element_declaration + + + + + + + + + end + + + + + protected_identifier + + + + + + + + protected_operation_declaration + + + + subprogram_declaration + + + entry_declaration + + + representation_clause + + + + + + protected_element_declaration + + + + protected_operation_declaration + + + component_declaration + + + + + + protected_body + + + + protected + + + body + + + defining_identifier + + + is + + + + + protected_operation_item + + + + + end + + + + + protected_identifier + + + + + ; + + + + + + protected_operation_item + + + + subprogram_declaration + + + subprogram_body + + + entry_body + + + representation_clause + + + + + + entry_declaration + + + + entry + + + defining_identifier + + + + + + + ( + + + discrete_subtype_definition + + + ) + + + + + + + parameter_profile + + + ; + + + + + + accept_statement + + + + accept + + + entry_direct_name + + + + + + + ( + + + entry_index + + + ) + + + + + + + parameter_profile + + + + + + + do + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + + + + + ; + + + + + + entry_index + + expression + + + + entry_body + + + + entry + + + defining_identifier + + + entry_body_formal_part + + + entry_barrier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + ; + + + + + + entry_body_formal_part + + + + + + + + ( + + + entry_index_specification + + + ) + + + + + + + parameter_profile + + + + + + entry_barrier + + + + when + + + condition + + + + + + entry_index_specification + + + + for + + + defining_identifier + + + in + + + discrete_subtype_definition + + + + + + entry_call_statement + + + + entry_name + + + + + actual_parameter_part + + + + + ; + + + + + + requeue_statement + + + + requeue + + + entry_name + + + + + + + with + + + abort + + + + + + + ; + + + + + + delay_statement + + + + delay_until_statement + + + delay_relative_statement + + + + + + delay_until_statement + + + + delay + + + until + + + delay_expression + + + ; + + + + + + delay_relative_statement + + + + delay + + + delay_expression + + + ; + + + + + + select_statement + + + + selective_accept + + + timed_entry_call + + + conditional_entry_call + + + asynchronous_select + + + + + + selective_accept + + + + select + + + + + guard + + + + + select_alternative + + + + + + + or + + + + + guard + + + + + select_alternative + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + select + + + ; + + + + + + guard + + + + when + + + condition + + + => + + + + + + select_alternative + + + + accept_alternative + + + delay_alternative + + + terminate_alternative + + + + + + accept_alternative + + + + accept_statement + + + + + sequence_of_statements + + + + + + + + delay_alternative + + + + delay_statement + + + + + sequence_of_statements + + + + + + + + terminate_alternative + + + + terminate + + + ; + + + + + + timed_entry_call + + + + select + + + entry_call_alternative + + + or + + + delay_alternative + + + end + + + select + + + ; + + + + + + entry_call_alternative + + + + entry_call_statement + + + + + sequence_of_statements + + + + + + + + conditional_entry_call + + + + select + + + entry_call_alternative + + + else + + + sequence_of_statements + + + end + + + select + + + ; + + + + + + asynchronous_select + + + + select + + + triggering_alternative + + + then + + + abort + + + abortable_part + + + end + + + select + + + ; + + + + + + triggering_alternative + + + + triggering_statement + + + + + sequence_of_statements + + + + + + + + triggering_statement + + + + entry_call_statement + + + delay_statement + + + + + + abortable_part + + sequence_of_statements + + + + abort_statement + + + + abort + + + task_name + + + + + + + , + + + task_name + + + + + + + ; + + + + + + compilation + + + + compilation_unit + + + + + + compilation_unit + + + + + + context_clause + + + library_item + + + + + + + context_clause + + + subunit + + + + + + + + library_item + + + + + + + + private + + + + + library_unit_declaration + + + + + library_unit_body + + + + + + + private + + + + + library_unit_renaming_declaration + + + + + + + + library_unit_declaration + + + + subprogram_declaration + + + package_declaration + + + generic_declaration + + + generic_instantiation + + + + + + library_unit_renaming_declaration + + + + package_renaming_declaration + + + generic_renaming_declaration + + + subprogram_renaming_declaration + + + + + + library_unit_body + + + + subprogram_body + + + package_body + + + + + + parent_unit_name + + name + + + + context_clause + + + + context_item + + + + + + context_item + + + + with_clause + + + use_clause + + + + + + with_clause + + + + with + + + library_unit_name + + + + + + + , + + + library_unit_name + + + + + + + ; + + + + + + body_stub + + + + subprogram_body_stub + + + package_body_stub + + + task_body_stub + + + protected_body_stub + + + + + + subprogram_body_stub + + + + subprogram_specification + + + is + + + separate + + + ; + + + + + + package_body_stub + + + + package + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + task_body_stub + + + + task + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + protected_body_stub + + + + protected + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + subunit + + + + separate + + + ( + + + parent_unit_name + + + ) + + + proper_body + + + + + + exception_declaration + + + + defining_identifier_list + + + : + + + exception + + + ; + + + + + + handled_sequence_of_statements + + + + sequence_of_statements + + + + + + + exception + + + exception_handler + + + + + exception_handler + + + + + + + + + + + + exception_handler + + + + when + + + + + + + choice_parameter_specification + + + : + + + + + + + exception_choice + + + + + + + | + + + exception_choice + + + + + + + => + + + sequence_of_statements + + + + + + choice_parameter_specification + + defining_identifier + + + + exception_choice + + + + exception_name + + + others + + + + + + raise_statement + + + + raise + + + + + exception_name + + + + + ; + + + + + + generic_declaration + + + + generic_subprogram_declaration + + + generic_package_declaration + + + + + + generic_subprogram_declaration + + + + generic_formal_part + + + subprogram_specification + + + ; + + + + + + generic_package_declaration + + + + generic_formal_part + + + package_specification + + + ; + + + + + + generic_formal_part + + + + generic + + + + + + + generic_formal_parameter_declaration + + + use_clause + + + + + + + + + + generic_formal_parameter_declaration + + + + formal_object_declaration + + + formal_type_declaration + + + formal_subprogram_declaration + + + formal_package_declaration + + + + + + generic_instantiation + + + + + + package + + + defining_program_unit_name + + + is + + + new + + + generic_package_name + + + + + generic_actual_part + + + + + ; + + + + + + + procedure + + + defining_program_unit_name + + + is + + + new + + + generic_procedure_name + + + + + generic_actual_part + + + + + ; + + + + + + + function + + + defining_designator + + + is + + + new + + + generic_function_name + + + + + generic_actual_part + + + + + ; + + + + + + + + generic_actual_part + + + + ( + + + generic_association + + + + + + + , + + + generic_association + + + + + + + ) + + + + + + generic_association + + + + + + + + generic_formal_parameter_selector_name + + + => + + + + + + + explicit_generic_actual_parameter + + + + + + explicit_generic_actual_parameter + + + + expression + + + variable_name + + + subprogram_name + + + entry_name + + + subtype_mark + + + package_instance_name + + + + + + formal_object_declaration + + + + defining_identifier_list + + + : + + + mode + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + formal_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + formal_type_definition + + + ; + + + + + + formal_type_definition + + + + formal_private_type_definition + + + formal_derived_type_definition + + + formal_discrete_type_definition + + + formal_signed_integer_type_definition + + + formal_modular_type_definition + + + formal_floating_point_definition + + + formal_ordinary_fixed_point_definition + + + formal_decimal_fixed_point_definition + + + formal_array_type_definition + + + formal_access_type_definition + + + + + + formal_private_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + + + + formal_derived_type_definition + + + + + + abstract + + + + + new + + + subtype_mark + + + + + + + with + + + private + + + + + + + + + + formal_discrete_type_definition + + + + ( + + + <> + + + ) + + + + + + formal_signed_integer_type_definition + + + + range + + + <> + + + + + + formal_modular_type_definition + + + + mod + + + <> + + + + + + formal_floating_point_definition + + + + digits + + + <> + + + + + + formal_ordinary_fixed_point_definition + + + + delta + + + <> + + + + + + formal_decimal_fixed_point_definition + + + + delta + + + <> + + + digits + + + <> + + + + + + formal_array_type_definition + + array_type_definition + + + + formal_access_type_definition + + access_type_definition + + + + formal_subprogram_declaration + + + + with + + + subprogram_specification + + + + + + + is + + + subprogram_default + + + + + + + ; + + + + + + subprogram_default + + + + default_name + + + <> + + + + + + default_name + + name + + + + formal_package_declaration + + + + with + + + package + + + defining_identifier + + + is + + + new + + + generic_package_name + + + formal_package_actual_part + + + ; + + + + + + formal_package_actual_part + + + + + + ( + + + <> + + + ) + + + + + + + generic_actual_part + + + + + + + + representation_clause + + + + attribute_definition_clause + + + enumeration_representation_clause + + + record_representation_clause + + + at_clause + + + + + + local_name + + + + direct_name + + + + + direct_name + + + ' + + + attribute_designator + + + + + library_unit_name + + + + + + attribute_definition_clause + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + expression + + + ; + + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + name + + + ; + + + + + + + + enumeration_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + enumeration_aggregate + + + ; + + + + + + enumeration_aggregate + + array_aggregate + + + + record_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + record + + + + + mod_clause + + + + + + + component_clause + + + + + end + + + record + + + ; + + + + + + component_clause + + + + component_local_name + + + at + + + position + + + range + + + first_bit + + + .. + + + last_bit + + + ; + + + + + + position + + static_expression + + + + first_bit + + static_simple_expression + + + + last_bit + + static_simple_expression + + + + code_statement + + + + qualified_expression + + + ; + + + + + + restriction + + + + restriction_identifier + + + + + restriction_parameter_identifier + + + => + + + expression + + + + + + + + delta_constraint + + + + delta + + + static_expression + + + + + range_constraint + + + + + + + + at_clause + + + + for + + + direct_name + + + use + + + at + + + expression + + + ; + + + + + + mod_clause + + + + at + + + mod + + + static_expression + + + ; + + + + + \ No newline at end of file diff --git a/shared/bgf/ada-lncs-2219.bgf b/shared/bgf/ada-lncs-2219.bgf new file mode 100644 index 00000000..60063eda --- /dev/null +++ b/shared/bgf/ada-lncs-2219.bgf @@ -0,0 +1,6890 @@ + + + + + character + + + + graphic_character + + + format_effector + + + other_control_function + + + + + + graphic_character + + + + identifier_letter + + + digit + + + space_character + + + special_character + + + + + + identifier + + + + identifier_letter + + + + + + + + + underline + + + + + letter_or_digit + + + + + + + + + + letter_or_digit + + + + identifier_letter + + + digit + + + + + + numeric_literal + + + + decimal_literal + + + based_literal + + + + + + decimal_literal + + + + numeral + + + + + + + . + + + numeral + + + + + + + + + exponent + + + + + + + + numeral + + + + digit + + + + + + + + + underline + + + + + digit + + + + + + + + + + exponent + + + + + + E + + + + + + + + + + + numeral + + + + + + + E + + + - + + + numeral + + + + + + + + based_literal + + + + base + + + # + + + based_numeral + + + + + + + . + + + based_numeral + + + + + + + # + + + + + exponent + + + + + + + + base + + numeral + + + + based_numeral + + + + extended_digit + + + + + + + + + underline + + + + + extended_digit + + + + + + + + + + extended_digit + + + + digit + + + A + + + B + + + C + + + D + + + E + + + F + + + + + + character_literal + + + + ' + + + graphic_character + + + ' + + + + + + string_literal + + + + " + + + + + string_element + + + + + " + + + + + + string_element + + + + "" + + + non_quotation_mark_graphic_character + + + + + + comment + + + + - + + + - + + + + + non_end_of_line_character + + + + + + + + pragma + + + + pragma + + + identifier + + + + + + + ( + + + pragma_argument_association + + + + + + + , + + + pragma_argument_association + + + + + + + ) + + + + + + + ; + + + + + + pragma_argument_association + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + name + + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + expression + + + + + + + + basic_declaration + + + + type_declaration + + + object_declaration + + + subprogram_declaration + + + package_declaration + + + exception_declaration + + + generic_instantiation + + + subtype_declaration + + + number_declaration + + + abstract_subprogram_declaration + + + renaming_declaration + + + generic_declaration + + + + + + defining_identifier + + identifier + + + + type_declaration + + + + full_type_declaration + + + incomplete_type_declaration + + + private_type_declaration + + + private_extension_declaration + + + + + + full_type_declaration + + + + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + type_definition + + + ; + + + + + task_type_declaration + + + protected_type_declaration + + + + + + type_definition + + + + enumeration_type_definition + + + real_type_definition + + + record_type_definition + + + derived_type_definition + + + integer_type_definition + + + array_type_definition + + + access_type_definition + + + + + + subtype_declaration + + + + subtype + + + defining_identifier + + + is + + + subtype_indication + + + ; + + + + + + subtype_indication + + + + subtype_mark + + + + + constraint + + + + + + + + subtype_mark + + subtype_name + + + + constraint + + + + scalar_constraint + + + composite_constraint + + + + + + scalar_constraint + + + + range_constraint + + + digits_constraint + + + delta_constraint + + + + + + composite_constraint + + + + index_constraint + + + discriminant_constraint + + + + + + object_declaration + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + subtype_indication + + + + + + + := + + + expression + + + + + + + ; + + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + array_type_definition + + + + + + + := + + + expression + + + + + + + ; + + + + + single_task_declaration + + + single_protected_declaration + + + + + + defining_identifier_list + + + + defining_identifier + + + + + + + , + + + defining_identifier + + + + + + + + + + number_declaration + + + + defining_identifier_list + + + : + + + constant + + + := + + + static_expression + + + ; + + + + + + derived_type_definition + + + + + + abstract + + + + + new + + + parent_subtype_indication + + + + + record_extension_part + + + + + + + + range_constraint + + + + range + + + range + + + + + + range + + + + range_attribute_reference + + + + + simple_expression + + + .. + + + simple_expression + + + + + + + + enumeration_type_definition + + + + ( + + + enumeration_literal_specification + + + + + + + , + + + enumeration_literal_specification + + + + + + + ) + + + + + + enumeration_literal_specification + + + + defining_identifier + + + defining_character_literal + + + + + + defining_character_literal + + character_literal + + + + integer_type_definition + + + + signed_integer_type_definition + + + modular_type_definition + + + + + + signed_integer_type_definition + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + modular_type_definition + + + + mod + + + static_expression + + + + + + real_type_definition + + + + floating_point_definition + + + fixed_point_definition + + + + + + floating_point_definition + + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + real_range_specification + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + fixed_point_definition + + + + ordinary_fixed_point_definition + + + decimal_fixed_point_definition + + + + + + ordinary_fixed_point_definition + + + + delta + + + static_expression + + + real_range_specification + + + + + + decimal_fixed_point_definition + + + + delta + + + static_expression + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + digits_constraint + + + + digits + + + static_expression + + + + + range_constraint + + + + + + + + array_type_definition + + + + unconstrained_array_definition + + + constrained_array_definition + + + + + + unconstrained_array_definition + + + + array + + + ( + + + index_subtype_definition + + + + + + + , + + + index_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + index_subtype_definition + + + + subtype_mark + + + range + + + <> + + + + + + constrained_array_definition + + + + array + + + ( + + + discrete_subtype_definition + + + + + + + , + + + discrete_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + discrete_subtype_definition + + + + discrete_subtype_indication + + + range + + + + + + component_definition + + + + + + aliased + + + + + subtype_indication + + + + + + index_constraint + + + + ( + + + discrete_range + + + + + + + , + + + discrete_range + + + + + + + ) + + + + + + discrete_range + + + + discrete_subtype_indication + + + range + + + + + + discriminant_part + + + + unknown_discriminant_part + + + known_discriminant_part + + + + + + unknown_discriminant_part + + (<>) + + + + known_discriminant_part + + + + ( + + + discriminant_specification + + + + + + + ; + + + discriminant_specification + + + + + + + ) + + + + + + discriminant_specification + + + + + + defining_identifier_list + + + : + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + default_expression + + expression + + + + discriminant_constraint + + + + ( + + + discriminant_association + + + + + + + , + + + discriminant_association + + + + + + + ) + + + + + + discriminant_association + + + + + + + + discriminant_selector_name + + + + + + + | + + + discriminant_selector_name + + + + + + + => + + + + + + + expression + + + + + + record_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + record_definition + + + + + + record_definition + + + + + + record + + + component_list + + + end + + + record + + + + + + + null + + + record + + + + + + + + component_list + + + + + + component_item + + + + + component_item + + + + + + + + + + + component_item + + + + + variant_part + + + + + + + null + + + ; + + + + + + + + component_item + + + + component_declaration + + + aspect_clause + + + + + + component_declaration + + + + defining_identifier_list + + + : + + + component_definition + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + variant_part + + + + case + + + discriminant_direct_name + + + is + + + + + variant + + + + + end + + + case + + + ; + + + + + + variant + + + + when + + + discrete_choice_list + + + => + + + component_list + + + + + + discrete_choice_list + + + + discrete_choice + + + + + + + | + + + discrete_choice + + + + + + + + + + discrete_choice + + + + expression + + + discrete_range + + + others + + + + + + record_extension_part + + + + with + + + record_definition + + + + + + access_type_definition + + + + access_to_object_definition + + + access_to_subprogram_definition + + + + + + access_to_object_definition + + + + access + + + + + general_access_modifier + + + + + subtype_indication + + + + + + general_access_modifier + + + + all + + + constant + + + + + + access_to_subprogram_definition + + + + + + access + + + + + protected + + + + + procedure + + + parameter_profile + + + + + + + access + + + + + protected + + + + + function + + + parameter_and_result_profile + + + + + + + + access_definition + + + + access + + + subtype_mark + + + + + + incomplete_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + ; + + + + + + declarative_part + + + + declarative_item + + + + + + declarative_item + + + + basic_declarative_item + + + body + + + + + + basic_declarative_item + + + + basic_declaration + + + aspect_clause + + + use_clause + + + + + + body + + + + proper_body + + + body_stub + + + + + + proper_body + + + + subprogram_body + + + package_body + + + task_body + + + protected_body + + + + + + name + + + + direct_name + + + indexed_component + + + selected_component + + + type_conversion + + + character_literal + + + explicit_dereference + + + slice + + + attribute_reference + + + function_call + + + + + + direct_name + + + + identifier + + + operator_symbol + + + + + + prefix + + + + name + + + implicit_dereference + + + + + + explicit_dereference + + + + name + + + . + + + all + + + + + + implicit_dereference + + name + + + + indexed_component + + + + prefix + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + slice + + + + prefix + + + ( + + + discrete_range + + + ) + + + + + + selected_component + + + + prefix + + + . + + + selector_name + + + + + + selector_name + + + + identifier + + + character_literal + + + operator_symbol + + + + + + attribute_reference + + + + prefix + + + ' + + + attribute_designator + + + + + + attribute_designator + + + + + + identifier + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + Access + + + Delta + + + Digits + + + + + + range_attribute_reference + + + + prefix + + + ' + + + range_attribute_designator + + + + + + range_attribute_designator + + + + Range + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + + aggregate + + + + record_aggregate + + + extension_aggregate + + + array_aggregate + + + + + + record_aggregate + + + + ( + + + record_component_association_list + + + ) + + + + + + record_component_association_list + + + + + + record_component_association + + + + + + + , + + + record_component_association + + + + + + + + + + + null + + + record + + + + + + + + record_component_association + + + + + + + + component_choice_list + + + => + + + + + + + expression + + + + + + component_choice_list + + + + + + component_selector_name + + + + + + + | + + + component_selector_name + + + + + + + + + others + + + + + + extension_aggregate + + + + ( + + + ancestor_part + + + with + + + record_component_association_list + + + ) + + + + + + ancestor_part + + + + expression + + + subtype_mark + + + + + + array_aggregate + + + + positional_array_aggregate + + + named_array_aggregate + + + + + + positional_array_aggregate + + + + + + ( + + + expression + + + , + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + , + + + others + + + => + + + expression + + + ) + + + + + + + + named_array_aggregate + + + + ( + + + array_component_association + + + + + + + , + + + array_component_association + + + + + + + ) + + + + + + array_component_association + + + + discrete_choice_list + + + => + + + expression + + + + + + expression + + + + + + relation + + + + + + + and + + + relation + + + + + + + + + + + relation + + + + + + + or + + + relation + + + + + + + + + + + relation + + + + + + + xor + + + relation + + + + + + + + + + + relation + + + + + + + and + + + then + + + relation + + + + + + + + + + + relation + + + + + + + or + + + else + + + relation + + + + + + + + + + + + relation + + + + + + simple_expression + + + + + + + relational_operator + + + simple_expression + + + + + + + + + + + simple_expression + + + + + not + + + + + in + + + range + + + + + + + simple_expression + + + + + not + + + + + in + + + subtype_mark + + + + + + + + simple_expression + + + + + + unary_adding_operator + + + + + term + + + + + + + binary_adding_operator + + + term + + + + + + + + + + term + + + + factor + + + + + + + multiplying_operator + + + factor + + + + + + + + + + factor + + + + + + primary + + + + + + + ** + + + primary + + + + + + + + + + + abs + + + primary + + + + + + + not + + + primary + + + + + + + + primary + + + + numeric_literal + + + null + + + string_literal + + + aggregate + + + name + + + qualified_expression + + + allocator + + + + + ( + + + expression + + + ) + + + + + + + + logical_operator + + + + and + + + or + + + xor + + + + + + relational_operator + + + + = + + + /= + + + < + + + <= + + + > + + + >= + + + + + + binary_adding_operator + + + + + + + + - + + + & + + + + + + unary_adding_operator + + + + + + + + - + + + + + + multiplying_operator + + + + * + + + / + + + mod + + + rem + + + + + + highest_precedence_operator + + + + ** + + + abs + + + not + + + + + + type_conversion + + + + + + subtype_mark + + + ( + + + expression + + + ) + + + + + + + subtype_mark + + + ( + + + name + + + ) + + + + + + + + qualified_expression + + + + + + subtype_mark + + + '( + + + expression + + + ) + + + + + + + subtype_mark + + + ' + + + aggregate + + + + + + + + allocator + + + + + + new + + + subtype_indication + + + + + + + new + + + qualified_expression + + + + + + + + sequence_of_statements + + + + statement + + + + + statement + + + + + + + + statement + + + + + + + + label + + + + + simple_statement + + + + + + + + + label + + + + + compound_statement + + + + + + + + simple_statement + + + + null_statement + + + assignment_statement + + + goto_statement + + + return_statement + + + requeue_statement + + + abort_statement + + + code_statement + + + exit_statement + + + procedure_call_statement + + + entry_call_statement + + + delay_statement + + + raise_statement + + + + + + compound_statement + + + + if_statement + + + loop_statement + + + accept_statement + + + case_statement + + + block_statement + + + select_statement + + + + + + null_statement + + + + null + + + ; + + + + + + label + + + + << + + + label_statement_identifier + + + >> + + + + + + statement_identifier + + direct_name + + + + assignment_statement + + + + variable_name + + + := + + + expression + + + ; + + + + + + if_statement + + + + if + + + condition + + + then + + + sequence_of_statements + + + + + + + elsif + + + condition + + + then + + + sequence_of_statements + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + if + + + ; + + + + + + condition + + boolean_expression + + + + case_statement + + + + case + + + expression + + + is + + + case_statement_alternative + + + + + case_statement_alternative + + + + + end + + + case + + + ; + + + + + + case_statement_alternative + + + + when + + + discrete_choice_list + + + => + + + sequence_of_statements + + + + + + loop_statement + + + + + + + + loop_statement_identifier + + + : + + + + + + + + + iteration_scheme + + + + + loop + + + sequence_of_statements + + + end + + + loop + + + + + loop_identifier + + + + + ; + + + + + + iteration_scheme + + + + + + while + + + condition + + + + + + + for + + + loop_parameter_specification + + + + + + + + loop_parameter_specification + + + + defining_identifier + + + in + + + + + reverse + + + + + discrete_subtype_definition + + + + + + block_statement + + + + + + + + block_statement_identifier + + + : + + + + + + + + + + + declare + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + end + + + + + block_identifier + + + + + ; + + + + + + exit_statement + + + + exit + + + + + loop_name + + + + + + + + + when + + + condition + + + + + + + ; + + + + + + goto_statement + + + + goto + + + label_name + + + ; + + + + + + subprogram_declaration + + + + subprogram_specification + + + ; + + + + + + abstract_subprogram_declaration + + + + subprogram_specification + + + is + + + abstract + + + ; + + + + + + subprogram_specification + + + + + + procedure + + + defining_program_unit_name + + + parameter_profile + + + + + + + function + + + defining_designator + + + parameter_and_result_profile + + + + + + + + designator + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + operator_symbol + + + + + + defining_designator + + + + defining_program_unit_name + + + defining_operator_symbol + + + + + + defining_program_unit_name + + + + + + + + parent_unit_name + + + . + + + + + + + defining_identifier + + + + + + operator_symbol + + string_literal + + + + defining_operator_symbol + + operator_symbol + + + + parameter_profile + + + + formal_part + + + + + + parameter_and_result_profile + + + + + + formal_part + + + + + return + + + subtype_mark + + + + + + formal_part + + + + ( + + + parameter_specification + + + + + + + ; + + + parameter_specification + + + + + + + ) + + + + + + parameter_specification + + + + + + defining_identifier_list + + + : + + + mode + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + mode + + + + + + in + + + + + + + in + + + out + + + + + out + + + + + + subprogram_body + + + + subprogram_specification + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + designator + + + + + ; + + + + + + procedure_call_statement + + + + + + procedure_name + + + ; + + + + + + + procedure_prefix + + + actual_parameter_part + + + ; + + + + + + + + function_call + + + + function_name + + + + + function_prefix + + + actual_parameter_part + + + + + + + + actual_parameter_part + + + + ( + + + parameter_association + + + + + + + , + + + parameter_association + + + + + + + ) + + + + + + parameter_association + + + + + + + + formal_parameter_selector_name + + + => + + + + + + + explicit_actual_parameter + + + + + + explicit_actual_parameter + + + + expression + + + variable_name + + + + + + return_statement + + + + return + + + + + expression + + + + + ; + + + + + + package_declaration + + + + package_specification + + + ; + + + + + + package_specification + + + + package + + + defining_program_unit_name + + + is + + + + + basic_declarative_item + + + + + + + + + private + + + + + basic_declarative_item + + + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + + + + package_body + + + + package + + + body + + + defining_program_unit_name + + + is + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + ; + + + + + + private_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + ; + + + + + + private_extension_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + abstract + + + + + new + + + ancestor_subtype_indication + + + with + + + private + + + ; + + + + + + use_clause + + + + use_package_clause + + + use_type_clause + + + + + + use_package_clause + + + + use + + + package_name + + + + + + + , + + + package_name + + + + + + + ; + + + + + + use_type_clause + + + + use + + + type + + + subtype_mark + + + + + + + , + + + subtype_mark + + + + + + + ; + + + + + + renaming_declaration + + + + object_renaming_declaration + + + exception_renaming_declaration + + + package_renaming_declaration + + + subprogram_renaming_declaration + + + generic_renaming_declaration + + + + + + object_renaming_declaration + + + + defining_identifier + + + : + + + subtype_mark + + + renames + + + object_name + + + ; + + + + + + exception_renaming_declaration + + + + defining_identifier + + + : + + + exception + + + renames + + + exception_name + + + ; + + + + + + package_renaming_declaration + + + + package + + + defining_program_unit_name + + + renames + + + package_name + + + ; + + + + + + subprogram_renaming_declaration + + + + subprogram_specification + + + renames + + + callable_entity_name + + + ; + + + + + + generic_renaming_declaration + + + + + + generic + + + package + + + defining_program_unit_name + + + renames + + + generic_package_name + + + ; + + + + + + + generic + + + procedure + + + defining_program_unit_name + + + renames + + + generic_procedure_name + + + ; + + + + + + + generic + + + function + + + defining_program_unit_name + + + renames + + + generic_function_name + + + ; + + + + + + + + task_type_declaration + + + + task + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + + + + + is + + + task_definition + + + + + + + ; + + + + + + single_task_declaration + + + + task + + + defining_identifier + + + + + + + is + + + task_definition + + + + + + + ; + + + + + + task_definition + + + + + + task_item + + + + + + + + + private + + + + + task_item + + + + + + + + + end + + + + + task_identifier + + + + + + + + task_item + + + + entry_declaration + + + aspect_clause + + + + + + task_body + + + + task + + + body + + + defining_identifier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + task_identifier + + + + + ; + + + + + + protected_type_declaration + + + + protected + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + protected_definition + + + ; + + + + + + single_protected_declaration + + + + protected + + + defining_identifier + + + is + + + protected_definition + + + ; + + + + + + protected_definition + + + + + + protected_operation_declaration + + + + + + + + + private + + + + + protected_element_declaration + + + + + + + + + end + + + + + protected_identifier + + + + + + + + protected_operation_declaration + + + + subprogram_declaration + + + entry_declaration + + + aspect_clause + + + + + + protected_element_declaration + + + + protected_operation_declaration + + + component_declaration + + + + + + protected_body + + + + protected + + + body + + + defining_identifier + + + is + + + + + protected_operation_item + + + + + end + + + + + protected_identifier + + + + + ; + + + + + + protected_operation_item + + + + subprogram_declaration + + + subprogram_body + + + entry_body + + + aspect_clause + + + + + + entry_declaration + + + + entry + + + defining_identifier + + + + + + + ( + + + discrete_subtype_definition + + + ) + + + + + + + parameter_profile + + + ; + + + + + + accept_statement + + + + accept + + + entry_direct_name + + + + + + + ( + + + entry_index + + + ) + + + + + + + parameter_profile + + + + + + + do + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + + + + + ; + + + + + + entry_index + + expression + + + + entry_body + + + + entry + + + defining_identifier + + + entry_body_formal_part + + + entry_barrier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + ; + + + + + + entry_body_formal_part + + + + + + + + ( + + + entry_index_specification + + + ) + + + + + + + parameter_profile + + + + + + entry_barrier + + + + when + + + condition + + + + + + entry_index_specification + + + + for + + + defining_identifier + + + in + + + discrete_subtype_definition + + + + + + entry_call_statement + + + + entry_name + + + + + actual_parameter_part + + + + + ; + + + + + + requeue_statement + + + + requeue + + + entry_name + + + + + + + with + + + abort + + + + + + + ; + + + + + + delay_statement + + + + delay_until_statement + + + delay_relative_statement + + + + + + delay_until_statement + + + + delay + + + until + + + delay_expression + + + ; + + + + + + delay_relative_statement + + + + delay + + + delay_expression + + + ; + + + + + + select_statement + + + + selective_accept + + + timed_entry_call + + + conditional_entry_call + + + asynchronous_select + + + + + + selective_accept + + + + select + + + + + guard + + + + + select_alternative + + + + + + + or + + + + + guard + + + + + select_alternative + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + select + + + ; + + + + + + guard + + + + when + + + condition + + + => + + + + + + select_alternative + + + + accept_alternative + + + delay_alternative + + + terminate_alternative + + + + + + accept_alternative + + + + accept_statement + + + + + sequence_of_statements + + + + + + + + delay_alternative + + + + delay_statement + + + + + sequence_of_statements + + + + + + + + terminate_alternative + + + + terminate + + + ; + + + + + + timed_entry_call + + + + select + + + entry_call_alternative + + + or + + + delay_alternative + + + end + + + select + + + ; + + + + + + entry_call_alternative + + + + entry_call_statement + + + + + sequence_of_statements + + + + + + + + triggering_alternative + + + + triggering_statement + + + + + sequence_of_statements + + + + + + + + triggering_statement + + + + entry_call_statement + + + delay_statement + + + + + + abortable_part + + sequence_of_statements + + + + abort_statement + + + + abort + + + task_name + + + + + + + , + + + task_name + + + + + + + ; + + + + + + compilation + + + + compilation_unit + + + + + + compilation_unit + + + + + + context_clause + + + library_item + + + + + + + context_clause + + + subunit + + + + + + + + library_item + + + + + + + + private + + + + + library_unit_declaration + + + + + library_unit_body + + + + + + + private + + + + + library_unit_renaming_declaration + + + + + + + + library_unit_declaration + + + + subprogram_declaration + + + package_declaration + + + generic_declaration + + + generic_instantiation + + + + + + library_unit_renaming_declaration + + + + package_renaming_declaration + + + generic_renaming_declaration + + + subprogram_renaming_declaration + + + + + + library_unit_body + + + + subprogram_body + + + package_body + + + + + + parent_unit_name + + name + + + + context_clause + + + + context_item + + + + + + context_item + + + + with_clause + + + use_clause + + + + + + with_clause + + + + with + + + library_unit_name + + + + + + + , + + + library_unit_name + + + + + + + ; + + + + + + body_stub + + + + subprogram_body_stub + + + package_body_stub + + + task_body_stub + + + protected_body_stub + + + + + + subprogram_body_stub + + + + subprogram_specification + + + is + + + separate + + + ; + + + + + + conditional_entry_call + + + + select + + + entry_call_alternative + + + else + + + sequence_of_statements + + + end + + + select + + + ; + + + + + + asynchronous_select + + + + select + + + triggering_alternative + + + then + + + abort + + + abortable_part + + + end + + + select + + + ; + + + + + + package_body_stub + + + + package + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + task_body_stub + + + + task + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + protected_body_stub + + + + protected + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + subunit + + + + separate + + + ( + + + parent_unit_name + + + ) + + + proper_body + + + + + + exception_declaration + + + + defining_identifier_list + + + : + + + exception + + + ; + + + + + + handled_sequence_of_statements + + + + sequence_of_statements + + + + + + + exception + + + exception_handler + + + + + exception_handler + + + + + + + + + + + + exception_handler + + + + when + + + + + + + choice_parameter_specification + + + : + + + + + + + exception_choice + + + + + + + | + + + exception_choice + + + + + + + => + + + sequence_of_statements + + + + + + choice_parameter_specification + + defining_identifier + + + + exception_choice + + + + exception_name + + + others + + + + + + raise_statement + + + + raise + + + + + exception_name + + + + + ; + + + + + + generic_declaration + + + + generic_subprogram_declaration + + + generic_package_declaration + + + + + + generic_subprogram_declaration + + + + generic_formal_part + + + subprogram_specification + + + ; + + + + + + generic_package_declaration + + + + generic_formal_part + + + package_specification + + + ; + + + + + + generic_formal_part + + + + generic + + + + + + + generic_formal_parameter_declaration + + + use_clause + + + + + + + + + + generic_formal_parameter_declaration + + + + formal_object_declaration + + + formal_type_declaration + + + formal_subprogram_declaration + + + formal_package_declaration + + + + + + generic_instantiation + + + + + + package + + + defining_program_unit_name + + + is + + + new + + + generic_package_name + + + + + generic_actual_part + + + + + ; + + + + + + + procedure + + + defining_program_unit_name + + + is + + + new + + + generic_procedure_name + + + + + generic_actual_part + + + + + ; + + + + + + + function + + + defining_designator + + + is + + + new + + + generic_function_name + + + + + generic_actual_part + + + + + ; + + + + + + + + generic_actual_part + + + + ( + + + generic_association + + + + + + + , + + + generic_association + + + + + + + ) + + + + + + generic_association + + + + + + + + generic_formal_parameter_selector_name + + + => + + + + + + + explicit_generic_actual_parameter + + + + + + explicit_generic_actual_parameter + + + + expression + + + variable_name + + + subprogram_name + + + entry_name + + + subtype_mark + + + package_instance_name + + + + + + formal_object_declaration + + + + defining_identifier_list + + + : + + + mode + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + formal_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + formal_type_definition + + + ; + + + + + + formal_type_definition + + + + formal_private_type_definition + + + formal_derived_type_definition + + + formal_discrete_type_definition + + + formal_signed_integer_type_definition + + + formal_modular_type_definition + + + formal_floating_point_definition + + + formal_ordinary_fixed_point_definition + + + formal_decimal_fixed_point_definition + + + formal_array_type_definition + + + formal_access_type_definition + + + + + + formal_private_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + + + + formal_derived_type_definition + + + + + + abstract + + + + + new + + + subtype_mark + + + + + + + with + + + private + + + + + + + + + + formal_discrete_type_definition + + (<>) + + + + formal_signed_integer_type_definition + + + + range + + + <> + + + + + + formal_modular_type_definition + + + + mod + + + <> + + + + + + formal_floating_point_definition + + + + digits + + + <> + + + + + + formal_ordinary_fixed_point_definition + + + + delta + + + <> + + + + + + formal_decimal_fixed_point_definition + + + + delta + + + <> + + + digits + + + <> + + + + + + formal_array_type_definition + + array_type_definition + + + + formal_access_type_definition + + access_type_definition + + + + formal_subprogram_declaration + + + + with + + + subprogram_specification + + + + + + + is + + + subprogram_default + + + + + + + ; + + + + + + subprogram_default + + + + default_name + + + <> + + + + + + default_name + + name + + + + formal_package_declaration + + + + with + + + package + + + defining_identifier + + + is + + + new + + + generic_package_name + + + formal_package_actual_part + + + ; + + + + + + formal_package_actual_part + + + + (<>) + + + + + generic_actual_part + + + + + + + + aspect_clause + + + + attribute_definition_clause + + + enumeration_representation_clause + + + record_representation_clause + + + at_clause + + + + + + local_name + + + + direct_name + + + + + direct_name + + + ' + + + attribute_designator + + + + + library_unit_name + + + + + + attribute_definition_clause + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + expression + + + ; + + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + name + + + ; + + + + + + + + enumeration_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + enumeration_aggregate + + + ; + + + + + + enumeration_aggregate + + array_aggregate + + + + record_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + record + + + + + mod_clause + + + + + + + component_clause + + + + + end + + + record + + + ; + + + + + + component_clause + + + + component_local_name + + + at + + + position + + + range + + + first_bit + + + .. + + + last_bit + + + ; + + + + + + position + + static_expression + + + + first_bit + + static_simple_expression + + + + last_bit + + static_simple_expression + + + + code_statement + + + + qualified_expression + + + ; + + + + + + restriction + + + + restriction_identifier + + + + + restriction_parameter_identifier + + + => + + + expression + + + + + + + + delta_constraint + + + + delta + + + static_expression + + + + + range_constraint + + + + + + + + at_clause + + + + for + + + direct_name + + + use + + + at + + + expression + + + ; + + + + + + mod_clause + + + + at + + + mod + + + static_expression + + + ; + + + + + \ No newline at end of file diff --git a/shared/bgf/ada-lncs-4348.bgf b/shared/bgf/ada-lncs-4348.bgf new file mode 100644 index 00000000..4f348f2c --- /dev/null +++ b/shared/bgf/ada-lncs-4348.bgf @@ -0,0 +1,8246 @@ + + + + + identifier + + + + identifier_start + + + + + + + identifier_start + + + identifier_extend + + + + + + + + + + identifier_start + + + + letter_uppercase + + + letter_lowercase + + + letter_titlecase + + + letter_modifier + + + letter_other + + + number_letter + + + + + + identifier_extend + + + + mark_non_spacing + + + mark_spacing_combining + + + number_decimal + + + punctuation_connector + + + other_format + + + + + + numeric_literal + + + + decimal_literal + + + based_literal + + + + + + decimal_literal + + + + numeral + + + + + + + . + + + numeral + + + + + + + + + exponent + + + + + + + + numeral + + + + digit + + + + + + + + + underline + + + + + digit + + + + + + + + + + exponent + + + + + + E + + + + + + + + + + + numeral + + + + + + + E + + + - + + + numeral + + + + + + + + digit + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + based_literal + + + + base + + + # + + + based_numeral + + + + + + + . + + + based_numeral + + + + + + + # + + + + + exponent + + + + + + + + base + + numeral + + + + based_numeral + + + + extended_digit + + + + + + + + + underline + + + + + extended_digit + + + + + + + + + + extended_digit + + + + digit + + + A + + + B + + + C + + + D + + + E + + + F + + + + + + character_literal + + + + ' + + + graphic_character + + + ' + + + + + + string_literal + + + + " + + + + + string_element + + + + + " + + + + + + string_element + + + + "" + + + non_quotation_mark_graphic_character + + + + + + comment + + + + - + + + - + + + + + non_end_of_line_character + + + + + + + + pragma + + + + pragma + + + identifier + + + + + + + ( + + + pragma_argument_association + + + + + + + , + + + pragma_argument_association + + + + + + + ) + + + + + + + ; + + + + + + pragma_argument_association + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + name + + + + + + + + + + + pragma_argument_identifier + + + => + + + + + + + expression + + + + + + + + basic_declaration + + + + type_declaration + + + object_declaration + + + subprogram_declaration + + + null_procedure_declaration + + + renaming_declaration + + + generic_declaration + + + subtype_declaration + + + number_declaration + + + abstract_subprogram_declaration + + + package_declaration + + + exception_declaration + + + generic_instantiation + + + + + + defining_identifier + + identifier + + + + type_declaration + + + + full_type_declaration + + + incomplete_type_declaration + + + private_type_declaration + + + private_extension_declaration + + + + + + full_type_declaration + + + + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + type_definition + + + ; + + + + + task_type_declaration + + + protected_type_declaration + + + + + + type_definition + + + + enumeration_type_definition + + + real_type_definition + + + record_type_definition + + + derived_type_definition + + + integer_type_definition + + + array_type_definition + + + access_type_definition + + + interface_type_definition + + + + + + subtype_declaration + + + + subtype + + + defining_identifier + + + is + + + subtype_indication + + + ; + + + + + + subtype_indication + + + + + + null_exclusion + + + + + subtype_mark + + + + + constraint + + + + + + + + subtype_mark + + subtype_name + + + + constraint + + + + scalar_constraint + + + composite_constraint + + + + + + scalar_constraint + + + + range_constraint + + + digits_constraint + + + delta_constraint + + + + + + composite_constraint + + + + index_constraint + + + discriminant_constraint + + + + + + object_declaration + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + subtype_indication + + + + + + + := + + + expression + + + + + + + ; + + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + access_definition + + + + + + + := + + + expression + + + + + + + ; + + + + + + + defining_identifier_list + + + : + + + + + aliased + + + + + + + constant + + + + + array_type_definition + + + + + + + := + + + expression + + + + + + + ; + + + + + single_task_declaration + + + single_protected_declaration + + + + + + defining_identifier_list + + + + defining_identifier + + + + + + + , + + + defining_identifier + + + + + + + + + + number_declaration + + + + defining_identifier_list + + + : + + + constant + + + := + + + static_expression + + + ; + + + + + + derived_type_definition + + + + + + abstract + + + + + + + limited + + + + + new + + + parent_subtype_indication + + + + + + + + + + + and + + + interface_list + + + + + + + record_extension_part + + + + + + + + + + range_constraint + + + + range + + + range + + + + + + range + + + + range_attribute_reference + + + + + simple_expression + + + .. + + + simple_expression + + + + + + + + enumeration_type_definition + + + + ( + + + enumeration_literal_specification + + + + + + + , + + + enumeration_literal_specification + + + + + + + ) + + + + + + enumeration_literal_specification + + + + defining_identifier + + + defining_character_literal + + + + + + defining_character_literal + + character_literal + + + + integer_type_definition + + + + signed_integer_type_definition + + + modular_type_definition + + + + + + signed_integer_type_definition + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + modular_type_definition + + + + mod + + + static_expression + + + + + + real_type_definition + + + + floating_point_definition + + + fixed_point_definition + + + + + + floating_point_definition + + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + real_range_specification + + + + range + + + static_simple_expression + + + .. + + + static_simple_expression + + + + + + fixed_point_definition + + + + ordinary_fixed_point_definition + + + decimal_fixed_point_definition + + + + + + ordinary_fixed_point_definition + + + + delta + + + static_expression + + + real_range_specification + + + + + + decimal_fixed_point_definition + + + + delta + + + static_expression + + + digits + + + static_expression + + + + + real_range_specification + + + + + + + + digits_constraint + + + + digits + + + static_expression + + + + + range_constraint + + + + + + + + array_type_definition + + + + unconstrained_array_definition + + + constrained_array_definition + + + + + + unconstrained_array_definition + + + + array + + + ( + + + index_subtype_definition + + + + + + + , + + + index_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + index_subtype_definition + + + + subtype_mark + + + range + + + <> + + + + + + constrained_array_definition + + + + array + + + ( + + + discrete_subtype_definition + + + + + + + , + + + discrete_subtype_definition + + + + + + + ) + + + of + + + component_definition + + + + + + discrete_subtype_definition + + + + discrete_subtype_indication + + + range + + + + + + component_definition + + + + + + + + aliased + + + + + subtype_indication + + + + + + + + + aliased + + + + + access_definition + + + + + + + + index_constraint + + + + ( + + + discrete_range + + + + + + + , + + + discrete_range + + + + + + + ) + + + + + + discrete_range + + + + discrete_subtype_indication + + + range + + + + + + discriminant_part + + + + unknown_discriminant_part + + + known_discriminant_part + + + + + + unknown_discriminant_part + + (<>) + + + + known_discriminant_part + + + + ( + + + discriminant_specification + + + + + + + ; + + + discriminant_specification + + + + + + + ) + + + + + + discriminant_specification + + + + + + defining_identifier_list + + + : + + + + + null_exclusion + + + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + default_expression + + expression + + + + discriminant_constraint + + + + ( + + + discriminant_association + + + + + + + , + + + discriminant_association + + + + + + + ) + + + + + + discriminant_association + + + + + + + + discriminant_selector_name + + + + + + + | + + + discriminant_selector_name + + + + + + + => + + + + + + + expression + + + + + + record_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + record_definition + + + + + + record_definition + + + + + + record + + + component_list + + + end + + + record + + + + + + + null + + + record + + + + + + + + component_list + + + + + + component_item + + + + + component_item + + + + + + + + + + + component_item + + + + + variant_part + + + + + + + null + + + ; + + + + + + + + component_item + + + + component_declaration + + + aspect_clause + + + + + + component_declaration + + + + defining_identifier_list + + + : + + + component_definition + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + variant_part + + + + case + + + discriminant_direct_name + + + is + + + + + variant + + + + + end + + + case + + + ; + + + + + + variant + + + + when + + + discrete_choice_list + + + => + + + component_list + + + + + + discrete_choice_list + + + + discrete_choice + + + + + + + | + + + discrete_choice + + + + + + + + + + discrete_choice + + + + expression + + + discrete_range + + + others + + + + + + record_extension_part + + + + with + + + record_definition + + + + + + abstract_subprogram_declaration + + + + + + overriding_indicator + + + + + subprogram_specification + + + is + + + abstract + + + ; + + + + + + interface_type_definition + + + + + + + + limited + + + task + + + protected + + + synchronized + + + + + + + interface + + + + + + + and + + + interface_list + + + + + + + + + + interface_list + + + + interface_subtype_mark + + + + + + + and + + + interface_subtype_mark + + + + + + + + + + access_type_definition + + + + + + + + null_exclusion + + + + + access_to_object_definition + + + + + + + + + null_exclusion + + + + + access_to_subprogram_definition + + + + + + + + access_to_object_definition + + + + access + + + + + general_access_modifier + + + + + subtype_indication + + + + + + general_access_modifier + + + + all + + + constant + + + + + + access_to_subprogram_definition + + + + + + access + + + + + protected + + + + + procedure + + + parameter_profile + + + + + + + access + + + + + protected + + + + + function + + + parameter_and_result_profile + + + + + + + + null_exclusion + + + + not + + + null + + + + + + access_definition + + + + + + + + null_exclusion + + + + + access + + + + + constant + + + + + subtype_mark + + + + + + + + + null_exclusion + + + + + access + + + + + protected + + + + + procedure + + + parameter_profile + + + + + + + + + null_exclusion + + + + + access + + + + + protected + + + + + function + + + parameter_and_result_profile + + + + + + + + incomplete_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + + + + + is + + + tagged + + + + + + + ; + + + + + + declarative_part + + + + declarative_item + + + + + + declarative_item + + + + basic_declarative_item + + + body + + + + + + basic_declarative_item + + + + basic_declaration + + + aspect_clause + + + use_clause + + + + + + body + + + + proper_body + + + body_stub + + + + + + proper_body + + + + subprogram_body + + + package_body + + + task_body + + + protected_body + + + + + + name + + + + direct_name + + + indexed_component + + + selected_component + + + type_conversion + + + character_literal + + + explicit_dereference + + + slice + + + attribute_reference + + + function_call + + + + + + direct_name + + + + identifier + + + operator_symbol + + + + + + prefix + + + + name + + + implicit_dereference + + + + + + explicit_dereference + + + + name + + + . + + + all + + + + + + implicit_dereference + + name + + + + indexed_component + + + + prefix + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + slice + + + + prefix + + + ( + + + discrete_range + + + ) + + + + + + selected_component + + + + prefix + + + . + + + selector_name + + + + + + selector_name + + + + identifier + + + character_literal + + + operator_symbol + + + + + + attribute_reference + + + + prefix + + + ' + + + attribute_designator + + + + + + attribute_designator + + + + + + identifier + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + Access + + + Delta + + + Digits + + + + + + range_attribute_reference + + + + prefix + + + ' + + + range_attribute_designator + + + + + + range_attribute_designator + + + + Range + + + + + + + ( + + + static_expression + + + ) + + + + + + + + + + aggregate + + + + record_aggregate + + + extension_aggregate + + + array_aggregate + + + + + + record_aggregate + + + + ( + + + record_component_association_list + + + ) + + + + + + record_component_association_list + + + + + + record_component_association + + + + + + + , + + + record_component_association + + + + + + + + + + + null + + + record + + + + + + + + record_component_association + + + + + + + + + + component_choice_list + + + => + + + + + + + expression + + + + + + + component_choice_list + + + =><> + + + + + + + + component_choice_list + + + + + + component_selector_name + + + + + + + | + + + component_selector_name + + + + + + + + + others + + + + + + extension_aggregate + + + + ( + + + ancestor_part + + + with + + + record_component_association_list + + + ) + + + + + + ancestor_part + + + + expression + + + subtype_mark + + + + + + array_aggregate + + + + positional_array_aggregate + + + named_array_aggregate + + + + + + positional_array_aggregate + + + + + + ( + + + expression + + + , + + + expression + + + + + + + , + + + expression + + + + + + + ) + + + + + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + , + + + others + + + => + + + expression + + + ) + + + + + + + ( + + + expression + + + + + + + , + + + expression + + + + + + + , + + + others + + + =><>) + + + + + + + + named_array_aggregate + + + + ( + + + array_component_association + + + + + + + , + + + array_component_association + + + + + + + ) + + + + + + array_component_association + + + + + + discrete_choice_list + + + => + + + expression + + + + + + + discrete_choice_list + + + =><> + + + + + + + + expression + + + + + + relation + + + + + + + and + + + relation + + + + + + + + + + + relation + + + + + + + or + + + relation + + + + + + + + + + + relation + + + + + + + xor + + + relation + + + + + + + + + + + relation + + + + + + + and + + + then + + + relation + + + + + + + + + + + relation + + + + + + + or + + + else + + + relation + + + + + + + + + + + + relation + + + + + + simple_expression + + + + + + + relational_operator + + + simple_expression + + + + + + + + + + + simple_expression + + + + + not + + + + + in + + + range + + + + + + + simple_expression + + + + + not + + + + + in + + + subtype_mark + + + + + + + + simple_expression + + + + + + unary_adding_operator + + + + + term + + + + + + + binary_adding_operator + + + term + + + + + + + + + + term + + + + factor + + + + + + + multiplying_operator + + + factor + + + + + + + + + + factor + + + + + + primary + + + + + + + ** + + + primary + + + + + + + + + + + abs + + + primary + + + + + + + not + + + primary + + + + + + + + primary + + + + numeric_literal + + + null + + + string_literal + + + aggregate + + + name + + + qualified_expression + + + allocator + + + + + ( + + + expression + + + ) + + + + + + + + logical_operator + + + + and + + + or + + + xor + + + + + + relational_operator + + + + = + + + /= + + + < + + + <= + + + > + + + >= + + + + + + binary_adding_operator + + + + + + + + - + + + & + + + + + + unary_adding_operator + + + + + + + + - + + + + + + multiplying_operator + + + + * + + + / + + + mod + + + rem + + + + + + highest_precedence_operator + + + + ** + + + abs + + + not + + + + + + type_conversion + + + + + + subtype_mark + + + ( + + + expression + + + ) + + + + + + + subtype_mark + + + ( + + + name + + + ) + + + + + + + + qualified_expression + + + + + + subtype_mark + + + '( + + + expression + + + ) + + + + + + + subtype_mark + + + ' + + + aggregate + + + + + + + + allocator + + + + + + new + + + subtype_indication + + + + + + + new + + + qualified_expression + + + + + + + + sequence_of_statements + + + + statement + + + + + statement + + + + + + + + statement + + + + + + + + label + + + + + simple_statement + + + + + + + + + label + + + + + compound_statement + + + + + + + + simple_statement + + + + null_statement + + + assignment_statement + + + goto_statement + + + simple_return_statement + + + requeue_statement + + + abort_statement + + + code_statement + + + exit_statement + + + procedure_call_statement + + + entry_call_statement + + + delay_statement + + + raise_statement + + + + + + compound_statement + + + + if_statement + + + loop_statement + + + extended_return_statement + + + accept_statement + + + case_statement + + + block_statement + + + select_statement + + + + + + null_statement + + + + null + + + ; + + + + + + label + + + + << + + + label_statement_identifier + + + >> + + + + + + statement_identifier + + direct_name + + + + assignment_statement + + + + variable_name + + + := + + + expression + + + ; + + + + + + if_statement + + + + if + + + condition + + + then + + + sequence_of_statements + + + + + + + elsif + + + condition + + + then + + + sequence_of_statements + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + if + + + ; + + + + + + condition + + boolean_expression + + + + case_statement + + + + case + + + expression + + + is + + + case_statement_alternative + + + + + case_statement_alternative + + + + + end + + + case + + + ; + + + + + + case_statement_alternative + + + + when + + + discrete_choice_list + + + => + + + sequence_of_statements + + + + + + loop_statement + + + + + + + + loop_statement_identifier + + + : + + + + + + + + + iteration_scheme + + + + + loop + + + sequence_of_statements + + + end + + + loop + + + + + loop_identifier + + + + + ; + + + + + + iteration_scheme + + + + + + while + + + condition + + + + + + + for + + + loop_parameter_specification + + + + + + + + loop_parameter_specification + + + + defining_identifier + + + in + + + + + reverse + + + + + discrete_subtype_definition + + + + + + block_statement + + + + + + + + block_statement_identifier + + + : + + + + + + + + + + + declare + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + end + + + + + block_identifier + + + + + ; + + + + + + exit_statement + + + + exit + + + + + loop_name + + + + + + + + + when + + + condition + + + + + + + ; + + + + + + goto_statement + + + + goto + + + label_name + + + ; + + + + + + subprogram_declaration + + + + + + overriding_indicator + + + + + subprogram_specification + + + ; + + + + + + subprogram_specification + + + + procedure_specification + + + function_specification + + + + + + procedure_specification + + + + procedure + + + defining_program_unit_name + + + parameter_profile + + + + + + function_specification + + + + function + + + defining_designator + + + parameter_and_result_profile + + + + + + designator + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + operator_symbol + + + + + + defining_designator + + + + defining_program_unit_name + + + defining_operator_symbol + + + + + + defining_program_unit_name + + + + + + + + parent_unit_name + + + . + + + + + + + defining_identifier + + + + + + operator_symbol + + string_literal + + + + defining_operator_symbol + + operator_symbol + + + + parameter_profile + + + + formal_part + + + + + + parameter_and_result_profile + + + + + + + + formal_part + + + + + return + + + + + null_exclusion + + + + + subtype_mark + + + + + + + + + formal_part + + + + + return + + + access_definition + + + + + + + + formal_part + + + + ( + + + parameter_specification + + + + + + + ; + + + parameter_specification + + + + + + + ) + + + + + + parameter_specification + + + + + + defining_identifier_list + + + : + + + mode + + + + + null_exclusion + + + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + + + + + defining_identifier_list + + + : + + + access_definition + + + + + + + := + + + default_expression + + + + + + + + + + + + mode + + + + + + in + + + + + + + in + + + out + + + + + out + + + + + + subprogram_body + + + + + + overriding_indicator + + + + + subprogram_specification + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + designator + + + + + ; + + + + + + procedure_call_statement + + + + + + procedure_name + + + ; + + + + + + + procedure_prefix + + + actual_parameter_part + + + ; + + + + + + + + function_call + + + + function_name + + + + + function_prefix + + + actual_parameter_part + + + + + + + + actual_parameter_part + + + + ( + + + parameter_association + + + + + + + , + + + parameter_association + + + + + + + ) + + + + + + parameter_association + + + + + + + + formal_parameter_selector_name + + + => + + + + + + + explicit_actual_parameter + + + + + + explicit_actual_parameter + + + + expression + + + variable_name + + + + + + simple_return_statement + + + + return + + + + + expression + + + + + ; + + + + + + extended_return_statement + + + + return + + + defining_identifier + + + : + + + + + aliased + + + + + return_subtype_indication + + + + + + + := + + + expression + + + + + + + + + + + do + + + handled_sequence_of_statements + + + end + + + return + + + + + + + ; + + + + + + return_subtype_indication + + + + subtype_indication + + + access_definition + + + + + + null_procedure_declaration + + + + + + overriding_indicator + + + + + procedure_specification + + + is + + + null + + + ; + + + + + + package_declaration + + + + package_specification + + + ; + + + + + + package_specification + + + + package + + + defining_program_unit_name + + + is + + + + + basic_declarative_item + + + + + + + + + private + + + + + basic_declarative_item + + + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + + + + package_body + + + + package + + + body + + + defining_program_unit_name + + + is + + + declarative_part + + + + + + + begin + + + handled_sequence_of_statements + + + + + + + end + + + + + + + + + + + parent_unit_name + + + . + + + + + + + identifier + + + + + + + ; + + + + + + private_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + ; + + + + + + private_extension_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + + + abstract + + + + + + + + + limited + + + synchronized + + + + + + + new + + + ancestor_subtype_indication + + + + + + + and + + + interface_list + + + + + + + with + + + private + + + ; + + + + + + overriding_indicator + + + + + + not + + + + + overriding + + + + + + use_clause + + + + use_package_clause + + + use_type_clause + + + + + + use_package_clause + + + + use + + + package_name + + + + + + + , + + + package_name + + + + + + + ; + + + + + + use_type_clause + + + + use + + + type + + + subtype_mark + + + + + + + , + + + subtype_mark + + + + + + + ; + + + + + + renaming_declaration + + + + object_renaming_declaration + + + exception_renaming_declaration + + + package_renaming_declaration + + + subprogram_renaming_declaration + + + generic_renaming_declaration + + + + + + object_renaming_declaration + + + + + + defining_identifier + + + : + + + + + null_exclusion + + + + + subtype_mark + + + renames + + + object_name + + + ; + + + + + + + defining_identifier + + + : + + + access_definition + + + renames + + + object_name + + + ; + + + + + + + + exception_renaming_declaration + + + + defining_identifier + + + : + + + exception + + + renames + + + exception_name + + + ; + + + + + + package_renaming_declaration + + + + package + + + defining_program_unit_name + + + renames + + + package_name + + + ; + + + + + + subprogram_renaming_declaration + + + + + + overriding_indicator + + + + + subprogram_specification + + + renames + + + callable_entity_name + + + ; + + + + + + generic_renaming_declaration + + + + + + generic + + + package + + + defining_program_unit_name + + + renames + + + generic_package_name + + + ; + + + + + + + generic + + + procedure + + + defining_program_unit_name + + + renames + + + generic_procedure_name + + + ; + + + + + + + generic + + + function + + + defining_program_unit_name + + + renames + + + generic_function_name + + + ; + + + + + + + + task_type_declaration + + + + task + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + + + + + is + + + + + + + new + + + interface_list + + + with + + + + + + + task_definition + + + + + + + ; + + + + + + single_task_declaration + + + + task + + + defining_identifier + + + + + + + is + + + + + + + new + + + interface_list + + + with + + + + + + + task_definition + + + + + + + ; + + + + + + task_definition + + + + + + task_item + + + + + + + + + private + + + + + task_item + + + + + + + + + end + + + + + task_identifier + + + + + + + + task_item + + + + entry_declaration + + + aspect_clause + + + + + + task_body + + + + task + + + body + + + defining_identifier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + task_identifier + + + + + ; + + + + + + protected_type_declaration + + + + protected + + + type + + + defining_identifier + + + + + known_discriminant_part + + + + + is + + + + + + + new + + + interface_list + + + with + + + + + + + protected_definition + + + ; + + + + + + single_protected_declaration + + + + protected + + + defining_identifier + + + is + + + + + + + new + + + interface_list + + + with + + + + + + + protected_definition + + + ; + + + + + + protected_definition + + + + + + protected_operation_declaration + + + + + + + + + private + + + + + protected_element_declaration + + + + + + + + + end + + + + + protected_identifier + + + + + + + + protected_operation_declaration + + + + subprogram_declaration + + + entry_declaration + + + aspect_clause + + + + + + protected_element_declaration + + + + protected_operation_declaration + + + component_declaration + + + + + + protected_body + + + + protected + + + body + + + defining_identifier + + + is + + + + + protected_operation_item + + + + + end + + + + + protected_identifier + + + + + ; + + + + + + protected_operation_item + + + + subprogram_declaration + + + subprogram_body + + + entry_body + + + aspect_clause + + + + + + entry_declaration + + + + + + overriding_indicator + + + + + entry + + + defining_identifier + + + + + + + ( + + + discrete_subtype_definition + + + ) + + + + + + + parameter_profile + + + ; + + + + + + accept_statement + + + + accept + + + entry_direct_name + + + + + + + ( + + + entry_index + + + ) + + + + + + + parameter_profile + + + + + + + do + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + + + + + ; + + + + + + entry_index + + expression + + + + entry_body + + + + entry + + + defining_identifier + + + entry_body_formal_part + + + entry_barrier + + + is + + + declarative_part + + + begin + + + handled_sequence_of_statements + + + end + + + + + entry_identifier + + + + + ; + + + + + + entry_body_formal_part + + + + + + + + ( + + + entry_index_specification + + + ) + + + + + + + parameter_profile + + + + + + entry_barrier + + + + when + + + condition + + + + + + entry_index_specification + + + + for + + + defining_identifier + + + in + + + discrete_subtype_definition + + + + + + entry_call_statement + + + + entry_name + + + + + actual_parameter_part + + + + + ; + + + + + + requeue_statement + + + + requeue + + + entry_name + + + + + + + with + + + abort + + + + + + + ; + + + + + + delay_statement + + + + delay_until_statement + + + delay_relative_statement + + + + + + delay_until_statement + + + + delay + + + until + + + delay_expression + + + ; + + + + + + delay_relative_statement + + + + delay + + + delay_expression + + + ; + + + + + + select_statement + + + + selective_accept + + + timed_entry_call + + + conditional_entry_call + + + asynchronous_select + + + + + + selective_accept + + + + select + + + + + guard + + + + + select_alternative + + + + + + + or + + + + + guard + + + + + select_alternative + + + + + + + + + + + else + + + sequence_of_statements + + + + + + + end + + + select + + + ; + + + + + + guard + + + + when + + + condition + + + => + + + + + + select_alternative + + + + accept_alternative + + + delay_alternative + + + terminate_alternative + + + + + + accept_alternative + + + + accept_statement + + + + + sequence_of_statements + + + + + + + + delay_alternative + + + + delay_statement + + + + + sequence_of_statements + + + + + + + + terminate_alternative + + + + terminate + + + ; + + + + + + timed_entry_call + + + + select + + + entry_call_alternative + + + or + + + delay_alternative + + + end + + + select + + + ; + + + + + + entry_call_alternative + + + + procedure_or_entry_call + + + + + sequence_of_statements + + + + + + + + procedure_or_entry_call + + + + procedure_call_statement + + + entry_call_statement + + + + + + conditional_entry_call + + + + select + + + entry_call_alternative + + + else + + + sequence_of_statements + + + end + + + select + + + ; + + + + + + asynchronous_select + + + + select + + + triggering_alternative + + + then + + + abort + + + abortable_part + + + end + + + select + + + ; + + + + + + triggering_alternative + + + + triggering_statement + + + + + sequence_of_statements + + + + + + + + triggering_statement + + + + procedure_or_entry_call + + + delay_statement + + + + + + abortable_part + + sequence_of_statements + + + + abort_statement + + + + abort + + + task_name + + + + + + + , + + + task_name + + + + + + + ; + + + + + + compilation + + + + compilation_unit + + + + + + compilation_unit + + + + + + context_clause + + + library_item + + + + + + + context_clause + + + subunit + + + + + + + + library_item + + + + + + + + private + + + + + library_unit_declaration + + + + + library_unit_body + + + + + + + private + + + + + library_unit_renaming_declaration + + + + + + + + library_unit_declaration + + + + subprogram_declaration + + + package_declaration + + + generic_declaration + + + generic_instantiation + + + + + + library_unit_renaming_declaration + + + + package_renaming_declaration + + + generic_renaming_declaration + + + subprogram_renaming_declaration + + + + + + library_unit_body + + + + subprogram_body + + + package_body + + + + + + parent_unit_name + + name + + + + context_clause + + + + context_item + + + + + + context_item + + + + with_clause + + + use_clause + + + + + + with_clause + + + + limited_with_clause + + + nonlimited_with_clause + + + + + + limited_with_clause + + + + limited + + + + + private + + + + + with + + + library_unit_name + + + + + + + , + + + library_unit_name + + + + + + + ; + + + + + + nonlimited_with_clause + + + + + + private + + + + + with + + + library_unit_name + + + + + + + , + + + library_unit_name + + + + + + + ; + + + + + + body_stub + + + + subprogram_body_stub + + + package_body_stub + + + task_body_stub + + + protected_body_stub + + + + + + subprogram_body_stub + + + + + + overriding_indicator + + + + + subprogram_specification + + + is + + + separate + + + ; + + + + + + package_body_stub + + + + package + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + task_body_stub + + + + task + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + protected_body_stub + + + + protected + + + body + + + defining_identifier + + + is + + + separate + + + ; + + + + + + subunit + + + + separate + + + ( + + + parent_unit_name + + + ) + + + proper_body + + + + + + exception_declaration + + + + defining_identifier_list + + + : + + + exception + + + ; + + + + + + handled_sequence_of_statements + + + + sequence_of_statements + + + + + + + exception + + + exception_handler + + + + + exception_handler + + + + + + + + + + + + exception_handler + + + + when + + + + + + + choice_parameter_specification + + + : + + + + + + + exception_choice + + + + + + + | + + + exception_choice + + + + + + + => + + + sequence_of_statements + + + + + + choice_parameter_specification + + defining_identifier + + + + exception_choice + + + + exception_name + + + others + + + + + + raise_statement + + + + + + raise + + + ; + + + + + + + raise + + + exception_name + + + + + + + with + + + string_expression + + + + + + + ; + + + + + + + + generic_declaration + + + + generic_subprogram_declaration + + + generic_package_declaration + + + + + + generic_subprogram_declaration + + + + generic_formal_part + + + subprogram_specification + + + ; + + + + + + generic_package_declaration + + + + generic_formal_part + + + package_specification + + + ; + + + + + + generic_formal_part + + + + generic + + + + + + + generic_formal_parameter_declaration + + + use_clause + + + + + + + + + + generic_formal_parameter_declaration + + + + formal_object_declaration + + + formal_type_declaration + + + formal_subprogram_declaration + + + formal_package_declaration + + + + + + generic_instantiation + + + + + + package + + + defining_program_unit_name + + + is + + + new + + + generic_package_name + + + + + generic_actual_part + + + + + ; + + + + + + + + + overriding_indicator + + + + + procedure + + + defining_program_unit_name + + + is + + + new + + + generic_procedure_name + + + + + generic_actual_part + + + + + ; + + + + + + + + + overriding_indicator + + + + + function + + + defining_designator + + + is + + + new + + + generic_function_name + + + + + generic_actual_part + + + + + ; + + + + + + + + generic_actual_part + + + + ( + + + generic_association + + + + + + + , + + + generic_association + + + + + + + ) + + + + + + generic_association + + + + + + + + generic_formal_parameter_selector_name + + + => + + + + + + + explicit_generic_actual_parameter + + + + + + explicit_generic_actual_parameter + + + + expression + + + variable_name + + + subprogram_name + + + entry_name + + + subtype_mark + + + package_instance_name + + + + + + formal_object_declaration + + + + defining_identifier_list + + + : + + + mode + + + + + null_exclusion + + + + + subtype_mark + + + + + + + := + + + default_expression + + + + + + + ; + + + defining_identifier_list + + + : + + + mode + + + access_definition + + + + + + + := + + + default_expression + + + + + + + ; + + + + + + formal_type_declaration + + + + type + + + defining_identifier + + + + + discriminant_part + + + + + is + + + formal_type_definition + + + ; + + + + + + formal_type_definition + + + + formal_private_type_definition + + + formal_derived_type_definition + + + formal_discrete_type_definition + + + formal_signed_integer_type_definition + + + formal_modular_type_definition + + + formal_floating_point_definition + + + formal_ordinary_fixed_point_definition + + + formal_decimal_fixed_point_definition + + + formal_array_type_definition + + + formal_access_type_definition + + + formal_interface_type_definition + + + + + + formal_private_type_definition + + + + + + + + + + abstract + + + + + tagged + + + + + + + + + limited + + + + + private + + + + + + formal_derived_type_definition + + + + + + abstract + + + + + + + + + limited + + + synchronized + + + + + + + new + + + subtype_mark + + + + + + + + + + + and + + + interface_list + + + + + + + with + + + private + + + + + + + + + + formal_discrete_type_definition + + (<>) + + + + formal_signed_integer_type_definition + + + + range + + + <> + + + + + + formal_modular_type_definition + + + + mod + + + <> + + + + + + formal_floating_point_definition + + + + digits + + + <> + + + + + + formal_ordinary_fixed_point_definition + + + + delta + + + <> + + + + + + formal_decimal_fixed_point_definition + + + + delta + + + <> + + + digits + + + <> + + + + + + formal_array_type_definition + + array_type_definition + + + + formal_access_type_definition + + access_type_definition + + + + formal_interface_type_definition + + interface_type_definition + + + + formal_subprogram_declaration + + + + formal_concrete_subprogram_declaration + + + formal_abstract_subprogram_declaration + + + + + + formal_concrete_subprogram_declaration + + + + with + + + subprogram_specification + + + + + + + is + + + subprogram_default + + + + + + + ; + + + + + + formal_abstract_subprogram_declaration + + + + with + + + subprogram_specification + + + is + + + abstract + + + + + subprogram_default + + + + + ; + + + + + + subprogram_default + + + + default_name + + + <> + + + null + + + + + + default_name + + name + + + + formal_package_declaration + + + + with + + + package + + + defining_identifier + + + is + + + new + + + generic_package_name + + + formal_package_actual_part + + + ; + + + + + + formal_package_actual_part + + + + + + ( + + + + + + + others + + + => + + + + + + + <>) + + + + + + + generic_actual_part + + + + + + + ( + + + formal_package_association + + + + + + + , + + + formal_package_association + + + + + + + + + + + , + + + others + + + =><> + + + + + + + ) + + + + + + + + formal_package_association + + + + generic_association + + + + + generic_formal_parameter_selector_name + + + =><> + + + + + + + + aspect_clause + + + + attribute_definition_clause + + + enumeration_representation_clause + + + record_representation_clause + + + at_clause + + + + + + local_name + + + + direct_name + + + + + direct_name + + + ' + + + attribute_designator + + + + + library_unit_name + + + + + + attribute_definition_clause + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + expression + + + ; + + + + + + + for + + + local_name + + + ' + + + attribute_designator + + + use + + + name + + + ; + + + + + + + + enumeration_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + enumeration_aggregate + + + ; + + + + + + enumeration_aggregate + + array_aggregate + + + + record_representation_clause + + + + for + + + first_subtype_local_name + + + use + + + record + + + + + mod_clause + + + + + + + component_clause + + + + + end + + + record + + + ; + + + + + + component_clause + + + + component_local_name + + + at + + + position + + + range + + + first_bit + + + .. + + + last_bit + + + ; + + + + + + position + + static_expression + + + + first_bit + + static_simple_expression + + + + last_bit + + static_simple_expression + + + + code_statement + + + + qualified_expression + + + ; + + + + + + restriction + + + + restriction_identifier + + + + + restriction_parameter_identifier + + + => + + + restriction_parameter_argument + + + + + + + + restriction_parameter_argument + + + + name + + + expression + + + + + + delta_constraint + + + + delta + + + static_expression + + + + + range_constraint + + + + + + + + at_clause + + + + for + + + direct_name + + + use + + + at + + + expression + + + ; + + + + + + mod_clause + + + + at + + + mod + + + static_expression + + + ; + + + + + + non_quotation_mark_graphic_character + + graphic_character + + + + non_end_of_line_character + + character + + + + pragma_argument_identifier + + identifier + + + + subtype_name + + name + + + + static_expression + + expression + + + + parent_subtype_indication + + subtype_indication + + + + static_simple_expression + + simple_expression + + + + discrete_subtype_indication + + subtype_indication + + + + discriminant_selector_name + + selector_name + + + + discriminant_direct_name + + direct_name + + + + interface_subtype_mark + + subtype_mark + + + + component_selector_name + + selector_name + + + + label_statement_identifier + + statement_identifier + + + + variable_name + + name + + + + boolean_expression + + expression + + + + loop_statement_identifier + + statement_identifier + + + + loop_identifier + + identifier + + + + block_statement_identifier + + statement_identifier + + + + block_identifier + + identifier + + + + loop_name + + name + + + + label_name + + name + + + + procedure_name + + name + + + + procedure_prefix + + prefix + + + + function_name + + name + + + + function_prefix + + prefix + + + + formal_parameter_selector_name + + selector_name + + + + ancestor_subtype_indication + + subtype_indication + + + + package_name + + name + + + + object_name + + name + + + + exception_name + + name + + + + callable_entity_name + + name + + + + generic_package_name + + name + + + + generic_procedure_name + + name + + + + generic_function_name + + name + + + + task_identifier + + identifier + + + + protected_identifier + + identifier + + + + entry_direct_name + + direct_name + + + + entry_identifier + + identifier + + + + entry_name + + name + + + + delay_expression + + expression + + + + task_name + + name + + + + library_unit_name + + name + + + + string_expression + + expression + + + + generic_formal_parameter_selector_name + + selector_name + + + + subprogram_name + + name + + + + package_instance_name + + name + + + + first_subtype_local_name + + local_name + + + + component_local_name + + local_name + + + + restriction_identifier + + identifier + + + + restriction_parameter_identifier + + identifier + + + \ No newline at end of file diff --git a/shared/bgf/c-iso-9899-1999.bgf b/shared/bgf/c-iso-9899-1999.bgf new file mode 100644 index 00000000..e5ad0792 --- /dev/null +++ b/shared/bgf/c-iso-9899-1999.bgf @@ -0,0 +1 @@ +translation-unittranslation-unitexternal-declarationtranslation-unitexternal-declarationexternal-declarationfunction-definitiondeclarationfunction-definitiondeclaration-specifiersdeclaratordeclaration-listcompound-statementdeclaration-specifiersstorage-class-specifierdeclaration-specifierstype-specifierdeclaration-specifierstype-qualifierdeclaration-specifiersfunction-specifierdeclaration-specifiersstorage-class-specifiertypedefexternstaticautoregistertype-specifiervoidcharshortintlongfloatdoublesignedunsigned_Bool_Complex_Imaginarystruct-or-union-specifierenum-specifiertypedef-namestruct-or-union-specifierstruct-or-unionidentifier{struct-declaration-list}struct-or-unionidentifierstruct-or-unionstructunionstruct-declaration-liststruct-declarationstruct-declaration-liststruct-declarationstruct-declarationspecifier-qualifier-liststruct-declarator-list;specifier-qualifier-listtype-specifierspecifier-qualifier-listtype-qualifierspecifier-qualifier-listtype-qualifierconstrestrictvolatilestruct-declarator-liststruct-declaratorstruct-declarator-list,struct-declaratorstruct-declaratordeclaratordeclarator:constant-expressiondeclaratorpointerdirect-declaratorpointer*type-qualifier-list*type-qualifier-listpointertype-qualifier-listtype-qualifiertype-qualifier-listtype-qualifierdirect-declaratoridentifier(declarator)direct-declarator[type-qualifier-listassignment-expression]direct-declarator[statictype-qualifier-listassignment-expression]direct-declarator[type-qualifier-liststaticassignment-expression]direct-declarator[type-qualifier-list*]direct-declarator(parameter-type-list)direct-declarator(identifier-list)assignment-expressionconditional-expressionunary-expressionassignment-operatorassignment-expressionconditional-expressionlogical-OR-expressionlogical-OR-expression?expression:conditional-expressionlogical-OR-expressionlogical-AND-expressionlogical-OR-expression||logical-AND-expressionlogical-AND-expressioninclusive-OR-expressionlogical-AND-expression&&inclusive-OR-expressioninclusive-OR-expressionexclusive-OR-expressioninclusive-OR-expression|exclusive-OR-expressionexclusive-OR-expressionAND-expressionexclusive-OR-expression^AND-expressionAND-expressionequality-expressionAND-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressioncast-expressionmultiplicative-expression*cast-expressionmultiplicative-expression/cast-expressionmultiplicative-expression%cast-expressioncast-expressionunary-expression(type-name)cast-expressionunary-expressionpostfix-expression++unary-expression--unary-expressionunary-operatorcast-expressionsizeofunary-expressionsizeof(type-name)postfix-expressionprimary-expressionpostfix-expression[expression]postfix-expression(argument-expression-list)postfix-expression.identifierpostfix-expression->identifierpostfix-expression++postfix-expression--(type-name){initializer-list}(type-name){initializer-list,}primary-expressionidentifierconstantstring-literal(expression)expressionassignment-expressionexpression,assignment-expressionargument-expression-listassignment-expressionargument-expression-list,assignment-expressiontype-namespecifier-qualifier-listabstract-declaratorabstract-declaratorpointerpointerdirect-abstract-declaratordirect-abstract-declarator(abstract-declarator)direct-abstract-declarator[assignment-expression]direct-abstract-declarator[*]direct-abstract-declarator(parameter-type-list)parameter-type-listparameter-listparameter-list,...parameter-listparameter-declarationparameter-list,parameter-declarationparameter-declarationdeclaration-specifiersdeclaratordeclaration-specifiersabstract-declaratorinitializer-listdesignationinitializerinitializer-list,designationinitializerdesignationdesignator-list=designator-listdesignatordesignator-listdesignatordesignator[constant-expression].identifierconstant-expressionconditional-expressioninitializerassignment-expression{initializer-list}{initializer-list,}unary-operator&*+-~!assignment-operator=*=/=%=+=-=<<=>>=&=^=|=identifier-listidentifieridentifier-list,identifierenum-specifierenumidentifier{enumerator-list}enumidentifier{enumerator-list,}enumidentifierenumerator-listenumeratorenumerator-list,enumeratorenumeratorenumeration-constantenumeration-constant=constant-expressiontypedef-nameidentifierfunction-specifierinlinedeclaration-listdeclarationdeclaration-listdeclarationdeclarationdeclaration-specifiersinit-declarator-list;init-declarator-listinit-declaratorinit-declarator-list,init-declaratorinit-declaratordeclaratordeclarator=initializercompound-statement{block-item-list}block-item-listblock-itemblock-item-listblock-itemblock-itemdeclarationstatementstatementlabeled-statementcompound-statementexpression-statementselection-statementiteration-statementjump-statementlabeled-statementidentifier:statementcaseconstant-expression:statementdefault:statementexpression-statementexpression;selection-statementif(expression)statementif(expression)statementelsestatementswitch(expression)statementiteration-statementwhile(expression)statementdostatementwhile(expression);for(expression;expression;expression)statementfor(declarationexpression;expression)statementjump-statementgotoidentifier;continue;break;returnexpression; \ No newline at end of file diff --git a/shared/bgf/c-iso-9899-tc2.bgf b/shared/bgf/c-iso-9899-tc2.bgf new file mode 100644 index 00000000..1dc139d7 --- /dev/null +++ b/shared/bgf/c-iso-9899-tc2.bgf @@ -0,0 +1 @@ +translation-unittranslation-unitexternal-declarationtranslation-unitexternal-declarationexternal-declarationfunction-definitiondeclarationfunction-definitiondeclaration-specifiersdeclaratordeclaration-listcompound-statementdeclaration-specifiersstorage-class-specifierdeclaration-specifierstype-specifierdeclaration-specifierstype-qualifierdeclaration-specifiersfunction-specifierdeclaration-specifiersstorage-class-specifiertypedefexternstaticautoregistertype-specifiervoidcharshortintlongfloatdoublesignedunsigned_Bool_Complexstruct-or-union-specifierenum-specifiertypedef-namestruct-or-union-specifierstruct-or-unionidentifier{struct-declaration-list}struct-or-unionidentifierstruct-or-unionstructunionstruct-declaration-liststruct-declarationstruct-declaration-liststruct-declarationstruct-declarationspecifier-qualifier-liststruct-declarator-list;specifier-qualifier-listtype-specifierspecifier-qualifier-listtype-qualifierspecifier-qualifier-listtype-qualifierconstrestrictvolatilestruct-declarator-liststruct-declaratorstruct-declarator-list,struct-declaratorstruct-declaratordeclaratordeclarator:constant-expressiondeclaratorpointerdirect-declaratorpointer*type-qualifier-list*type-qualifier-listpointertype-qualifier-listtype-qualifiertype-qualifier-listtype-qualifierdirect-declaratoridentifier(declarator)direct-declarator[type-qualifier-listassignment-expression]direct-declarator[statictype-qualifier-listassignment-expression]direct-declarator[type-qualifier-liststaticassignment-expression]direct-declarator[type-qualifier-list*]direct-declarator(parameter-type-list)direct-declarator(identifier-list)assignment-expressionconditional-expressionunary-expressionassignment-operatorassignment-expressionconditional-expressionlogical-OR-expressionlogical-OR-expression?expression:conditional-expressionlogical-OR-expressionlogical-AND-expressionlogical-OR-expression||logical-AND-expressionlogical-AND-expressioninclusive-OR-expressionlogical-AND-expression&&inclusive-OR-expressioninclusive-OR-expressionexclusive-OR-expressioninclusive-OR-expression|exclusive-OR-expressionexclusive-OR-expressionAND-expressionexclusive-OR-expression^AND-expressionAND-expressionequality-expressionAND-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressioncast-expressionmultiplicative-expression*cast-expressionmultiplicative-expression/cast-expressionmultiplicative-expression%cast-expressioncast-expressionunary-expression(type-name)cast-expressionunary-expressionpostfix-expression++unary-expression--unary-expressionunary-operatorcast-expressionsizeofunary-expressionsizeof(type-name)postfix-expressionprimary-expressionpostfix-expression[expression]postfix-expression(argument-expression-list)postfix-expression.identifierpostfix-expression->identifierpostfix-expression++postfix-expression--(type-name){initializer-list}(type-name){initializer-list,}primary-expressionidentifierconstantstring-literal(expression)expressionassignment-expressionexpression,assignment-expressionargument-expression-listassignment-expressionargument-expression-list,assignment-expressiontype-namespecifier-qualifier-listabstract-declaratorabstract-declaratorpointerpointerdirect-abstract-declaratordirect-abstract-declarator(abstract-declarator)direct-abstract-declarator[assignment-expression]direct-abstract-declarator[*]direct-abstract-declarator(parameter-type-list)parameter-type-listparameter-listparameter-list,...parameter-listparameter-declarationparameter-list,parameter-declarationparameter-declarationdeclaration-specifiersdeclaratordeclaration-specifiersabstract-declaratorinitializer-listdesignationinitializerinitializer-list,designationinitializerdesignationdesignator-list=designator-listdesignatordesignator-listdesignatordesignator[constant-expression].identifierconstant-expressionconditional-expressioninitializerassignment-expression{initializer-list}{initializer-list,}unary-operator&*+-~!assignment-operator=*=/=%=+=-=<<=>>=&=^=|=identifier-listidentifieridentifier-list,identifierenum-specifierenumidentifier{enumerator-list}enumidentifier{enumerator-list,}enumidentifierenumerator-listenumeratorenumerator-list,enumeratorenumeratorenumeration-constantenumeration-constant=constant-expressiontypedef-nameidentifierfunction-specifierinlinedeclaration-listdeclarationdeclaration-listdeclarationdeclarationdeclaration-specifiersinit-declarator-list;init-declarator-listinit-declaratorinit-declarator-list,init-declaratorinit-declaratordeclaratordeclarator=initializercompound-statement{block-item-list}block-item-listblock-itemblock-item-listblock-itemblock-itemdeclarationstatementstatementlabeled-statementcompound-statementexpression-statementselection-statementiteration-statementjump-statementlabeled-statementidentifier:statementcaseconstant-expression:statementdefault:statementexpression-statementexpression;selection-statementif(expression)statementif(expression)statementelsestatementswitch(expression)statementiteration-statementwhile(expression)statementdostatementwhile(expression);for(expression;expression;expression)statementfor(declarationexpression;expression)statementjump-statementgotoidentifier;continue;break;returnexpression; \ No newline at end of file diff --git a/shared/bgf/c-iso-9899-tc3.bgf b/shared/bgf/c-iso-9899-tc3.bgf new file mode 100644 index 00000000..766fea52 --- /dev/null +++ b/shared/bgf/c-iso-9899-tc3.bgf @@ -0,0 +1 @@ +translation-unittranslation-unitexternal-declarationtranslation-unitexternal-declarationexternal-declarationfunction-definitiondeclarationfunction-definitiondeclaration-specifiersdeclaratordeclaration-listcompound-statementdeclaration-specifiersstorage-class-specifierdeclaration-specifierstype-specifierdeclaration-specifierstype-qualifierdeclaration-specifiersfunction-specifierdeclaration-specifiersstorage-class-specifiertypedefexternstaticautoregistertype-specifiervoidcharshortintlongfloatdoublesignedunsigned_Bool_Complexstruct-or-union-specifierenum-specifiertypedef-namestruct-or-union-specifierstruct-or-unionidentifier{struct-declaration-list}struct-or-unionidentifierstruct-or-unionstructunionstruct-declaration-liststruct-declarationstruct-declaration-liststruct-declarationstruct-declarationspecifier-qualifier-liststruct-declarator-list;specifier-qualifier-listtype-specifierspecifier-qualifier-listtype-qualifierspecifier-qualifier-listtype-qualifierconstrestrictvolatilestruct-declarator-liststruct-declaratorstruct-declarator-list,struct-declaratorstruct-declaratordeclaratordeclarator:constant-expressiondeclaratorpointerdirect-declaratorpointer*type-qualifier-list*type-qualifier-listpointertype-qualifier-listtype-qualifiertype-qualifier-listtype-qualifierdirect-declaratoridentifier(declarator)direct-declarator[type-qualifier-listassignment-expression]direct-declarator[statictype-qualifier-listassignment-expression]direct-declarator[type-qualifier-liststaticassignment-expression]direct-declarator[type-qualifier-list*]direct-declarator(parameter-type-list)direct-declarator(identifier-list)assignment-expressionconditional-expressionunary-expressionassignment-operatorassignment-expressionconditional-expressionlogical-OR-expressionlogical-OR-expression?expression:conditional-expressionlogical-OR-expressionlogical-AND-expressionlogical-OR-expression||logical-AND-expressionlogical-AND-expressioninclusive-OR-expressionlogical-AND-expression&&inclusive-OR-expressioninclusive-OR-expressionexclusive-OR-expressioninclusive-OR-expression|exclusive-OR-expressionexclusive-OR-expressionAND-expressionexclusive-OR-expression^AND-expressionAND-expressionequality-expressionAND-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressioncast-expressionmultiplicative-expression*cast-expressionmultiplicative-expression/cast-expressionmultiplicative-expression%cast-expressioncast-expressionunary-expression(type-name)cast-expressionunary-expressionpostfix-expression++unary-expression--unary-expressionunary-operatorcast-expressionsizeofunary-expressionsizeof(type-name)postfix-expressionprimary-expressionpostfix-expression[expression]postfix-expression(argument-expression-list)postfix-expression.identifierpostfix-expression->identifierpostfix-expression++postfix-expression--(type-name){initializer-list}(type-name){initializer-list,}primary-expressionidentifierconstantstring-literal(expression)expressionassignment-expressionexpression,assignment-expressionargument-expression-listassignment-expressionargument-expression-list,assignment-expressiontype-namespecifier-qualifier-listabstract-declaratorabstract-declaratorpointerpointerdirect-abstract-declaratordirect-abstract-declarator(abstract-declarator)direct-abstract-declarator[type-qualifier-listassignment-expression]direct-abstract-declarator[statictype-qualifier-listassignment-expression]direct-abstract-declarator[type-qualifier-liststaticassignment-expression]direct-abstract-declarator[*]direct-abstract-declarator(parameter-type-list)parameter-type-listparameter-listparameter-list,...parameter-listparameter-declarationparameter-list,parameter-declarationparameter-declarationdeclaration-specifiersdeclaratordeclaration-specifiersabstract-declaratorinitializer-listdesignationinitializerinitializer-list,designationinitializerdesignationdesignator-list=designator-listdesignatordesignator-listdesignatordesignator[constant-expression].identifierconstant-expressionconditional-expressioninitializerassignment-expression{initializer-list}{initializer-list,}unary-operator&*+-~!assignment-operator=*=/=%=+=-=<<=>>=&=^=|=identifier-listidentifieridentifier-list,identifierenum-specifierenumidentifier{enumerator-list}enumidentifier{enumerator-list,}enumidentifierenumerator-listenumeratorenumerator-list,enumeratorenumeratorenumeration-constantenumeration-constant=constant-expressiontypedef-nameidentifierfunction-specifierinlinedeclaration-listdeclarationdeclaration-listdeclarationdeclarationdeclaration-specifiersinit-declarator-list;init-declarator-listinit-declaratorinit-declarator-list,init-declaratorinit-declaratordeclaratordeclarator=initializercompound-statement{block-item-list}block-item-listblock-itemblock-item-listblock-itemblock-itemdeclarationstatementstatementlabeled-statementcompound-statementexpression-statementselection-statementiteration-statementjump-statementlabeled-statementidentifier:statementcaseconstant-expression:statementdefault:statementexpression-statementexpression;selection-statementif(expression)statementif(expression)statementelsestatementswitch(expression)statementiteration-statementwhile(expression)statementdostatementwhile(expression);for(expression;expression;expression)statementfor(declarationexpression;expression)statementjump-statementgotoidentifier;continue;break;returnexpression; \ No newline at end of file diff --git a/shared/bgf/c.iso-9899-1999.ext.bgf b/shared/bgf/c.iso-9899-1999.ext.bgf deleted file mode 100644 index 0fba3865..00000000 --- a/shared/bgf/c.iso-9899-1999.ext.bgf +++ /dev/null @@ -1,2473 +0,0 @@ - - - - primary-expression - - - - identifier - - - constant - - - string-literal - - - - - ( - - - expression - - - ) - - - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - argument-expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - identifier - - - - - - - postfix-expression - - - -> - - - identifier - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - } - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - , - - - } - - - - - - - - argument-expression-list - - - - assignment-expression - - - - - argument-expression-list - - - , - - - assignment-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - unary-expression - - - - - - - -- - - - unary-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-name - - - ) - - - - - - - - unary-operator - - - - & - - - * - - - + - - - - - - - ~ - - - ! - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-name - - - ) - - - cast-expression - - - - - - - - multiplicative-expression - - - - cast-expression - - - - - multiplicative-expression - - - * - - - cast-expression - - - - - - - multiplicative-expression - - - / - - - cast-expression - - - - - - - multiplicative-expression - - - % - - - cast-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - AND-expression - - - - equality-expression - - - - - AND-expression - - - & - - - equality-expression - - - - - - - - exclusive-OR-expression - - - - AND-expression - - - - - exclusive-OR-expression - - - ^ - - - AND-expression - - - - - - - - inclusive-OR-expression - - - - exclusive-OR-expression - - - - - inclusive-OR-expression - - - | - - - exclusive-OR-expression - - - - - - - - logical-AND-expression - - - - inclusive-OR-expression - - - - - logical-AND-expression - - - && - - - inclusive-OR-expression - - - - - - - - logical-OR-expression - - - - logical-AND-expression - - - - - logical-OR-expression - - - || - - - logical-AND-expression - - - - - - - - conditional-expression - - - - logical-OR-expression - - - - - logical-OR-expression - - - ? - - - expression - - - : - - - conditional-expression - - - - - - - - assignment-expression - - - - conditional-expression - - - - - unary-expression - - - assignment-operator - - - assignment-expression - - - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - <<= - - - >>= - - - &= - - - ^= - - - |= - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - constant-expression - - conditional-expression - - - - declaration - - - - declaration-specifiers - - - - - init-declarator-list - - - - - ; - - - - - - declaration-specifiers - - - - - - storage-class-specifier - - - - - declaration-specifiers - - - - - - - - - type-specifier - - - - - declaration-specifiers - - - - - - - - - type-qualifier - - - - - declaration-specifiers - - - - - - - - - function-specifier - - - - - declaration-specifiers - - - - - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - declarator - - - = - - - initializer - - - - - - - - storage-class-specifier - - - - typedef - - - extern - - - static - - - auto - - - register - - - - - - type-specifier - - - - void - - - char - - - short - - - int - - - long - - - float - - - double - - - signed - - - unsigned - - - _Bool - - - _Complex - - - _Imaginary - - - struct-or-union-specifier - - - enum-specifier - - - typedef-name - - - - - - struct-or-union-specifier - - - - - - struct-or-union - - - - - identifier - - - - - { - - - struct-declaration-list - - - } - - - - - - - struct-or-union - - - identifier - - - - - - - - struct-or-union - - - - struct - - - union - - - - - - struct-declaration-list - - - - struct-declaration - - - - - struct-declaration-list - - - struct-declaration - - - - - - - - struct-declaration - - - - specifier-qualifier-list - - - struct-declarator-list - - - ; - - - - - - specifier-qualifier-list - - - - - - type-specifier - - - - - specifier-qualifier-list - - - - - - - - - type-qualifier - - - - - specifier-qualifier-list - - - - - - - - - - struct-declarator-list - - - - struct-declarator - - - - - struct-declarator-list - - - , - - - struct-declarator - - - - - - - - struct-declarator - - - - declarator - - - - - - - declarator - - - - - : - - - constant-expression - - - - - - - - enum-specifier - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - } - - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - enum - - - identifier - - - - - - - - enumerator-list - - - - enumerator - - - - - enumerator-list - - - , - - - enumerator - - - - - - - - enumerator - - - - enumeration-constant - - - - - enumeration-constant - - - = - - - constant-expression - - - - - - - - type-qualifier - - - - const - - - restrict - - - volatile - - - - - - function-specifier - - inline - - - - declarator - - - - - - pointer - - - - - direct-declarator - - - - - - direct-declarator - - - - identifier - - - - - ( - - - declarator - - - ) - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - direct-declarator - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - * - - - ] - - - - - - - direct-declarator - - - ( - - - parameter-type-list - - - ) - - - - - - - direct-declarator - - - ( - - - - - identifier-list - - - - - ) - - - - - - - - pointer - - - - - - * - - - - - type-qualifier-list - - - - - - - - - * - - - - - type-qualifier-list - - - - - pointer - - - - - - - - type-qualifier-list - - - - type-qualifier - - - - - type-qualifier-list - - - type-qualifier - - - - - - - - parameter-type-list - - - - parameter-list - - - - - parameter-list - - - , - - - ... - - - - - - - - parameter-list - - - - parameter-declaration - - - - - parameter-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - declaration-specifiers - - - declarator - - - - - - - declaration-specifiers - - - - - abstract-declarator - - - - - - - - - - identifier-list - - - - identifier - - - - - identifier-list - - - , - - - identifier - - - - - - - - type-name - - - - specifier-qualifier-list - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - pointer - - - - - - - pointer - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - assignment-expression - - - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - * - - - ] - - - - - - - - - direct-abstract-declarator - - - - - ( - - - - - parameter-type-list - - - - - ) - - - - - - - - typedef-name - - identifier - - - - initializer - - - - assignment-expression - - - - - { - - - initializer-list - - - } - - - - - - - { - - - initializer-list - - - , - - - } - - - - - - - - initializer-list - - - - - - - - designation - - - - - initializer - - - - - - - initializer-list - - - , - - - - - designation - - - - - initializer - - - - - - - - designation - - - - designator-list - - - = - - - - - - designator-list - - - - designator - - - - - designator-list - - - designator - - - - - - - - designator - - - - - - [ - - - constant-expression - - - ] - - - - - - - . - - - identifier - - - - - - - - statement - - - - labeled-statement - - - compound-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - compound-statement - - - - { - - - - - block-item-list - - - - - } - - - - - - block-item-list - - - - block-item - - - - - block-item-list - - - block-item - - - - - - - - block-item - - - - declaration - - - statement - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - expression - - - ) - - - statement - - - - - - - - iteration-statement - - - - - - while - - - ( - - - expression - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - - - expression - - - - - ; - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - for - - - ( - - - declaration - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - jump-statement - - - - - - goto - - - identifier - - - ; - - - - - - - continue - - - ; - - - - - - - break - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - - translation-unit - - - - external-declaration - - - - - translation-unit - - - external-declaration - - - - - - - - external-declaration - - - - function-definition - - - declaration - - - - - - function-definition - - - - declaration-specifiers - - - declarator - - - - - declaration-list - - - - - compound-statement - - - - - - declaration-list - - - - declaration - - - - - declaration-list - - - declaration - - - - - - - - keyword - - - - auto - - - break - - - case - - - char - - - const - - - continue - - - default - - - do - - - double - - - else - - - enum - - - extern - - - float - - - for - - - goto - - - if - - - inline - - - int - - - long - - - register - - - restrict - - - return - - - short - - - signed - - - sizeof - - - static - - - struct - - - switch - - - typedef - - - union - - - unsigned - - - void - - - volatile - - - while - - - - - diff --git a/shared/bgf/c.iso-9899-1999.rec.bgf b/shared/bgf/c.iso-9899-1999.rec.bgf deleted file mode 100644 index 105972b1..00000000 --- a/shared/bgf/c.iso-9899-1999.rec.bgf +++ /dev/null @@ -1,2365 +0,0 @@ - - - translation-unit - - translation-unit - - - - external-declaration - - - - - translation-unit - - - external-declaration - - - - - - - - external-declaration - - - - function-definition - - - declaration - - - - - - function-definition - - - - declaration-specifiers - - - declarator - - - - - declaration-list - - - - - compound-statement - - - - - - declaration-specifiers - - - - - - storage-class-specifier - - - - - declaration-specifiers - - - - - - - - - type-specifier - - - - - declaration-specifiers - - - - - - - - - type-qualifier - - - - - declaration-specifiers - - - - - - - - - function-specifier - - - - - declaration-specifiers - - - - - - - - - - storage-class-specifier - - - - typedef - - - extern - - - static - - - auto - - - register - - - - - - type-specifier - - - - void - - - char - - - short - - - int - - - long - - - float - - - double - - - signed - - - unsigned - - - _Bool - - - _Complex - - - _Imaginary - - - struct-or-union-specifier - - - enum-specifier - - - typedef-name - - - - - - struct-or-union-specifier - - - - - - struct-or-union - - - - - identifier - - - - - { - - - struct-declaration-list - - - } - - - - - - - struct-or-union - - - identifier - - - - - - - - struct-or-union - - - - struct - - - union - - - - - - struct-declaration-list - - - - struct-declaration - - - - - struct-declaration-list - - - struct-declaration - - - - - - - - struct-declaration - - - - specifier-qualifier-list - - - struct-declarator-list - - - ; - - - - - - specifier-qualifier-list - - - - - - type-specifier - - - - - specifier-qualifier-list - - - - - - - - - type-qualifier - - - - - specifier-qualifier-list - - - - - - - - - - type-qualifier - - - - const - - - restrict - - - volatile - - - - - - struct-declarator-list - - - - struct-declarator - - - - - struct-declarator-list - - - , - - - struct-declarator - - - - - - - - struct-declarator - - - - declarator - - - - - - - declarator - - - - - : - - - constant-expression - - - - - - - - declarator - - - - - - pointer - - - - - direct-declarator - - - - - - pointer - - - - - - * - - - - - type-qualifier-list - - - - - - - - - * - - - - - type-qualifier-list - - - - - pointer - - - - - - - - type-qualifier-list - - - - type-qualifier - - - - - type-qualifier-list - - - type-qualifier - - - - - - - - direct-declarator - - - - identifier - - - - - ( - - - declarator - - - ) - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - direct-declarator - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - * - - - ] - - - - - - - direct-declarator - - - ( - - - parameter-type-list - - - ) - - - - - - - direct-declarator - - - ( - - - - - identifier-list - - - - - ) - - - - - - - - assignment-expression - - - - conditional-expression - - - - - unary-expression - - - assignment-operator - - - assignment-expression - - - - - - - - conditional-expression - - - - logical-OR-expression - - - - - logical-OR-expression - - - ? - - - expression - - - : - - - conditional-expression - - - - - - - - logical-OR-expression - - - - logical-AND-expression - - - - - logical-OR-expression - - - || - - - logical-AND-expression - - - - - - - - logical-AND-expression - - - - inclusive-OR-expression - - - - - logical-AND-expression - - - && - - - inclusive-OR-expression - - - - - - - - inclusive-OR-expression - - - - exclusive-OR-expression - - - - - inclusive-OR-expression - - - | - - - exclusive-OR-expression - - - - - - - - exclusive-OR-expression - - - - AND-expression - - - - - exclusive-OR-expression - - - ^ - - - AND-expression - - - - - - - - AND-expression - - - - equality-expression - - - - - AND-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - cast-expression - - - - - multiplicative-expression - - - * - - - cast-expression - - - - - - - multiplicative-expression - - - / - - - cast-expression - - - - - - - multiplicative-expression - - - % - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-name - - - ) - - - cast-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - unary-expression - - - - - - - -- - - - unary-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-name - - - ) - - - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - argument-expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - identifier - - - - - - - postfix-expression - - - -> - - - identifier - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - } - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - , - - - } - - - - - - - - primary-expression - - - - identifier - - - constant - - - string-literal - - - - - ( - - - expression - - - ) - - - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - argument-expression-list - - - - assignment-expression - - - - - argument-expression-list - - - , - - - assignment-expression - - - - - - - - type-name - - - - specifier-qualifier-list - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - pointer - - - - - - - pointer - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - assignment-expression - - - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - * - - - ] - - - - - - - - - direct-abstract-declarator - - - - - ( - - - - - parameter-type-list - - - - - ) - - - - - - - - parameter-type-list - - - - parameter-list - - - - - parameter-list - - - , - - - ... - - - - - - - - parameter-list - - - - parameter-declaration - - - - - parameter-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - declaration-specifiers - - - declarator - - - - - - - declaration-specifiers - - - - - abstract-declarator - - - - - - - - - - initializer-list - - - - - - - - designation - - - - - initializer - - - - - - - initializer-list - - - , - - - - - designation - - - - - initializer - - - - - - - - designation - - - - designator-list - - - = - - - - - - designator-list - - - - designator - - - - - designator-list - - - designator - - - - - - - - designator - - - - - - [ - - - constant-expression - - - ] - - - - - - - . - - - identifier - - - - - - - - constant-expression - - conditional-expression - - - - initializer - - - - assignment-expression - - - - - { - - - initializer-list - - - } - - - - - - - { - - - initializer-list - - - , - - - } - - - - - - - - unary-operator - - - - & - - - * - - - + - - - - - - - ~ - - - ! - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - <<= - - - >>= - - - &= - - - ^= - - - |= - - - - - - identifier-list - - - - identifier - - - - - identifier-list - - - , - - - identifier - - - - - - - - enum-specifier - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - } - - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - enum - - - identifier - - - - - - - - enumerator-list - - - - enumerator - - - - - enumerator-list - - - , - - - enumerator - - - - - - - - enumerator - - - - enumeration-constant - - - - - enumeration-constant - - - = - - - constant-expression - - - - - - - - typedef-name - - identifier - - - - function-specifier - - inline - - - - declaration-list - - - - declaration - - - - - declaration-list - - - declaration - - - - - - - - declaration - - - - declaration-specifiers - - - - - init-declarator-list - - - - - ; - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - declarator - - - = - - - initializer - - - - - - - - compound-statement - - - - { - - - - - block-item-list - - - - - } - - - - - - block-item-list - - - - block-item - - - - - block-item-list - - - block-item - - - - - - - - block-item - - - - declaration - - - statement - - - - - - statement - - - - labeled-statement - - - compound-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - expression - - - ) - - - statement - - - - - - - - iteration-statement - - - - - - while - - - ( - - - expression - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - - - expression - - - - - ; - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - for - - - ( - - - declaration - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - jump-statement - - - - - - goto - - - identifier - - - ; - - - - - - - continue - - - ; - - - - - - - break - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - diff --git a/shared/bgf/c.iso-9899-tc2.ext.bgf b/shared/bgf/c.iso-9899-tc2.ext.bgf deleted file mode 100644 index f2168421..00000000 --- a/shared/bgf/c.iso-9899-tc2.ext.bgf +++ /dev/null @@ -1,2477 +0,0 @@ - - - - primary-expression - - - - identifier - - - constant - - - string-literal - - - - - ( - - - expression - - - ) - - - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - argument-expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - identifier - - - - - - - postfix-expression - - - -> - - - identifier - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - } - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - , - - - } - - - - - - - - argument-expression-list - - - - assignment-expression - - - - - argument-expression-list - - - , - - - assignment-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - unary-expression - - - - - - - -- - - - unary-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-name - - - ) - - - - - - - - unary-operator - - - - & - - - * - - - + - - - - - - - ~ - - - ! - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-name - - - ) - - - cast-expression - - - - - - - - multiplicative-expression - - - - cast-expression - - - - - multiplicative-expression - - - * - - - cast-expression - - - - - - - multiplicative-expression - - - / - - - cast-expression - - - - - - - multiplicative-expression - - - % - - - cast-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - AND-expression - - - - equality-expression - - - - - AND-expression - - - & - - - equality-expression - - - - - - - - exclusive-OR-expression - - - - AND-expression - - - - - exclusive-OR-expression - - - ^ - - - AND-expression - - - - - - - - inclusive-OR-expression - - - - exclusive-OR-expression - - - - - inclusive-OR-expression - - - | - - - exclusive-OR-expression - - - - - - - - logical-AND-expression - - - - inclusive-OR-expression - - - - - logical-AND-expression - - - && - - - inclusive-OR-expression - - - - - - - - logical-OR-expression - - - - logical-AND-expression - - - - - logical-OR-expression - - - || - - - logical-AND-expression - - - - - - - - conditional-expression - - - - logical-OR-expression - - - - - logical-OR-expression - - - ? - - - expression - - - : - - - conditional-expression - - - - - - - - assignment-expression - - - - conditional-expression - - - - - unary-expression - - - assignment-operator - - - assignment-expression - - - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - <<= - - - >>= - - - &= - - - ^= - - - |= - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - constant-expression - - conditional-expression - - - - declaration - - - - declaration-specifiers - - - - - init-declarator-list - - - - - ; - - - - - - declaration-specifiers - - - - - - storage-class-specifier - - - - - declaration-specifiers - - - - - - - - - type-specifier - - - - - declaration-specifiers - - - - - - - - - type-qualifier - - - - - declaration-specifiers - - - - - - - - - function-specifier - - - - - declaration-specifiers - - - - - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - declarator - - - = - - - initializer - - - - - - - - storage-class-specifier - - - - typedef - - - extern - - - static - - - auto - - - register - - - - - - type-specifier - - - - void - - - char - - - short - - - int - - - long - - - float - - - double - - - signed - - - unsigned - - - _Bool - - - _Complex - - - - - struct-or-union-specifier - - - * - - - - - enum-specifier - - - typedef-name - - - - - - struct-or-union-specifier - - - - - - struct-or-union - - - - - identifier - - - - - { - - - struct-declaration-list - - - } - - - - - - - struct-or-union - - - identifier - - - - - - - - struct-or-union - - - - struct - - - union - - - - - - struct-declaration-list - - - - struct-declaration - - - - - struct-declaration-list - - - struct-declaration - - - - - - - - struct-declaration - - - - specifier-qualifier-list - - - struct-declarator-list - - - ; - - - - - - specifier-qualifier-list - - - - - - type-specifier - - - - - specifier-qualifier-list - - - - - - - - - type-qualifier - - - - - specifier-qualifier-list - - - - - - - - - - struct-declarator-list - - - - struct-declarator - - - - - struct-declarator-list - - - , - - - struct-declarator - - - - - - - - struct-declarator - - - - declarator - - - - - - - declarator - - - - - : - - - constant-expression - - - - - - - - enum-specifier - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - } - - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - enum - - - identifier - - - - - - - - enumerator-list - - - - enumerator - - - - - enumerator-list - - - , - - - enumerator - - - - - - - - enumerator - - - - enumeration-constant - - - - - enumeration-constant - - - = - - - constant-expression - - - - - - - - type-qualifier - - - - const - - - restrict - - - volatile - - - - - - function-specifier - - inline - - - - declarator - - - - - - pointer - - - - - direct-declarator - - - - - - direct-declarator - - - - identifier - - - - - ( - - - declarator - - - ) - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - direct-declarator - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - * - - - ] - - - - - - - direct-declarator - - - ( - - - parameter-type-list - - - ) - - - - - - - direct-declarator - - - ( - - - - - identifier-list - - - - - ) - - - - - - - - pointer - - - - - - * - - - - - type-qualifier-list - - - - - - - - - * - - - - - type-qualifier-list - - - - - pointer - - - - - - - - type-qualifier-list - - - - type-qualifier - - - - - type-qualifier-list - - - type-qualifier - - - - - - - - parameter-type-list - - - - parameter-list - - - - - parameter-list - - - , - - - ... - - - - - - - - parameter-list - - - - parameter-declaration - - - - - parameter-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - declaration-specifiers - - - declarator - - - - - - - declaration-specifiers - - - - - abstract-declarator - - - - - - - - - - identifier-list - - - - identifier - - - - - identifier-list - - - , - - - identifier - - - - - - - - type-name - - - - specifier-qualifier-list - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - pointer - - - - - - - pointer - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - assignment-expression - - - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - * - - - ] - - - - - - - - - direct-abstract-declarator - - - - - ( - - - - - parameter-type-list - - - - - ) - - - - - - - - typedef-name - - identifier - - - - initializer - - - - assignment-expression - - - - - { - - - initializer-list - - - } - - - - - - - { - - - initializer-list - - - , - - - } - - - - - - - - initializer-list - - - - - - - - designation - - - - - initializer - - - - - - - initializer-list - - - , - - - - - designation - - - - - initializer - - - - - - - - designation - - - - designator-list - - - = - - - - - - designator-list - - - - designator - - - - - designator-list - - - designator - - - - - - - - designator - - - - - - [ - - - constant-expression - - - ] - - - - - - - . - - - identifier - - - - - - - - statement - - - - labeled-statement - - - compound-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - compound-statement - - - - { - - - - - block-item-list - - - - - } - - - - - - block-item-list - - - - block-item - - - - - block-item-list - - - block-item - - - - - - - - block-item - - - - declaration - - - statement - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - expression - - - ) - - - statement - - - - - - - - iteration-statement - - - - - - while - - - ( - - - expression - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - - - expression - - - - - ; - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - for - - - ( - - - declaration - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - jump-statement - - - - - - goto - - - identifier - - - ; - - - - - - - continue - - - ; - - - - - - - break - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - - translation-unit - - - - external-declaration - - - - - translation-unit - - - external-declaration - - - - - - - - external-declaration - - - - function-definition - - - declaration - - - - - - function-definition - - - - declaration-specifiers - - - declarator - - - - - declaration-list - - - - - compound-statement - - - - - - declaration-list - - - - declaration - - - - - declaration-list - - - declaration - - - - - - - - keyword - - - - auto - - - break - - - case - - - char - - - const - - - continue - - - default - - - do - - - double - - - else - - - enum - - - extern - - - float - - - for - - - goto - - - if - - - inline - - - int - - - long - - - register - - - restrict - - - return - - - short - - - signed - - - sizeof - - - static - - - struct - - - switch - - - typedef - - - union - - - unsigned - - - void - - - volatile - - - while - - - - - diff --git a/shared/bgf/c.iso-9899-tc2.rec.bgf b/shared/bgf/c.iso-9899-tc2.rec.bgf deleted file mode 100644 index d2ae9e7d..00000000 --- a/shared/bgf/c.iso-9899-tc2.rec.bgf +++ /dev/null @@ -1,2369 +0,0 @@ - - - translation-unit - - translation-unit - - - - external-declaration - - - - - translation-unit - - - external-declaration - - - - - - - - external-declaration - - - - function-definition - - - declaration - - - - - - function-definition - - - - declaration-specifiers - - - declarator - - - - - declaration-list - - - - - compound-statement - - - - - - declaration-specifiers - - - - - - storage-class-specifier - - - - - declaration-specifiers - - - - - - - - - type-specifier - - - - - declaration-specifiers - - - - - - - - - type-qualifier - - - - - declaration-specifiers - - - - - - - - - function-specifier - - - - - declaration-specifiers - - - - - - - - - - storage-class-specifier - - - - typedef - - - extern - - - static - - - auto - - - register - - - - - - type-specifier - - - - void - - - char - - - short - - - int - - - long - - - float - - - double - - - signed - - - unsigned - - - _Bool - - - _Complex - - - - - struct-or-union-specifier - - - * - - - - - enum-specifier - - - typedef-name - - - - - - struct-or-union-specifier - - - - - - struct-or-union - - - - - identifier - - - - - { - - - struct-declaration-list - - - } - - - - - - - struct-or-union - - - identifier - - - - - - - - struct-or-union - - - - struct - - - union - - - - - - struct-declaration-list - - - - struct-declaration - - - - - struct-declaration-list - - - struct-declaration - - - - - - - - struct-declaration - - - - specifier-qualifier-list - - - struct-declarator-list - - - ; - - - - - - specifier-qualifier-list - - - - - - type-specifier - - - - - specifier-qualifier-list - - - - - - - - - type-qualifier - - - - - specifier-qualifier-list - - - - - - - - - - type-qualifier - - - - const - - - restrict - - - volatile - - - - - - struct-declarator-list - - - - struct-declarator - - - - - struct-declarator-list - - - , - - - struct-declarator - - - - - - - - struct-declarator - - - - declarator - - - - - - - declarator - - - - - : - - - constant-expression - - - - - - - - declarator - - - - - - pointer - - - - - direct-declarator - - - - - - pointer - - - - - - * - - - - - type-qualifier-list - - - - - - - - - * - - - - - type-qualifier-list - - - - - pointer - - - - - - - - type-qualifier-list - - - - type-qualifier - - - - - type-qualifier-list - - - type-qualifier - - - - - - - - direct-declarator - - - - identifier - - - - - ( - - - declarator - - - ) - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - direct-declarator - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - * - - - ] - - - - - - - direct-declarator - - - ( - - - parameter-type-list - - - ) - - - - - - - direct-declarator - - - ( - - - - - identifier-list - - - - - ) - - - - - - - - assignment-expression - - - - conditional-expression - - - - - unary-expression - - - assignment-operator - - - assignment-expression - - - - - - - - conditional-expression - - - - logical-OR-expression - - - - - logical-OR-expression - - - ? - - - expression - - - : - - - conditional-expression - - - - - - - - logical-OR-expression - - - - logical-AND-expression - - - - - logical-OR-expression - - - || - - - logical-AND-expression - - - - - - - - logical-AND-expression - - - - inclusive-OR-expression - - - - - logical-AND-expression - - - && - - - inclusive-OR-expression - - - - - - - - inclusive-OR-expression - - - - exclusive-OR-expression - - - - - inclusive-OR-expression - - - | - - - exclusive-OR-expression - - - - - - - - exclusive-OR-expression - - - - AND-expression - - - - - exclusive-OR-expression - - - ^ - - - AND-expression - - - - - - - - AND-expression - - - - equality-expression - - - - - AND-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - cast-expression - - - - - multiplicative-expression - - - * - - - cast-expression - - - - - - - multiplicative-expression - - - / - - - cast-expression - - - - - - - multiplicative-expression - - - % - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-name - - - ) - - - cast-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - unary-expression - - - - - - - -- - - - unary-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-name - - - ) - - - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - argument-expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - identifier - - - - - - - postfix-expression - - - -> - - - identifier - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - } - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - , - - - } - - - - - - - - primary-expression - - - - identifier - - - constant - - - string-literal - - - - - ( - - - expression - - - ) - - - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - argument-expression-list - - - - assignment-expression - - - - - argument-expression-list - - - , - - - assignment-expression - - - - - - - - type-name - - - - specifier-qualifier-list - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - pointer - - - - - - - pointer - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - assignment-expression - - - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - * - - - ] - - - - - - - - - direct-abstract-declarator - - - - - ( - - - - - parameter-type-list - - - - - ) - - - - - - - - parameter-type-list - - - - parameter-list - - - - - parameter-list - - - , - - - ... - - - - - - - - parameter-list - - - - parameter-declaration - - - - - parameter-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - declaration-specifiers - - - declarator - - - - - - - declaration-specifiers - - - - - abstract-declarator - - - - - - - - - - initializer-list - - - - - - - - designation - - - - - initializer - - - - - - - initializer-list - - - , - - - - - designation - - - - - initializer - - - - - - - - designation - - - - designator-list - - - = - - - - - - designator-list - - - - designator - - - - - designator-list - - - designator - - - - - - - - designator - - - - - - [ - - - constant-expression - - - ] - - - - - - - . - - - identifier - - - - - - - - constant-expression - - conditional-expression - - - - initializer - - - - assignment-expression - - - - - { - - - initializer-list - - - } - - - - - - - { - - - initializer-list - - - , - - - } - - - - - - - - unary-operator - - - - & - - - * - - - + - - - - - - - ~ - - - ! - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - <<= - - - >>= - - - &= - - - ^= - - - |= - - - - - - identifier-list - - - - identifier - - - - - identifier-list - - - , - - - identifier - - - - - - - - enum-specifier - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - } - - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - enum - - - identifier - - - - - - - - enumerator-list - - - - enumerator - - - - - enumerator-list - - - , - - - enumerator - - - - - - - - enumerator - - - - enumeration-constant - - - - - enumeration-constant - - - = - - - constant-expression - - - - - - - - typedef-name - - identifier - - - - function-specifier - - inline - - - - declaration-list - - - - declaration - - - - - declaration-list - - - declaration - - - - - - - - declaration - - - - declaration-specifiers - - - - - init-declarator-list - - - - - ; - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - declarator - - - = - - - initializer - - - - - - - - compound-statement - - - - { - - - - - block-item-list - - - - - } - - - - - - block-item-list - - - - block-item - - - - - block-item-list - - - block-item - - - - - - - - block-item - - - - declaration - - - statement - - - - - - statement - - - - labeled-statement - - - compound-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - expression - - - ) - - - statement - - - - - - - - iteration-statement - - - - - - while - - - ( - - - expression - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - - - expression - - - - - ; - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - for - - - ( - - - declaration - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - jump-statement - - - - - - goto - - - identifier - - - ; - - - - - - - continue - - - ; - - - - - - - break - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - diff --git a/shared/bgf/c.iso-9899-tc3.ext.bgf b/shared/bgf/c.iso-9899-tc3.ext.bgf deleted file mode 100644 index 09ca11cd..00000000 --- a/shared/bgf/c.iso-9899-tc3.ext.bgf +++ /dev/null @@ -1,2540 +0,0 @@ - - - - primary-expression - - - - identifier - - - constant - - - string-literal - - - - - ( - - - expression - - - ) - - - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - argument-expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - identifier - - - - - - - postfix-expression - - - -> - - - identifier - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - } - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - , - - - } - - - - - - - - argument-expression-list - - - - assignment-expression - - - - - argument-expression-list - - - , - - - assignment-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - unary-expression - - - - - - - -- - - - unary-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-name - - - ) - - - - - - - - unary-operator - - - - & - - - * - - - + - - - - - - - ~ - - - ! - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-name - - - ) - - - cast-expression - - - - - - - - multiplicative-expression - - - - cast-expression - - - - - multiplicative-expression - - - * - - - cast-expression - - - - - - - multiplicative-expression - - - / - - - cast-expression - - - - - - - multiplicative-expression - - - % - - - cast-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - AND-expression - - - - equality-expression - - - - - AND-expression - - - & - - - equality-expression - - - - - - - - exclusive-OR-expression - - - - AND-expression - - - - - exclusive-OR-expression - - - ^ - - - AND-expression - - - - - - - - inclusive-OR-expression - - - - exclusive-OR-expression - - - - - inclusive-OR-expression - - - | - - - exclusive-OR-expression - - - - - - - - logical-AND-expression - - - - inclusive-OR-expression - - - - - logical-AND-expression - - - && - - - inclusive-OR-expression - - - - - - - - logical-OR-expression - - - - logical-AND-expression - - - - - logical-OR-expression - - - || - - - logical-AND-expression - - - - - - - - conditional-expression - - - - logical-OR-expression - - - - - logical-OR-expression - - - ? - - - expression - - - : - - - conditional-expression - - - - - - - - assignment-expression - - - - conditional-expression - - - - - unary-expression - - - assignment-operator - - - assignment-expression - - - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - <<= - - - >>= - - - &= - - - ^= - - - |= - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - constant-expression - - conditional-expression - - - - declaration - - - - declaration-specifiers - - - - - init-declarator-list - - - - - ; - - - - - - declaration-specifiers - - - - - - storage-class-specifier - - - - - declaration-specifiers - - - - - - - - - type-specifier - - - - - declaration-specifiers - - - - - - - - - type-qualifier - - - - - declaration-specifiers - - - - - - - - - function-specifier - - - - - declaration-specifiers - - - - - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - declarator - - - = - - - initializer - - - - - - - - storage-class-specifier - - - - typedef - - - extern - - - static - - - auto - - - register - - - - - - type-specifier - - - - void - - - char - - - short - - - int - - - long - - - float - - - double - - - signed - - - unsigned - - - _Bool - - - _Complex - - - - - struct-or-union-specifier - - - * - - - - - enum-specifier - - - typedef-name - - - - - - struct-or-union-specifier - - - - - - struct-or-union - - - - - identifier - - - - - { - - - struct-declaration-list - - - } - - - - - - - struct-or-union - - - identifier - - - - - - - - struct-or-union - - - - struct - - - union - - - - - - struct-declaration-list - - - - struct-declaration - - - - - struct-declaration-list - - - struct-declaration - - - - - - - - struct-declaration - - - - specifier-qualifier-list - - - struct-declarator-list - - - ; - - - - - - specifier-qualifier-list - - - - - - type-specifier - - - - - specifier-qualifier-list - - - - - - - - - type-qualifier - - - - - specifier-qualifier-list - - - - - - - - - - struct-declarator-list - - - - struct-declarator - - - - - struct-declarator-list - - - , - - - struct-declarator - - - - - - - - struct-declarator - - - - declarator - - - - - - - declarator - - - - - : - - - constant-expression - - - - - - - - enum-specifier - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - } - - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - enum - - - identifier - - - - - - - - enumerator-list - - - - enumerator - - - - - enumerator-list - - - , - - - enumerator - - - - - - - - enumerator - - - - enumeration-constant - - - - - enumeration-constant - - - = - - - constant-expression - - - - - - - - type-qualifier - - - - const - - - restrict - - - volatile - - - - - - function-specifier - - inline - - - - declarator - - - - - - pointer - - - - - direct-declarator - - - - - - direct-declarator - - - - identifier - - - - - ( - - - declarator - - - ) - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - direct-declarator - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - * - - - ] - - - - - - - direct-declarator - - - ( - - - parameter-type-list - - - ) - - - - - - - direct-declarator - - - ( - - - - - identifier-list - - - - - ) - - - - - - - - pointer - - - - - - * - - - - - type-qualifier-list - - - - - - - - - * - - - - - type-qualifier-list - - - - - pointer - - - - - - - - type-qualifier-list - - - - type-qualifier - - - - - type-qualifier-list - - - type-qualifier - - - - - - - - parameter-type-list - - - - parameter-list - - - - - parameter-list - - - , - - - ... - - - - - - - - parameter-list - - - - parameter-declaration - - - - - parameter-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - declaration-specifiers - - - declarator - - - - - - - declaration-specifiers - - - - - abstract-declarator - - - - - - - - - - identifier-list - - - - identifier - - - - - identifier-list - - - , - - - identifier - - - - - - - - type-name - - - - specifier-qualifier-list - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - pointer - - - - - - - pointer - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - * - - - ] - - - - - - - - - direct-abstract-declarator - - - - - ( - - - - - parameter-type-list - - - - - ) - - - - - - - - typedef-name - - identifier - - - - initializer - - - - assignment-expression - - - - - { - - - initializer-list - - - } - - - - - - - { - - - initializer-list - - - , - - - } - - - - - - - - initializer-list - - - - - - - - designation - - - - - initializer - - - - - - - initializer-list - - - , - - - - - designation - - - - - initializer - - - - - - - - designation - - - - designator-list - - - = - - - - - - designator-list - - - - designator - - - - - designator-list - - - designator - - - - - - - - designator - - - - - - [ - - - constant-expression - - - ] - - - - - - - . - - - identifier - - - - - - - - statement - - - - labeled-statement - - - compound-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - compound-statement - - - - { - - - - - block-item-list - - - - - } - - - - - - block-item-list - - - - block-item - - - - - block-item-list - - - block-item - - - - - - - - block-item - - - - declaration - - - statement - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - expression - - - ) - - - statement - - - - - - - - iteration-statement - - - - - - while - - - ( - - - expression - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - - - expression - - - - - ; - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - for - - - ( - - - declaration - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - jump-statement - - - - - - goto - - - identifier - - - ; - - - - - - - continue - - - ; - - - - - - - break - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - - translation-unit - - - - external-declaration - - - - - translation-unit - - - external-declaration - - - - - - - - external-declaration - - - - function-definition - - - declaration - - - - - - function-definition - - - - declaration-specifiers - - - declarator - - - - - declaration-list - - - - - compound-statement - - - - - - declaration-list - - - - declaration - - - - - declaration-list - - - declaration - - - - - - - - keyword - - - - auto - - - break - - - case - - - char - - - const - - - continue - - - default - - - do - - - double - - - else - - - enum - - - extern - - - float - - - for - - - goto - - - if - - - inline - - - int - - - long - - - register - - - restrict - - - return - - - short - - - signed - - - sizeof - - - static - - - struct - - - switch - - - typedef - - - union - - - unsigned - - - void - - - volatile - - - while - - - - - diff --git a/shared/bgf/c.iso-9899-tc3.rec.bgf b/shared/bgf/c.iso-9899-tc3.rec.bgf deleted file mode 100644 index cdf7851f..00000000 --- a/shared/bgf/c.iso-9899-tc3.rec.bgf +++ /dev/null @@ -1,2432 +0,0 @@ - - - translation-unit - - translation-unit - - - - external-declaration - - - - - translation-unit - - - external-declaration - - - - - - - - external-declaration - - - - function-definition - - - declaration - - - - - - function-definition - - - - declaration-specifiers - - - declarator - - - - - declaration-list - - - - - compound-statement - - - - - - declaration-specifiers - - - - - - storage-class-specifier - - - - - declaration-specifiers - - - - - - - - - type-specifier - - - - - declaration-specifiers - - - - - - - - - type-qualifier - - - - - declaration-specifiers - - - - - - - - - function-specifier - - - - - declaration-specifiers - - - - - - - - - - storage-class-specifier - - - - typedef - - - extern - - - static - - - auto - - - register - - - - - - type-specifier - - - - void - - - char - - - short - - - int - - - long - - - float - - - double - - - signed - - - unsigned - - - _Bool - - - _Complex - - - - - struct-or-union-specifier - - - * - - - - - enum-specifier - - - typedef-name - - - - - - struct-or-union-specifier - - - - - - struct-or-union - - - - - identifier - - - - - { - - - struct-declaration-list - - - } - - - - - - - struct-or-union - - - identifier - - - - - - - - struct-or-union - - - - struct - - - union - - - - - - struct-declaration-list - - - - struct-declaration - - - - - struct-declaration-list - - - struct-declaration - - - - - - - - struct-declaration - - - - specifier-qualifier-list - - - struct-declarator-list - - - ; - - - - - - specifier-qualifier-list - - - - - - type-specifier - - - - - specifier-qualifier-list - - - - - - - - - type-qualifier - - - - - specifier-qualifier-list - - - - - - - - - - type-qualifier - - - - const - - - restrict - - - volatile - - - - - - struct-declarator-list - - - - struct-declarator - - - - - struct-declarator-list - - - , - - - struct-declarator - - - - - - - - struct-declarator - - - - declarator - - - - - - - declarator - - - - - : - - - constant-expression - - - - - - - - declarator - - - - - - pointer - - - - - direct-declarator - - - - - - pointer - - - - - - * - - - - - type-qualifier-list - - - - - - - - - * - - - - - type-qualifier-list - - - - - pointer - - - - - - - - type-qualifier-list - - - - type-qualifier - - - - - type-qualifier-list - - - type-qualifier - - - - - - - - direct-declarator - - - - identifier - - - - - ( - - - declarator - - - ) - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - direct-declarator - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - direct-declarator - - - [ - - - - - type-qualifier-list - - - - - * - - - ] - - - - - - - direct-declarator - - - ( - - - parameter-type-list - - - ) - - - - - - - direct-declarator - - - ( - - - - - identifier-list - - - - - ) - - - - - - - - assignment-expression - - - - conditional-expression - - - - - unary-expression - - - assignment-operator - - - assignment-expression - - - - - - - - conditional-expression - - - - logical-OR-expression - - - - - logical-OR-expression - - - ? - - - expression - - - : - - - conditional-expression - - - - - - - - logical-OR-expression - - - - logical-AND-expression - - - - - logical-OR-expression - - - || - - - logical-AND-expression - - - - - - - - logical-AND-expression - - - - inclusive-OR-expression - - - - - logical-AND-expression - - - && - - - inclusive-OR-expression - - - - - - - - inclusive-OR-expression - - - - exclusive-OR-expression - - - - - inclusive-OR-expression - - - | - - - exclusive-OR-expression - - - - - - - - exclusive-OR-expression - - - - AND-expression - - - - - exclusive-OR-expression - - - ^ - - - AND-expression - - - - - - - - AND-expression - - - - equality-expression - - - - - AND-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - cast-expression - - - - - multiplicative-expression - - - * - - - cast-expression - - - - - - - multiplicative-expression - - - / - - - cast-expression - - - - - - - multiplicative-expression - - - % - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-name - - - ) - - - cast-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - unary-expression - - - - - - - -- - - - unary-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-name - - - ) - - - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - argument-expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - identifier - - - - - - - postfix-expression - - - -> - - - identifier - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - } - - - - - - - ( - - - type-name - - - ) - - - { - - - initializer-list - - - , - - - } - - - - - - - - primary-expression - - - - identifier - - - constant - - - string-literal - - - - - ( - - - expression - - - ) - - - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - argument-expression-list - - - - assignment-expression - - - - - argument-expression-list - - - , - - - assignment-expression - - - - - - - - type-name - - - - specifier-qualifier-list - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - pointer - - - - - - - pointer - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - type-qualifier-list - - - - - - - assignment-expression - - - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - static - - - - - type-qualifier-list - - - - - assignment-expression - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - type-qualifier-list - - - static - - - assignment-expression - - - ] - - - - - - - - - direct-abstract-declarator - - - - - [ - - - * - - - ] - - - - - - - - - direct-abstract-declarator - - - - - ( - - - - - parameter-type-list - - - - - ) - - - - - - - - parameter-type-list - - - - parameter-list - - - - - parameter-list - - - , - - - ... - - - - - - - - parameter-list - - - - parameter-declaration - - - - - parameter-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - declaration-specifiers - - - declarator - - - - - - - declaration-specifiers - - - - - abstract-declarator - - - - - - - - - - initializer-list - - - - - - - - designation - - - - - initializer - - - - - - - initializer-list - - - , - - - - - designation - - - - - initializer - - - - - - - - designation - - - - designator-list - - - = - - - - - - designator-list - - - - designator - - - - - designator-list - - - designator - - - - - - - - designator - - - - - - [ - - - constant-expression - - - ] - - - - - - - . - - - identifier - - - - - - - - constant-expression - - conditional-expression - - - - initializer - - - - assignment-expression - - - - - { - - - initializer-list - - - } - - - - - - - { - - - initializer-list - - - , - - - } - - - - - - - - unary-operator - - - - & - - - * - - - + - - - - - - - ~ - - - ! - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - <<= - - - >>= - - - &= - - - ^= - - - |= - - - - - - identifier-list - - - - identifier - - - - - identifier-list - - - , - - - identifier - - - - - - - - enum-specifier - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - } - - - - - - - enum - - - - - identifier - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - enum - - - identifier - - - - - - - - enumerator-list - - - - enumerator - - - - - enumerator-list - - - , - - - enumerator - - - - - - - - enumerator - - - - enumeration-constant - - - - - enumeration-constant - - - = - - - constant-expression - - - - - - - - typedef-name - - identifier - - - - function-specifier - - inline - - - - declaration-list - - - - declaration - - - - - declaration-list - - - declaration - - - - - - - - declaration - - - - declaration-specifiers - - - - - init-declarator-list - - - - - ; - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - declarator - - - = - - - initializer - - - - - - - - compound-statement - - - - { - - - - - block-item-list - - - - - } - - - - - - block-item-list - - - - block-item - - - - - block-item-list - - - block-item - - - - - - - - block-item - - - - declaration - - - statement - - - - - - statement - - - - labeled-statement - - - compound-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - - - - - if - - - ( - - - expression - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - expression - - - ) - - - statement - - - - - - - - iteration-statement - - - - - - while - - - ( - - - expression - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - - - expression - - - - - ; - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - for - - - ( - - - declaration - - - - - expression - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - jump-statement - - - - - - goto - - - identifier - - - ; - - - - - - - continue - - - ; - - - - - - - break - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - diff --git a/shared/bgf/cpp-iso-14882-1998.bgf b/shared/bgf/cpp-iso-14882-1998.bgf new file mode 100644 index 00000000..e173f90d --- /dev/null +++ b/shared/bgf/cpp-iso-14882-1998.bgf @@ -0,0 +1,4034 @@ + + + + + translation-unit + + + + declaration-seq + + + + + + primary-expression + + + + literal + + + this + + + ( + + + expression + + + ) + + + id-expression + + + + + + id-expression + + + + unqualified-id + + + qualified-id + + + + + + unqualified-id + + + + identifier + + + operator-function-id + + + conversion-function-id + + + ~ + + + class-name + + + template-id + + + + + + qualified-id + + + + + + :: + + + + + nested-name-specifier + + + + + template + + + + + unqualified-id + + + :: + + + identifier + + + :: + + + operator-function-id + + + :: + + + template-id + + + + + + nested-name-specifier + + + + class-or-namespace-name + + + :: + + + + + nested-name-specifier + + + + + class-or-namespace-name + + + :: + + + template + + + nested-name-specifier + + + + + + class-or-namespace-name + + + + class-name + + + namespace-name + + + + + + postfix-expression + + + + primary-expression + + + postfix-expression + + + [ + + + expression + + + ] + + + postfix-expression + + + ( + + + + + expression-list + + + + + ) + + + simple-type-specifier + + + ( + + + + + expression-list + + + + + ) + + + typename + + + + + :: + + + + + nested-name-specifier + + + identifier + + + ( + + + + + expression-list + + + + + ) + + + typename + + + + + :: + + + + + nested-name-specifier + + + + + template + + + + + template-id + + + ( + + + + + expression-list + + + + + ) + + + postfix-expression + + + . + + + + + template + + + + + id-expression + + + postfix-expression + + + -> + + + + + template + + + + + id-expression + + + postfix-expression + + + . + + + pseudo-destructor-name + + + postfix-expression + + + -> + + + pseudo-destructor-name + + + postfix-expression + + + ++ + + + postfix-expression + + + -- + + + dynamic_cast + + + < + + + type-id + + + > + + + ( + + + expression + + + ) + + + static_cast + + + < + + + type-id + + + > + + + ( + + + expression + + + ) + + + reinterpret_cast + + + < + + + type-id + + + > + + + ( + + + expression + + + ) + + + const_cast + + + < + + + type-id + + + > + + + ( + + + expression + + + ) + + + typeid + + + ( + + + expression + + + ) + + + typeid + + + ( + + + type-id + + + ) + + + + + + expression-list + + + + assignment-expression + + + expression-list + + + , + + + assignment-expression + + + + + + pseudo-destructor-name + + + + + + :: + + + + + + + nested-name-specifier + + + + + type-name + + + :: + + + ~ + + + type-name + + + + + :: + + + + + nested-name-specifier + + + template + + + template-id + + + :: + + + ~ + + + type-name + + + + + :: + + + + + + + nested-name-specifier + + + + + ~ + + + type-name + + + + + + unary-expression + + + + postfix-expression + + + ++ + + + cast-expression + + + -- + + + cast-expression + + + unary-operator + + + cast-expression + + + sizeof + + + unary-expression + + + sizeof + + + ( + + + type-id + + + ) + + + new-expression + + + delete-expression + + + + + + unary-operator + + + + * + + + & + + + + + + + - + + + ! + + + ~ + + + + + + new-expression + + + + + + :: + + + + + new + + + + + new-placement + + + + + new-type-id + + + + + new-initializer + + + + + + + :: + + + + + new + + + + + new-placement + + + + + ( + + + type-id + + + ) + + + + + new-initializer + + + + + + + + new-placement + + + + ( + + + expression-list + + + ) + + + + + + new-type-id + + + + type-specifier-seq + + + + + new-declarator + + + + + + + + new-declarator + + + + ptr-operator + + + + + new-declarator + + + + + direct-new-declarator + + + + + + direct-new-declarator + + + + [ + + + expression + + + ] + + + direct-new-declarator + + + [ + + + constant-expression + + + ] + + + + + + new-initializer + + + + ( + + + + + expression-list + + + + + ) + + + + + + delete-expression + + + + + + :: + + + + + delete + + + cast-expression + + + + + :: + + + + + delete + + + [ + + + ] + + + cast-expression + + + + + + cast-expression + + + + unary-expression + + + ( + + + type-id + + + ) + + + cast-expression + + + + + + pm-expression + + + + cast-expression + + + pm-expression + + + .* + + + cast-expression + + + pm-expression + + + ->* + + + cast-expression + + + + + + multiplicative-expression + + + + pm-expression + + + multiplicative-expression + + + * + + + pm-expression + + + multiplicative-expression + + + / + + + pm-expression + + + multiplicative-expression + + + % + + + pm-expression + + + + + + additive-expression + + + + multiplicative-expression + + + additive-expression + + + + + + + multiplicative-expression + + + additive-expression + + + - + + + multiplicative-expression + + + + + + shift-expression + + + + additive-expression + + + shift-expression + + + << + + + additive-expression + + + shift-expression + + + >> + + + additive-expression + + + + + + relational-expression + + + + shift-expression + + + relational-expression + + + < + + + shift-expression + + + relational-expression + + + > + + + shift-expression + + + relational-expression + + + <= + + + shift-expression + + + relational-expression + + + >= + + + shift-expression + + + + + + equality-expression + + + + relational-expression + + + equality-expression + + + == + + + relational-expression + + + equality-expression + + + != + + + relational-expression + + + + + + and-expression + + + + equality-expression + + + and-expression + + + & + + + equality-expression + + + + + + exclusive-or-expression + + + + and-expression + + + exclusive-or-expression + + + ^ + + + and-expression + + + + + + inclusive-or-expression + + + + exclusive-or-expression + + + inclusive-or-expression + + + | + + + exclusive-or-expression + + + + + + logical-and-expression + + + + inclusive-or-expression + + + logical-and-expression + + + && + + + inclusive-or-expression + + + + + + logical-or-expression + + + + logical-and-expression + + + logical-or-expression + + + || + + + logical-and-expression + + + + + + conditional-expression + + + + logical-or-expression + + + logical-or-expression + + + ? + + + expression + + + : + + + assignment-expression + + + + + + assignment-expression + + + + conditional-expression + + + logical-or-expression + + + assignment-operator + + + assignment-expression + + + throw-expression + + + + + + assignment-operator + + + + = + + + *= + + + /= + + + %= + + + += + + + -= + + + >>= + + + <<= + + + &= + + + ^= + + + |= + + + + + + expression + + + + assignment-expression + + + expression + + + , + + + assignment-expression + + + + + + constant-expression + + conditional-expression + + + + statement + + + + labeled-statement + + + expression-statement + + + compound-statement + + + selection-statement + + + iteration-statement + + + jump-statement + + + declaration-statement + + + try-block + + + + + + labeled-statement + + + + identifier + + + : + + + statement + + + case + + + constant-expression + + + : + + + statement + + + default + + + : + + + statement + + + + + + expression-statement + + + + + + expression + + + + + ; + + + + + + compound-statement + + + + { + + + + + statement-seq + + + + + } + + + + + + statement-seq + + + + statement + + + statement-seq + + + statement + + + + + + selection-statement + + + + if + + + ( + + + condition + + + ) + + + statement + + + if + + + ( + + + condition + + + ) + + + statement + + + else + + + statement + + + switch + + + ( + + + condition + + + ) + + + statement + + + + + + condition + + + + expression + + + type-specifier-seq + + + declarator + + + = + + + assignment-expression + + + + + + iteration-statement + + + + while + + + ( + + + condition + + + ) + + + statement + + + do + + + statement + + + while + + + ( + + + expression + + + ) + + + ; + + + for + + + ( + + + for-init-statement + + + + + condition + + + + + ; + + + + + expression + + + + + ) + + + statement + + + + + + for-init-statement + + + + expression-statement + + + simple-declaration + + + + + + jump-statement + + + + break + + + ; + + + continue + + + ; + + + return + + + + + expression + + + + + ; + + + goto + + + identifier + + + ; + + + + + + declaration-statement + + block-declaration + + + + declaration-seq + + + + declaration + + + declaration-seq + + + declaration + + + + + + declaration + + + + block-declaration + + + function-definition + + + template-declaration + + + explicit-instantiation + + + explicit-specialization + + + linkage-specification + + + namespace-definition + + + + + + block-declaration + + + + simple-declaration + + + asm-definition + + + namespace-alias-definition + + + using-declaration + + + using-directive + + + + + + simple-declaration + + + + + + decl-specifier-seq + + + + + + + init-declarator-list + + + + + ; + + + + + + decl-specifier + + + + storage-class-specifier + + + type-specifier + + + function-specifier + + + friend + + + typedef + + + + + + decl-specifier-seq + + + + + + decl-specifier-seq + + + + + decl-specifier + + + + + + storage-class-specifier + + + + auto + + + register + + + static + + + extern + + + mutable + + + + + + function-specifier + + + + inline + + + virtual + + + explicit + + + + + + typedef-name + + identifier + + + + type-specifier + + + + simple-type-specifier + + + class-specifier + + + enum-specifier + + + elaborated-type-specifier + + + cv-qualifier + + + + + + simple-type-specifier + + + + + + :: + + + + + + + nested-name-specifier + + + + + type-name + + + + + :: + + + + + nested-name-specifier + + + template + + + template-id + + + char + + + wchar_t + + + bool + + + short + + + int + + + long + + + signed + + + unsigned + + + float + + + double + + + void + + + + + + type-name + + + + class-name + + + enum-name + + + typedef-name + + + + + + elaborated-type-specifier + + + + class-key + + + + + :: + + + + + + + nested-name-specifier + + + + + identifier + + + enum + + + + + :: + + + + + + + nested-name-specifier + + + + + identifier + + + typename + + + + + :: + + + + + nested-name-specifier + + + identifier + + + typename + + + + + :: + + + + + nested-name-specifier + + + + + template + + + + + template-id + + + + + + enum-name + + identifier + + + + enum-specifier + + + + enum + + + + + identifier + + + + + { + + + + + enumerator-list + + + + + } + + + + + + enumerator-list + + + + enumerator-definition + + + enumerator-list + + + , + + + enumerator-definition + + + + + + enumerator-definition + + + + enumerator + + + enumerator + + + = + + + constant-expression + + + + + + enumerator + + identifier + + + + namespace-name + + + + original-namespace-name + + + namespace-alias + + + + + + original-namespace-name + + identifier + + + + namespace-definition + + + + named-namespace-definition + + + unnamed-namespace-definition + + + + + + named-namespace-definition + + + + original-namespace-definition + + + extension-namespace-definition + + + + + + original-namespace-definition + + + + namespace + + + identifier + + + { + + + namespace-body + + + } + + + + + + extension-namespace-definition + + + + namespace + + + original-namespace-name + + + { + + + namespace-body + + + } + + + + + + unnamed-namespace-definition + + + + namespace + + + { + + + namespace-body + + + } + + + + + + namespace-body + + + + declaration-seq + + + + + + namespace-alias + + identifier + + + + namespace-alias-definition + + + + namespace + + + identifier + + + = + + + qualified-namespace-specifier + + + ; + + + + + + qualified-namespace-specifier + + + + + + :: + + + + + + + nested-name-specifier + + + + + namespace-name + + + + + + using-declaration + + + + using + + + + + typename + + + + + + + :: + + + + + nested-name-specifier + + + unqualified-id + + + ; + + + using + + + :: + + + unqualified-id + + + ; + + + + + + using-directive + + + + using + + + namespace + + + + + :: + + + + + + + nested-name-specifier + + + + + namespace-name + + + ; + + + + + + asm-definition + + + + asm + + + ( + + + string-literal + + + ) + + + ; + + + + + + linkage-specification + + + + extern + + + string-literal + + + { + + + + + declaration-seq + + + + + } + + + extern + + + string-literal + + + declaration + + + + + + init-declarator-list + + + + init-declarator + + + init-declarator-list + + + , + + + init-declarator + + + + + + init-declarator + + + + declarator + + + + + initializer + + + + + + + + declarator + + + + direct-declarator + + + ptr-operator + + + declarator + + + + + + direct-declarator + + + + declarator-id + + + direct-declarator + + + ( + + + parameter-declaration-clause + + + ) + + + + + cv-qualifier-seq + + + + + + + exception-specification + + + + + direct-declarator + + + [ + + + + + constant-expression + + + + + ] + + + ( + + + declarator + + + ) + + + + + + ptr-operator + + + + * + + + + + cv-qualifier-seq + + + + + & + + + + + :: + + + + + nested-name-specifier + + + * + + + + + cv-qualifier-seq + + + + + + + + cv-qualifier-seq + + + + cv-qualifier + + + + + cv-qualifier-seq + + + + + + + + cv-qualifier + + + + const + + + volatile + + + + + + declarator-id + + + + id-expression + + + + + :: + + + + + + + nested-name-specifier + + + + + type-name + + + + + + type-id + + + + type-specifier-seq + + + + + abstract-declarator + + + + + + + + type-specifier-seq + + + + type-specifier + + + + + type-specifier-seq + + + + + + + + abstract-declarator + + + + ptr-operator + + + + + abstract-declarator + + + + + direct-abstract-declarator + + + + + + direct-abstract-declarator + + + + + + direct-abstract-declarator + + + + + ( + + + parameter-declaration-clause + + + ) + + + + + cv-qualifier-seq + + + + + + + exception-specification + + + + + + + direct-abstract-declarator + + + + + [ + + + + + constant-expression + + + + + ] + + + ( + + + abstract-declarator + + + ) + + + + + + parameter-declaration-clause + + + + + + parameter-declaration-list + + + + + + + ... + + + + + parameter-declaration-list + + + , + + + ... + + + + + + parameter-declaration-list + + + + parameter-declaration + + + parameter-declaration-list + + + , + + + parameter-declaration + + + + + + parameter-declaration + + + + decl-specifier-seq + + + declarator + + + decl-specifier-seq + + + declarator + + + = + + + assignment-expression + + + decl-specifier-seq + + + + + abstract-declarator + + + + + decl-specifier-seq + + + + + abstract-declarator + + + + + = + + + assignment-expression + + + + + + function-definition + + + + + + decl-specifier-seq + + + + + declarator + + + + + ctor-initializer + + + + + function-body + + + + + decl-specifier-seq + + + + + declarator + + + function-try-block + + + + + + function-body + + compound-statement + + + + initializer + + + + = + + + initializer-clause + + + ( + + + expression-list + + + ) + + + + + + initializer-clause + + + + assignment-expression + + + { + + + initializer-list + + + + + , + + + + + } + + + { + + + } + + + + + + initializer-list + + + + initializer-clause + + + initializer-list + + + , + + + initializer-clause + + + + + + class-name + + + + identifier + + + template-id + + + + + + class-specifier + + + + class-head + + + { + + + + + member-specification + + + + + } + + + + + + class-head + + + + class-key + + + + + identifier + + + + + + + base-clause + + + + + class-key + + + nested-name-specifier + + + identifier + + + + + base-clause + + + + + class-key + + + + + nested-name-specifier + + + + + template-id + + + + + base-clause + + + + + + + + class-key + + + + class + + + struct + + + union + + + + + + member-specification + + + + member-declaration + + + + + member-specification + + + + + access-specifier + + + : + + + + + member-specification + + + + + + + + member-declaration + + + + + + decl-specifier-seq + + + + + + + member-declarator-list + + + + + ; + + + function-definition + + + + + ; + + + + + + + :: + + + + + nested-name-specifier + + + + + template + + + + + unqualified-id + + + ; + + + using-declaration + + + template-declaration + + + + + + member-declarator-list + + + + member-declarator + + + member-declarator-list + + + , + + + member-declarator + + + + + + member-declarator + + + + declarator + + + + + pure-specifier + + + + + declarator + + + + + constant-initializer + + + + + + + identifier + + + + + : + + + constant-expression + + + + + + pure-specifier + + + + = + + + 0 + + + + + + constant-initializer + + + + = + + + constant-expression + + + + + + base-clause + + + + : + + + base-specifier-list + + + + + + base-specifier-list + + + + base-specifier + + + base-specifier-list + + + , + + + base-specifier + + + + + + base-specifier + + + + + + :: + + + + + + + nested-name-specifier + + + + + class-name + + + virtual + + + + + access-specifier + + + + + + + :: + + + + + + + nested-name-specifier + + + + + class-name + + + access-specifier + + + + + virtual + + + + + + + :: + + + + + + + nested-name-specifier + + + + + class-name + + + + + + access-specifier + + + + private + + + protected + + + public + + + + + + conversion-function-id + + + + operator + + + conversion-type-id + + + + + + conversion-type-id + + + + type-specifier-seq + + + + + conversion-declarator + + + + + + + + conversion-declarator + + + + ptr-operator + + + + + conversion-declarator + + + + + + + + ctor-initializer + + + + : + + + mem-initializer-list + + + + + + mem-initializer-list + + + + mem-initializer + + + mem-initializer + + + , + + + mem-initializer-list + + + + + + mem-initializer + + + + mem-initializer-id + + + ( + + + + + expression-list + + + + + ) + + + + + + mem-initializer-id + + + + + + :: + + + + + + + nested-name-specifier + + + + + class-name + + + identifier + + + + + + operator-function-id + + + + operator + + + operator + + + + + + operator + + + + new + + + delete + + + + + new + + + [] + + + + + + + delete + + + [] + + + + + + + + + - + + + * + + + / + + + % + + + ^ + + + & + + + | + + + ~ + + + ! + + + = + + + < + + + > + + + += + + + -= + + + *= + + + /= + + + %= + + + ^= + + + &= + + + |= + + + << + + + >> + + + >>= + + + <<= + + + == + + + != + + + <= + + + >= + + + && + + + || + + + ++ + + + -- + + + , + + + ->* + + + -> + + + () + + + [] + + + + + + template-declaration + + + + + + export + + + + + template + + + < + + + template-parameter-list + + + > + + + declaration + + + + + + template-parameter-list + + + + template-parameter + + + template-parameter-list + + + , + + + template-parameter + + + + + + template-parameter + + + + type-parameter + + + parameter-declaration + + + + + + type-parameter + + + + class + + + + + identifier + + + + + class + + + + + identifier + + + + + = + + + type-id + + + typename + + + + + identifier + + + + + typename + + + + + identifier + + + + + = + + + type-id + + + template + + + < + + + template-parameter-list + + + > + + + class + + + + + identifier + + + + + template + + + < + + + template-parameter-list + + + > + + + class + + + + + identifier + + + + + = + + + id-expression + + + + + + template-id + + + + template-name + + + < + + + + + template-argument-list + + + + + > + + + + + + template-name + + identifier + + + + template-argument-list + + + + template-argument + + + template-argument-list + + + , + + + template-argument + + + + + + template-argument + + + + assignment-expression + + + type-id + + + id-expression + + + + + + explicit-instantiation + + + + template + + + declaration + + + + + + explicit-specialization + + + + template + + + < + + + > + + + declaration + + + + + + try-block + + + + try + + + compound-statement + + + handler-seq + + + + + + function-try-block + + + + try + + + + + ctor-initializer + + + + + function-body + + + handler-seq + + + + + + handler-seq + + + + handler + + + + + handler-seq + + + + + + + + handler + + + + catch + + + ( + + + exception-declaration + + + ) + + + compound-statement + + + + + + exception-declaration + + + + type-specifier-seq + + + declarator + + + type-specifier-seq + + + abstract-declarator + + + type-specifier-seq + + + ... + + + + + + throw-expression + + + + throw + + + + + assignment-expression + + + + + + + + exception-specification + + + + throw + + + ( + + + + + type-id-list + + + + + ) + + + + + + type-id-list + + + + type-id + + + type-id-list + + + , + + + type-id + + + + + \ No newline at end of file diff --git a/shared/bgf/cpp-iso-n2723.bgf b/shared/bgf/cpp-iso-n2723.bgf new file mode 100644 index 00000000..21023e9a --- /dev/null +++ b/shared/bgf/cpp-iso-n2723.bgf @@ -0,0 +1 @@ +translation-unittranslation-unitdeclaration-seqdeclaration-seqdeclarationdeclaration-seqdeclarationdeclarationblock-declarationfunction-definitiontemplate-declarationexplicit-instantiationexplicit-specializationlinkage-specificationnamespace-definitionblock-declarationsimple-declarationasm-definitionnamespace-alias-definitionusing-declarationusing-directivestatic_assert-declarationalias-declarationsimple-declarationdecl-specifier-seqinit-declarator-list;decl-specifier-seqdecl-specifier-seqdecl-specifierdecl-specifierstorage-class-specifiertype-specifierfunction-specifierfriendtypedefconstexpralignment-specifierstorage-class-specifierregisterstaticthread_localexternmutabletype-specifiersimple-type-specifierclass-specifierenum-specifierelaborated-type-specifiertypename-specifiercv-qualifiersimple-type-specifier::nested-name-specifiertype-name::nested-name-specifiertemplatesimple-template-idcharchar16_tchar32_twchar_tboolshortintlongsignedunsignedfloatdoublevoidautodecltype(expression)nested-name-specifiertype-name::namespace-name::nested-name-specifieridentifier::nested-name-specifiertemplatesimple-template-id::type-nameclass-nameenum-nametypedef-nameclass-nameidentifiersimple-template-idsimple-template-idtemplate-name<template-argument-list>template-nameidentifiertemplate-argument-listtemplate-argument...template-argument-list,template-argument...template-argumentconstant-expressiontype-idid-expressionconstant-expressionconditional-expressionconditional-expressionlogical-or-expressionlogical-or-expression?expression:assignment-expressionlogical-or-expressionlogical-and-expressionlogical-or-expression||logical-and-expressionlogical-and-expressioninclusive-or-expressionlogical-and-expression&&inclusive-or-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressionand-expressionequality-expressionand-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressionpm-expressionmultiplicative-expression*pm-expressionmultiplicative-expression/pm-expressionmultiplicative-expression%pm-expressionpm-expressioncast-expressionpm-expression.*cast-expressionpm-expression->*cast-expressioncast-expressionunary-expression(type-id)cast-expressionunary-expressionpostfix-expression++cast-expression--cast-expressionunary-operatorcast-expressionsizeofunary-expressionsizeof(type-id)sizeof...(identifier)alignof(type-id)new-expressiondelete-expressionpostfix-expressionprimary-expressionpostfix-expression[expression]postfix-expression[braced-init-list]postfix-expression(expression-list)simple-type-specifier(expression-list)typename-specifier(expression-list)simple-type-specifierbraced-init-listtypename-specifierbraced-init-listpostfix-expression.templateid-expressionpostfix-expression->templateid-expressionpostfix-expression.pseudo-destructor-namepostfix-expression->pseudo-destructor-namepostfix-expression++postfix-expression--dynamic_cast<type-id>(expression)static_cast<type-id>(expression)reinterpret_cast<type-id>(expression)const_cast<type-id>(expression)typeid(expression)typeid(type-id)primary-expressionliteralthis(expression)id-expressionlambda-expressionexpressionassignment-expressionexpression,assignment-expressionassignment-expressionconditional-expressionlogical-or-expressionassignment-operatorinitializer-clausethrow-expressionassignment-operator=*=/=%=+=-=>>=<<=&=^=|=initializer-clauseassignment-expressionbraced-init-listbraced-init-list{initializer-list,}{}initializer-listinitializer-clause...initializer-list,initializer-clause...throw-expressionthrowassignment-expressionid-expressionunqualified-idqualified-idunqualified-ididentifieroperator-function-idconversion-function-id~class-nametemplate-idoperator-function-idoperatoroperatoroperatornewdeletenew[]delete[]+-*/%^&|~!=<>+=-=*=/=%=^=&=|=<<>>>>=<<===!=<=>=&&||++--,->*->()[]conversion-function-idoperatorconversion-type-idconversion-type-idtype-specifier-seqconversion-declaratortype-specifier-seqtype-specifiertype-specifier-seqconversion-declaratorptr-operatorconversion-declaratorptr-operator*cv-qualifier-seq&&&::nested-name-specifier*cv-qualifier-seqcv-qualifier-seqcv-qualifiercv-qualifier-seqcv-qualifierconstvolatiletemplate-idsimple-template-idoperator-function-id<template-argument-list>qualified-id::nested-name-specifiertemplateunqualified-id::identifier::operator-function-id::template-idlambda-expressionlambda-introducerlambda-parameter-declarationcompound-statementlambda-introducer[lambda-capture]lambda-capturecapture-defaultcapture-listcapture-default,capture-listcapture-default&=capture-listcapturecapture-list,capturecaptureidentifier&identifierthislambda-parameter-declaration(lambda-parameter-declaration-list)mutableexception-specificationlambda-return-type-clauselambda-parameter-declaration-listlambda-parameterlambda-parameter,lambda-parameter-declaration-listlambda-parameterdecl-specifier-seqdeclaratordeclaratordirect-declaratorptr-operatordeclaratordirect-declaratordeclarator-iddirect-declarator(parameter-declaration-clause)cv-qualifier-seqref-qualifierexception-specificationdirect-declarator(parameter-declaration-clause)cv-qualifier-seqref-qualifierexception-specification->type-iddirect-declarator[constant-expression](declarator)declarator-id...id-expression::nested-name-specifierclass-nameparameter-declaration-clauseparameter-declaration-list...parameter-declaration-list,...parameter-declaration-listparameter-declarationparameter-declaration-list,parameter-declarationparameter-declarationdecl-specifier-seqdeclaratordecl-specifier-seqdeclarator=assignment-expressiondecl-specifier-seqabstract-declaratordecl-specifier-seqabstract-declarator=assignment-expressionabstract-declaratorptr-operatorabstract-declaratordirect-abstract-declarator...direct-abstract-declaratordirect-abstract-declarator(parameter-declaration-clause)cv-qualifier-seqref-qualifierexception-specificationdirect-abstract-declarator(parameter-declaration-clause)cv-qualifier-seqref-qualifierexception-specification->type-iddirect-abstract-declarator[constant-expression](abstract-declarator)ref-qualifier&&&exception-specificationthrow(type-id-list)type-id-listtype-id...type-id-list,type-id...type-idtype-specifier-seqabstract-declaratorlambda-return-type-clause->type-idcompound-statement{statement-seq}statement-seqstatementstatement-seqstatementstatementlabeled-statementexpression-statementcompound-statementselection-statementiteration-statementjump-statementdeclaration-statementtry-blocklabeled-statementidentifier:statementcaseconstant-expression:statementdefault:statementexpression-statementexpression;selection-statementif(condition)statementif(condition)statementelsestatementswitch(condition)statementconditionexpressiontype-specifier-seqdeclarator=initializer-clausetype-specifier-seqdeclaratorbraced-init-listiteration-statementwhile(condition)statementdostatementwhile(expression);for(for-init-statementcondition;expression)statementfor-init-statementexpression-statementsimple-declarationjump-statementbreak;continue;returnexpression;returnbraced-init-list;gotoidentifier;declaration-statementblock-declarationtry-blocktrycompound-statementhandler-seqhandler-seqhandlerhandler-seqhandlercatch(exception-declaration)compound-statementexception-declarationtype-specifier-seqdeclaratortype-specifier-seqabstract-declaratortype-specifier-seq...expression-listinitializer-listtypename-specifiertypename::nested-name-specifieridentifiertypename::nested-name-specifiertemplatesimple-template-idpseudo-destructor-name::nested-name-specifiertype-name::~type-name::nested-name-specifiertemplatesimple-template-id::~type-name::nested-name-specifier~type-nameunary-operator*&+-!~new-expression::newnew-placementnew-type-idnew-initializer::newnew-placement(type-id)new-initializernew-placement(expression-list)new-type-idtype-specifier-seqnew-declaratornew-declaratorptr-operatornew-declaratordirect-new-declaratordirect-new-declarator[expression]direct-new-declarator[constant-expression]new-initializer(expression-list)braced-init-listdelete-expression::deletecast-expression::delete[]cast-expressionenum-nameidentifiertypedef-nameidentifiernamespace-nameoriginal-namespace-namenamespace-aliasoriginal-namespace-nameidentifiernamespace-aliasidentifierclass-specifierclass-head{member-specification}class-headclass-keyidentifierbase-clauseclass-keynested-name-specifieridentifierbase-clauseclass-keynested-name-specifiersimple-template-idbase-clauseclass-keyclassstructunionbase-clause:base-specifier-listbase-specifier-listbase-specifier...base-specifier-list,base-specifier...base-specifier::nested-name-specifierclass-namevirtualaccess-specifier::nested-name-specifierclass-nameaccess-specifiervirtual::nested-name-specifierclass-nameaccess-specifierprivateprotectedpublicmember-specificationmember-declarationmember-specificationaccess-specifier:member-specificationmember-declarationdecl-specifier-seqmember-declarator-list;function-definition;::nested-name-specifiertemplateunqualified-id;using-declarationstatic_assert-declarationtemplate-declarationmember-declarator-listmember-declaratormember-declarator-list,member-declaratormember-declaratordeclaratorpure-specifierdeclaratorconstant-initializeridentifier:constant-expressionpure-specifier=0constant-initializer=constant-expressionfunction-definitiondecl-specifier-seqdeclaratorfunction-bodydecl-specifier-seqdeclarator=default;decl-specifier-seqdeclarator=delete;function-bodyctor-initializercompound-statementfunction-try-blockctor-initializer:mem-initializer-listmem-initializer-listmem-initializer...mem-initializer,mem-initializer-list...mem-initializermem-initializer-id(expression-list)mem-initializer-idbraced-init-listmem-initializer-id::nested-name-specifierclass-nameidentifierfunction-try-blocktryctor-initializercompound-statementhandler-sequsing-declarationusingtypename::nested-name-specifierunqualified-id;using::unqualified-id;static_assert-declarationstatic_assert(constant-expression,string-literal);template-declarationexporttemplate<template-parameter-list>declarationtemplate-parameter-listtemplate-parametertemplate-parameter-list,template-parametertemplate-parametertype-parameterparameter-declarationtype-parameterclass...identifierclassidentifier=type-idtypename...identifiertypenameidentifier=type-idtemplate<template-parameter-list>class...identifiertemplate<template-parameter-list>classidentifier=id-expressionenum-specifierenum-keyidentifierenum-base{enumerator-list}enum-keyidentifierenum-base{enumerator-list,}enum-keyenumenumclassenumstructenum-base:type-specifier-seqenumerator-listenumerator-definitionenumerator-list,enumerator-definitionenumerator-definitionenumeratorenumerator=constant-expressionenumeratoridentifierelaborated-type-specifierclass-key::nested-name-specifieridentifierclass-key::nested-name-specifiertemplatesimple-template-idenum-key::nested-name-specifieridentifierfunction-specifierinlinevirtualexplicitalignment-specifieralignas(constant-expression)alignas(type-id)init-declarator-listinit-declaratorinit-declarator-list,init-declaratorinit-declaratordeclaratorinitializerinitializer=initializer-clause(expression-list)braced-init-listasm-definitionasm(string-literal);namespace-alias-definitionnamespaceidentifier=qualified-namespace-specifier;qualified-namespace-specifier::nested-name-specifiernamespace-nameusing-directiveusingnamespace::nested-name-specifiernamespace-name;alias-declarationusingidentifier=type-id;explicit-instantiationexterntemplatedeclarationexplicit-specializationtemplate<>declarationlinkage-specificationexternstring-literal{declaration-seq}externstring-literaldeclarationnamespace-definitionnamed-namespace-definitionunnamed-namespace-definitionnamed-namespace-definitionoriginal-namespace-definitionextension-namespace-definitionoriginal-namespace-definitioninlinenamespaceidentifier{namespace-body}namespace-bodydeclaration-seqextension-namespace-definitioninlinenamespaceoriginal-namespace-name{namespace-body}unnamed-namespace-definitioninlinenamespace{namespace-body} \ No newline at end of file diff --git a/shared/bgf/cpp.iso-14882-1998.ext.bgf b/shared/bgf/cpp.iso-14882-1998.ext.bgf deleted file mode 100644 index 5cc4836c..00000000 --- a/shared/bgf/cpp.iso-14882-1998.ext.bgf +++ /dev/null @@ -1,4838 +0,0 @@ - - - - translation-unit - - - - declaration-seq - - - - - - primary-expression - - - - literal - - - this - - - - - ( - - - expression - - - ) - - - - - id-expression - - - - - - id-expression - - - - unqualified-id - - - qualified-id - - - - - - unqualified-id - - - - identifier - - - operator-function-id - - - conversion-function-id - - - - - ~ - - - class-name - - - - - template-id - - - - - - qualified-id - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - - - - - :: - - - identifier - - - - - - - :: - - - operator-function-id - - - - - - - :: - - - template-id - - - - - - - - nested-name-specifier - - - - - - class-or-namespace-name - - - :: - - - - - nested-name-specifier - - - - - - - - - class-or-namespace-name - - - :: - - - template - - - nested-name-specifier - - - - - - - - class-or-namespace-name - - - - class-name - - - namespace-name - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - expression-list - - - - - ) - - - - - - - simple-type-specifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - identifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - template-id - - - ( - - - - - expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - -> - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - . - - - pseudo-destructor-name - - - - - - - postfix-expression - - - -> - - - pseudo-destructor-name - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - dynamic_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - static_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - reinterpret_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - const_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - type-id - - - ) - - - - - - - - expression-list - - - - assignment-expression - - - - - expression-list - - - , - - - assignment-expression - - - - - - - - pseudo-destructor-name - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - :: - - - ~ - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - template-id - - - :: - - - ~ - - - type-name - - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - ~ - - - type-name - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - cast-expression - - - - - - - -- - - - cast-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-id - - - ) - - - - - new-expression - - - delete-expression - - - - - - unary-operator - - - - * - - - & - - - + - - - - - - - ! - - - ~ - - - - - - new-expression - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - new-type-id - - - - - new-initializer - - - - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - ( - - - type-id - - - ) - - - - - new-initializer - - - - - - - - - - new-placement - - - - ( - - - expression-list - - - ) - - - - - - new-type-id - - - - type-specifier-seq - - - - - new-declarator - - - - - - - - new-declarator - - - - - - ptr-operator - - - - - new-declarator - - - - - - - direct-new-declarator - - - - - - direct-new-declarator - - - - - - [ - - - expression - - - ] - - - - - - - direct-new-declarator - - - [ - - - constant-expression - - - ] - - - - - - - - new-initializer - - - - ( - - - - - expression-list - - - - - ) - - - - - - delete-expression - - - - - - - - :: - - - - - delete - - - cast-expression - - - - - - - - - :: - - - - - delete - - - [ - - - ] - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-id - - - ) - - - cast-expression - - - - - - - - pm-expression - - - - cast-expression - - - - - pm-expression - - - .* - - - cast-expression - - - - - - - pm-expression - - - ->* - - - cast-expression - - - - - - - - multiplicative-expression - - - - pm-expression - - - - - multiplicative-expression - - - * - - - pm-expression - - - - - - - multiplicative-expression - - - / - - - pm-expression - - - - - - - multiplicative-expression - - - % - - - pm-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - logical-and-expression - - - - inclusive-or-expression - - - - - logical-and-expression - - - && - - - inclusive-or-expression - - - - - - - - logical-or-expression - - - - logical-and-expression - - - - - logical-or-expression - - - || - - - logical-and-expression - - - - - - - - conditional-expression - - - - logical-or-expression - - - - - logical-or-expression - - - ? - - - expression - - - : - - - assignment-expression - - - - - - - - assignment-expression - - - - conditional-expression - - - - - logical-or-expression - - - assignment-operator - - - assignment-expression - - - - - throw-expression - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - >>= - - - <<= - - - &= - - - ^= - - - |= - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - constant-expression - - conditional-expression - - - - statement - - - - labeled-statement - - - expression-statement - - - compound-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - declaration-statement - - - try-block - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - compound-statement - - - - { - - - - - statement-seq - - - - - } - - - - - - statement-seq - - - - statement - - - - - statement-seq - - - statement - - - - - - - - selection-statement - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - condition - - - ) - - - statement - - - - - - - - condition - - - - expression - - - - - type-specifier-seq - - - declarator - - - = - - - assignment-expression - - - - - - - - iteration-statement - - - - - - while - - - ( - - - condition - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - for-init-statement - - - - - condition - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - for-init-statement - - - - expression-statement - - - simple-declaration - - - - - - jump-statement - - - - - - break - - - ; - - - - - - - continue - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - goto - - - identifier - - - ; - - - - - - - - declaration-statement - - block-declaration - - - - declaration-seq - - - - declaration - - - - - declaration-seq - - - declaration - - - - - - - - declaration - - - - block-declaration - - - function-definition - - - template-declaration - - - explicit-instantiation - - - explicit-specialization - - - linkage-specification - - - namespace-definition - - - - - - block-declaration - - - - simple-declaration - - - asm-definition - - - namespace-alias-definition - - - using-declaration - - - using-directive - - - - - - simple-declaration - - - - - - decl-specifier-seq - - - - - - - init-declarator-list - - - - - ; - - - - - - decl-specifier - - - - storage-class-specifier - - - type-specifier - - - function-specifier - - - friend - - - typedef - - - - - - decl-specifier-seq - - - - - - decl-specifier-seq - - - - - decl-specifier - - - - - - storage-class-specifier - - - - auto - - - register - - - static - - - extern - - - mutable - - - - - - function-specifier - - - - inline - - - virtual - - - explicit - - - - - - typedef-name - - identifier - - - - type-specifier - - - - simple-type-specifier - - - class-specifier - - - enum-specifier - - - elaborated-type-specifier - - - cv-qualifier - - - - - - simple-type-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - template-id - - - - - char - - - wchar_t - - - bool - - - short - - - int - - - long - - - signed - - - unsigned - - - float - - - double - - - void - - - - - - type-name - - - - class-name - - - enum-name - - - typedef-name - - - - - - elaborated-type-specifier - - - - - - class-key - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - enum - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - identifier - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - template-id - - - - - - - - enum-name - - identifier - - - - enum-specifier - - - - enum - - - - - identifier - - - - - { - - - - - enumerator-list - - - - - } - - - - - - enumerator-list - - - - enumerator-definition - - - - - enumerator-list - - - , - - - enumerator-definition - - - - - - - - enumerator-definition - - - - enumerator - - - - - enumerator - - - = - - - constant-expression - - - - - - - - enumerator - - identifier - - - - namespace-name - - - - original-namespace-name - - - namespace-alias - - - - - - original-namespace-name - - identifier - - - - namespace-definition - - - - named-namespace-definition - - - unnamed-namespace-definition - - - - - - named-namespace-definition - - - - original-namespace-definition - - - extension-namespace-definition - - - - - - original-namespace-definition - - - - namespaceidentifier - - - { - - - namespace-body - - - } - - - - - - extension-namespace-definition - - - - namespace - - - original-namespace-name - - - { - - - namespace-body - - - } - - - - - - unnamed-namespace-definition - - - - namespace - - - { - - - namespace-body - - - } - - - - - - namespace-body - - - - declaration-seq - - - - - - namespace-alias - - identifier - - - - namespace-alias-definition - - - - namespace - - - identifier - - - = - - - qualified-namespace-specifier - - - ; - - - - - - qualified-namespace-specifier - - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - - - - using-declaration - - - - - - using - - - - - typename - - - - - - - :: - - - - - nested-name-specifier - - - unqualified-id - - - ; - - - - - - - using - - - :: - - - unqualified-id - - - ; - - - - - - - - using-directive - - - - using - - - namespace - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - ; - - - - - - asm-definition - - - - asm - - - ( - - - string-literal - - - ) - - - ; - - - - - - linkage-specification - - - - - - extern - - - string-literal - - - { - - - - - declaration-seq - - - - - } - - - - - - - extern - - - string-literal - - - declaration - - - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - initializer - - - - - - - - declarator - - - - direct-declarator - - - - - ptr-operator - - - declarator - - - - - - - - direct-declarator - - - - declarator-id - - - - - direct-declarator - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - exception-specification - - - - - - - - - direct-declarator - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - declarator - - - ) - - - - - - - - ptr-operator - - - - - - * - - - - - cv-qualifier-seq - - - - - - - & - - - - - - - :: - - - - - nested-name-specifier - - - * - - - - - cv-qualifier-seq - - - - - - - - - - cv-qualifier-seq - - - - cv-qualifier - - - - - cv-qualifier-seq - - - - - - - - cv-qualifier - - - - const - - - volatile - - - - - - declarator-id - - - - id-expression - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - - - - - - type-id - - - - type-specifier-seq - - - - - abstract-declarator - - - - - - - - type-specifier-seq - - - - type-specifier - - - - - type-specifier-seq - - - - - - - - abstract-declarator - - - - - - ptr-operator - - - - - abstract-declarator - - - - - - - direct-abstract-declarator - - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - exception-specification - - - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - parameter-declaration-clause - - - - - - - - parameter-declaration-list - - - - - - - ... - - - - - - - - - parameter-declaration-list - - - , - - - ... - - - - - - - - parameter-declaration-list - - - - parameter-declaration - - - - - parameter-declaration-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - decl-specifier-seq - - - declarator - - - - - - - decl-specifier-seq - - - declarator - - - = - - - assignment-expression - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - = - - - assignment-expression - - - - - - - - function-definition - - - - - - - - decl-specifier-seq - - - - - declarator - - - - - ctor-initializer - - - - - function-body - - - - - - - - - decl-specifier-seq - - - - - declarator - - - function-try-block - - - - - - - - function-body - - compound-statement - - - - initializer - - - - - - = - - - initializer-clause - - - - - - - ( - - - expression-list - - - ) - - - - - - - - initializer-clause - - - - assignment-expression - - - - - { - - - initializer-list - - - - - , - - - - - } - - - - - - - { - - - } - - - - - - - - initializer-list - - - - initializer-clause - - - - - initializer-list - - - , - - - initializer-clause - - - - - - - - class-name - - - - identifier - - - template-id - - - - - - class-specifier - - - - class-head - - - { - - - - - member-specification - - - - - } - - - - - - class-head - - - - - - class-key - - - - - identifier - - - - - - - base-clause - - - - - - - - - class-key - - - nested-name-specifier - - - identifier - - - - - base-clause - - - - - - - - - class-key - - - - - nested-name-specifier - - - - - template-id - - - - - base-clause - - - - - - - - - - class-key - - - - class - - - struct - - - union - - - - - - member-specification - - - - - - member-declaration - - - - - member-specification - - - - - - - - - access-specifier - - - : - - - - - member-specification - - - - - - - - - - member-declaration - - - - - - - - decl-specifier-seq - - - - - - - member-declarator-list - - - - - ; - - - - - - - function-definition - - - - - ; - - - - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - ; - - - - - using-declaration - - - template-declaration - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - - - declarator - - - - - pure-specifier - - - - - - - - - declarator - - - - - constant-initializer - - - - - - - - - - - identifier - - - - - : - - - constant-expression - - - - - - - - pure-specifier - - - - = - - - 0 - - - - - - constant-initializer - - - - = - - - constant-expression - - - - - - base-clause - - - - : - - - base-specifier-list - - - - - - base-specifier-list - - - - base-specifier - - - - - base-specifier-list - - - , - - - base-specifier - - - - - - - - base-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - virtual - - - - - access-specifier - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - access-specifier - - - - - virtual - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - - access-specifier - - - - private - - - protected - - - public - - - - - - conversion-function-id - - - - operator - - - conversion-type-id - - - - - - conversion-type-id - - - - type-specifier-seq - - - - - conversion-declarator - - - - - - - - conversion-declarator - - - - ptr-operator - - - - - conversion-declarator - - - - - - - - ctor-initializer - - - - : - - - mem-initializer-list - - - - - - mem-initializer-list - - - - mem-initializer - - - - - mem-initializer - - - , - - - mem-initializer-list - - - - - - - - mem-initializer - - - - mem-initializer-id - - - ( - - - - - expression-list - - - - - ) - - - - - - mem-initializer-id - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - identifier - - - - - - operator-function-id - - - - operator - - - operator - - - - - - operator - - - - new - - - delete - - - - - new - - - [ - - - ] - - - - - - - delete - - - [ - - - ] - - - - - + - - - - - - - * - - - / - - - % - - - ^ - - - & - - - | - - - ~ - - - ! - - - = - - - < - - - > - - - += - - - -= - - - *= - - - /= - - - %= - - - ^= - - - &= - - - |= - - - << - - - >> - - - >>= - - - <<= - - - == - - - != - - - <= - - - >= - - - && - - - || - - - ++ - - - -- - - - , - - - ->* - - - -> - - - - - ( - - - ) - - - - - - - [ - - - ] - - - - - - - - template-declaration - - - - - - export - - - - - template - - - < - - - template-parameter-list - - - > - - - declaration - - - - - - template-parameter-list - - - - template-parameter - - - - - template-parameter-list - - - , - - - template-parameter - - - - - - - - template-parameter - - - - type-parameter - - - parameter-declaration - - - - - - type-parameter - - - - - - class - - - - - identifier - - - - - - - - - class - - - - - identifier - - - - - = - - - type-id - - - - - - - typename - - - - - identifier - - - - - - - - - typename - - - - - identifier - - - - - = - - - type-id - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - identifier - - - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - identifier - - - - - = - - - id-expression - - - - - - - - template-id - - - - template-name - - - < - - - - - template-argument-list - - - - - > - - - - - - template-name - - identifier - - - - template-argument-list - - - - template-argument - - - - - template-argument-list - - - , - - - template-argument - - - - - - - - template-argument - - - - assignment-expression - - - type-id - - - id-expression - - - - - - explicit-instantiation - - - - template - - - declaration - - - - - - explicit-specialization - - - - template - - - < - - - > - - - declaration - - - - - - try-block - - - - try - - - compound-statement - - - handler-seq - - - - - - function-try-block - - - - try - - - - - ctor-initializer - - - - - function-body - - - handler-seq - - - - - - handler-seq - - - - handler - - - - - handler-seq - - - - - - - - handler - - - - catch - - - ( - - - exception-declaration - - - ) - - - compound-statement - - - - - - exception-declaration - - - - - - type-specifier-seq - - - declarator - - - - - - - type-specifier-seq - - - abstract-declarator - - - - - type-specifier-seq - - - ... - - - - - - throw-expression - - - - throw - - - - - assignment-expression - - - - - - - - exception-specification - - - - throw - - - ( - - - - - type-id-list - - - - - ) - - - - - - type-id-list - - - - type-id - - - - - type-id-list - - - , - - - type-id - - - - - - - - keyword - - - - new - - - delete - - - and - - - bitand - - - bitor - - - compl - - - not - - - or - - - xor - - - enum - - - try - - - namespace - - - template - - - case - - - default - - - using - - - throw - - - break - - - continue - - - return - - - goto - - - char - - - bool - - - short - - - int - - - long - - - signed - - - unsigned - - - float - - - double - - - void - - - extern - - - private - - - protected - - - public - - - export - - - typename - - - typeid - - - if - - - else - - - switch - - - virtual - - - sizeof - - - friend - - - typedef - - - catch - - - auto - - - register - - - static - - - mutable - - - asm - - - while - - - do - - - for - - - inline - - - explicit - - - const - - - volatile - - - class - - - struct - - - union - - - this - - - operator - - - - - diff --git a/shared/bgf/cpp.iso-14882-1998.rec.bgf b/shared/bgf/cpp.iso-14882-1998.rec.bgf deleted file mode 100644 index 6e1a5137..00000000 --- a/shared/bgf/cpp.iso-14882-1998.rec.bgf +++ /dev/null @@ -1,4646 +0,0 @@ - - - translation-unit - - translation-unit - - - - declaration-seq - - - - - - declaration-seq - - - - declaration - - - - - declaration-seq - - - declaration - - - - - - - - declaration - - - - block-declaration - - - function-definition - - - template-declaration - - - explicit-instantiation - - - explicit-specialization - - - linkage-specification - - - namespace-definition - - - - - - block-declaration - - - - simple-declaration - - - asm-definition - - - namespace-alias-definition - - - using-declaration - - - using-directive - - - - - - simple-declaration - - - - - - decl-specifier-seq - - - - - - - init-declarator-list - - - - - ; - - - - - - decl-specifier-seq - - - - - - decl-specifier-seq - - - - - decl-specifier - - - - - - decl-specifier - - - - storage-class-specifier - - - type-specifier - - - function-specifier - - - friend - - - typedef - - - - - - storage-class-specifier - - - - auto - - - register - - - static - - - extern - - - mutable - - - - - - type-specifier - - - - simple-type-specifier - - - class-specifier - - - enum-specifier - - - elaborated-type-specifier - - - cv-qualifier - - - - - - simple-type-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - template-id - - - - - char - - - wchar_t - - - bool - - - short - - - int - - - long - - - signed - - - unsigned - - - float - - - double - - - void - - - - - - nested-name-specifier - - - - - - class-or-namespace-name - - - :: - - - - - nested-name-specifier - - - - - - - - - class-or-namespace-name - - - :: - - - template - - - nested-name-specifier - - - - - - - - class-or-namespace-name - - - - class-name - - - namespace-name - - - - - - class-name - - - - identifier - - - template-id - - - - - - template-id - - - - template-name - - - < - - - - - template-argument-list - - - - - > - - - - - - template-name - - identifier - - - - template-argument-list - - - - template-argument - - - - - template-argument-list - - - , - - - template-argument - - - - - - - - template-argument - - - - assignment-expression - - - type-id - - - id-expression - - - - - - assignment-expression - - - - conditional-expression - - - - - logical-or-expression - - - assignment-operator - - - assignment-expression - - - - - throw-expression - - - - - - conditional-expression - - - - logical-or-expression - - - - - logical-or-expression - - - ? - - - expression - - - : - - - assignment-expression - - - - - - - - logical-or-expression - - - - logical-and-expression - - - - - logical-or-expression - - - || - - - logical-and-expression - - - - - - - - logical-and-expression - - - - inclusive-or-expression - - - - - logical-and-expression - - - && - - - inclusive-or-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - pm-expression - - - - - multiplicative-expression - - - * - - - pm-expression - - - - - - - multiplicative-expression - - - / - - - pm-expression - - - - - - - multiplicative-expression - - - % - - - pm-expression - - - - - - - - pm-expression - - - - cast-expression - - - - - pm-expression - - - .* - - - cast-expression - - - - - - - pm-expression - - - ->* - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-id - - - ) - - - cast-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - cast-expression - - - - - - - -- - - - cast-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-id - - - ) - - - - - new-expression - - - delete-expression - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - ( - - - - - expression-list - - - - - ) - - - - - - - simple-type-specifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - identifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - template-id - - - ( - - - - - expression-list - - - - - ) - - - - - - - postfix-expression - - - . - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - -> - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - . - - - pseudo-destructor-name - - - - - - - postfix-expression - - - -> - - - pseudo-destructor-name - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - dynamic_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - static_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - reinterpret_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - const_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - type-id - - - ) - - - - - - - - primary-expression - - - - literal - - - this - - - - - ( - - - expression - - - ) - - - - - id-expression - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - id-expression - - - - unqualified-id - - - qualified-id - - - - - - unqualified-id - - - - identifier - - - operator-function-id - - - conversion-function-id - - - - - ~ - - - class-name - - - - - template-id - - - - - - operator-function-id - - - - operator - - - operator - - - - - - operator - - - - new - - - delete - - - - - new - - - [ - - - ] - - - - - - - delete - - - [ - - - ] - - - - - + - - - - - - - * - - - / - - - % - - - ^ - - - & - - - | - - - ~ - - - ! - - - = - - - < - - - > - - - += - - - -= - - - *= - - - /= - - - %= - - - ^= - - - &= - - - |= - - - << - - - >> - - - >>= - - - <<= - - - == - - - != - - - <= - - - >= - - - && - - - || - - - ++ - - - -- - - - , - - - ->* - - - -> - - - - - ( - - - ) - - - - - - - [ - - - ] - - - - - - - - conversion-function-id - - - - operator - - - conversion-type-id - - - - - - conversion-type-id - - - - type-specifier-seq - - - - - conversion-declarator - - - - - - - - type-specifier-seq - - - - type-specifier - - - - - type-specifier-seq - - - - - - - - conversion-declarator - - - - ptr-operator - - - - - conversion-declarator - - - - - - - - ptr-operator - - - - - - * - - - - - cv-qualifier-seq - - - - - - - & - - - - - - - :: - - - - - nested-name-specifier - - - * - - - - - cv-qualifier-seq - - - - - - - - - - cv-qualifier-seq - - - - cv-qualifier - - - - - cv-qualifier-seq - - - - - - - - cv-qualifier - - - - const - - - volatile - - - - - - qualified-id - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - - - - - :: - - - identifier - - - - - - - :: - - - operator-function-id - - - - - - - :: - - - template-id - - - - - - - - expression-list - - - - assignment-expression - - - - - expression-list - - - , - - - assignment-expression - - - - - - - - pseudo-destructor-name - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - :: - - - ~ - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - template-id - - - :: - - - ~ - - - type-name - - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - ~ - - - type-name - - - - - - - - type-name - - - - class-name - - - enum-name - - - typedef-name - - - - - - enum-name - - identifier - - - - typedef-name - - identifier - - - - type-id - - - - type-specifier-seq - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - - - ptr-operator - - - - - abstract-declarator - - - - - - - direct-abstract-declarator - - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - exception-specification - - - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - parameter-declaration-clause - - - - - - - - parameter-declaration-list - - - - - - - ... - - - - - - - - - parameter-declaration-list - - - , - - - ... - - - - - - - - parameter-declaration-list - - - - parameter-declaration - - - - - parameter-declaration-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - decl-specifier-seq - - - declarator - - - - - - - decl-specifier-seq - - - declarator - - - = - - - assignment-expression - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - = - - - assignment-expression - - - - - - - - declarator - - - - direct-declarator - - - - - ptr-operator - - - declarator - - - - - - - - direct-declarator - - - - declarator-id - - - - - direct-declarator - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - exception-specification - - - - - - - - - direct-declarator - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - declarator - - - ) - - - - - - - - declarator-id - - - - id-expression - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - - - - - - exception-specification - - - - throw - - - ( - - - - - type-id-list - - - - - ) - - - - - - type-id-list - - - - type-id - - - - - type-id-list - - - , - - - type-id - - - - - - - - constant-expression - - conditional-expression - - - - unary-operator - - - - * - - - & - - - + - - - - - - - ! - - - ~ - - - - - - new-expression - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - new-type-id - - - - - new-initializer - - - - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - ( - - - type-id - - - ) - - - - - new-initializer - - - - - - - - - - new-placement - - - - ( - - - expression-list - - - ) - - - - - - new-type-id - - - - type-specifier-seq - - - - - new-declarator - - - - - - - - new-declarator - - - - - - ptr-operator - - - - - new-declarator - - - - - - - direct-new-declarator - - - - - - direct-new-declarator - - - - - - [ - - - expression - - - ] - - - - - - - direct-new-declarator - - - [ - - - constant-expression - - - ] - - - - - - - - new-initializer - - - - ( - - - - - expression-list - - - - - ) - - - - - - delete-expression - - - - - - - - :: - - - - - delete - - - cast-expression - - - - - - - - - :: - - - - - delete - - - [ - - - ] - - - cast-expression - - - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - >>= - - - <<= - - - &= - - - ^= - - - |= - - - - - - throw-expression - - - - throw - - - - - assignment-expression - - - - - - - - namespace-name - - - - original-namespace-name - - - namespace-alias - - - - - - original-namespace-name - - identifier - - - - namespace-alias - - identifier - - - - class-specifier - - - - class-head - - - { - - - - - member-specification - - - - - } - - - - - - class-head - - - - - - class-key - - - - - identifier - - - - - - - base-clause - - - - - - - - - class-key - - - nested-name-specifier - - - identifier - - - - - base-clause - - - - - - - - - class-key - - - - - nested-name-specifier - - - - - template-id - - - - - base-clause - - - - - - - - - - class-key - - - - class - - - struct - - - union - - - - - - base-clause - - - - : - - - base-specifier-list - - - - - - base-specifier-list - - - - base-specifier - - - - - base-specifier-list - - - , - - - base-specifier - - - - - - - - base-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - virtual - - - - - access-specifier - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - access-specifier - - - - - virtual - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - - access-specifier - - - - private - - - protected - - - public - - - - - - member-specification - - - - - - member-declaration - - - - - member-specification - - - - - - - - - access-specifier - - - : - - - - - member-specification - - - - - - - - - - member-declaration - - - - - - - - decl-specifier-seq - - - - - - - member-declarator-list - - - - - ; - - - - - - - function-definition - - - - - ; - - - - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - ; - - - - - using-declaration - - - template-declaration - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - - - declarator - - - - - pure-specifier - - - - - - - - - declarator - - - - - constant-initializer - - - - - - - - - - - identifier - - - - - : - - - constant-expression - - - - - - - - pure-specifier - - - - = - - - 0 - - - - - - constant-initializer - - - - = - - - constant-expression - - - - - - function-definition - - - - - - - - decl-specifier-seq - - - - - declarator - - - - - ctor-initializer - - - - - function-body - - - - - - - - - decl-specifier-seq - - - - - declarator - - - function-try-block - - - - - - - - ctor-initializer - - - - : - - - mem-initializer-list - - - - - - mem-initializer-list - - - - mem-initializer - - - - - mem-initializer - - - , - - - mem-initializer-list - - - - - - - - mem-initializer - - - - mem-initializer-id - - - ( - - - - - expression-list - - - - - ) - - - - - - mem-initializer-id - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - identifier - - - - - - function-body - - compound-statement - - - - compound-statement - - - - { - - - - - statement-seq - - - - - } - - - - - - statement-seq - - - - statement - - - - - statement-seq - - - statement - - - - - - - - statement - - - - labeled-statement - - - expression-statement - - - compound-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - declaration-statement - - - try-block - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - condition - - - ) - - - statement - - - - - - - - condition - - - - expression - - - - - type-specifier-seq - - - declarator - - - = - - - assignment-expression - - - - - - - - iteration-statement - - - - - - while - - - ( - - - condition - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - for-init-statement - - - - - condition - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - for-init-statement - - - - expression-statement - - - simple-declaration - - - - - - jump-statement - - - - - - break - - - ; - - - - - - - continue - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - goto - - - identifier - - - ; - - - - - - - - declaration-statement - - block-declaration - - - - try-block - - - - try - - - compound-statement - - - handler-seq - - - - - - handler-seq - - - - handler - - - - - handler-seq - - - - - - - - handler - - - - catch - - - ( - - - exception-declaration - - - ) - - - compound-statement - - - - - - exception-declaration - - - - - - type-specifier-seq - - - declarator - - - - - - - type-specifier-seq - - - abstract-declarator - - - - - type-specifier-seq - - - ... - - - - - - function-try-block - - - - try - - - - - ctor-initializer - - - - - function-body - - - handler-seq - - - - - - using-declaration - - - - - - using - - - - - typename - - - - - - - :: - - - - - nested-name-specifier - - - unqualified-id - - - ; - - - - - - - using - - - :: - - - unqualified-id - - - ; - - - - - - - - template-declaration - - - - - - export - - - - - template - - - < - - - template-parameter-list - - - > - - - declaration - - - - - - template-parameter-list - - - - template-parameter - - - - - template-parameter-list - - - , - - - template-parameter - - - - - - - - template-parameter - - - - type-parameter - - - parameter-declaration - - - - - - type-parameter - - - - - - class - - - - - identifier - - - - - - - - - class - - - - - identifier - - - - - = - - - type-id - - - - - - - typename - - - - - identifier - - - - - - - - - typename - - - - - identifier - - - - - = - - - type-id - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - identifier - - - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - identifier - - - - - = - - - id-expression - - - - - - - - enum-specifier - - - - enum - - - - - identifier - - - - - { - - - - - enumerator-list - - - - - } - - - - - - enumerator-list - - - - enumerator-definition - - - - - enumerator-list - - - , - - - enumerator-definition - - - - - - - - enumerator-definition - - - - enumerator - - - - - enumerator - - - = - - - constant-expression - - - - - - - - enumerator - - identifier - - - - elaborated-type-specifier - - - - - - class-key - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - enum - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - identifier - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - template-id - - - - - - - - function-specifier - - - - inline - - - virtual - - - explicit - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - initializer - - - - - - - - initializer - - - - - - = - - - initializer-clause - - - - - - - ( - - - expression-list - - - ) - - - - - - - - initializer-clause - - - - assignment-expression - - - - - { - - - initializer-list - - - - - , - - - - - } - - - - - - - { - - - } - - - - - - - - initializer-list - - - - initializer-clause - - - - - initializer-list - - - , - - - initializer-clause - - - - - - - - asm-definition - - - - asm - - - ( - - - string-literal - - - ) - - - ; - - - - - - namespace-alias-definition - - - - namespace - - - identifier - - - = - - - qualified-namespace-specifier - - - ; - - - - - - qualified-namespace-specifier - - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - - - - using-directive - - - - using - - - namespace - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - ; - - - - - - explicit-instantiation - - - - template - - - declaration - - - - - - explicit-specialization - - - - template - - - < - - - > - - - declaration - - - - - - linkage-specification - - - - - - extern - - - string-literal - - - { - - - - - declaration-seq - - - - - } - - - - - - - extern - - - string-literal - - - declaration - - - - - - - - namespace-definition - - - - named-namespace-definition - - - unnamed-namespace-definition - - - - - - named-namespace-definition - - - - original-namespace-definition - - - extension-namespace-definition - - - - - - original-namespace-definition - - - - namespace - - - identifier - - - { - - - namespace-body - - - } - - - - - - namespace-body - - - - declaration-seq - - - - - - extension-namespace-definition - - - - namespace - - - original-namespace-name - - - { - - - namespace-body - - - } - - - - - - unnamed-namespace-definition - - - - namespace - - - { - - - namespace-body - - - } - - - - - diff --git a/shared/bgf/cpp.iso-n2723.ext.bgf b/shared/bgf/cpp.iso-n2723.ext.bgf deleted file mode 100644 index 5c49f507..00000000 --- a/shared/bgf/cpp.iso-n2723.ext.bgf +++ /dev/null @@ -1,5731 +0,0 @@ - - - - translation-unit - - - - declaration-seq - - - - - - primary-expression - - - - literal - - - this - - - - - ( - - - expression - - - ) - - - - - id-expression - - - lambda-expression - - - - - - id-expression - - - - unqualified-id - - - qualified-id - - - - - - unqualified-id - - - - identifier - - - operator-function-id - - - conversion-function-id - - - - - - - - class-name - - - - - template-id - - - - - - qualified-id - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - - - - - :: - - - identifier - - - - - - - :: - - - operator-function-id - - - - - - - :: - - - template-id - - - - - - - - nested-name-specifier - - - - - - type-name - - - :: - - - - - - - namespace-name - - - :: - - - - - - - nested-name-specifier - - - identifier - - - :: - - - - - - - nested-name-specifier - - - - - template - - - - - simple-template-id - - - :: - - - - - - - - lambda-expression - - - - lambda-introducer - - - - - lambda-parameter-declaration - - - - - compound-statement - - - - - - lambda-introducer - - - - [ - - - - - lambda-capture - - - - - ] - - - - - - lambda-capture - - - - capture-default - - - capture-list - - - - - capture-default - - - , - - - capture-list - - - - - - - - capture-default - - - - & - - - = - - - - - - capture-list - - - - capture - - - - - capture-list - - - , - - - capture - - - - - - - - capture - - - - identifier - - - - - & - - - identifier - - - - - this - - - - - - lambda-parameter-declaration - - - - - - ( - - - - - lambda-parameter-declaration-list - - - - - ) - - - - - - - - - mutable - - - - - - - exception-specification - - - - - - - lambda-return-type-clause - - - - - - - - - - lambda-parameter-declaration-list - - - - lambda-parameter - - - - - lambda-parameter - - - , - - - lambda-parameter-declaration-list - - - - - - - - lambda-parameter - - - - decl-specifier-seq - - - declarator - - - - - - lambda-return-type-clause - - - - -> - - - type-id - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - [ - - - braced-init-list - - - ] - - - - - - - postfix-expression - - - ( - - - - - expression-list - - - - - ) - - - - - - - simple-type-specifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - typename-specifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - simple-type-specifier - - - braced-init-list - - - - - - - typename-specifier - - - braced-init-list - - - - - - - postfix-expression - - - . - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - -> - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - . - - - pseudo-destructor-name - - - - - - - postfix-expression - - - -> - - - pseudo-destructor-name - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - dynamic_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - static_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - reinterpret_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - const_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - type-id - - - ) - - - - - - - - expression-list - - initializer-list - - - - pseudo-destructor-name - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - :: - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - simple-template-id - - - :: - - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - - - - - - - - type-name - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - cast-expression - - - - - - - -- - - - cast-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-id - - - ) - - - - - - - sizeof - - - ... - - - ( - - - identifier - - - ) - - - - - - - alignof - - - ( - - - type-id - - - ) - - - - - new-expression - - - delete-expression - - - - - - unary-operator - - - - * - - - & - - - + - - - - - - - ! - - - - - - - - - new-expression - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - new-type-id - - - - - new-initializer - - - - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - ( - - - type-id - - - ) - - - - - new-initializer - - - - - - - - - - new-placement - - - - ( - - - expression-list - - - ) - - - - - - new-type-id - - - - type-specifier-seq - - - - - new-declarator - - - - - - - - new-declarator - - - - - - ptr-operator - - - - - new-declarator - - - - - - - direct-new-declarator - - - - - - direct-new-declarator - - - - - - [ - - - expression - - - ] - - - - - - - direct-new-declarator - - - [ - - - constant-expression - - - ] - - - - - - - - new-initializer - - - - - - ( - - - - - expression-list - - - - - ) - - - - - braced-init-list - - - - - - delete-expression - - - - - - - - :: - - - - - delete - - - cast-expression - - - - - - - - - :: - - - - - delete - - - [ - - - ] - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-id - - - ) - - - cast-expression - - - - - - - - pm-expression - - - - cast-expression - - - - - pm-expression - - - .* - - - cast-expression - - - - - - - pm-expression - - - ->* - - - cast-expression - - - - - - - - multiplicative-expression - - - - pm-expression - - - - - multiplicative-expression - - - * - - - pm-expression - - - - - - - multiplicative-expression - - - / - - - pm-expression - - - - - - - multiplicative-expression - - - % - - - pm-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - logical-and-expression - - - - inclusive-or-expression - - - - - logical-and-expression - - - && - - - inclusive-or-expression - - - - - - - - logical-or-expression - - - - logical-and-expression - - - logical-or-expression - - - - - || - - - logical-and-expression - - - - - - - - conditional-expression - - - - logical-or-expression - - - - - logical-or-expression - - - ? - - - expression - - - : - - - assignment-expression - - - - - - - - assignment-expression - - - - conditional-expression - - - - - logical-or-expression - - - assignment-operator - - - initializer-clause - - - - - throw-expression - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - >>= - - - <<= - - - &= - - - ^= - - - |= - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - constant-expression - - conditional-expression - - - - statement - - - - labeled-statement - - - expression-statement - - - compound-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - declaration-statement - - - try-block - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - compound-statement - - - - { - - - - - statement-seq - - - - - } - - - - - - statement-seq - - - - statement - - - - - statement-seq - - - statement - - - - - - - - selection-statement - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - condition - - - ) - - - statement - - - - - - - - condition - - - - expression - - - - - type-specifier-seq - - - declarator - - - = - - - initializer-clause - - - - - - - type-specifier-seq - - - declarator - - - braced-init-list - - - - - - - - iteration-statement - - - - - - while - - - ( - - - condition - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - for-init-statement - - - - - condition - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - for-init-statement - - - - expression-statement - - - simple-declaration - - - - - - jump-statement - - - - - - break - - - ; - - - - - - - continue - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - return - - - braced-init-list - - - ; - - - - - - - goto - - - identifier - - - ; - - - - - - - - declaration-statement - - block-declaration - - - - declaration-seq - - - - declaration - - - - - declaration-seq - - - declaration - - - - - - - - declaration - - - - block-declaration - - - function-definition - - - template-declaration - - - explicit-instantiation - - - explicit-specialization - - - linkage-specification - - - namespace-definition - - - - - - block-declaration - - - - simple-declaration - - - asm-definition - - - namespace-alias-definition - - - using-declaration - - - using-directive - - - - - static_assert - - - - - - - declaration - - - - - alias-declaration - - - - - - alias-declaration - - - - using - - - identifier - - - = - - - type-id - - - ; - - - - - - simple-declaration - - - - - - decl-specifier-seq - - - - - - - init-declarator-list - - - - - ; - - - - - - static_assert-declaration - - - - static_assert - - - ( - - - constant-expression - - - , - - - string-literal - - - ) - - - ; - - - - - - decl-specifier - - - - storage-class-specifier - - - type-specifier - - - function-specifier - - - friend - - - typedef - - - constexpr - - - alignment-specifier - - - - - - decl-specifier-seq - - - - - - decl-specifier-seq - - - - - decl-specifier - - - - - - storage-class-specifier - - - - register - - - static - - - thread_local - - - extern - - - mutable - - - - - - function-specifier - - - - inline - - - virtual - - - explicit - - - - - - typedef-name - - identifier - - - - type-specifier - - - - simple-type-specifier - - - class-specifier - - - enum-specifier - - - elaborated-type-specifier - - - typename-specifier - - - cv-qualifier - - - - - - type-specifier-seq - - - - type-specifier - - - - - type-specifier-seq - - - - - - - - simple-type-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - simple-template-id - - - - - char - - - char16_t - - - char32_t - - - wchar_t - - - bool - - - short - - - int - - - long - - - signed - - - unsigned - - - float - - - double - - - void - - - auto - - - - - decltype - - - ( - - - expression - - - ) - - - - - - - - type-name - - - - class-name - - - enum-name - - - typedef-name - - - - - - elaborated-type-specifier - - - - - - class-key - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - class-key - - - - - :: - - - - - - - nested-name-specifier - - - - - - - template - - - - - simple-template-id - - - - - - - enum-key - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - - alignment-specifier - - - - - - alignas - - - ( - - - constant-expression - - - ) - - - - - - - alignas - - - ( - - - type-id - - - ) - - - - - - - - enum-name - - identifier - - - - enum-specifier - - - - - - enum-key - - - - - identifier - - - - - - - enum-base - - - - - { - - - - - enumerator-list - - - - - } - - - - - - - enum-key - - - - - identifier - - - - - - - enum-base - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - - enum-key - - - - enum - - - - - enum - - - class - - - - - - - enum - - - struct - - - - - - - - enum-base - - - - : - - - type-specifier-seq - - - - - - enumerator-list - - - - enumerator-definition - - - - - enumerator-list - - - , - - - enumerator-definition - - - - - - - - enumerator-definition - - - - enumerator - - - - - enumerator - - - = - - - constant-expression - - - - - - - - enumerator - - identifier - - - - namespace-name - - - - original-namespace-name - - - namespace-alias - - - - - - original-namespace-name - - identifier - - - - namespace-definition - - - - named-namespace-definition - - - unnamed-namespace-definition - - - - - - named-namespace-definition - - - - original-namespace-definition - - - extension-namespace-definition - - - - - - original-namespace-definition - - - - - - inline - - - - - namespace - - - identifier - - - { - - - namespace-body - - - } - - - - - - extension-namespace-definition - - - - - - inline - - - - - namespace - - - original-namespace-name - - - { - - - namespace-body - - - } - - - - - - unnamed-namespace-definition - - - - - - inline - - - - - namespace - - - { - - - namespace-body - - - } - - - - - - namespace-body - - - - declaration-seq - - - - - - namespace-alias - - identifier - - - - namespace-alias-definition - - - - namespace - - - identifier - - - = - - - qualified-namespace-specifier - - - ; - - - - - - qualified-namespace-specifier - - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - - - - using-declaration - - - - - - using - - - - - typename - - - - - - - :: - - - - - nested-name-specifier - - - unqualified-id - - - ; - - - - - - - using - - - :: - - - unqualified-id - - - ; - - - - - - - - using-directive - - - - using - - - namespace - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - ; - - - - - - asm-definition - - - - asm - - - ( - - - string-literal - - - ) - - - ; - - - - - - linkage-specification - - - - - - extern - - - string-literal - - - { - - - - - declaration-seq - - - - - } - - - - - - - extern - - - string-literal - - - declaration - - - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - initializer - - - - - - - - declarator - - - - direct-declarator - - - - - ptr-operator - - - declarator - - - - - - - - direct-declarator - - - - declarator-id - - - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - - - - - direct-declarator - - - ( - - - parameter-declaration-clause - - - ) - - - - - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - -> - - - type-id - - - - - - - direct-declarator - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - declarator - - - ) - - - - - - - - ptr-operator - - - - - - * - - - - - cv-qualifier-seq - - - - - - - & - - - && - - - - - - - :: - - - - - nested-name-specifier - - - * - - - - - cv-qualifier-seq - - - - - - - - - - cv-qualifier-seq - - - - cv-qualifier - - - - - cv-qualifier-seq - - - - - - - - cv-qualifier - - - - const - - - volatile - - - - - - ref-qualifier - - - - & - - - && - - - - - - declarator-id - - - - - - - - ... - - - - - id-expression - - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - - type-id - - - - type-specifier-seq - - - - - abstract-declarator - - - - - - - - abstract-declarator - - - - - - ptr-operator - - - - - abstract-declarator - - - - - - - direct-abstract-declarator - - - ... - - - - - - direct-abstract-declarator - - - - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - - - - - - - direct-abstract-declarator - - - - - ( - - - parameter-declaration-clause - - - ) - - - - - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - -> - - - type-id - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - parameter-declaration-clause - - - - - - - - parameter-declaration-list - - - - - - - ... - - - - - - - - - parameter-declaration-list - - - , - - - ... - - - - - - - - parameter-declaration-list - - - - parameter-declaration - - - - - parameter-declaration-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - decl-specifier-seq - - - declarator - - - - - - - decl-specifier-seq - - - declarator - - - = - - - assignment-expression - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - = - - - assignment-expression - - - - - - - - function-definition - - - - - - - - decl-specifier-seq - - - - - declarator - - - function-body - - - - - - - - - decl-specifier-seq - - - - - declarator - - - = - - - default - - - ; - - - - - - - - - decl-specifier-seq - - - - - declarator - - - = - - - delete - - - ; - - - - - - - - function-body - - - - - - - - ctor-initializer - - - - - compound-statement - - - - - function-try-block - - - - - - initializer - - - - - - = - - - initializer-clause - - - - - - - ( - - - expression-list - - - ) - - - - - braced-init-list - - - - - - initializer-clause - - - - assignment-expression - - - braced-init-list - - - - - - initializer-list - - - - - - initializer-clause - - - - - ... - - - - - - - - - initializer-list - - - , - - - initializer-clause - - - - - ... - - - - - - - - - - braced-init-list - - - - - - { - - - initializer-list - - - - - , - - - - - } - - - - - - - { - - - } - - - - - - - - class-name - - - - identifier - - - simple-template-id - - - - - - class-specifier - - - - class-head - - - { - - - - - member-specification - - - - - } - - - - - - class-head - - - - - - class-key - - - - - identifier - - - - - - - base-clause - - - - - - - - - class-key - - - nested-name-specifier - - - identifier - - - - - base-clause - - - - - - - - - class-key - - - - - nested-name-specifier - - - - - simple-template-id - - - - - base-clause - - - - - - - - - - class-key - - - - class - - - struct - - - union - - - - - - member-specification - - - - - - member-declaration - - - - - member-specification - - - - - - - - - access-specifier - - - : - - - - - member-specification - - - - - - - - - - member-declaration - - - - - - - - decl-specifier-seq - - - - - - - member-declarator-list - - - - - ; - - - - - - - function-definition - - - - - ; - - - - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - ; - - - - - using-declaration - - - - - static_assert - - - - - - - declaration - - - - - template-declaration - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - - - declarator - - - - - pure-specifier - - - - - - - - - declarator - - - - - constant-initializer - - - - - - - - - - - identifier - - - - - : - - - constant-expression - - - - - - - - pure-specifier - - - - = - - - 0 - - - - - - constant-initializer - - - - = - - - constant-expression - - - - - - base-clause - - - - : - - - base-specifier-list - - - - - - base-specifier-list - - - - - - base-specifier - - - - - ... - - - - - - - - - base-specifier-list - - - , - - - base-specifier - - - - - ... - - - - - - - - - - base-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - virtual - - - - - access-specifier - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - access-specifier - - - - - virtual - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - - access-specifier - - - - private - - - protected - - - public - - - - - - conversion-function-id - - - - operator - - - conversion-type-id - - - - - - conversion-type-id - - - - type-specifier-seq - - - - - conversion-declarator - - - - - - - - conversion-declarator - - - - ptr-operator - - - - - conversion-declarator - - - - - - - - ctor-initializer - - - - : - - - mem-initializer-list - - - - - - mem-initializer-list - - - - - - mem-initializer - - - - - ... - - - - - - - - - mem-initializer - - - , - - - mem-initializer-list - - - - - ... - - - - - - - - - - mem-initializer - - - - - - mem-initializer-id - - - ( - - - - - expression-list - - - - - ) - - - - - - - mem-initializer-id - - - braced-init-list - - - - - - - - mem-initializer-id - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - identifier - - - - - - operator-function-id - - - - operator - - - operator - - - - - - operator - - - - new - - - delete - - - - - new - - - [ - - - ] - - - - - - - delete - - - [ - - - ] - - - - - + - - - - - - - * - - - / - - - % - - - ^ - - - & - - - | - - - - - - ! - - - = - - - < - - - > - - - += - - - -= - - - *= - - - /= - - - %= - - - ^= - - - &= - - - |= - - - << - - - >> - - - >>= - - - <<= - - - == - - - != - - - <= - - - >= - - - && - - - || - - - ++ - - - -- - - - , - - - ->* - - - -> - - - ( - - - ) - - - [ - - - ] - - - - - - template-declaration - - - - - - export - - - - - template - - - < - - - template-parameter-list - - - > - - - declaration - - - - - - template-parameter-list - - - - template-parameter - - - - - template-parameter-list - - - , - - - template-parameter - - - - - - - - template-parameter - - - - type-parameter - - - parameter-declaration - - - - - - type-parameter - - - - - - class - - - - - ... - - - - - - - identifier - - - - - - - - - class - - - - - identifier - - - - - = - - - type-id - - - - - - - typename - - - - - ... - - - - - - - identifier - - - - - - - - - typename - - - - - identifier - - - - - = - - - type-id - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - ... - - - - - - - identifier - - - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - identifier - - - - - = - - - id-expression - - - - - - - - simple-template-id - - - - template-name - - - < - - - - - template-argument-list - - - - - > - - - - - - template-id - - - - simple-template-id - - - - - operator-function-id - - - < - - - - - template-argument-list - - - - - > - - - - - - - - template-name - - identifier - - - - template-argument-list - - - - - - template-argument - - - - - ... - - - - - - - - - template-argument-list - - - , - - - template-argument - - - - - ... - - - - - - - - - - template-argument - - - - constant-expression - - - type-id - - - id-expression - - - - - - typename-specifier - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - identifier - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - simple-template-id - - - - - - - - explicit-instantiation - - - - - - extern - - - - - template - - - declaration - - - - - - explicit-specialization - - - - template - - - < - - - > - - - declaration - - - - - - try-block - - - - try - - - compound-statement - - - handler-seq - - - - - - function-try-block - - - - try - - - - - ctor-initializer - - - - - compound-statement - - - handler-seq - - - - - - handler-seq - - - - handler - - - - - handler-seq - - - - - - - - handler - - - - catch - - - ( - - - exception-declaration - - - ) - - - compound-statement - - - - - - exception-declaration - - - - - - type-specifier-seq - - - declarator - - - - - - - type-specifier-seq - - - abstract-declarator - - - - - type-specifier-seq - - - ... - - - - - - throw-expression - - - - throw - - - - - assignment-expression - - - - - - - - exception-specification - - - - throw - - - ( - - - - - type-id-list - - - - - ) - - - - - - type-id-list - - - - - - type-id - - - - - ... - - - - - - - - - type-id-list - - - , - - - type-id - - - - - ... - - - - - - - - - - keyword - - - - new - - - delete - - - and - - - bitand - - - bitor - - - compl - - - not - - - or - - - xor - - - while - - - do - - - for - - - explicit - - - this - - - const - - - volatile - - - union - - - alignas - - - asm - - - mutable - - - static - - - register - - - typedef - - - sizeof - - - if - - - then - - - else - - - typeid - - - constexpr - - - switch - - - virtual - - - alignof - - - friend - - - typename - - - private - - - protected - - - public - - - export - - - try - - - catch - - - inline - - - namespace - - - template - - - case - - - default - - - using - - - enum - - - class - - - struct - - - throw - - - break - - - continue - - - return - - - goto - - - extern - - - char - - - bool - - - short - - - int - - - long - - - signed - - - unsigned - - - float - - - double - - - void - - - auto - - - decltype - - - - - diff --git a/shared/bgf/cpp.iso-n2723.rec.bgf b/shared/bgf/cpp.iso-n2723.rec.bgf deleted file mode 100644 index e46dab07..00000000 --- a/shared/bgf/cpp.iso-n2723.rec.bgf +++ /dev/null @@ -1,5524 +0,0 @@ - - - translation-unit - - translation-unit - - - - declaration-seq - - - - - - declaration-seq - - - - declaration - - - - - declaration-seq - - - declaration - - - - - - - - declaration - - - - block-declaration - - - function-definition - - - template-declaration - - - explicit-instantiation - - - explicit-specialization - - - linkage-specification - - - namespace-definition - - - - - - block-declaration - - - - simple-declaration - - - asm-definition - - - namespace-alias-definition - - - using-declaration - - - using-directive - - - static_assert-declaration - - - alias-declaration - - - - - - simple-declaration - - - - - - decl-specifier-seq - - - - - - - init-declarator-list - - - - - ; - - - - - - decl-specifier-seq - - - - - - decl-specifier-seq - - - - - decl-specifier - - - - - - decl-specifier - - - - storage-class-specifier - - - type-specifier - - - function-specifier - - - friend - - - typedef - - - constexpr - - - alignment-specifier - - - - - - storage-class-specifier - - - - register - - - static - - - thread_local - - - extern - - - mutable - - - - - - type-specifier - - - - simple-type-specifier - - - class-specifier - - - enum-specifier - - - elaborated-type-specifier - - - typename-specifier - - - cv-qualifier - - - - - - simple-type-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - simple-template-id - - - - - char - - - char16_t - - - char32_t - - - wchar_t - - - bool - - - short - - - int - - - long - - - signed - - - unsigned - - - float - - - double - - - void - - - auto - - - - - decltype - - - ( - - - expression - - - ) - - - - - - - - nested-name-specifier - - - - - - type-name - - - :: - - - - - - - namespace-name - - - :: - - - - - - - nested-name-specifier - - - identifier - - - :: - - - - - - - nested-name-specifier - - - - - template - - - - - simple-template-id - - - :: - - - - - - - - type-name - - - - class-name - - - enum-name - - - typedef-name - - - - - - class-name - - - - identifier - - - simple-template-id - - - - - - simple-template-id - - - - template-name - - - < - - - - - template-argument-list - - - - - > - - - - - - template-name - - identifier - - - - template-argument-list - - - - - - template-argument - - - - - ... - - - - - - - - - template-argument-list - - - , - - - template-argument - - - - - ... - - - - - - - - - - template-argument - - - - constant-expression - - - type-id - - - id-expression - - - - - - constant-expression - - conditional-expression - - - - conditional-expression - - - - logical-or-expression - - - - - logical-or-expression - - - ? - - - expression - - - : - - - assignment-expression - - - - - - - - logical-or-expression - - - - logical-and-expression - - - - - logical-or-expression - - - || - - - logical-and-expression - - - - - - - - logical-and-expression - - - - inclusive-or-expression - - - - - logical-and-expression - - - && - - - inclusive-or-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - pm-expression - - - - - multiplicative-expression - - - * - - - pm-expression - - - - - - - multiplicative-expression - - - / - - - pm-expression - - - - - - - multiplicative-expression - - - % - - - pm-expression - - - - - - - - pm-expression - - - - cast-expression - - - - - pm-expression - - - .* - - - cast-expression - - - - - - - pm-expression - - - ->* - - - cast-expression - - - - - - - - cast-expression - - - - unary-expression - - - - - ( - - - type-id - - - ) - - - cast-expression - - - - - - - - unary-expression - - - - postfix-expression - - - - - ++ - - - cast-expression - - - - - - - -- - - - cast-expression - - - - - - - unary-operator - - - cast-expression - - - - - - - sizeof - - - unary-expression - - - - - - - sizeof - - - ( - - - type-id - - - ) - - - - - - - sizeof - - - ... - - - ( - - - identifier - - - ) - - - - - - - alignof - - - ( - - - type-id - - - ) - - - - - new-expression - - - delete-expression - - - - - - postfix-expression - - - - primary-expression - - - - - postfix-expression - - - [ - - - expression - - - ] - - - - - - - postfix-expression - - - [ - - - braced-init-list - - - ] - - - - - - - postfix-expression - - - ( - - - - - expression-list - - - - - ) - - - - - - - simple-type-specifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - typename-specifier - - - ( - - - - - expression-list - - - - - ) - - - - - - - simple-type-specifier - - - braced-init-list - - - - - - - typename-specifier - - - braced-init-list - - - - - - - postfix-expression - - - . - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - -> - - - - - template - - - - - id-expression - - - - - - - postfix-expression - - - . - - - pseudo-destructor-name - - - - - - - postfix-expression - - - -> - - - pseudo-destructor-name - - - - - - - postfix-expression - - - ++ - - - - - - - postfix-expression - - - -- - - - - - - - dynamic_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - static_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - reinterpret_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - const_cast - - - < - - - type-id - - - > - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - expression - - - ) - - - - - - - typeid - - - ( - - - type-id - - - ) - - - - - - - - primary-expression - - - - literal - - - this - - - - - ( - - - expression - - - ) - - - - - id-expression - - - lambda-expression - - - - - - expression - - - - assignment-expression - - - - - expression - - - , - - - assignment-expression - - - - - - - - assignment-expression - - - - conditional-expression - - - - - logical-or-expression - - - assignment-operator - - - initializer-clause - - - - - throw-expression - - - - - - assignment-operator - - - - = - - - *= - - - /= - - - %= - - - += - - - -= - - - >>= - - - <<= - - - &= - - - ^= - - - |= - - - - - - initializer-clause - - - - assignment-expression - - - braced-init-list - - - - - - braced-init-list - - - - - - { - - - initializer-list - - - - - , - - - - - } - - - - - - - { - - - } - - - - - - - - initializer-list - - - - - - initializer-clause - - - - - ... - - - - - - - - - initializer-list - - - , - - - initializer-clause - - - - - ... - - - - - - - - - - throw-expression - - - - throw - - - - - assignment-expression - - - - - - - - id-expression - - - - unqualified-id - - - qualified-id - - - - - - unqualified-id - - - - identifier - - - operator-function-id - - - conversion-function-id - - - - - - - - class-name - - - - - template-id - - - - - - operator-function-id - - - - operator - - - operator - - - - - - operator - - - - new - - - delete - - - - - new - - - [ - - - ] - - - - - - - delete - - - [ - - - ] - - - - - + - - - - - - - * - - - / - - - % - - - ^ - - - & - - - | - - - - - - ! - - - = - - - < - - - > - - - += - - - -= - - - *= - - - /= - - - %= - - - ^= - - - &= - - - |= - - - << - - - >> - - - >>= - - - <<= - - - == - - - != - - - <= - - - >= - - - && - - - || - - - ++ - - - -- - - - , - - - ->* - - - -> - - - ( - - - ) - - - [ - - - ] - - - - - - conversion-function-id - - - - operator - - - conversion-type-id - - - - - - conversion-type-id - - - - type-specifier-seq - - - - - conversion-declarator - - - - - - - - type-specifier-seq - - - - type-specifier - - - - - type-specifier-seq - - - - - - - - conversion-declarator - - - - ptr-operator - - - - - conversion-declarator - - - - - - - - ptr-operator - - - - - - * - - - - - cv-qualifier-seq - - - - - - - & - - - && - - - - - - - :: - - - - - nested-name-specifier - - - * - - - - - cv-qualifier-seq - - - - - - - - - - cv-qualifier-seq - - - - cv-qualifier - - - - - cv-qualifier-seq - - - - - - - - cv-qualifier - - - - const - - - volatile - - - - - - template-id - - - - simple-template-id - - - - - operator-function-id - - - < - - - - - template-argument-list - - - - - > - - - - - - - - qualified-id - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - - - - - :: - - - identifier - - - - - - - :: - - - operator-function-id - - - - - - - :: - - - template-id - - - - - - - - lambda-expression - - - - lambda-introducer - - - - - lambda-parameter-declaration - - - - - compound-statement - - - - - - lambda-introducer - - - - [ - - - - - lambda-capture - - - - - ] - - - - - - lambda-capture - - - - capture-default - - - capture-list - - - - - capture-default - - - , - - - capture-list - - - - - - - - capture-default - - - - & - - - = - - - - - - capture-list - - - - capture - - - - - capture-list - - - , - - - capture - - - - - - - - capture - - - - identifier - - - - - & - - - identifier - - - - - this - - - - - - lambda-parameter-declaration - - - - ( - - - - - lambda-parameter-declaration-list - - - - - ) - - - - - mutable - - - - - - - exception-specification - - - - - - - lambda-return-type-clause - - - - - - - - lambda-parameter-declaration-list - - - - lambda-parameter - - - - - lambda-parameter - - - , - - - lambda-parameter-declaration-list - - - - - - - - lambda-parameter - - - - decl-specifier-seq - - - declarator - - - - - - declarator - - - - direct-declarator - - - - - ptr-operator - - - declarator - - - - - - - - direct-declarator - - - - declarator-id - - - - - direct-declarator - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - - - - - direct-declarator - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - -> - - - type-id - - - - - - - direct-declarator - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - declarator - - - ) - - - - - - - - declarator-id - - - - - - - - ... - - - - - id-expression - - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - - parameter-declaration-clause - - - - - - - - parameter-declaration-list - - - - - - - ... - - - - - - - - - parameter-declaration-list - - - , - - - ... - - - - - - - - parameter-declaration-list - - - - parameter-declaration - - - - - parameter-declaration-list - - - , - - - parameter-declaration - - - - - - - - parameter-declaration - - - - - - decl-specifier-seq - - - declarator - - - - - - - decl-specifier-seq - - - declarator - - - = - - - assignment-expression - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - - - - - decl-specifier-seq - - - - - abstract-declarator - - - - - = - - - assignment-expression - - - - - - - - abstract-declarator - - - - - - ptr-operator - - - - - abstract-declarator - - - - - - - direct-abstract-declarator - - - ... - - - - - - direct-abstract-declarator - - - - - - - - direct-abstract-declarator - - - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - - - - - - - direct-abstract-declarator - - - - - ( - - - parameter-declaration-clause - - - ) - - - - - cv-qualifier-seq - - - - - - - ref-qualifier - - - - - - - exception-specification - - - - - -> - - - type-id - - - - - - - - - direct-abstract-declarator - - - - - [ - - - - - constant-expression - - - - - ] - - - - - - - ( - - - abstract-declarator - - - ) - - - - - - - - ref-qualifier - - - - & - - - && - - - - - - exception-specification - - - - throw - - - ( - - - - - type-id-list - - - - - ) - - - - - - type-id-list - - - - - - type-id - - - - - ... - - - - - - - - - type-id-list - - - , - - - type-id - - - - - ... - - - - - - - - - - type-id - - - - type-specifier-seq - - - - - abstract-declarator - - - - - - - - lambda-return-type-clause - - - - -> - - - type-id - - - - - - compound-statement - - - - { - - - - - statement-seq - - - - - } - - - - - - statement-seq - - - - statement - - - - - statement-seq - - - statement - - - - - - - - statement - - - - labeled-statement - - - expression-statement - - - compound-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - declaration-statement - - - try-block - - - - - - labeled-statement - - - - - - identifier - - - : - - - statement - - - - - - - case - - - constant-expression - - - : - - - statement - - - - - - - default - - - : - - - statement - - - - - - - - expression-statement - - - - - - expression - - - - - ; - - - - - - selection-statement - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - - - - - if - - - ( - - - condition - - - ) - - - statement - - - else - - - statement - - - - - - - switch - - - ( - - - condition - - - ) - - - statement - - - - - - - - condition - - - - expression - - - - - type-specifier-seq - - - declarator - - - = - - - initializer-clause - - - - - - - type-specifier-seq - - - declarator - - - braced-init-list - - - - - - - - iteration-statement - - - - - - while - - - ( - - - condition - - - ) - - - statement - - - - - - - do - - - statement - - - while - - - ( - - - expression - - - ) - - - ; - - - - - - - for - - - ( - - - for-init-statement - - - - - condition - - - - - ; - - - - - expression - - - - - ) - - - statement - - - - - - - - for-init-statement - - - - expression-statement - - - simple-declaration - - - - - - jump-statement - - - - - - break - - - ; - - - - - - - continue - - - ; - - - - - - - return - - - - - expression - - - - - ; - - - - - - - return - - - braced-init-list - - - ; - - - - - - - goto - - - identifier - - - ; - - - - - - - - declaration-statement - - block-declaration - - - - try-block - - - - try - - - compound-statement - - - handler-seq - - - - - - handler-seq - - - - handler - - - - - handler-seq - - - - - - - - handler - - - - catch - - - ( - - - exception-declaration - - - ) - - - compound-statement - - - - - - exception-declaration - - - - - - type-specifier-seq - - - declarator - - - - - - - type-specifier-seq - - - abstract-declarator - - - - - type-specifier-seq - - - ... - - - - - - expression-list - - initializer-list - - - - typename-specifier - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - identifier - - - - - - - typename - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - simple-template-id - - - - - - - - pseudo-destructor-name - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - type-name - - - :: - - - - - - type-name - - - - - - - - - :: - - - - - nested-name-specifier - - - template - - - simple-template-id - - - :: - - - - - - type-name - - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - - - - type-name - - - - - - - - unary-operator - - - - * - - - & - - - + - - - - - - - ! - - - - - - - - - new-expression - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - new-type-id - - - - - new-initializer - - - - - - - - - - - :: - - - - - new - - - - - new-placement - - - - - ( - - - type-id - - - ) - - - - - new-initializer - - - - - - - - - - new-placement - - - - ( - - - expression-list - - - ) - - - - - - new-type-id - - - - type-specifier-seq - - - - - new-declarator - - - - - - - - new-declarator - - - - - - ptr-operator - - - - - new-declarator - - - - - - - direct-new-declarator - - - - - - direct-new-declarator - - - - - - [ - - - expression - - - ] - - - - - - - direct-new-declarator - - - [ - - - constant-expression - - - ] - - - - - - - - new-initializer - - - - - - ( - - - - - expression-list - - - - - ) - - - - - braced-init-list - - - - - - delete-expression - - - - - - - - :: - - - - - delete - - - cast-expression - - - - - - - - - :: - - - - - delete - - - [ - - - ] - - - cast-expression - - - - - - - - enum-name - - identifier - - - - typedef-name - - identifier - - - - namespace-name - - - - original-namespace-name - - - namespace-alias - - - - - - original-namespace-name - - identifier - - - - namespace-alias - - identifier - - - - class-specifier - - - - class-head - - - { - - - - - member-specification - - - - - } - - - - - - class-head - - - - - - class-key - - - - - identifier - - - - - - - base-clause - - - - - - - - - class-key - - - nested-name-specifier - - - identifier - - - - - base-clause - - - - - - - - - class-key - - - - - nested-name-specifier - - - - - simple-template-id - - - - - base-clause - - - - - - - - - - class-key - - - - class - - - struct - - - union - - - - - - base-clause - - - - : - - - base-specifier-list - - - - - - base-specifier-list - - - - - - base-specifier - - - - - ... - - - - - - - - - base-specifier-list - - - , - - - base-specifier - - - - - ... - - - - - - - - - - base-specifier - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - virtual - - - - - access-specifier - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - access-specifier - - - - - virtual - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - - - - access-specifier - - - - private - - - protected - - - public - - - - - - member-specification - - - - - - member-declaration - - - - - member-specification - - - - - - - - - access-specifier - - - : - - - - - member-specification - - - - - - - - - - member-declaration - - - - - - - - decl-specifier-seq - - - - - - - member-declarator-list - - - - - ; - - - - - - - function-definition - - - - - ; - - - - - - - - - - - :: - - - - - nested-name-specifier - - - - - template - - - - - unqualified-id - - - ; - - - - - using-declaration - - - static_assert-declaration - - - template-declaration - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - - - declarator - - - - - pure-specifier - - - - - - - - - declarator - - - - - constant-initializer - - - - - - - - - - - identifier - - - - - : - - - constant-expression - - - - - - - - pure-specifier - - - - = - - - 0 - - - - - - constant-initializer - - - - = - - - constant-expression - - - - - - function-definition - - - - - - - - decl-specifier-seq - - - - - declarator - - - function-body - - - - - - - - - decl-specifier-seq - - - - - declarator - - - = - - - default - - - ; - - - - - - - - - decl-specifier-seq - - - - - declarator - - - = - - - delete - - - ; - - - - - - - - function-body - - - - - - - - ctor-initializer - - - - - compound-statement - - - - - function-try-block - - - - - - ctor-initializer - - - - : - - - mem-initializer-list - - - - - - mem-initializer-list - - - - - - mem-initializer - - - - - ... - - - - - - - - - mem-initializer - - - , - - - mem-initializer-list - - - - - ... - - - - - - - - - - mem-initializer - - - - - - mem-initializer-id - - - ( - - - - - expression-list - - - - - ) - - - - - - - mem-initializer-id - - - braced-init-list - - - - - - - - mem-initializer-id - - - - - - - - :: - - - - - - - nested-name-specifier - - - - - class-name - - - - - identifier - - - - - - function-try-block - - - - try - - - - - ctor-initializer - - - - - compound-statement - - - handler-seq - - - - - - using-declaration - - - - - - using - - - - - typename - - - - - - - :: - - - - - nested-name-specifier - - - unqualified-id - - - ; - - - - - - - using - - - :: - - - unqualified-id - - - ; - - - - - - - - static_assert-declaration - - - - static_assert - - - ( - - - constant-expression - - - , - - - string-literal - - - ) - - - ; - - - - - - template-declaration - - - - - - export - - - - - template - - - < - - - template-parameter-list - - - > - - - declaration - - - - - - template-parameter-list - - - - template-parameter - - - - - template-parameter-list - - - , - - - template-parameter - - - - - - - - template-parameter - - - - type-parameter - - - parameter-declaration - - - - - - type-parameter - - - - - - class - - - - - ... - - - - - - - identifier - - - - - - - - - class - - - - - identifier - - - - - = - - - type-id - - - - - - - typename - - - - - ... - - - - - - - identifier - - - - - - - - - typename - - - - - identifier - - - - - = - - - type-id - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - ... - - - - - - - identifier - - - - - - - - - template - - - < - - - template-parameter-list - - - > - - - class - - - - - identifier - - - - - = - - - id-expression - - - - - - - - enum-specifier - - - - - - enum-key - - - - - identifier - - - - - - - enum-base - - - - - { - - - - - enumerator-list - - - - - } - - - - - - - enum-key - - - - - identifier - - - - - - - enum-base - - - - - { - - - enumerator-list - - - , - - - } - - - - - - - - enum-key - - - - enum - - - - - enum - - - class - - - - - - - enum - - - struct - - - - - - - - enum-base - - - - : - - - type-specifier-seq - - - - - - enumerator-list - - - - enumerator-definition - - - - - enumerator-list - - - , - - - enumerator-definition - - - - - - - - enumerator-definition - - - - enumerator - - - - - enumerator - - - = - - - constant-expression - - - - - - - - enumerator - - identifier - - - - elaborated-type-specifier - - - - - - class-key - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - class-key - - - - - :: - - - - - - - nested-name-specifier - - - - - - - template - - - - - simple-template-id - - - - - - - enum-key - - - - - :: - - - - - - - nested-name-specifier - - - - - identifier - - - - - - - - function-specifier - - - - inline - - - virtual - - - explicit - - - - - - alignment-specifier - - - - - - alignas - - - ( - - - constant-expression - - - ) - - - - - - - alignas - - - ( - - - type-id - - - ) - - - - - - - - init-declarator-list - - - - init-declarator - - - - - init-declarator-list - - - , - - - init-declarator - - - - - - - - init-declarator - - - - declarator - - - - - initializer - - - - - - - - initializer - - - - - - = - - - initializer-clause - - - - - - - ( - - - expression-list - - - ) - - - - - braced-init-list - - - - - - asm-definition - - - - asm - - - ( - - - string-literal - - - ) - - - ; - - - - - - namespace-alias-definition - - - - namespace - - - identifier - - - = - - - qualified-namespace-specifier - - - ; - - - - - - qualified-namespace-specifier - - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - - - - using-directive - - - - using - - - namespace - - - - - :: - - - - - - - nested-name-specifier - - - - - namespace-name - - - ; - - - - - - alias-declaration - - - - using - - - identifier - - - = - - - type-id - - - ; - - - - - - explicit-instantiation - - - - - - extern - - - - - template - - - declaration - - - - - - explicit-specialization - - - - template - - - < - - - > - - - declaration - - - - - - linkage-specification - - - - - - extern - - - string-literal - - - { - - - - - declaration-seq - - - - - } - - - - - - - extern - - - string-literal - - - declaration - - - - - - - - namespace-definition - - - - named-namespace-definition - - - unnamed-namespace-definition - - - - - - named-namespace-definition - - - - original-namespace-definition - - - extension-namespace-definition - - - - - - original-namespace-definition - - - - - - inline - - - - - namespace - - - identifier - - - { - - - namespace-body - - - } - - - - - - namespace-body - - - - declaration-seq - - - - - - extension-namespace-definition - - - - - - inline - - - - - namespace - - - original-namespace-name - - - { - - - namespace-body - - - } - - - - - - unnamed-namespace-definition - - - - - - inline - - - - - namespace - - - { - - - namespace-body - - - } - - - - - diff --git a/shared/bgf/csharp-ecma-334-1.bgf b/shared/bgf/csharp-ecma-334-1.bgf new file mode 100644 index 00000000..b888210c --- /dev/null +++ b/shared/bgf/csharp-ecma-334-1.bgf @@ -0,0 +1,6158 @@ + + + + + namespace-name + + namespace-or-type-name + + + + type-name + + namespace-or-type-name + + + + namespace-or-type-name + + + + identifier + + + + + namespace-or-type-name + + + . + + + identifier + + + + + + + + type + + + + value-type + + + reference-type + + + + + + value-type + + + + struct-type + + + enum-type + + + + + + struct-type + + + + type-name + + + simple-type + + + + + + simple-type + + + + numeric-type + + + bool + + + + + + numeric-type + + + + integral-type + + + floating-point-type + + + decimal + + + + + + integral-type + + + + sbyte + + + byte + + + short + + + ushort + + + int + + + uint + + + long + + + ulong + + + char + + + + + + floating-point-type + + + + float + + + double + + + + + + enum-type + + type-name + + + + reference-type + + + + class-type + + + interface-type + + + array-type + + + delegate-type + + + + + + class-type + + + + type-name + + + object + + + string + + + + + + interface-type + + type-name + + + + array-type + + + + non-array-type + + + rank-specifiers + + + + + + non-array-type + + type + + + + rank-specifiers + + + + rank-specifier + + + + + rank-specifiers + + + rank-specifier + + + + + + + + rank-specifier + + + + [ + + + + + dim-separators + + + + + ] + + + + + + dim-separators + + + + , + + + + + dim-separators + + + , + + + + + + + + delegate-type + + type-name + + + + variable-reference + + expression + + + + argument-list + + + + argument + + + + + argument-list + + + , + + + argument + + + + + + + + argument + + + + expression + + + + + ref + + + variable-reference + + + + + + + out + + + variable-reference + + + + + + + + primary-expression + + + + array-creation-expression + + + primary-no-array-creation-expression + + + + + + primary-no-array-creation-expression + + + + literal + + + simple-name + + + parenthesized-expression + + + member-access + + + invocation-expression + + + element-access + + + this-access + + + base-access + + + post-increment-expression + + + post-decrement-expression + + + object-creation-expression + + + delegate-creation-expression + + + typeof-expression + + + checked-expression + + + unchecked-expression + + + + + + simple-name + + identifier + + + + parenthesized-expression + + + + ( + + + expression + + + ) + + + + + + member-access + + + + + + primary-expression + + + . + + + identifier + + + + + + + predefined-type + + + . + + + identifier + + + + + + + + predefined-type + + + + bool + + + byte + + + char + + + decimal + + + double + + + float + + + int + + + long + + + object + + + sbyte + + + short + + + string + + + uint + + + ulong + + + ushort + + + + + + invocation-expression + + + + primary-expression + + + ( + + + + + argument-list + + + + + ) + + + + + + element-access + + + + primary-no-array-creation-expression + + + [ + + + expression-list + + + ] + + + + + + expression-list + + + + expression + + + + + expression-list + + + , + + + expression + + + + + + + + this-access + + this + + + + base-access + + + + + + base + + + . + + + identifier + + + + + + + base + + + [ + + + expression-list + + + ] + + + + + + + + post-increment-expression + + + + primary-expression + + + ++ + + + + + + post-decrement-expression + + + + primary-expression + + + -- + + + + + + object-creation-expression + + + + new + + + type + + + ( + + + + + argument-list + + + + + ) + + + + + + array-creation-expression + + + + + + new + + + non-array-type + + + [ + + + expression-list + + + ] + + + + + rank-specifiers + + + + + + + array-initializer + + + + + + + + + new + + + array-type + + + array-initializer + + + + + + + + delegate-creation-expression + + + + new + + + delegate-type + + + ( + + + expression + + + ) + + + + + + typeof-expression + + + + + + typeof + + + ( + + + type + + + ) + + + + + + + typeof + + + ( + + + void + + + ) + + + + + + + + checked-expression + + + + checked + + + ( + + + expression + + + ) + + + + + + unchecked-expression + + + + unchecked + + + ( + + + expression + + + ) + + + + + + unary-expression + + + + primary-expression + + + + + + + + + unary-expression + + + + + + + - + + + unary-expression + + + + + + + ! + + + unary-expression + + + + + + + ~ + + + unary-expression + + + + + + + * + + + unary-expression + + + + + pre-increment-expression + + + pre-decrement-expression + + + cast-expression + + + + + + pre-increment-expression + + + + ++ + + + unary-expression + + + + + + pre-decrement-expression + + + + -- + + + unary-expression + + + + + + cast-expression + + + + ( + + + type + + + ) + + + unary-expression + + + + + + multiplicative-expression + + + + unary-expression + + + + + multiplicative-expression + + + * + + + unary-expression + + + + + + + multiplicative-expression + + + / + + + unary-expression + + + + + + + multiplicative-expression + + + % + + + unary-expression + + + + + + + + additive-expression + + + + multiplicative-expression + + + + + additive-expression + + + + + + + multiplicative-expression + + + + + + + additive-expression + + + - + + + multiplicative-expression + + + + + + + + shift-expression + + + + additive-expression + + + + + shift-expression + + + << + + + additive-expression + + + + + + + shift-expression + + + >> + + + additive-expression + + + + + + + + relational-expression + + + + shift-expression + + + + + relational-expression + + + < + + + shift-expression + + + + + + + relational-expression + + + > + + + shift-expression + + + + + + + relational-expression + + + <= + + + shift-expression + + + + + + + relational-expression + + + >= + + + shift-expression + + + + + + + relational-expression + + + is + + + type + + + + + + + relational-expression + + + as + + + type + + + + + + + + equality-expression + + + + relational-expression + + + + + equality-expression + + + == + + + relational-expression + + + + + + + equality-expression + + + != + + + relational-expression + + + + + + + + and-expression + + + + equality-expression + + + + + and-expression + + + & + + + equality-expression + + + + + + + + exclusive-or-expression + + + + and-expression + + + + + exclusive-or-expression + + + ^ + + + and-expression + + + + + + + + inclusive-or-expression + + + + exclusive-or-expression + + + + + inclusive-or-expression + + + | + + + exclusive-or-expression + + + + + + + + conditional-and-expression + + + + inclusive-or-expression + + + + + conditional-and-expression + + + && + + + inclusive-or-expression + + + + + + + + conditional-or-expression + + + + conditional-and-expression + + + + + conditional-or-expression + + + || + + + conditional-and-expression + + + + + + + + conditional-expression + + + + conditional-or-expression + + + + + conditional-or-expression + + + ? + + + expression + + + : + + + expression + + + + + + + + assignment + + + + unary-expression + + + assignment-operator + + + expression + + + + + + assignment-operator + + + + = + + + += + + + -= + + + *= + + + /= + + + %= + + + &= + + + |= + + + ^= + + + <<= + + + >>= + + + + + + expression + + + + conditional-expression + + + assignment + + + + + + constant-expression + + expression + + + + boolean-expression + + expression + + + + statement + + + + labeled-statement + + + declaration-statement + + + embedded-statement + + + + + + embedded-statement + + + + block + + + empty-statement + + + expression-statement + + + selection-statement + + + iteration-statement + + + jump-statement + + + try-statement + + + checked-statement + + + unchecked-statement + + + lock-statement + + + using-statement + + + + + + block + + + + { + + + + + statement-list + + + + + } + + + + + + statement-list + + + + statement + + + + + statement-list + + + statement + + + + + + + + empty-statement + + ; + + + + labeled-statement + + + + identifier + + + : + + + statement + + + + + + declaration-statement + + + + + + local-variable-declaration + + + ; + + + + + + + local-constant-declaration + + + ; + + + + + + + + local-variable-declaration + + + + type + + + local-variable-declarators + + + + + + local-variable-declarators + + + + local-variable-declarator + + + + + local-variable-declarators + + + , + + + local-variable-declarator + + + + + + + + local-variable-declarator + + + + identifier + + + + + identifier + + + = + + + local-variable-initializer + + + + + + + + local-variable-initializer + + + + expression + + + array-initializer + + + + + + local-constant-declaration + + + + const + + + type + + + constant-declarators + + + + + + constant-declarators + + + + constant-declarator + + + + + constant-declarators + + + , + + + constant-declarator + + + + + + + + constant-declarator + + + + identifier + + + = + + + constant-expression + + + + + + expression-statement + + + + statement-expression + + + ; + + + + + + statement-expression + + + + invocation-expression + + + object-creation-expression + + + assignment + + + post-increment-expression + + + post-decrement-expression + + + pre-increment-expression + + + pre-decrement-expression + + + + + + selection-statement + + + + if-statement + + + switch-statement + + + + + + if-statement + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + else + + + embedded-statement + + + + + + + + switch-statement + + + + switch + + + ( + + + expression + + + ) + + + switch-block + + + + + + switch-block + + + + { + + + + + switch-sections + + + + + } + + + + + + switch-sections + + + + switch-section + + + + + switch-sections + + + switch-section + + + + + + + + switch-section + + + + switch-labels + + + statement-list + + + + + + switch-labels + + + + switch-label + + + + + switch-labels + + + switch-label + + + + + + + + switch-label + + + + + + case + + + constant-expression + + + : + + + + + + + default + + + : + + + + + + + + iteration-statement + + + + while-statement + + + do-statement + + + for-statement + + + foreach-statement + + + + + + while-statement + + + + while + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + do-statement + + + + do + + + embedded-statement + + + while + + + ( + + + boolean-expression + + + ) + + + ; + + + + + + for-statement + + + + for + + + ( + + + + + for-initializer + + + + + ; + + + + + for-condition + + + + + ; + + + + + for-iterator + + + + + ) + + + embedded-statement + + + + + + for-initializer + + + + local-variable-declaration + + + statement-expression-list + + + + + + for-condition + + boolean-expression + + + + for-iterator + + statement-expression-list + + + + statement-expression-list + + + + statement-expression + + + + + statement-expression-list + + + , + + + statement-expression + + + + + + + + foreach-statement + + + + foreach + + + ( + + + type + + + identifier + + + in + + + expression + + + ) + + + embedded-statement + + + + + + jump-statement + + + + break-statement + + + continue-statement + + + goto-statement + + + return-statement + + + throw-statement + + + + + + break-statement + + + + break + + + ; + + + + + + continue-statement + + + + continue + + + ; + + + + + + goto-statement + + + + + + goto + + + identifier + + + ; + + + + + + + goto + + + case + + + constant-expression + + + ; + + + + + + + goto + + + default + + + ; + + + + + + + + return-statement + + + + return + + + + + expression + + + + + ; + + + + + + throw-statement + + + + throw + + + + + expression + + + + + ; + + + + + + try-statement + + + + + + try + + + block + + + catch-clauses + + + + + + + try + + + block + + + finally-clause + + + + + + + try + + + block + + + catch-clauses + + + finally-clause + + + + + + + + catch-clauses + + + + + + specific-catch-clauses + + + + + general-catch-clause + + + + + + + + + + + specific-catch-clauses + + + + + general-catch-clause + + + + + + + + specific-catch-clauses + + + + specific-catch-clause + + + + + specific-catch-clauses + + + specific-catch-clause + + + + + + + + specific-catch-clause + + + + catch + + + ( + + + class-type + + + + + identifier + + + + + ) + + + block + + + + + + general-catch-clause + + + + catch + + + block + + + + + + finally-clause + + + + finally + + + block + + + + + + checked-statement + + + + checked + + + block + + + + + + unchecked-statement + + + + unchecked + + + block + + + + + + lock-statement + + + + lock + + + ( + + + expression + + + ) + + + embedded-statement + + + + + + using-statement + + + + using + + + ( + + + resource-acquisition + + + ) + + + embedded-statement + + + + + + resource-acquisition + + + + local-variable-declaration + + + expression + + + + + + compilation-unit + + + + + + using-directives + + + + + + + global-attributes + + + + + + + namespace-member-declarations + + + + + + + + namespace-declaration + + + + namespace + + + qualified-identifier + + + namespace-body + + + + + ; + + + + + + + + qualified-identifier + + + + identifier + + + + + qualified-identifier + + + . + + + identifier + + + + + + + + namespace-body + + + + { + + + + + using-directives + + + + + + + namespace-member-declarations + + + + + } + + + + + + using-directives + + + + using-directive + + + + + using-directives + + + using-directive + + + + + + + + using-directive + + + + using-alias-directive + + + using-namespace-directive + + + + + + using-alias-directive + + + + using + + + identifier + + + = + + + namespace-or-type-name + + + ; + + + + + + using-namespace-directive + + + + using + + + namespace-name + + + ; + + + + + + namespace-member-declarations + + + + namespace-member-declaration + + + + + namespace-member-declarations + + + namespace-member-declaration + + + + + + + + namespace-member-declaration + + + + namespace-declaration + + + type-declaration + + + + + + type-declaration + + + + class-declaration + + + struct-declaration + + + interface-declaration + + + enum-declaration + + + delegate-declaration + + + + + + class-declaration + + + + + + attributes + + + + + + + class-modifiers + + + + + class + + + identifier + + + + + class-base + + + + + class-body + + + + + ; + + + + + + + + class-modifiers + + + + class-modifier + + + + + class-modifiers + + + class-modifier + + + + + + + + class-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + abstract + + + sealed + + + + + + class-base + + + + + + : + + + class-type + + + + + + + : + + + interface-type-list + + + + + + + : + + + class-type + + + , + + + interface-type-list + + + + + + + + interface-type-list + + + + interface-type + + + + + interface-type-list + + + , + + + interface-type + + + + + + + + class-body + + + + { + + + + + class-member-declarations + + + + + } + + + + + + class-member-declarations + + + + class-member-declaration + + + + + class-member-declarations + + + class-member-declaration + + + + + + + + class-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + destructor-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + constant-declaration + + + + + + attributes + + + + + + + constant-modifiers + + + + + const + + + type + + + constant-declarators + + + ; + + + + + + constant-modifiers + + + + constant-modifier + + + + + constant-modifiers + + + constant-modifier + + + + + + + + constant-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + field-declaration + + + + + + attributes + + + + + + + field-modifiers + + + + + type + + + variable-declarators + + + ; + + + + + + field-modifiers + + + + field-modifier + + + + + field-modifiers + + + field-modifier + + + + + + + + field-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + readonly + + + volatile + + + + + + variable-declarators + + + + variable-declarator + + + + + variable-declarators + + + , + + + variable-declarator + + + + + + + + variable-declarator + + + + identifier + + + + + identifier + + + = + + + variable-initializer + + + + + + + + variable-initializer + + + + expression + + + array-initializer + + + + + + method-declaration + + + + method-header + + + method-body + + + + + + method-header + + + + + + attributes + + + + + + + method-modifiers + + + + + return-type + + + member-name + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + + method-modifiers + + + + method-modifier + + + + + method-modifiers + + + method-modifier + + + + + + + + method-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + return-type + + + + type + + + void + + + + + + member-name + + + + identifier + + + + + interface-type + + + . + + + identifier + + + + + + + + method-body + + + + block + + + ; + + + + + + formal-parameter-list + + + + fixed-parameters + + + + + fixed-parameters + + + , + + + parameter-array + + + + + parameter-array + + + + + + fixed-parameters + + + + fixed-parameter + + + + + fixed-parameters + + + , + + + fixed-parameter + + + + + + + + fixed-parameter + + + + + + attributes + + + + + + + parameter-modifier + + + + + type + + + identifier + + + + + + parameter-modifier + + + + ref + + + out + + + + + + parameter-array + + + + + + attributes + + + + + params + + + array-type + + + identifier + + + + + + property-declaration + + + + + + attributes + + + + + + + property-modifiers + + + + + type + + + member-name + + + { + + + accessor-declarations + + + } + + + + + + property-modifiers + + + + property-modifier + + + + + property-modifiers + + + property-modifier + + + + + + + + property-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + accessor-declarations + + + + + + get-accessor-declaration + + + + + set-accessor-declaration + + + + + + + + + set-accessor-declaration + + + + + get-accessor-declaration + + + + + + + + + + get-accessor-declaration + + + + + + attributes + + + + + get + + + accessor-body + + + + + + set-accessor-declaration + + + + + + attributes + + + + + set + + + accessor-body + + + + + + accessor-body + + + + block + + + ; + + + + + + event-declaration + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + variable-declarators + + + ; + + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + member-name + + + { + + + event-accessor-declarations + + + + + } + + + + + + event-modifiers + + + + event-modifier + + + + + event-modifiers + + + event-modifier + + + + + + + + event-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + event-accessor-declarations + + + + + + add-accessor-declaration + + + remove-accessor-declaration + + + + + + + remove-accessor-declaration + + + add-accessor-declaration + + + + + + + + add-accessor-declaration + + + + + + attributes + + + + + add + + + block + + + + + + remove-accessor-declaration + + + + + + attributes + + + + + remove + + + block + + + + + + indexer-declaration + + + + + + attributes + + + + + + + indexer-modifiers + + + + + indexer-declarator + + + { + + + accessor-declarations + + + } + + + + + + indexer-modifiers + + + + indexer-modifier + + + + + indexer-modifiers + + + indexer-modifier + + + + + + + + indexer-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + indexer-declarator + + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + type + + + interface-type + + + . + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + + operator-declaration + + + + + + attributes + + + + + operator-modifiers + + + operator-declarator + + + operator-body + + + + + + operator-modifiers + + + + operator-modifier + + + + + operator-modifiers + + + operator-modifier + + + + + + + + operator-modifier + + + + public + + + static + + + extern + + + + + + operator-declarator + + + + unary-operator-declarator + + + binary-operator-declarator + + + conversion-operator-declarator + + + + + + unary-operator-declarator + + + + type + + + operator + + + overloadable-unary-operator + + + ( + + + type + + + identifier + + + ) + + + + + + overloadable-unary-operator + + + + + + + + - + + + ! + + + ~ + + + ++ + + + -- + + + true + + + false + + + + + + binary-operator-declarator + + + + type + + + operator + + + overloadable-binary-operator + + + ( + + + type + + + identifier + + + , + + + type + + + identifier + + + ) + + + + + + overloadable-binary-operator + + + + + + + + - + + + * + + + / + + + % + + + & + + + | + + + ^ + + + << + + + >> + + + == + + + != + + + > + + + < + + + >= + + + <= + + + + + + conversion-operator-declarator + + + + + + implicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + explicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + + operator-body + + + + block + + + ; + + + + + + constructor-declaration + + + + + + attributes + + + + + + + constructor-modifiers + + + + + constructor-declarator + + + constructor-body + + + + + + constructor-modifiers + + + + constructor-modifier + + + + + constructor-modifiers + + + constructor-modifier + + + + + + + + constructor-modifier + + + + public + + + protected + + + internal + + + private + + + extern + + + + + + constructor-declarator + + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + constructor-initializer + + + + + + + + constructor-initializer + + + + + + : + + + base + + + ( + + + + + argument-list + + + + + ) + + + + + + + : + + + this + + + ( + + + + + argument-list + + + + + ) + + + + + + + + constructor-body + + + + block + + + ; + + + + + + static-constructor-declaration + + + + + + attributes + + + + + static-constructor-modifiers + + + identifier + + + ( + + + ) + + + static-constructor-body + + + + + + static-constructor-modifiers + + + + + + + + extern + + + + + static + + + + + + + static + + + + + extern + + + + + + + + + + static-constructor-body + + + + block + + + ; + + + + + + destructor-declaration + + + + + + attributes + + + + + + + extern + + + + + ~ + + + identifier + + + ( + + + ) + + + destructor-body + + + + + + destructor-body + + + + block + + + ; + + + + + + struct-declaration + + + + + + attributes + + + + + + + struct-modifiers + + + + + struct + + + identifier + + + + + struct-interfaces + + + + + struct-body + + + + + ; + + + + + + + + struct-modifiers + + + + struct-modifier + + + + + struct-modifiers + + + struct-modifier + + + + + + + + struct-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + struct-interfaces + + + + : + + + interface-type-list + + + + + + struct-body + + + + { + + + + + struct-member-declarations + + + + + } + + + + + + struct-member-declarations + + + + struct-member-declaration + + + + + struct-member-declarations + + + struct-member-declaration + + + + + + + + struct-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + array-initializer + + + + + + { + + + + + variable-initializer-list + + + + + } + + + + + + + { + + + variable-initializer-list + + + , + + + } + + + + + + + + variable-initializer-list + + + + variable-initializer + + + + + variable-initializer-list + + + , + + + variable-initializer + + + + + + + + interface-declaration + + + + + + + + attributes + + + + + + + interface-modifiers + + + + + interface + + + identifier + + + + + interface-base + + + + + interface-body + + + + + + + ; + + + + + + + + interface-modifiers + + + + interface-modifier + + + + + interface-modifiers + + + interface-modifier + + + + + + + + interface-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + interface-base + + + + : + + + interface-type-list + + + + + + interface-body + + + + { + + + + + interface-member-declarations + + + + + } + + + + + + interface-member-declarations + + + + interface-member-declaration + + + + + interface-member-declarations + + + interface-member-declaration + + + + + + + + interface-member-declaration + + + + interface-method-declaration + + + interface-property-declaration + + + interface-event-declaration + + + interface-indexer-declaration + + + + + + interface-method-declaration + + + + + + attributes + + + + + + + new + + + + + return-type + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + ; + + + + + + interface-property-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + identifier + + + { + + + interface-accessors + + + } + + + + + + interface-accessors + + + + + + + + attributes + + + + + get + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + get + + + ; + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + attributes + + + + + get + + + ; + + + + + + + + interface-event-declaration + + + + + + attributes + + + + + + + new + + + + + event + + + type + + + identifier + + + ; + + + + + + interface-indexer-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + { + + + interface-accessors + + + } + + + + + + enum-declaration + + + + + + attributes + + + + + + + enum-modifiers + + + + + enum + + + identifier + + + + + enum-base + + + + + enum-body + + + + + ; + + + + + + + + enum-base + + + + : + + + integral-type + + + + + + enum-body + + + + + + { + + + + + enum-member-declarations + + + + + } + + + + + + + { + + + enum-member-declarations + + + , + + + } + + + + + + + + enum-modifiers + + + + enum-modifier + + + + + enum-modifiers + + + enum-modifier + + + + + + + + enum-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + enum-member-declarations + + + + enum-member-declaration + + + + + enum-member-declarations + + + , + + + enum-member-declaration + + + + + + + + enum-member-declaration + + + + + + + + attributes + + + + + identifier + + + + + + + + + attributes + + + + + identifier + + + = + + + constant-expression + + + + + + + + delegate-declaration + + + + + + + + attributes + + + + + + + delegate-modifiers + + + + + delegate + + + type + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + ; + + + + + + delegate-modifiers + + + + delegate-modifier + + + + + delegate-modifiers + + + delegate-modifier + + + + + + + + delegate-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + global-attributes + + global-attribute-sections + + + + global-attribute-sections + + + + global-attribute-section + + + + + global-attribute-sections + + + global-attribute-section + + + + + + + + global-attribute-section + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + ] + + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + , + + + ] + + + + + + + + global-attribute-target-specifier + + + + global-attribute-target + + + : + + + + + + global-attribute-target + + assembly + + + + attributes + + attribute-sections + + + + attribute-sections + + + + attribute-section + + + + + attribute-sections + + + attribute-section + + + + + + + + attribute-section + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + ] + + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + , + + + ] + + + + + + + + attribute-target-specifier + + + + attribute-target + + + : + + + + + + attribute-target + + + + field + + + event + + + method + + + module + + + param + + + property + + + return + + + type + + + + + + attribute-list + + + + attribute + + + + + attribute-list + + + , + + + attribute + + + + + + + + attribute + + + + attribute-name + + + + + attribute-arguments + + + + + + + + attribute-name + + type-name + + + + attribute-arguments + + + + + + ( + + + + + positional-argument-list + + + + + ) + + + + + + + ( + + + positional-argument-list + + + , + + + named-argument-list + + + ) + + + + + + + ( + + + named-argument-list + + + ) + + + + + + + + positional-argument-list + + + + positional-argument + + + + + positional-argument-list + + + , + + + positional-argument + + + + + + + + positional-argument + + attribute-argument-expression + + + + named-argument-list + + + + named-argument + + + + + named-argument-list + + + , + + + named-argument + + + + + + + + named-argument + + + + identifier + + + = + + + attribute-argument-expression + + + + + + attribute-argument-expression + + expression + + + + keyword + + + + abstract + + + as + + + base + + + bool + + + break + + + byte + + + case + + + catch + + + char + + + checked + + + class + + + const + + + continue + + + decimal + + + default + + + delegate + + + do + + + double + + + else + + + enum + + + event + + + explicit + + + extern + + + false + + + finally + + + fixed + + + float + + + for + + + foreach + + + goto + + + if + + + implicit + + + in + + + int + + + interface + + + internal + + + is + + + lock + + + long + + + namespace + + + new + + + null + + + object + + + operator + + + out + + + override + + + params + + + private + + + protected + + + public + + + readonly + + + ref + + + return + + + sbyte + + + sealed + + + short + + + sizeof + + + stackalloc + + + static + + + string + + + struct + + + switch + + + this + + + throw + + + true + + + try + + + typeof + + + uint + + + ulong + + + unchecked + + + unsafe + + + ushort + + + using + + + virtual + + + void + + + while + + + assembly + + + remove + + + get + + + set + + + field + + + method + + + module + + + param + + + property + + + add + + + volatile + + + + + \ No newline at end of file diff --git a/shared/bgf/csharp-ecma-334-2.bgf b/shared/bgf/csharp-ecma-334-2.bgf new file mode 100644 index 00000000..9b1b7696 --- /dev/null +++ b/shared/bgf/csharp-ecma-334-2.bgf @@ -0,0 +1,6137 @@ + + + + + compilation-unit + + + + + + using-directives + + + + + + + global-attributes + + + + + + + namespace-member-declarations + + + + + + + + namespace-name + + namespace-or-type-name + + + + type-name + + namespace-or-type-name + + + + namespace-or-type-name + + + + identifier + + + + + namespace-or-type-name + + + . + + + identifier + + + + + + + + type + + + + value-type + + + reference-type + + + + + + value-type + + + + struct-type + + + enum-type + + + + + + struct-type + + + + type-name + + + simple-type + + + + + + simple-type + + + + numeric-type + + + bool + + + + + + numeric-type + + + + integral-type + + + floating-point-type + + + decimal + + + + + + integral-type + + + + sbyte + + + byte + + + short + + + ushort + + + int + + + uint + + + long + + + ulong + + + char + + + + + + floating-point-type + + + + float + + + double + + + + + + enum-type + + type-name + + + + reference-type + + + + class-type + + + interface-type + + + array-type + + + delegate-type + + + + + + class-type + + + + type-name + + + object + + + string + + + + + + interface-type + + type-name + + + + array-type + + + + non-array-type + + + rank-specifiers + + + + + + non-array-type + + type + + + + rank-specifiers + + + + rank-specifier + + + + + rank-specifiers + + + rank-specifier + + + + + + + + rank-specifier + + + + [ + + + + + dim-separators + + + + + ] + + + + + + dim-separators + + + + , + + + + + dim-separators + + + , + + + + + + + + delegate-type + + type-name + + + + variable-reference + + expression + + + + argument-list + + + + argument + + + + + argument-list + + + , + + + argument + + + + + + + + argument + + + + expression + + + + + ref + + + variable-reference + + + + + + + out + + + variable-reference + + + + + + + + primary-expression + + + + array-creation-expression + + + primary-no-array-creation-expression + + + + + + primary-no-array-creation-expression + + + + literal + + + simple-name + + + parenthesized-expression + + + member-access + + + invocation-expression + + + element-access + + + this-access + + + base-access + + + post-increment-expression + + + post-decrement-expression + + + object-creation-expression + + + delegate-creation-expression + + + typeof-expression + + + checked-expression + + + unchecked-expression + + + + + + simple-name + + identifier + + + + parenthesized-expression + + + + ( + + + expression + + + ) + + + + + + member-access + + + + + + primary-expression + + + . + + + identifier + + + + + + + predefined-type + + + . + + + identifier + + + + + + + + predefined-type + + + + bool + + + byte + + + char + + + decimal + + + double + + + float + + + int + + + long + + + object + + + sbyte + + + short + + + string + + + uint + + + ulong + + + ushort + + + + + + invocation-expression + + + + primary-expression + + + ( + + + + + argument-list + + + + + ) + + + + + + element-access + + + + primary-no-array-creation-expression + + + [ + + + expression-list + + + ] + + + + + + expression-list + + + + expression + + + + + expression-list + + + , + + + expression + + + + + + + + this-access + + this + + + + base-access + + + + + + base + + + . + + + identifier + + + + + + + base + + + [ + + + expression-list + + + ] + + + + + + + + post-increment-expression + + + + primary-expression + + + ++ + + + + + + post-decrement-expression + + + + primary-expression + + + -- + + + + + + object-creation-expression + + + + new + + + type + + + ( + + + + + argument-list + + + + + ) + + + + + + array-creation-expression + + + + + + new + + + non-array-type + + + [ + + + expression-list + + + ] + + + + + rank-specifiers + + + + + + + array-initializer + + + + + + + + + new + + + array-type + + + array-initializer + + + + + + + + delegate-creation-expression + + + + new + + + delegate-type + + + ( + + + expression + + + ) + + + + + + typeof-expression + + + + + + typeof + + + ( + + + type + + + ) + + + + + + + typeof + + + ( + + + void + + + ) + + + + + + + + checked-expression + + + + checked + + + ( + + + expression + + + ) + + + + + + unchecked-expression + + + + unchecked + + + ( + + + expression + + + ) + + + + + + unary-expression + + + + primary-expression + + + + + + + + + unary-expression + + + + + + + - + + + unary-expression + + + + + + + ! + + + unary-expression + + + + + + + ~ + + + unary-expression + + + + + pre-increment-expression + + + pre-decrement-expression + + + cast-expression + + + + + + pre-increment-expression + + + + ++ + + + unary-expression + + + + + + pre-decrement-expression + + + + -- + + + unary-expression + + + + + + cast-expression + + + + ( + + + type + + + ) + + + unary-expression + + + + + + multiplicative-expression + + + + unary-expression + + + + + multiplicative-expression + + + * + + + unary-expression + + + + + + + multiplicative-expression + + + / + + + unary-expression + + + + + + + multiplicative-expression + + + % + + + unary-expression + + + + + + + + additive-expression + + + + multiplicative-expression + + + + + additive-expression + + + + + + + multiplicative-expression + + + + + + + additive-expression + + + - + + + multiplicative-expression + + + + + + + + shift-expression + + + + additive-expression + + + + + shift-expression + + + << + + + additive-expression + + + + + + + shift-expression + + + >> + + + additive-expression + + + + + + + + relational-expression + + + + shift-expression + + + + + relational-expression + + + < + + + shift-expression + + + + + + + relational-expression + + + > + + + shift-expression + + + + + + + relational-expression + + + <= + + + shift-expression + + + + + + + relational-expression + + + >= + + + shift-expression + + + + + + + relational-expression + + + is + + + type + + + + + + + relational-expression + + + as + + + type + + + + + + + + equality-expression + + + + relational-expression + + + + + equality-expression + + + == + + + relational-expression + + + + + + + equality-expression + + + != + + + relational-expression + + + + + + + + and-expression + + + + equality-expression + + + + + and-expression + + + & + + + equality-expression + + + + + + + + exclusive-or-expression + + + + and-expression + + + + + exclusive-or-expression + + + ^ + + + and-expression + + + + + + + + inclusive-or-expression + + + + exclusive-or-expression + + + + + inclusive-or-expression + + + | + + + exclusive-or-expression + + + + + + + + conditional-and-expression + + + + inclusive-or-expression + + + + + conditional-and-expression + + + && + + + inclusive-or-expression + + + + + + + + conditional-or-expression + + + + conditional-and-expression + + + + + conditional-or-expression + + + || + + + conditional-and-expression + + + + + + + + conditional-expression + + + + conditional-or-expression + + + + + conditional-or-expression + + + ? + + + expression + + + : + + + expression + + + + + + + + assignment + + + + unary-expression + + + assignment-operator + + + expression + + + + + + assignment-operator + + + + = + + + += + + + -= + + + *= + + + /= + + + %= + + + &= + + + |= + + + ^= + + + <<= + + + >>= + + + + + + expression + + + + conditional-expression + + + assignment + + + + + + constant-expression + + expression + + + + boolean-expression + + expression + + + + statement + + + + labeled-statement + + + declaration-statement + + + embedded-statement + + + + + + embedded-statement + + + + block + + + empty-statement + + + expression-statement + + + selection-statement + + + iteration-statement + + + jump-statement + + + try-statement + + + checked-statement + + + unchecked-statement + + + lock-statement + + + using-statement + + + + + + block + + + + { + + + + + statement-list + + + + + } + + + + + + statement-list + + + + statement + + + + + statement-list + + + statement + + + + + + + + empty-statement + + ; + + + + labeled-statement + + + + identifier + + + : + + + statement + + + + + + declaration-statement + + + + + + local-variable-declaration + + + ; + + + + + + + local-constant-declaration + + + ; + + + + + + + + local-variable-declaration + + + + type + + + local-variable-declarators + + + + + + local-variable-declarators + + + + local-variable-declarator + + + + + local-variable-declarators + + + , + + + local-variable-declarator + + + + + + + + local-variable-declarator + + + + identifier + + + + + identifier + + + = + + + local-variable-initializer + + + + + + + + local-variable-initializer + + + + expression + + + array-initializer + + + + + + local-constant-declaration + + + + const + + + type + + + constant-declarators + + + + + + constant-declarators + + + + constant-declarator + + + + + constant-declarators + + + , + + + constant-declarator + + + + + + + + constant-declarator + + + + identifier + + + = + + + constant-expression + + + + + + expression-statement + + + + statement-expression + + + ; + + + + + + statement-expression + + + + invocation-expression + + + object-creation-expression + + + assignment + + + post-increment-expression + + + post-decrement-expression + + + pre-increment-expression + + + pre-decrement-expression + + + + + + selection-statement + + + + if-statement + + + switch-statement + + + + + + if-statement + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + else + + + embedded-statement + + + + + + + + switch-statement + + + + switch + + + ( + + + expression + + + ) + + + switch-block + + + + + + switch-block + + + + { + + + + + switch-sections + + + + + } + + + + + + switch-sections + + + + switch-section + + + + + switch-sections + + + switch-section + + + + + + + + switch-section + + + + switch-labels + + + statement-list + + + + + + switch-labels + + + + switch-label + + + + + switch-labels + + + switch-label + + + + + + + + switch-label + + + + + + case + + + constant-expression + + + : + + + + + + + default + + + : + + + + + + + + iteration-statement + + + + while-statement + + + do-statement + + + for-statement + + + foreach-statement + + + + + + while-statement + + + + while + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + do-statement + + + + do + + + embedded-statement + + + while + + + ( + + + boolean-expression + + + ) + + + ; + + + + + + for-statement + + + + for + + + ( + + + + + for-initializer + + + + + ; + + + + + for-condition + + + + + ; + + + + + for-iterator + + + + + ) + + + embedded-statement + + + + + + for-initializer + + + + local-variable-declaration + + + statement-expression-list + + + + + + for-condition + + boolean-expression + + + + for-iterator + + statement-expression-list + + + + statement-expression-list + + + + statement-expression + + + + + statement-expression-list + + + , + + + statement-expression + + + + + + + + foreach-statement + + + + foreach + + + ( + + + type + + + identifier + + + in + + + expression + + + ) + + + embedded-statement + + + + + + jump-statement + + + + break-statement + + + continue-statement + + + goto-statement + + + return-statement + + + throw-statement + + + + + + break-statement + + + + break + + + ; + + + + + + continue-statement + + + + continue + + + ; + + + + + + goto-statement + + + + + + goto + + + identifier + + + ; + + + + + + + goto + + + case + + + constant-expression + + + ; + + + + + + + goto + + + default + + + ; + + + + + + + + return-statement + + + + return + + + + + expression + + + + + ; + + + + + + throw-statement + + + + throw + + + + + expression + + + + + ; + + + + + + try-statement + + + + + + try + + + block + + + catch-clauses + + + + + + + try + + + block + + + finally-clause + + + + + + + try + + + block + + + catch-clauses + + + finally-clause + + + + + + + + catch-clauses + + + + + + specific-catch-clauses + + + + + general-catch-clause + + + + + + + + + + + specific-catch-clauses + + + + + general-catch-clause + + + + + + + + specific-catch-clauses + + + + specific-catch-clause + + + + + specific-catch-clauses + + + specific-catch-clause + + + + + + + + specific-catch-clause + + + + catch + + + ( + + + class-type + + + + + identifier + + + + + ) + + + block + + + + + + general-catch-clause + + + + catch + + + block + + + + + + finally-clause + + + + finally + + + block + + + + + + checked-statement + + + + checked + + + block + + + + + + unchecked-statement + + + + unchecked + + + block + + + + + + lock-statement + + + + lock + + + ( + + + expression + + + ) + + + embedded-statement + + + + + + using-statement + + + + using + + + ( + + + resource-acquisition + + + ) + + + embedded-statement + + + + + + resource-acquisition + + + + local-variable-declaration + + + expression + + + + + + namespace-declaration + + + + namespace + + + qualified-identifier + + + namespace-body + + + + + ; + + + + + + + + qualified-identifier + + + + identifier + + + + + qualified-identifier + + + . + + + identifier + + + + + + + + namespace-body + + + + { + + + + + using-directives + + + + + + + namespace-member-declarations + + + + + } + + + + + + using-directives + + + + using-directive + + + + + using-directives + + + using-directive + + + + + + + + using-directive + + + + using-alias-directive + + + using-namespace-directive + + + + + + using-alias-directive + + + + using + + + identifier + + + = + + + namespace-or-type-name + + + ; + + + + + + using-namespace-directive + + + + using + + + namespace-name + + + ; + + + + + + namespace-member-declarations + + + + namespace-member-declaration + + + + + namespace-member-declarations + + + namespace-member-declaration + + + + + + + + namespace-member-declaration + + + + namespace-declaration + + + type-declaration + + + + + + type-declaration + + + + class-declaration + + + struct-declaration + + + interface-declaration + + + enum-declaration + + + delegate-declaration + + + + + + class-declaration + + + + + + attributes + + + + + + + class-modifiers + + + + + class + + + identifier + + + + + class-base + + + + + class-body + + + + + ; + + + + + + + + class-modifiers + + + + class-modifier + + + + + class-modifiers + + + class-modifier + + + + + + + + class-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + abstract + + + sealed + + + + + + class-base + + + + + + : + + + class-type + + + + + + + : + + + interface-type-list + + + + + + + : + + + class-type + + + , + + + interface-type-list + + + + + + + + interface-type-list + + + + interface-type + + + + + interface-type-list + + + , + + + interface-type + + + + + + + + class-body + + + + { + + + + + class-member-declarations + + + + + } + + + + + + class-member-declarations + + + + class-member-declaration + + + + + class-member-declarations + + + class-member-declaration + + + + + + + + class-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + destructor-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + constant-declaration + + + + + + attributes + + + + + + + constant-modifiers + + + + + const + + + type + + + constant-declarators + + + ; + + + + + + constant-modifiers + + + + constant-modifier + + + + + constant-modifiers + + + constant-modifier + + + + + + + + constant-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + field-declaration + + + + + + attributes + + + + + + + field-modifiers + + + + + type + + + variable-declarators + + + ; + + + + + + field-modifiers + + + + field-modifier + + + + + field-modifiers + + + field-modifier + + + + + + + + field-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + readonly + + + volatile + + + + + + variable-declarators + + + + variable-declarator + + + + + variable-declarators + + + , + + + variable-declarator + + + + + + + + variable-declarator + + + + identifier + + + + + identifier + + + = + + + variable-initializer + + + + + + + + variable-initializer + + + + expression + + + array-initializer + + + + + + method-declaration + + + + method-header + + + method-body + + + + + + method-header + + + + + + attributes + + + + + + + method-modifiers + + + + + return-type + + + member-name + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + + method-modifiers + + + + method-modifier + + + + + method-modifiers + + + method-modifier + + + + + + + + method-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + return-type + + + + type + + + void + + + + + + member-name + + + + identifier + + + + + interface-type + + + . + + + identifier + + + + + + + + method-body + + + + block + + + ; + + + + + + formal-parameter-list + + + + fixed-parameters + + + + + fixed-parameters + + + , + + + parameter-array + + + + + parameter-array + + + + + + fixed-parameters + + + + fixed-parameter + + + + + fixed-parameters + + + , + + + fixed-parameter + + + + + + + + fixed-parameter + + + + + + attributes + + + + + + + parameter-modifier + + + + + type + + + identifier + + + + + + parameter-modifier + + + + ref + + + out + + + + + + parameter-array + + + + + + attributes + + + + + params + + + array-type + + + identifier + + + + + + property-declaration + + + + + + attributes + + + + + + + property-modifiers + + + + + type + + + member-name + + + { + + + accessor-declarations + + + } + + + + + + property-modifiers + + + + property-modifier + + + + + property-modifiers + + + property-modifier + + + + + + + + property-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + accessor-declarations + + + + + + get-accessor-declaration + + + + + set-accessor-declaration + + + + + + + + + set-accessor-declaration + + + + + get-accessor-declaration + + + + + + + + + + get-accessor-declaration + + + + + + attributes + + + + + get + + + accessor-body + + + + + + set-accessor-declaration + + + + + + attributes + + + + + set + + + accessor-body + + + + + + accessor-body + + + + block + + + ; + + + + + + event-declaration + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + variable-declarators + + + ; + + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + member-name + + + { + + + event-accessor-declarations + + + } + + + + + + + + event-modifiers + + + + event-modifier + + + + + event-modifiers + + + event-modifier + + + + + + + + event-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + event-accessor-declarations + + + + + + add-accessor-declaration + + + remove-accessor-declaration + + + + + + + remove-accessor-declaration + + + add-accessor-declaration + + + + + + + + add-accessor-declaration + + + + + + attributes + + + + + add + + + block + + + + + + remove-accessor-declaration + + + + + + attributes + + + + + remove + + + block + + + + + + indexer-declaration + + + + + + attributes + + + + + + + indexer-modifiers + + + + + indexer-declarator + + + { + + + accessor-declarations + + + } + + + + + + indexer-modifiers + + + + indexer-modifier + + + + + indexer-modifiers + + + indexer-modifier + + + + + + + + indexer-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + indexer-declarator + + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + type + + + interface-type + + + . + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + + operator-declaration + + + + + + attributes + + + + + operator-modifiers + + + operator-declarator + + + operator-body + + + + + + operator-modifiers + + + + operator-modifier + + + + + operator-modifiers + + + operator-modifier + + + + + + + + operator-modifier + + + + public + + + static + + + extern + + + + + + operator-declarator + + + + unary-operator-declarator + + + binary-operator-declarator + + + conversion-operator-declarator + + + + + + unary-operator-declarator + + + + type + + + operator + + + overloadable-unary-operator + + + ( + + + type + + + identifier + + + ) + + + + + + overloadable-unary-operator + + + + + + + + - + + + ! + + + ~ + + + ++ + + + -- + + + true + + + false + + + + + + binary-operator-declarator + + + + type + + + operator + + + overloadable-binary-operator + + + ( + + + type + + + identifier + + + , + + + type + + + identifier + + + ) + + + + + + overloadable-binary-operator + + + + + + + + - + + + * + + + / + + + % + + + & + + + | + + + ^ + + + << + + + >> + + + == + + + != + + + > + + + < + + + >= + + + <= + + + + + + conversion-operator-declarator + + + + + + implicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + explicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + + operator-body + + + + block + + + ; + + + + + + constructor-declaration + + + + + + attributes + + + + + + + constructor-modifiers + + + + + constructor-declarator + + + constructor-body + + + + + + constructor-modifiers + + + + constructor-modifier + + + + + constructor-modifiers + + + constructor-modifier + + + + + + + + constructor-modifier + + + + public + + + protected + + + internal + + + private + + + extern + + + + + + constructor-declarator + + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + constructor-initializer + + + + + + + + constructor-initializer + + + + + + : + + + base + + + ( + + + + + argument-list + + + + + ) + + + + + + + : + + + this + + + ( + + + + + argument-list + + + + + ) + + + + + + + + constructor-body + + + + block + + + ; + + + + + + static-constructor-declaration + + + + + + attributes + + + + + static-constructor-modifiers + + + identifier + + + ( + + + ) + + + static-constructor-body + + + + + + static-constructor-modifiers + + + + + + + + extern + + + + + static + + + + + + + static + + + + + extern + + + + + + + + + + static-constructor-body + + + + block + + + ; + + + + + + destructor-declaration + + + + + + attributes + + + + + + + extern + + + + + ~ + + + identifier + + + ( + + + ) + + + destructor-body + + + + + + destructor-body + + + + block + + + ; + + + + + + struct-declaration + + + + + + attributes + + + + + + + struct-modifiers + + + + + struct + + + identifier + + + + + struct-interfaces + + + + + struct-body + + + + + ; + + + + + + + + struct-modifiers + + + + struct-modifier + + + + + struct-modifiers + + + struct-modifier + + + + + + + + struct-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + struct-interfaces + + + + : + + + interface-type-list + + + + + + struct-body + + + + { + + + + + struct-member-declarations + + + + + } + + + + + + struct-member-declarations + + + + struct-member-declaration + + + + + struct-member-declarations + + + struct-member-declaration + + + + + + + + struct-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + array-initializer + + + + + + { + + + + + variable-initializer-list + + + + + } + + + + + + + { + + + variable-initializer-list + + + , + + + } + + + + + + + + variable-initializer-list + + + + variable-initializer + + + + + variable-initializer-list + + + , + + + variable-initializer + + + + + + + + interface-declaration + + + + + + attributes + + + + + + + interface-modifiers + + + + + interface + + + identifier + + + + + interface-base + + + + + interface-body + + + + + ; + + + + + + + + interface-modifiers + + + + interface-modifier + + + + + interface-modifiers + + + interface-modifier + + + + + + + + interface-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + interface-base + + + + : + + + interface-type-list + + + + + + interface-body + + + + { + + + + + interface-member-declarations + + + + + } + + + + + + interface-member-declarations + + + + interface-member-declaration + + + + + interface-member-declarations + + + interface-member-declaration + + + + + + + + interface-member-declaration + + + + interface-method-declaration + + + interface-property-declaration + + + interface-event-declaration + + + interface-indexer-declaration + + + + + + interface-method-declaration + + + + + + attributes + + + + + + + new + + + + + return-type + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + ; + + + + + + interface-property-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + identifier + + + { + + + interface-accessors + + + } + + + + + + interface-accessors + + + + + + + + attributes + + + + + get + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + get + + + ; + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + attributes + + + + + get + + + ; + + + + + + + + interface-event-declaration + + + + + + attributes + + + + + + + new + + + + + event + + + type + + + identifier + + + ; + + + + + + interface-indexer-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + { + + + interface-accessors + + + } + + + + + + enum-declaration + + + + + + attributes + + + + + + + enum-modifiers + + + + + enum + + + identifier + + + + + enum-base + + + + + enum-body + + + + + ; + + + + + + + + enum-base + + + + : + + + integral-type + + + + + + enum-body + + + + + + { + + + + + enum-member-declarations + + + + + } + + + + + + + { + + + enum-member-declarations + + + , + + + } + + + + + + + + enum-modifiers + + + + enum-modifier + + + + + enum-modifiers + + + enum-modifier + + + + + + + + enum-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + enum-member-declarations + + + + enum-member-declaration + + + + + enum-member-declarations + + + , + + + enum-member-declaration + + + + + + + + enum-member-declaration + + + + + + + + attributes + + + + + identifier + + + + + + + + + attributes + + + + + identifier + + + = + + + constant-expression + + + + + + + + delegate-declaration + + + + + + attributes + + + + + + + delegate-modifiers + + + + + delegate + + + type + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + ; + + + + + + delegate-modifiers + + + + delegate-modifier + + + + + delegate-modifiers + + + delegate-modifier + + + + + + + + delegate-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + global-attributes + + global-attribute-sections + + + + global-attribute-sections + + + + global-attribute-section + + + + + global-attribute-sections + + + global-attribute-section + + + + + + + + global-attribute-section + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + ] + + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + , + + + ] + + + + + + + + global-attribute-target-specifier + + + + global-attribute-target + + + : + + + + + + global-attribute-target + + assembly + + + + attributes + + attribute-sections + + + + attribute-sections + + + + attribute-section + + + + + attribute-sections + + + attribute-section + + + + + + + + attribute-section + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + ] + + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + , + + + ] + + + + + + + + attribute-target-specifier + + + + attribute-target + + + : + + + + + + attribute-target + + + + field + + + event + + + method + + + param + + + property + + + return + + + type + + + + + + attribute-list + + + + attribute + + + + + attribute-list + + + , + + + attribute + + + + + + + + attribute + + + + attribute-name + + + + + attribute-arguments + + + + + + + + attribute-name + + type-name + + + + attribute-arguments + + + + + + ( + + + + + positional-argument-list + + + + + ) + + + + + + + ( + + + positional-argument-list + + + , + + + named-argument-list + + + ) + + + + + + + ( + + + named-argument-list + + + ) + + + + + + + + positional-argument-list + + + + positional-argument + + + + + positional-argument-list + + + , + + + positional-argument + + + + + + + + positional-argument + + attribute-argument-expression + + + + named-argument-list + + + + named-argument + + + + + named-argument-list + + + , + + + named-argument + + + + + + + + named-argument + + + + identifier + + + = + + + attribute-argument-expression + + + + + + attribute-argument-expression + + expression + + + + keyword + + + + abstract + + + as + + + base + + + bool + + + break + + + byte + + + case + + + catch + + + char + + + checked + + + class + + + const + + + continue + + + decimal + + + default + + + delegate + + + do + + + double + + + else + + + enum + + + event + + + explicit + + + extern + + + false + + + finally + + + fixed + + + float + + + for + + + foreach + + + goto + + + if + + + implicit + + + in + + + int + + + interface + + + internal + + + is + + + lock + + + long + + + namespace + + + new + + + null + + + object + + + operator + + + out + + + override + + + params + + + private + + + protected + + + public + + + readonly + + + ref + + + return + + + sbyte + + + sealed + + + short + + + sizeof + + + stackalloc + + + static + + + string + + + struct + + + switch + + + this + + + throw + + + true + + + try + + + typeof + + + uint + + + ulong + + + unchecked + + + unsafe + + + ushort + + + using + + + virtual + + + void + + + while + + + assembly + + + remove + + + get + + + set + + + field + + + method + + + module + + + param + + + property + + + add + + + volatile + + + + + \ No newline at end of file diff --git a/shared/bgf/csharp-ecma-334-3.bgf b/shared/bgf/csharp-ecma-334-3.bgf new file mode 100644 index 00000000..69fef87c --- /dev/null +++ b/shared/bgf/csharp-ecma-334-3.bgf @@ -0,0 +1,7040 @@ + + + + + compilation-unit + + + + + + extern-alias-directives + + + + + + + using-directives + + + + + + + global-attributes + + + + + + + namespace-member-declarations + + + + + + + + namespace-name + + namespace-or-type-name + + + + type-name + + namespace-or-type-name + + + + namespace-or-type-name + + + + + + identifier + + + + + type-argument-list + + + + + + + qualified-alias-member + + + + + namespace-or-type-name + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + + type + + + + value-type + + + reference-type + + + type-parameter + + + + + + value-type + + + + struct-type + + + enum-type + + + + + + struct-type + + + + type-name + + + simple-type + + + nullable-type + + + + + + simple-type + + + + numeric-type + + + bool + + + + + + numeric-type + + + + integral-type + + + floating-point-type + + + decimal + + + + + + integral-type + + + + sbyte + + + byte + + + short + + + ushort + + + int + + + uint + + + long + + + ulong + + + char + + + + + + floating-point-type + + + + float + + + double + + + + + + enum-type + + type-name + + + + nullable-type + + + + non-nullable-value-type + + + ? + + + + + + non-nullable-value-type + + + + enum-type + + + type-name + + + simple-type + + + + + + reference-type + + + + class-type + + + interface-type + + + array-type + + + delegate-type + + + + + + class-type + + + + type-name + + + object + + + string + + + + + + interface-type + + type-name + + + + array-type + + + + non-array-type + + + rank-specifiers + + + + + + non-array-type + + + + value-type + + + class-type + + + interface-type + + + delegate-type + + + type-parameter + + + + + + rank-specifiers + + + + rank-specifier + + + + + rank-specifiers + + + rank-specifier + + + + + + + + rank-specifier + + + + [ + + + + + dim-separators + + + + + ] + + + + + + dim-separators + + + + , + + + + + dim-separators + + + , + + + + + + + + delegate-type + + type-name + + + + variable-reference + + expression + + + + argument-list + + + + argument + + + + + argument-list + + + , + + + argument + + + + + + + + argument + + + + expression + + + + + ref + + + variable-reference + + + + + + + out + + + variable-reference + + + + + + + + primary-expression + + + + array-creation-expression + + + primary-no-array-creation-expression + + + + + + primary-no-array-creation-expression + + + + literal + + + simple-name + + + parenthesized-expression + + + member-access + + + invocation-expression + + + element-access + + + this-access + + + base-access + + + post-increment-expression + + + post-decrement-expression + + + object-creation-expression + + + delegate-creation-expression + + + typeof-expression + + + checked-expression + + + unchecked-expression + + + default-value-expression + + + anonymous-method-expression + + + + + + simple-name + + + + identifier + + + + + type-argument-list + + + + + + + + parenthesized-expression + + + + ( + + + expression + + + ) + + + + + + member-access + + + + + + primary-expression + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + predefined-type + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + qualified-alias-member + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + + predefined-type + + + + bool + + + byte + + + char + + + decimal + + + double + + + float + + + int + + + long + + + object + + + sbyte + + + short + + + string + + + uint + + + ulong + + + ushort + + + + + + invocation-expression + + + + primary-expression + + + ( + + + + + argument-list + + + + + ) + + + + + + element-access + + + + primary-no-array-creation-expression + + + [ + + + expression-list + + + ] + + + + + + expression-list + + + + expression + + + + + expression-list + + + , + + + expression + + + + + + + + this-access + + this + + + + base-access + + + + + + base + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + base + + + [ + + + expression-list + + + ] + + + + + + + + post-increment-expression + + + + primary-expression + + + ++ + + + + + + post-decrement-expression + + + + primary-expression + + + -- + + + + + + object-creation-expression + + + + new + + + type + + + ( + + + + + argument-list + + + + + ) + + + + + + array-creation-expression + + + + + + new + + + non-array-type + + + [ + + + expression-list + + + ] + + + + + rank-specifiers + + + + + + + array-initializer + + + + + + + + + new + + + array-type + + + array-initializer + + + + + + + + delegate-creation-expression + + + + new + + + delegate-type + + + ( + + + expression + + + ) + + + + + + typeof-expression + + + + + + typeof + + + ( + + + type + + + ) + + + + + + + typeof + + + ( + + + unbound-type-name + + + ) + + + + + + + typeof + + + ( + + + void + + + ) + + + + + + + + unbound-type-name + + + + + + identifier + + + + + generic-dimension-specifier + + + + + + + + + identifier + + + :: + + + identifier + + + + + generic-dimension-specifier + + + + + + + + + unbound-type-name + + + . + + + identifier + + + + + generic-dimension-specifier + + + + + + + + + + generic-dimension-specifier + + + + < + + + + + commas + + + + + > + + + + + + commas + + + + , + + + + + commas + + + , + + + + + + + + checked-expression + + + + checked + + + ( + + + expression + + + ) + + + + + + unchecked-expression + + + + unchecked + + + ( + + + expression + + + ) + + + + + + default-value-expression + + + + default + + + ( + + + type + + + ) + + + + + + anonymous-method-expression + + + + delegate + + + + + anonymous-method-signature + + + + + block + + + + + + anonymous-method-signature + + + + ( + + + + + anonymous-method-parameter-list + + + + + ) + + + + + + anonymous-method-parameter-list + + + + anonymous-method-parameter + + + + + anonymous-method-parameter-list + + + , + + + anonymous-method-parameter + + + + + + + + anonymous-method-parameter + + + + + + parameter-modifier + + + + + type + + + identifier + + + + + + unary-expression + + + + primary-expression + + + + + + + + + unary-expression + + + + + + + - + + + unary-expression + + + + + + + ! + + + unary-expression + + + + + + + ~ + + + unary-expression + + + + + pre-increment-expression + + + pre-decrement-expression + + + cast-expression + + + + + + pre-increment-expression + + + + ++ + + + unary-expression + + + + + + pre-decrement-expression + + + + -- + + + unary-expression + + + + + + cast-expression + + + + ( + + + type + + + ) + + + unary-expression + + + + + + multiplicative-expression + + + + unary-expression + + + + + multiplicative-expression + + + * + + + unary-expression + + + + + + + multiplicative-expression + + + / + + + unary-expression + + + + + + + multiplicative-expression + + + % + + + unary-expression + + + + + + + + additive-expression + + + + multiplicative-expression + + + + + additive-expression + + + + + + + multiplicative-expression + + + + + + + additive-expression + + + - + + + multiplicative-expression + + + + + + + + shift-expression + + + + additive-expression + + + + + shift-expression + + + << + + + additive-expression + + + + + + + shift-expression + + + right-shift + + + additive-expression + + + + + + + + relational-expression + + + + shift-expression + + + + + relational-expression + + + < + + + shift-expression + + + + + + + relational-expression + + + > + + + shift-expression + + + + + + + relational-expression + + + <= + + + shift-expression + + + + + + + relational-expression + + + >= + + + shift-expression + + + + + + + relational-expression + + + is + + + type + + + + + + + relational-expression + + + as + + + type + + + + + + + + equality-expression + + + + relational-expression + + + + + equality-expression + + + == + + + relational-expression + + + + + + + equality-expression + + + != + + + relational-expression + + + + + + + + and-expression + + + + equality-expression + + + + + and-expression + + + & + + + equality-expression + + + + + + + + exclusive-or-expression + + + + and-expression + + + + + exclusive-or-expression + + + ^ + + + and-expression + + + + + + + + inclusive-or-expression + + + + exclusive-or-expression + + + + + inclusive-or-expression + + + | + + + exclusive-or-expression + + + + + + + + conditional-and-expression + + + + inclusive-or-expression + + + + + conditional-and-expression + + + && + + + inclusive-or-expression + + + + + + + + conditional-or-expression + + + + conditional-and-expression + + + + + conditional-or-expression + + + || + + + conditional-and-expression + + + + + + + + null-coalescing-expression + + + + conditional-or-expression + + + + + conditional-or-expression + + + ?? + + + null-coalescing-expression + + + + + + + + conditional-expression + + + + null-coalescing-expression + + + + + null-coalescing-expression + + + ? + + + expression + + + : + + + expression + + + + + + + + assignment + + + + unary-expression + + + assignment-operator + + + expression + + + + + + assignment-operator + + + + = + + + += + + + -= + + + *= + + + /= + + + %= + + + &= + + + |= + + + ^= + + + <<= + + + right-shift-assignment + + + + + + expression + + + + conditional-expression + + + assignment + + + + + + constant-expression + + expression + + + + boolean-expression + + expression + + + + statement + + + + labeled-statement + + + declaration-statement + + + embedded-statement + + + + + + embedded-statement + + + + block + + + empty-statement + + + expression-statement + + + selection-statement + + + iteration-statement + + + jump-statement + + + try-statement + + + checked-statement + + + unchecked-statement + + + lock-statement + + + using-statement + + + yield-statement + + + + + + block + + + + { + + + + + statement-list + + + + + } + + + + + + statement-list + + + + statement + + + + + statement-list + + + statement + + + + + + + + empty-statement + + ; + + + + labeled-statement + + + + identifier + + + : + + + statement + + + + + + declaration-statement + + + + + + local-variable-declaration + + + ; + + + + + + + local-constant-declaration + + + ; + + + + + + + + local-variable-declaration + + + + type + + + local-variable-declarators + + + + + + local-variable-declarators + + + + local-variable-declarator + + + + + local-variable-declarators + + + , + + + local-variable-declarator + + + + + + + + local-variable-declarator + + + + identifier + + + + + identifier + + + = + + + local-variable-initializer + + + + + + + + local-variable-initializer + + + + expression + + + array-initializer + + + + + + local-constant-declaration + + + + const + + + type + + + constant-declarators + + + + + + constant-declarators + + + + constant-declarator + + + + + constant-declarators + + + , + + + constant-declarator + + + + + + + + constant-declarator + + + + identifier + + + = + + + constant-expression + + + + + + expression-statement + + + + statement-expression + + + ; + + + + + + statement-expression + + + + invocation-expression + + + object-creation-expression + + + assignment + + + post-increment-expression + + + post-decrement-expression + + + pre-increment-expression + + + pre-decrement-expression + + + + + + selection-statement + + + + if-statement + + + switch-statement + + + + + + if-statement + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + else + + + embedded-statement + + + + + + + + switch-statement + + + + switch + + + ( + + + expression + + + ) + + + switch-block + + + + + + switch-block + + + + { + + + + + switch-sections + + + + + } + + + + + + switch-sections + + + + switch-section + + + + + switch-sections + + + switch-section + + + + + + + + switch-section + + + + switch-labels + + + statement-list + + + + + + switch-labels + + + + switch-label + + + + + switch-labels + + + switch-label + + + + + + + + switch-label + + + + + + case + + + constant-expression + + + : + + + + + + + default + + + : + + + + + + + + iteration-statement + + + + while-statement + + + do-statement + + + for-statement + + + foreach-statement + + + + + + while-statement + + + + while + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + do-statement + + + + do + + + embedded-statement + + + while + + + ( + + + boolean-expression + + + ) + + + ; + + + + + + for-statement + + + + for + + + ( + + + + + for-initializer + + + + + ; + + + + + for-condition + + + + + ; + + + + + for-iterator + + + + + ) + + + embedded-statement + + + + + + for-initializer + + + + local-variable-declaration + + + statement-expression-list + + + + + + for-condition + + boolean-expression + + + + for-iterator + + statement-expression-list + + + + statement-expression-list + + + + statement-expression + + + + + statement-expression-list + + + , + + + statement-expression + + + + + + + + foreach-statement + + + + foreach + + + ( + + + type + + + identifier + + + in + + + expression + + + ) + + + embedded-statement + + + + + + jump-statement + + + + break-statement + + + continue-statement + + + goto-statement + + + return-statement + + + throw-statement + + + + + + break-statement + + + + break + + + ; + + + + + + continue-statement + + + + continue + + + ; + + + + + + goto-statement + + + + + + goto + + + identifier + + + ; + + + + + + + goto + + + case + + + constant-expression + + + ; + + + + + + + goto + + + default + + + ; + + + + + + + + return-statement + + + + return + + + + + expression + + + + + ; + + + + + + throw-statement + + + + throw + + + + + expression + + + + + ; + + + + + + try-statement + + + + + + try + + + block + + + catch-clauses + + + + + + + try + + + block + + + + + catch-clauses + + + + + finally-clause + + + + + + + + catch-clauses + + + + specific-catch-clauses + + + + + + + specific-catch-clauses + + + + + general-catch-clause + + + + + + + + specific-catch-clauses + + + + specific-catch-clause + + + + + specific-catch-clauses + + + specific-catch-clause + + + + + + + + specific-catch-clause + + + + catch + + + ( + + + class-type + + + + + identifier + + + + + ) + + + block + + + + + + general-catch-clause + + + + catch + + + block + + + + + + finally-clause + + + + finally + + + block + + + + + + checked-statement + + + + checked + + + block + + + + + + unchecked-statement + + + + unchecked + + + block + + + + + + lock-statement + + + + lock + + + ( + + + expression + + + ) + + + embedded-statement + + + + + + using-statement + + + + using + + + ( + + + resource-acquisition + + + ) + + + embedded-statement + + + + + + resource-acquisition + + + + local-variable-declaration + + + expression + + + + + + yield-statement + + + + + + yield + + + return + + + expression + + + ; + + + + + + + yield + + + break + + + ; + + + + + + + + namespace-declaration + + + + namespace + + + qualified-identifier + + + namespace-body + + + + + ; + + + + + + + + qualified-identifier + + + + identifier + + + + + qualified-identifier + + + . + + + identifier + + + + + + + + namespace-body + + + + { + + + + + extern-alias-directives + + + + + + + using-directives + + + + + + + namespace-member-declarations + + + + + } + + + + + + extern-alias-directives + + + + extern-alias-directive + + + + + extern-alias-directives + + + extern-alias-directive + + + + + + + + extern-alias-directive + + + + extern + + + alias + + + identifier + + + ; + + + + + + using-directives + + + + using-directive + + + + + using-directives + + + using-directive + + + + + + + + using-directive + + + + using-alias-directive + + + using-namespace-directive + + + + + + using-alias-directive + + + + using + + + identifier + + + = + + + namespace-or-type-name + + + ; + + + + + + using-namespace-directive + + + + using + + + namespace-name + + + ; + + + + + + namespace-member-declarations + + + + namespace-member-declaration + + + + + namespace-member-declarations + + + namespace-member-declaration + + + + + + + + namespace-member-declaration + + + + namespace-declaration + + + type-declaration + + + + + + type-declaration + + + + class-declaration + + + struct-declaration + + + interface-declaration + + + enum-declaration + + + delegate-declaration + + + + + + qualified-alias-member + + + + identifier + + + :: + + + identifier + + + + + type-argument-list + + + + + + + + class-declaration + + + + + + attributes + + + + + + + class-modifiers + + + + + + + partial + + + + + class + + + identifier + + + + + type-parameter-list + + + + + + + class-base + + + + + + + type-parameter-constraints-clauses + + + + + class-body + + + + + ; + + + + + + + + class-modifiers + + + + class-modifier + + + + + class-modifiers + + + class-modifier + + + + + + + + class-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + abstract + + + sealed + + + static + + + + + + class-base + + + + + + : + + + class-type + + + + + + + : + + + interface-type-list + + + + + + + : + + + class-type + + + , + + + interface-type-list + + + + + + + + interface-type-list + + + + interface-type + + + + + interface-type-list + + + , + + + interface-type + + + + + + + + class-body + + + + { + + + + + class-member-declarations + + + + + } + + + + + + class-member-declarations + + + + class-member-declaration + + + + + class-member-declarations + + + class-member-declaration + + + + + + + + class-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + finalizer-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + constant-declaration + + + + + + attributes + + + + + + + constant-modifiers + + + + + const + + + type + + + constant-declarators + + + ; + + + + + + constant-modifiers + + + + constant-modifier + + + + + constant-modifiers + + + constant-modifier + + + + + + + + constant-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + field-declaration + + + + + + attributes + + + + + + + field-modifiers + + + + + type + + + variable-declarators + + + ; + + + + + + field-modifiers + + + + field-modifier + + + + + field-modifiers + + + field-modifier + + + + + + + + field-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + readonly + + + volatile + + + + + + variable-declarators + + + + variable-declarator + + + + + variable-declarators + + + , + + + variable-declarator + + + + + + + + variable-declarator + + + + identifier + + + + + identifier + + + = + + + variable-initializer + + + + + + + + variable-initializer + + + + expression + + + array-initializer + + + + + + method-declaration + + + + method-header + + + method-body + + + + + + method-header + + + + + + attributes + + + + + + + method-modifiers + + + + + return-type + + + member-name + + + + + type-parameter-list + + + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + type-parameter-constraints-clauses + + + + + + + + method-modifiers + + + + method-modifier + + + + + method-modifiers + + + method-modifier + + + + + + + + method-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + return-type + + + + type + + + void + + + + + + member-name + + + + identifier + + + + + interface-type + + + . + + + identifier + + + + + + + + method-body + + + + block + + + ; + + + + + + formal-parameter-list + + + + fixed-parameters + + + + + fixed-parameters + + + , + + + parameter-array + + + + + parameter-array + + + + + + fixed-parameters + + + + fixed-parameter + + + + + fixed-parameters + + + , + + + fixed-parameter + + + + + + + + fixed-parameter + + + + + + attributes + + + + + + + parameter-modifier + + + + + type + + + identifier + + + + + + parameter-modifier + + + + ref + + + out + + + + + + parameter-array + + + + + + attributes + + + + + params + + + array-type + + + identifier + + + + + + property-declaration + + + + + + attributes + + + + + + + property-modifiers + + + + + type + + + member-name + + + { + + + accessor-declarations + + + } + + + + + + property-modifiers + + + + property-modifier + + + + + property-modifiers + + + property-modifier + + + + + + + + property-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + accessor-declarations + + + + + + get-accessor-declaration + + + + + set-accessor-declaration + + + + + + + + + set-accessor-declaration + + + + + get-accessor-declaration + + + + + + + + + + get-accessor-declaration + + + + + + attributes + + + + + + + accessor-modifier + + + + + get + + + accessor-body + + + + + + set-accessor-declaration + + + + + + attributes + + + + + + + accessor-modifier + + + + + set + + + accessor-body + + + + + + accessor-modifier + + + + protected + + + internal + + + private + + + + + protected + + + internal + + + + + + + internal + + + protected + + + + + + + + accessor-body + + + + block + + + ; + + + + + + event-declaration + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + variable-declarators + + + ; + + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + member-name + + + { + + + event-accessor-declarations + + + } + + + + + + + + event-modifiers + + + + event-modifier + + + + + event-modifiers + + + event-modifier + + + + + + + + event-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + event-accessor-declarations + + + + + + add-accessor-declaration + + + remove-accessor-declaration + + + + + + + remove-accessor-declaration + + + add-accessor-declaration + + + + + + + + add-accessor-declaration + + + + + + attributes + + + + + add + + + block + + + + + + remove-accessor-declaration + + + + + + attributes + + + + + remove + + + block + + + + + + indexer-declaration + + + + + + attributes + + + + + + + indexer-modifiers + + + + + indexer-declarator + + + { + + + accessor-declarations + + + } + + + + + + indexer-modifiers + + + + indexer-modifier + + + + + indexer-modifiers + + + indexer-modifier + + + + + + + + indexer-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + indexer-declarator + + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + type + + + interface-type + + + . + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + + operator-declaration + + + + + + attributes + + + + + operator-modifiers + + + operator-declarator + + + operator-body + + + + + + operator-modifiers + + + + operator-modifier + + + + + operator-modifiers + + + operator-modifier + + + + + + + + operator-modifier + + + + public + + + static + + + extern + + + + + + operator-declarator + + + + unary-operator-declarator + + + binary-operator-declarator + + + conversion-operator-declarator + + + + + + unary-operator-declarator + + + + type + + + operator + + + overloadable-unary-operator + + + ( + + + type + + + identifier + + + ) + + + + + + overloadable-unary-operator + + + + + + + + - + + + ! + + + ~ + + + ++ + + + -- + + + true + + + false + + + + + + binary-operator-declarator + + + + type + + + operator + + + overloadable-binary-operator + + + ( + + + type + + + identifier + + + , + + + type + + + identifier + + + ) + + + + + + overloadable-binary-operator + + + + + + + + - + + + * + + + / + + + % + + + & + + + | + + + ^ + + + << + + + right-shift + + + == + + + != + + + > + + + < + + + >= + + + <= + + + + + + conversion-operator-declarator + + + + + + implicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + explicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + + operator-body + + + + block + + + ; + + + + + + constructor-declaration + + + + + + attributes + + + + + + + constructor-modifiers + + + + + constructor-declarator + + + constructor-body + + + + + + constructor-modifiers + + + + constructor-modifier + + + + + constructor-modifiers + + + constructor-modifier + + + + + + + + constructor-modifier + + + + public + + + protected + + + internal + + + private + + + extern + + + + + + constructor-declarator + + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + constructor-initializer + + + + + + + + constructor-initializer + + + + + + : + + + base + + + ( + + + + + argument-list + + + + + ) + + + + + + + : + + + this + + + ( + + + + + argument-list + + + + + ) + + + + + + + + constructor-body + + + + block + + + ; + + + + + + static-constructor-declaration + + + + + + attributes + + + + + static-constructor-modifiers + + + identifier + + + ( + + + ) + + + static-constructor-body + + + + + + static-constructor-modifiers + + + + + + + + extern + + + + + static + + + + + + + static + + + + + extern + + + + + + + + + + static-constructor-body + + + + block + + + ; + + + + + + finalizer-declaration + + + + + + attributes + + + + + + + extern + + + + + ~ + + + identifier + + + ( + + + ) + + + finalizer-body + + + + + + finalizer-body + + + + block + + + ; + + + + + + struct-declaration + + + + + + attributes + + + + + + + struct-modifiers + + + + + + + partial + + + + + struct + + + identifier + + + + + type-parameter-list + + + + + + + struct-interfaces + + + + + + + type-parameter-constraints-clauses + + + + + struct-body + + + + + ; + + + + + + + + struct-modifiers + + + + struct-modifier + + + + + struct-modifiers + + + struct-modifier + + + + + + + + struct-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + struct-interfaces + + + + : + + + interface-type-list + + + + + + struct-body + + + + { + + + + + struct-member-declarations + + + + + } + + + + + + struct-member-declarations + + + + struct-member-declaration + + + + + struct-member-declarations + + + struct-member-declaration + + + + + + + + struct-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + array-initializer + + + + + + { + + + + + variable-initializer-list + + + + + } + + + + + + + { + + + variable-initializer-list + + + , + + + } + + + + + + + + variable-initializer-list + + + + variable-initializer + + + + + variable-initializer-list + + + , + + + variable-initializer + + + + + + + + interface-declaration + + + + + + attributes + + + + + + + interface-modifiers + + + + + + + partial + + + + + interface + + + identifier + + + + + type-parameter-list + + + + + + + interface-base + + + + + + + type-parameter-constraints-clauses + + + + + interface-body + + + + + ; + + + + + + + + interface-modifiers + + + + interface-modifier + + + + + interface-modifiers + + + interface-modifier + + + + + + + + interface-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + interface-base + + + + : + + + interface-type-list + + + + + + interface-body + + + + { + + + + + interface-member-declarations + + + + + } + + + + + + interface-member-declarations + + + + interface-member-declaration + + + + + interface-member-declarations + + + interface-member-declaration + + + + + + + + interface-member-declaration + + + + interface-method-declaration + + + interface-property-declaration + + + interface-event-declaration + + + interface-indexer-declaration + + + + + + interface-method-declaration + + + + + + attributes + + + + + + + new + + + + + return-type + + + identifier + + + + + type-parameter-list + + + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + type-parameter-constraints-clauses + + + + + ; + + + + + + interface-property-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + identifier + + + { + + + interface-accessors + + + } + + + + + + interface-accessors + + + + + + + + attributes + + + + + get + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + get + + + ; + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + attributes + + + + + get + + + ; + + + + + + + + interface-event-declaration + + + + + + attributes + + + + + + + new + + + + + event + + + type + + + identifier + + + ; + + + + + + interface-indexer-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + { + + + interface-accessors + + + } + + + + + + enum-declaration + + + + + + attributes + + + + + + + enum-modifiers + + + + + enum + + + identifier + + + + + enum-base + + + + + enum-body + + + + + ; + + + + + + + + enum-base + + + + : + + + integral-type + + + + + + enum-body + + + + + + { + + + + + enum-member-declarations + + + + + } + + + + + + + { + + + enum-member-declarations + + + , + + + } + + + + + + + + enum-modifiers + + + + enum-modifier + + + + + enum-modifiers + + + enum-modifier + + + + + + + + enum-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + enum-member-declarations + + + + enum-member-declaration + + + + + enum-member-declarations + + + , + + + enum-member-declaration + + + + + + + + enum-member-declaration + + + + + + + + attributes + + + + + identifier + + + + + + + + + attributes + + + + + identifier + + + = + + + constant-expression + + + + + + + + delegate-declaration + + + + + + attributes + + + + + + + delegate-modifiers + + + + + delegate + + + return-type + + + identifier + + + + + type-parameter-list + + + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + type-parameter-constraints-clauses + + + + + ; + + + + + + delegate-modifiers + + + + delegate-modifier + + + + + delegate-modifiers + + + delegate-modifier + + + + + + + + delegate-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + global-attributes + + global-attribute-sections + + + + global-attribute-sections + + + + global-attribute-section + + + + + global-attribute-sections + + + global-attribute-section + + + + + + + + global-attribute-section + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + ] + + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + , + + + ] + + + + + + + + global-attribute-target-specifier + + + + global-attribute-target + + + : + + + + + + global-attribute-target + + + + identifier + + + keyword + + + + + + attributes + + attribute-sections + + + + attribute-sections + + + + attribute-section + + + + + attribute-sections + + + attribute-section + + + + + + + + attribute-section + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + ] + + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + , + + + ] + + + + + + + + attribute-target-specifier + + + + attribute-target + + + : + + + + + + attribute-target + + + + identifier + + + keyword + + + + + + attribute-list + + + + attribute + + + + + attribute-list + + + , + + + attribute + + + + + + + + attribute + + + + attribute-name + + + + + attribute-arguments + + + + + + + + attribute-name + + type-name + + + + attribute-arguments + + + + + + ( + + + + + positional-argument-list + + + + + ) + + + + + + + ( + + + positional-argument-list + + + , + + + named-argument-list + + + ) + + + + + + + ( + + + named-argument-list + + + ) + + + + + + + + positional-argument-list + + + + positional-argument + + + + + positional-argument-list + + + , + + + positional-argument + + + + + + + + positional-argument + + attribute-argument-expression + + + + named-argument-list + + + + named-argument + + + + + named-argument-list + + + , + + + named-argument + + + + + + + + named-argument + + + + identifier + + + = + + + attribute-argument-expression + + + + + + attribute-argument-expression + + expression + + + + type-parameter-list + + + + < + + + type-parameters + + + > + + + + + + type-parameters + + + + + + + + attributes + + + + + type-parameter + + + + + + + type-parameters + + + , + + + + + attributes + + + + + type-parameter + + + + + + + + type-parameter + + identifier + + + + type-argument-list + + + + < + + + type-arguments + + + > + + + + + + type-arguments + + + + type-argument + + + + + type-arguments + + + , + + + type-argument + + + + + + + + type-argument + + type + + + + type-parameter-constraints-clauses + + + + type-parameter-constraints-clause + + + + + type-parameter-constraints-clauses + + + type-parameter-constraints-clause + + + + + + + + type-parameter-constraints-clause + + + + where + + + type-parameter + + + : + + + type-parameter-constraints + + + + + + type-parameter-constraints + + + + primary-constraint + + + secondary-constraints + + + constructor-constraint + + + + + primary-constraint + + + , + + + secondary-constraints + + + + + + + primary-constraint + + + , + + + constructor-constraint + + + + + + + secondary-constraints + + + , + + + constructor-constraint + + + + + + + primary-constraint + + + , + + + secondary-constraints + + + , + + + constructor-constraint + + + + + + + + primary-constraint + + + + class-type + + + class + + + struct + + + + + + secondary-constraints + + + + interface-type + + + type-parameter + + + + + secondary-constraints + + + , + + + interface-type + + + + + + + secondary-constraints + + + , + + + type-parameter + + + + + + + + constructor-constraint + + + + new + + + ( + + + ) + + + + + + keyword + + + + abstract + + + as + + + base + + + bool + + + break + + + byte + + + case + + + catch + + + char + + + checked + + + class + + + const + + + continue + + + decimal + + + default + + + delegate + + + do + + + double + + + else + + + enum + + + event + + + explicit + + + extern + + + false + + + finally + + + fixed + + + float + + + for + + + foreach + + + goto + + + if + + + implicit + + + in + + + int + + + interface + + + internal + + + is + + + lock + + + long + + + namespace + + + new + + + null + + + object + + + operator + + + out + + + override + + + params + + + private + + + protected + + + public + + + readonly + + + ref + + + return + + + sbyte + + + sealed + + + short + + + sizeof + + + stackalloc + + + static + + + string + + + struct + + + switch + + + this + + + throw + + + true + + + try + + + typeof + + + uint + + + ulong + + + unchecked + + + unsafe + + + ushort + + + using + + + virtual + + + void + + + volatile + + + while + + + get + + + set + + + yield + + + add + + + remove + + + alias + + + partial + + + where + + + + + \ No newline at end of file diff --git a/shared/bgf/csharp-ecma-334-4.bgf b/shared/bgf/csharp-ecma-334-4.bgf new file mode 100644 index 00000000..2f802843 --- /dev/null +++ b/shared/bgf/csharp-ecma-334-4.bgf @@ -0,0 +1 @@ +compilation-unitcompilation-unitextern-alias-directivesusing-directivesglobal-attributesnamespace-member-declarationsextern-alias-directivesextern-alias-directiveextern-alias-directivesextern-alias-directiveextern-alias-directiveexternaliasidentifier;using-directivesusing-directiveusing-directivesusing-directiveusing-directiveusing-alias-directiveusing-namespace-directiveusing-alias-directiveusingidentifier=namespace-or-type-name;namespace-or-type-nameidentifiertype-argument-listqualified-alias-membernamespace-or-type-name.identifiertype-argument-listtype-argument-list<type-arguments>type-argumentstype-argumenttype-arguments,type-argumenttype-argumenttypetypevalue-typereference-typetype-parametervalue-typestruct-typeenum-typestruct-typetype-namesimple-typenullable-typetype-namenamespace-or-type-namesimple-typenumeric-typeboolnumeric-typeintegral-typefloating-point-typedecimalintegral-typesbytebyteshortushortintuintlongulongcharfloating-point-typefloatdoublenullable-typenon-nullable-value-type?non-nullable-value-typeenum-typetype-namesimple-typeenum-typetype-namereference-typeclass-typeinterface-typearray-typedelegate-typeclass-typetype-nameobjectstringinterface-typetype-namearray-typenon-array-typerank-specifiersnon-array-typevalue-typeclass-typeinterface-typedelegate-typetype-parameterdelegate-typetype-nametype-parameteridentifierrank-specifiersrank-specifierrank-specifiersrank-specifierrank-specifier[dim-separators]dim-separators,dim-separators,qualified-alias-memberidentifier::identifiertype-argument-listusing-namespace-directiveusingnamespace-name;namespace-namenamespace-or-type-nameglobal-attributesglobal-attribute-sectionsglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-section[global-attribute-target-specifierattribute-list][global-attribute-target-specifierattribute-list,]global-attribute-target-specifierglobal-attribute-target:global-attribute-targetidentifierkeywordkeywordabstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinintinterfaceinternalislocklongnamespacenewnullobjectoperatoroutoverrideparamsprivateprotectedpublicreadonlyrefreturnsbytesealedshortsizeofstackallocstaticstringstructswitchthisthrowtruetrytypeofuintulonguncheckedunsafeushortusingvirtualvoidvolatilewhilegetsetyieldaddremovealiaspartialwhereattribute-listattributeattribute-list,attributeattributeattribute-nameattribute-argumentsattribute-nametype-nameattribute-arguments(positional-argument-list)(positional-argument-list,named-argument-list)(named-argument-list)positional-argument-listpositional-argumentpositional-argument-list,positional-argumentpositional-argumentattribute-argument-expressionattribute-argument-expressionexpressionexpressionconditional-expressionassignmentconditional-expressionnull-coalescing-expressionnull-coalescing-expression?expression:expressionnull-coalescing-expressionconditional-or-expressionconditional-or-expression??null-coalescing-expressionconditional-or-expressionconditional-and-expressionconditional-or-expression||conditional-and-expressionconditional-and-expressioninclusive-or-expressionconditional-and-expression&&inclusive-or-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressionand-expressionequality-expressionand-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionrelational-expressionistyperelational-expressionastypeshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expressionright-shiftadditive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressionunary-expressionmultiplicative-expression*unary-expressionmultiplicative-expression/unary-expressionmultiplicative-expression%unary-expressionunary-expressionprimary-expression+unary-expression-unary-expression!unary-expression~unary-expressionpre-increment-expressionpre-decrement-expressioncast-expressionprimary-expressionarray-creation-expressionprimary-no-array-creation-expressionarray-creation-expressionnewnon-array-type[expression-list]rank-specifiersarray-initializernewarray-typearray-initializerexpression-listexpressionexpression-list,expressionarray-initializer{variable-initializer-list}{variable-initializer-list,}variable-initializer-listvariable-initializervariable-initializer-list,variable-initializervariable-initializerexpressionarray-initializerprimary-no-array-creation-expressionliteralsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressiontypeof-expressionchecked-expressionunchecked-expressiondefault-value-expressionanonymous-method-expressionsimple-nameidentifiertype-argument-listparenthesized-expression(expression)member-accessprimary-expression.identifiertype-argument-listpredefined-type.identifiertype-argument-listqualified-alias-member.identifiertype-argument-listpredefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortinvocation-expressionprimary-expression(argument-list)argument-listargumentargument-list,argumentargumentexpressionrefvariable-referenceoutvariable-referencevariable-referenceexpressionelement-accessprimary-no-array-creation-expression[expression-list]this-accessthisbase-accessbase.identifiertype-argument-listbase[expression-list]post-increment-expressionprimary-expression++post-decrement-expressionprimary-expression--object-creation-expressionnewtype(argument-list)delegate-creation-expressionnewdelegate-type(expression)typeof-expressiontypeof(type)typeof(unbound-type-name)typeof(void)unbound-type-nameidentifiergeneric-dimension-specifieridentifier::identifiergeneric-dimension-specifierunbound-type-name.identifiergeneric-dimension-specifiergeneric-dimension-specifier<commas>commas,commas,checked-expressionchecked(expression)unchecked-expressionunchecked(expression)default-value-expressiondefault(type)anonymous-method-expressiondelegateanonymous-method-signatureblockanonymous-method-signature(anonymous-method-parameter-list)anonymous-method-parameter-listanonymous-method-parameteranonymous-method-parameter-list,anonymous-method-parameteranonymous-method-parameterparameter-modifiertypeidentifierparameter-modifierrefoutblock{statement-list}statement-liststatementstatement-liststatementstatementlabeled-statementdeclaration-statementembedded-statementlabeled-statementidentifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationtypelocal-variable-declaratorslocal-variable-declaratorslocal-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declaratoridentifieridentifier=local-variable-initializerlocal-variable-initializerexpressionarray-initializerlocal-constant-declarationconsttypeconstant-declaratorsconstant-declaratorsconstant-declaratorconstant-declarators,constant-declaratorconstant-declaratoridentifier=constant-expressionconstant-expressionexpressionembedded-statementblockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statementyield-statementempty-statement;expression-statementstatement-expression;statement-expressioninvocation-expressionobject-creation-expressionassignmentpost-increment-expressionpost-decrement-expressionpre-increment-expressionpre-decrement-expressionassignmentunary-expressionassignment-operatorexpressionassignment-operator=+=-=*=/=%=&=|=^=<<=right-shift-assignmentright-shift-assignment>>=pre-increment-expression++unary-expressionpre-decrement-expression--unary-expressionselection-statementif-statementswitch-statementif-statementif(boolean-expression)embedded-statementif(boolean-expression)embedded-statementelseembedded-statementboolean-expressionexpressionswitch-statementswitch(expression)switch-blockswitch-block{switch-sections}switch-sectionsswitch-sectionswitch-sectionsswitch-sectionswitch-sectionswitch-labelsstatement-listswitch-labelsswitch-labelswitch-labelsswitch-labelswitch-labelcaseconstant-expression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(boolean-expression)embedded-statementdo-statementdoembedded-statementwhile(boolean-expression);for-statementfor(for-initializer;for-condition;for-iterator)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-liststatement-expression-liststatement-expressionstatement-expression-list,statement-expressionfor-conditionboolean-expressionfor-iteratorstatement-expression-listforeach-statementforeach(typeidentifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotoidentifier;gotocaseconstant-expression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausestryblockcatch-clausesfinally-clausecatch-clausesspecific-catch-clausesspecific-catch-clausesgeneral-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausecatch(class-typeidentifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblockchecked-statementcheckedblockunchecked-statementuncheckedblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionyield-statementyieldreturnexpression;yieldbreak;cast-expression(type)unary-expressionright-shift>>named-argument-listnamed-argumentnamed-argument-list,named-argumentnamed-argumentidentifier=attribute-argument-expressionnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationnamespace-declarationtype-declarationnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifieridentifierqualified-identifier.identifiernamespace-body{extern-alias-directivesusing-directivesnamespace-member-declarations}type-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifierspartialclassidentifiertype-parameter-listclass-basetype-parameter-constraints-clausesclass-body;attributesattribute-sectionsattribute-sectionsattribute-sectionattribute-sectionsattribute-sectionattribute-section[attribute-target-specifierattribute-list][attribute-target-specifierattribute-list,]attribute-target-specifierattribute-target:attribute-targetidentifierkeywordclass-modifiersclass-modifierclass-modifiersclass-modifierclass-modifiernewpublicprotectedinternalprivateabstractsealedstatictype-parameter-list<type-parameters>type-parametersattributestype-parametertype-parameters,attributestype-parameterclass-base:class-type:interface-type-list:class-type,interface-type-listinterface-type-listinterface-typeinterface-type-list,interface-typetype-parameter-constraints-clausestype-parameter-constraints-clausetype-parameter-constraints-clausestype-parameter-constraints-clausetype-parameter-constraints-clausewheretype-parameter:type-parameter-constraintstype-parameter-constraintsprimary-constraintsecondary-constraintsconstructor-constraintprimary-constraint,secondary-constraintsprimary-constraint,constructor-constraintsecondary-constraints,constructor-constraintprimary-constraint,secondary-constraints,constructor-constraintprimary-constraintclass-typeclassstructsecondary-constraintsinterface-typetype-parametersecondary-constraints,interface-typesecondary-constraints,type-parameterconstructor-constraintnew()class-body{class-member-declarations}class-member-declarationsclass-member-declarationclass-member-declarationsclass-member-declarationclass-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationfinalizer-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifiersconsttypeconstant-declarators;constant-modifiersconstant-modifierconstant-modifiersconstant-modifierconstant-modifiernewpublicprotectedinternalprivatefield-declarationattributesfield-modifierstypevariable-declarators;field-modifiersfield-modifierfield-modifiersfield-modifierfield-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorsvariable-declaratorvariable-declarators,variable-declaratorvariable-declaratoridentifieridentifier=variable-initializermethod-declarationmethod-headermethod-bodymethod-headerattributesmethod-modifiersreturn-typemember-nametype-parameter-list(formal-parameter-list)type-parameter-constraints-clausesmethod-modifiersmethod-modifiermethod-modifiersmethod-modifiermethod-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternreturn-typetypevoidmember-nameidentifierinterface-type.identifierformal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameterfixed-parameters,fixed-parameterfixed-parameterattributesparameter-modifiertypeidentifierparameter-arrayattributesparamsarray-typeidentifiermethod-bodyblock;property-declarationattributesproperty-modifierstypemember-name{accessor-declarations}property-modifiersproperty-modifierproperty-modifiersproperty-modifierproperty-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesaccessor-modifiergetaccessor-bodyaccessor-modifierprotectedinternalprivateprotectedinternalinternalprotectedaccessor-bodyblock;set-accessor-declarationattributesaccessor-modifiersetaccessor-bodyevent-declarationattributesevent-modifierseventtypevariable-declarators;attributesevent-modifierseventtypemember-name{event-accessor-declarations}event-modifiersevent-modifierevent-modifiersevent-modifierevent-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifiersindexer-declarator{accessor-declarations}indexer-modifiersindexer-modifierindexer-modifiersindexer-modifierindexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typeinterface-type.this[formal-parameter-list]operator-declarationattributesoperator-modifiersoperator-declaratoroperator-bodyoperator-modifiersoperator-modifieroperator-modifiersoperator-modifieroperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typeidentifier)overloadable-unary-operator+-!~++--truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typeidentifier,typeidentifier)overloadable-binary-operator+-*/%&|^<<right-shift==!=><>=<=conversion-operator-declaratorimplicitoperatortype(typeidentifier)explicitoperatortype(typeidentifier)operator-bodyblock;constructor-declarationattributesconstructor-modifiersconstructor-declaratorconstructor-bodyconstructor-modifiersconstructor-modifierconstructor-modifiersconstructor-modifierconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratoridentifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)constructor-bodyblock;finalizer-declarationattributesextern~identifier()finalizer-bodyfinalizer-bodyblock;static-constructor-declarationattributesstatic-constructor-modifiersidentifier()static-constructor-bodystatic-constructor-modifiersexternstaticstaticexternstatic-constructor-bodyblock;struct-declarationattributesstruct-modifierspartialstructidentifiertype-parameter-liststruct-interfacestype-parameter-constraints-clausesstruct-body;struct-modifiersstruct-modifierstruct-modifiersstruct-modifierstruct-modifiernewpublicprotectedinternalprivatestruct-interfaces:interface-type-liststruct-body{struct-member-declarations}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationinterface-declarationattributesinterface-modifierspartialinterfaceidentifiertype-parameter-listinterface-basetype-parameter-constraints-clausesinterface-body;interface-modifiersinterface-modifierinterface-modifiersinterface-modifierinterface-modifiernewpublicprotectedinternalprivateinterface-base:interface-type-listinterface-body{interface-member-declarations}interface-member-declarationsinterface-member-declarationinterface-member-declarationsinterface-member-declarationinterface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewreturn-typeidentifiertype-parameter-list(formal-parameter-list)type-parameter-constraints-clauses;interface-property-declarationattributesnewtypeidentifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypeidentifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifiersenumidentifierenum-baseenum-body;enum-modifiersenum-modifierenum-modifiersenum-modifierenum-modifiernewpublicprotectedinternalprivateenum-base:integral-typeenum-body{enum-member-declarations}{enum-member-declarations,}enum-member-declarationsenum-member-declarationenum-member-declarations,enum-member-declarationenum-member-declarationattributesidentifierattributesidentifier=constant-expressiondelegate-declarationattributesdelegate-modifiersdelegatereturn-typeidentifiertype-parameter-list(formal-parameter-list)type-parameter-constraints-clauses;delegate-modifiersdelegate-modifierdelegate-modifiersdelegate-modifierdelegate-modifiernewpublicprotectedinternalprivate \ No newline at end of file diff --git a/shared/bgf/csharp-iso-23270-2003.bgf b/shared/bgf/csharp-iso-23270-2003.bgf new file mode 100644 index 00000000..18d1f387 --- /dev/null +++ b/shared/bgf/csharp-iso-23270-2003.bgf @@ -0,0 +1 @@ +compilation-unitusing-directivesglobal-attributesnamespace-member-declarationsnamespace-namenamespace-or-type-nametype-namenamespace-or-type-namenamespace-or-type-nameidentifiernamespace-or-type-name.identifiertypevalue-typereference-typevalue-typestruct-typeenum-typestruct-typetype-namesimple-typesimple-typenumeric-typeboolnumeric-typeintegral-typefloating-point-typedecimalintegral-typesbytebyteshortushortintuintlongulongcharfloating-point-typefloatdoubleenum-typetype-namereference-typeclass-typeinterface-typearray-typedelegate-typeclass-typetype-nameobjectstringinterface-typetype-namedelegate-typetype-namevariable-referenceexpressionargument-listargumentargument-list,argumentargumentexpressionrefvariable-referenceoutvariable-referenceprimary-expressionarray-creation-expressionprimary-no-array-creation-expressionprimary-no-array-creation-expressionliteralsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressiontypeof-expressionchecked-expressionunchecked-expressionsimple-nameidentifierparenthesized-expression(expression)member-accessprimary-expression.identifierpredefined-type.identifierpredefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortinvocation-expressionprimary-expression(argument-list)element-accessprimary-no-array-creation-expression[expression-list]expression-listexpressionexpression-list,expressionthis-accessthisbase-accessbase.identifierbase[expression-list]post-increment-expressionprimary-expression++post-decrement-expressionprimary-expression--object-creation-expressionnewtype(argument-list)array-creation-expressionnewnon-array-type[expression-list]rank-specifiersarray-initializernewarray-typearray-initializerdelegate-creation-expressionnewdelegate-type(expression)typeof-expressiontypeof(type)typeof(void)checked-expressionchecked(expression)unchecked-expressionunchecked(expression)unary-expressionprimary-expression+unary-expression-unary-expression!unary-expression~unary-expression*unary-expressionpre-increment-expressionpre-decrement-expressioncast-expressionpre-increment-expression++unary-expressionpre-decrement-expression--unary-expressioncast-expression(type)unary-expressionmultiplicative-expressionunary-expressionmultiplicative-expression*unary-expressionmultiplicative-expression/unary-expressionmultiplicative-expression%unary-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionrelational-expressionistyperelational-expressionastypeequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionand-expressionequality-expressionand-expression&equality-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionconditional-and-expressioninclusive-or-expressionconditional-and-expression&&inclusive-or-expressionconditional-or-expressionconditional-and-expressionconditional-or-expression||conditional-and-expressionconditional-expressionconditional-or-expressionconditional-or-expression?expression:expressionassignmentunary-expressionassignment-operatorexpressionassignment-operator=+=-=*=/=%=&=|=^=<<=>>=expressionconditional-expressionassignmentconstant-expressionexpressionboolean-expressionexpressionstatementlabeled-statementdeclaration-statementembedded-statementembedded-statementblockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statementblock{statement-list}statement-liststatementstatement-liststatementempty-statement;labeled-statementidentifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationtypelocal-variable-declaratorslocal-variable-declaratorslocal-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declaratoridentifieridentifier=local-variable-initializerlocal-variable-initializerexpressionarray-initializerlocal-constant-declarationconsttypeconstant-declaratorsconstant-declaratorsconstant-declaratorconstant-declarators,constant-declaratorconstant-declaratoridentifier=constant-expressionexpression-statementstatement-expression;statement-expressioninvocation-expressionobject-creation-expressionassignmentpost-increment-expressionpost-decrement-expressionpre-increment-expressionpre-decrement-expressionselection-statementif-statementswitch-statementif-statementif(boolean-expression)embedded-statementif(boolean-expression)embedded-statementelseembedded-statementswitch-statementswitch(expression)switch-blockswitch-block{switch-sections}switch-sectionsswitch-sectionswitch-sectionsswitch-sectionswitch-sectionswitch-labelsstatement-listswitch-labelsswitch-labelswitch-labelsswitch-labelswitch-labelcaseconstant-expression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(boolean-expression)embedded-statementdo-statementdoembedded-statementwhile(boolean-expression);for-statementfor(for-initializer;for-condition;for-iterator)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-listfor-conditionboolean-expressionfor-iteratorstatement-expression-liststatement-expression-liststatement-expressionstatement-expression-list,statement-expressionforeach-statementforeach(typeidentifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotoidentifier;gotocaseconstant-expression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausestryblockfinally-clausetryblockcatch-clausesfinally-clausecatch-clausesspecific-catch-clausesgeneral-catch-clausespecific-catch-clausesgeneral-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausecatch(class-typeidentifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblockchecked-statementcheckedblockunchecked-statementuncheckedblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifieridentifierqualified-identifier.identifiernamespace-body{using-directivesnamespace-member-declarations}using-directivesusing-directiveusing-directivesusing-directiveusing-directiveusing-alias-directiveusing-namespace-directiveusing-alias-directiveusingidentifier=namespace-or-type-name;using-namespace-directiveusingnamespace-name;namespace-member-declarationsnamespace-member-declarationnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationnamespace-declarationtype-declarationtype-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifiersclassidentifierclass-baseclass-body;class-modifiersclass-modifierclass-modifiersclass-modifierclass-modifiernewpublicprotectedinternalprivateabstractsealedclass-base:class-type:interface-type-list:class-type,interface-type-listinterface-type-listinterface-typeinterface-type-list,interface-typeclass-body{class-member-declarations}class-member-declarationsclass-member-declarationclass-member-declarationsclass-member-declarationclass-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationdestructor-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifiersconsttypeconstant-declarators;constant-modifiersconstant-modifierconstant-modifiersconstant-modifierconstant-modifiernewpublicprotectedinternalprivatefield-declarationattributesfield-modifierstypevariable-declarators;field-modifiersfield-modifierfield-modifiersfield-modifierfield-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorsvariable-declaratorvariable-declarators,variable-declaratorvariable-declaratoridentifieridentifier=variable-initializermethod-declarationmethod-headermethod-bodymethod-headerattributesmethod-modifiersreturn-typemember-name(formal-parameter-list)method-modifiersmethod-modifiermethod-modifiersmethod-modifiermethod-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternreturn-typetypevoidmember-nameidentifierinterface-type.identifiermethod-bodyblock;formal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameterfixed-parameters,fixed-parameterfixed-parameterattributesparameter-modifiertypeidentifierparameter-modifierrefoutparameter-arrayattributesparamsarray-typeidentifierproperty-declarationattributesproperty-modifierstypemember-name{accessor-declarations}property-modifiersproperty-modifierproperty-modifiersproperty-modifierproperty-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesgetaccessor-bodyset-accessor-declarationattributessetaccessor-bodyaccessor-bodyblock;event-declarationattributesevent-modifierseventtypevariable-declarators;attributesevent-modifierseventtypemember-name{event-accessor-declarations}event-modifiersevent-modifierevent-modifiersevent-modifierevent-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifiersindexer-declarator{accessor-declarations}indexer-modifiersindexer-modifierindexer-modifiersindexer-modifierindexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typeinterface-type.this[formal-parameter-list]operator-declarationattributesoperator-modifiersoperator-declaratoroperator-bodyoperator-modifiersoperator-modifieroperator-modifiersoperator-modifieroperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typeidentifier)overloadable-unary-operator+-!~++--truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typeidentifier,typeidentifier)overloadable-binary-operator+-*/%&|^<<>>==!=><>=<=conversion-operator-declaratorimplicitoperatortype(typeidentifier)explicitoperatortype(typeidentifier)operator-bodyblock;constructor-declarationattributesconstructor-modifiersconstructor-declaratorconstructor-bodyconstructor-modifiersconstructor-modifierconstructor-modifiersconstructor-modifierconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratoridentifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)constructor-bodyblock;static-constructor-declarationattributesstatic-constructor-modifiersidentifier()static-constructor-bodystatic-constructor-modifiersexternstaticstaticexternstatic-constructor-bodyblock;destructor-declarationattributesextern~identifier()destructor-bodydestructor-bodyblock;struct-declarationattributesstruct-modifiersstructidentifierstruct-interfacesstruct-body;struct-modifiersstruct-modifierstruct-modifiersstruct-modifierstruct-modifiernewpublicprotectedinternalprivatestruct-interfaces:interface-type-liststruct-body{struct-member-declarations}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationarray-typenon-array-typerank-specifiersnon-array-typetyperank-specifiersrank-specifierrank-specifiersrank-specifierrank-specifier[dim-separators]dim-separators,dim-separators,array-initializer{variable-initializer-list}{variable-initializer-list,}variable-initializer-listvariable-initializervariable-initializer-list,variable-initializervariable-initializerexpressionarray-initializerinterface-declarationattributesinterface-modifiersinterfaceidentifierinterface-baseinterface-body;interface-modifiersinterface-modifierinterface-modifiersinterface-modifierinterface-modifiernewpublicprotectedinternalprivateinterface-base:interface-type-listinterface-body{interface-member-declarations}interface-member-declarationsinterface-member-declarationinterface-member-declarationsinterface-member-declarationinterface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewreturn-typeidentifier(formal-parameter-list);interface-property-declarationattributesnewtypeidentifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypeidentifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifiersenumidentifierenum-baseenum-body;enum-base:integral-typeenum-body{enum-member-declarations}{enum-member-declarations,}enum-modifiersenum-modifierenum-modifiersenum-modifierenum-modifiernewpublicprotectedinternalprivateenum-member-declarationsenum-member-declarationenum-member-declarations,enum-member-declarationenum-member-declarationattributesidentifierattributesidentifier=constant-expressiondelegate-declarationattributesdelegate-modifiersdelegatetypeidentifier(formal-parameter-list);delegate-modifiersdelegate-modifierdelegate-modifiersdelegate-modifierdelegate-modifiernewpublicprotectedinternalprivateglobal-attributesglobal-attribute-sectionsglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-section[global-attribute-target-specifierattribute-list][global-attribute-target-specifierattribute-list,]global-attribute-target-specifierglobal-attribute-target:global-attribute-targetassemblyattributesattribute-sectionsattribute-sectionsattribute-sectionattribute-sectionsattribute-sectionattribute-section[attribute-target-specifierattribute-list][attribute-target-specifierattribute-list,]attribute-target-specifierattribute-target:attribute-targetfieldeventmethodmoduleparampropertyreturntypeattribute-listattributeattribute-list,attributeattributeattribute-nameattribute-argumentsattribute-nametype-nameattribute-arguments(positional-argument-list)(positional-argument-list,named-argument-list)(named-argument-list)positional-argument-listpositional-argumentpositional-argument-list,positional-argumentpositional-argumentattribute-argument-expressionnamed-argument-listnamed-argumentnamed-argument-list,named-argumentnamed-argumentidentifier=attribute-argument-expressionattribute-argument-expressionexpression \ No newline at end of file diff --git a/shared/bgf/csharp-iso-23270-2006.bgf b/shared/bgf/csharp-iso-23270-2006.bgf new file mode 100644 index 00000000..d05e1d4d --- /dev/null +++ b/shared/bgf/csharp-iso-23270-2006.bgf @@ -0,0 +1,7040 @@ + + + + + compilation-unit + + + + + + extern-alias-directives + + + + + + + using-directives + + + + + + + global-attributes + + + + + + + namespace-member-declarations + + + + + + + + namespace-name + + namespace-or-type-name + + + + type-name + + namespace-or-type-name + + + + namespace-or-type-name + + + + + + identifier + + + + + type-argument-list + + + + + + + qualified-alias-member + + + + + namespace-or-type-name + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + + type + + + + value-type + + + reference-type + + + type-parameter + + + + + + value-type + + + + struct-type + + + enum-type + + + + + + struct-type + + + + type-name + + + simple-type + + + nullable-type + + + + + + simple-type + + + + numeric-type + + + bool + + + + + + numeric-type + + + + integral-type + + + floating-point-type + + + decimal + + + + + + integral-type + + + + sbyte + + + byte + + + short + + + ushort + + + int + + + uint + + + long + + + ulong + + + char + + + + + + floating-point-type + + + + float + + + double + + + + + + enum-type + + type-name + + + + nullable-type + + + + non-nullable-value-type + + + ? + + + + + + non-nullable-value-type + + + + enum-type + + + type-name + + + simple-type + + + + + + reference-type + + + + class-type + + + interface-type + + + array-type + + + delegate-type + + + + + + class-type + + + + type-name + + + object + + + string + + + + + + interface-type + + type-name + + + + array-type + + + + non-array-type + + + rank-specifiers + + + + + + non-array-type + + + + value-type + + + class-type + + + interface-type + + + delegate-type + + + type-parameter + + + + + + rank-specifiers + + + + rank-specifier + + + + + rank-specifiers + + + rank-specifier + + + + + + + + rank-specifier + + + + [ + + + + + dim-separators + + + + + ] + + + + + + dim-separators + + + + , + + + + + dim-separators + + + , + + + + + + + + delegate-type + + type-name + + + + variable-reference + + expression + + + + argument-list + + + + argument + + + + + argument-list + + + , + + + argument + + + + + + + + argument + + + + expression + + + + + ref + + + variable-reference + + + + + + + out + + + variable-reference + + + + + + + + primary-expression + + + + array-creation-expression + + + primary-no-array-creation-expression + + + + + + primary-no-array-creation-expression + + + + literal + + + simple-name + + + parenthesized-expression + + + member-access + + + invocation-expression + + + element-access + + + this-access + + + base-access + + + post-increment-expression + + + post-decrement-expression + + + object-creation-expression + + + delegate-creation-expression + + + typeof-expression + + + checked-expression + + + unchecked-expression + + + default-value-expression + + + anonymous-method-expression + + + + + + simple-name + + + + identifier + + + + + type-argument-list + + + + + + + + parenthesized-expression + + + + ( + + + expression + + + ) + + + + + + member-access + + + + + + primary-expression + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + predefined-type + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + qualified-alias-member + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + + predefined-type + + + + bool + + + byte + + + char + + + decimal + + + double + + + float + + + int + + + long + + + object + + + sbyte + + + short + + + string + + + uint + + + ulong + + + ushort + + + + + + invocation-expression + + + + primary-expression + + + ( + + + + + argument-list + + + + + ) + + + + + + element-access + + + + primary-no-array-creation-expression + + + [ + + + expression-list + + + ] + + + + + + expression-list + + + + expression + + + + + expression-list + + + , + + + expression + + + + + + + + this-access + + this + + + + base-access + + + + + + base + + + . + + + identifier + + + + + type-argument-list + + + + + + + + + base + + + [ + + + expression-list + + + ] + + + + + + + + post-increment-expression + + + + primary-expression + + + ++ + + + + + + post-decrement-expression + + + + primary-expression + + + -- + + + + + + object-creation-expression + + + + new + + + type + + + ( + + + + + argument-list + + + + + ) + + + + + + array-creation-expression + + + + + + new + + + non-array-type + + + [ + + + expression-list + + + ] + + + + + rank-specifiers + + + + + + + array-initializer + + + + + + + + + new + + + array-type + + + array-initializer + + + + + + + + delegate-creation-expression + + + + new + + + delegate-type + + + ( + + + expression + + + ) + + + + + + typeof-expression + + + + + + typeof + + + ( + + + type + + + ) + + + + + + + typeof + + + ( + + + unbound-type-name + + + ) + + + + + + + typeof + + + ( + + + void + + + ) + + + + + + + + unbound-type-name + + + + + + identifier + + + + + generic-dimension-specifier + + + + + + + + + identifier + + + :: + + + identifier + + + + + generic-dimension-specifier + + + + + + + + + unbound-type-name + + + . + + + identifier + + + + + generic-dimension-specifier + + + + + + + + + + generic-dimension-specifier + + + + < + + + + + commas + + + + + > + + + + + + commas + + + + , + + + + + commas + + + , + + + + + + + + checked-expression + + + + checked + + + ( + + + expression + + + ) + + + + + + unchecked-expression + + + + unchecked + + + ( + + + expression + + + ) + + + + + + default-value-expression + + + + default + + + ( + + + type + + + ) + + + + + + anonymous-method-expression + + + + delegate + + + + + anonymous-method-signature + + + + + block + + + + + + anonymous-method-signature + + + + ( + + + + + anonymous-method-parameter-list + + + + + ) + + + + + + anonymous-method-parameter-list + + + + anonymous-method-parameter + + + + + anonymous-method-parameter-list + + + , + + + anonymous-method-parameter + + + + + + + + anonymous-method-parameter + + + + + + parameter-modifier + + + + + type + + + identifier + + + + + + unary-expression + + + + primary-expression + + + + + + + + + unary-expression + + + + + + + - + + + unary-expression + + + + + + + ! + + + unary-expression + + + + + + + ~ + + + unary-expression + + + + + pre-increment-expression + + + pre-decrement-expression + + + cast-expression + + + + + + pre-increment-expression + + + + ++ + + + unary-expression + + + + + + pre-decrement-expression + + + + -- + + + unary-expression + + + + + + cast-expression + + + + ( + + + type + + + ) + + + unary-expression + + + + + + multiplicative-expression + + + + unary-expression + + + + + multiplicative-expression + + + * + + + unary-expression + + + + + + + multiplicative-expression + + + / + + + unary-expression + + + + + + + multiplicative-expression + + + % + + + unary-expression + + + + + + + + additive-expression + + + + multiplicative-expression + + + + + additive-expression + + + + + + + multiplicative-expression + + + + + + + additive-expression + + + - + + + multiplicative-expression + + + + + + + + shift-expression + + + + additive-expression + + + + + shift-expression + + + << + + + additive-expression + + + + + + + shift-expression + + + right-shift + + + additive-expression + + + + + + + + relational-expression + + + + shift-expression + + + + + relational-expression + + + < + + + shift-expression + + + + + + + relational-expression + + + > + + + shift-expression + + + + + + + relational-expression + + + <= + + + shift-expression + + + + + + + relational-expression + + + >= + + + shift-expression + + + + + + + relational-expression + + + is + + + type + + + + + + + relational-expression + + + as + + + type + + + + + + + + equality-expression + + + + relational-expression + + + + + equality-expression + + + == + + + relational-expression + + + + + + + equality-expression + + + != + + + relational-expression + + + + + + + + and-expression + + + + equality-expression + + + + + and-expression + + + & + + + equality-expression + + + + + + + + exclusive-or-expression + + + + and-expression + + + + + exclusive-or-expression + + + ^ + + + and-expression + + + + + + + + inclusive-or-expression + + + + exclusive-or-expression + + + + + inclusive-or-expression + + + | + + + exclusive-or-expression + + + + + + + + conditional-and-expression + + + + inclusive-or-expression + + + + + conditional-and-expression + + + && + + + inclusive-or-expression + + + + + + + + conditional-or-expression + + + + conditional-and-expression + + + + + conditional-or-expression + + + || + + + conditional-and-expression + + + + + + + + null-coalescing-expression + + + + conditional-or-expression + + + + + conditional-or-expression + + + ?? + + + null-coalescing-expression + + + + + + + + conditional-expression + + + + null-coalescing-expression + + + + + null-coalescing-expression + + + ? + + + expression + + + : + + + expression + + + + + + + + assignment + + + + unary-expression + + + assignment-operator + + + expression + + + + + + assignment-operator + + + + = + + + += + + + -= + + + *= + + + /= + + + %= + + + &= + + + |= + + + ^= + + + <<= + + + right-shift-assignment + + + + + + expression + + + + conditional-expression + + + assignment + + + + + + constant-expression + + expression + + + + boolean-expression + + expression + + + + statement + + + + labeled-statement + + + declaration-statement + + + embedded-statement + + + + + + embedded-statement + + + + block + + + empty-statement + + + expression-statement + + + selection-statement + + + iteration-statement + + + jump-statement + + + try-statement + + + checked-statement + + + unchecked-statement + + + lock-statement + + + using-statement + + + yield-statement + + + + + + block + + + + { + + + + + statement-list + + + + + } + + + + + + statement-list + + + + statement + + + + + statement-list + + + statement + + + + + + + + empty-statement + + ; + + + + labeled-statement + + + + identifier + + + : + + + statement + + + + + + declaration-statement + + + + + + local-variable-declaration + + + ; + + + + + + + local-constant-declaration + + + ; + + + + + + + + local-variable-declaration + + + + type + + + local-variable-declarators + + + + + + local-variable-declarators + + + + local-variable-declarator + + + + + local-variable-declarators + + + , + + + local-variable-declarator + + + + + + + + local-variable-declarator + + + + identifier + + + + + identifier + + + = + + + local-variable-initializer + + + + + + + + local-variable-initializer + + + + expression + + + array-initializer + + + + + + local-constant-declaration + + + + const + + + type + + + constant-declarators + + + + + + constant-declarators + + + + constant-declarator + + + + + constant-declarators + + + , + + + constant-declarator + + + + + + + + constant-declarator + + + + identifier + + + = + + + constant-expression + + + + + + expression-statement + + + + statement-expression + + + ; + + + + + + statement-expression + + + + invocation-expression + + + object-creation-expression + + + assignment + + + post-increment-expression + + + post-decrement-expression + + + pre-increment-expression + + + pre-decrement-expression + + + + + + selection-statement + + + + if-statement + + + switch-statement + + + + + + if-statement + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + + if + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + else + + + embedded-statement + + + + + + + + switch-statement + + + + switch + + + ( + + + expression + + + ) + + + switch-block + + + + + + switch-block + + + + { + + + + + switch-sections + + + + + } + + + + + + switch-sections + + + + switch-section + + + + + switch-sections + + + switch-section + + + + + + + + switch-section + + + + switch-labels + + + statement-list + + + + + + switch-labels + + + + switch-label + + + + + switch-labels + + + switch-label + + + + + + + + switch-label + + + + + + case + + + constant-expression + + + : + + + + + + + default + + + : + + + + + + + + iteration-statement + + + + while-statement + + + do-statement + + + for-statement + + + foreach-statement + + + + + + while-statement + + + + while + + + ( + + + boolean-expression + + + ) + + + embedded-statement + + + + + + do-statement + + + + do + + + embedded-statement + + + while + + + ( + + + boolean-expression + + + ) + + + ; + + + + + + for-statement + + + + for + + + ( + + + + + for-initializer + + + + + ; + + + + + for-condition + + + + + ; + + + + + for-iterator + + + + + ) + + + embedded-statement + + + + + + for-initializer + + + + local-variable-declaration + + + statement-expression-list + + + + + + for-condition + + boolean-expression + + + + for-iterator + + statement-expression-list + + + + statement-expression-list + + + + statement-expression + + + + + statement-expression-list + + + , + + + statement-expression + + + + + + + + foreach-statement + + + + foreach + + + ( + + + type + + + identifier + + + in + + + expression + + + ) + + + embedded-statement + + + + + + jump-statement + + + + break-statement + + + continue-statement + + + goto-statement + + + return-statement + + + throw-statement + + + + + + break-statement + + + + break + + + ; + + + + + + continue-statement + + + + continue + + + ; + + + + + + goto-statement + + + + + + goto + + + identifier + + + ; + + + + + + + goto + + + case + + + constant-expression + + + ; + + + + + + + goto + + + default + + + ; + + + + + + + + return-statement + + + + return + + + + + expression + + + + + ; + + + + + + throw-statement + + + + throw + + + + + expression + + + + + ; + + + + + + try-statement + + + + + + try + + + block + + + catch-clauses + + + + + + + try + + + block + + + + + catch-clauses + + + + + finally-clause + + + + + + + + catch-clauses + + + + specific-catch-clauses + + + + + + + specific-catch-clauses + + + + + general-catch-clause + + + + + + + + specific-catch-clauses + + + + specific-catch-clause + + + + + specific-catch-clauses + + + specific-catch-clause + + + + + + + + specific-catch-clause + + + + catch + + + ( + + + class-type + + + + + identifier + + + + + ) + + + block + + + + + + general-catch-clause + + + + catch + + + block + + + + + + finally-clause + + + + finally + + + block + + + + + + checked-statement + + + + checked + + + block + + + + + + unchecked-statement + + + + unchecked + + + block + + + + + + lock-statement + + + + lock + + + ( + + + expression + + + ) + + + embedded-statement + + + + + + using-statement + + + + using + + + ( + + + resource-acquisition + + + ) + + + embedded-statement + + + + + + resource-acquisition + + + + local-variable-declaration + + + expression + + + + + + yield-statement + + + + + + yield + + + return + + + expression + + + ; + + + + + + + yield + + + break + + + ; + + + + + + + + namespace-declaration + + + + namespace + + + qualified-identifier + + + namespace-body + + + + + ; + + + + + + + + qualified-identifier + + + + identifier + + + + + qualified-identifier + + + . + + + identifier + + + + + + + + namespace-body + + + + { + + + + + extern-alias-directives + + + + + + + using-directives + + + + + + + namespace-member-declarations + + + + + } + + + + + + extern-alias-directives + + + + extern-alias-directive + + + + + extern-alias-directives + + + extern-alias-directive + + + + + + + + extern-alias-directive + + + + extern + + + alias + + + identifier + + + ; + + + + + + using-directives + + + + using-directive + + + + + using-directives + + + using-directive + + + + + + + + using-directive + + + + using-alias-directive + + + using-namespace-directive + + + + + + using-alias-directive + + + + using + + + identifier + + + = + + + namespace-or-type-name + + + ; + + + + + + using-namespace-directive + + + + using + + + namespace-name + + + ; + + + + + + namespace-member-declarations + + + + namespace-member-declaration + + + + + namespace-member-declarations + + + namespace-member-declaration + + + + + + + + namespace-member-declaration + + + + namespace-declaration + + + type-declaration + + + + + + type-declaration + + + + class-declaration + + + struct-declaration + + + interface-declaration + + + enum-declaration + + + delegate-declaration + + + + + + qualified-alias-member + + + + identifier + + + :: + + + identifier + + + + + type-argument-list + + + + + + + + class-declaration + + + + + + attributes + + + + + + + class-modifiers + + + + + + + partial + + + + + class + + + identifier + + + + + type-parameter-list + + + + + + + class-base + + + + + + + type-parameter-constraints-clauses + + + + + class-body + + + + + ; + + + + + + + + class-modifiers + + + + class-modifier + + + + + class-modifiers + + + class-modifier + + + + + + + + class-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + abstract + + + sealed + + + static + + + + + + class-base + + + + + + : + + + class-type + + + + + + + : + + + interface-type-list + + + + + + + : + + + class-type + + + , + + + interface-type-list + + + + + + + + interface-type-list + + + + interface-type + + + + + interface-type-list + + + , + + + interface-type + + + + + + + + class-body + + + + { + + + + + class-member-declarations + + + + + } + + + + + + class-member-declarations + + + + class-member-declaration + + + + + class-member-declarations + + + class-member-declaration + + + + + + + + class-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + finalizer-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + constant-declaration + + + + + + attributes + + + + + + + constant-modifiers + + + + + const + + + type + + + constant-declarators + + + ; + + + + + + constant-modifiers + + + + constant-modifier + + + + + constant-modifiers + + + constant-modifier + + + + + + + + constant-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + field-declaration + + + + + + attributes + + + + + + + field-modifiers + + + + + type + + + variable-declarators + + + ; + + + + + + field-modifiers + + + + field-modifier + + + + + field-modifiers + + + field-modifier + + + + + + + + field-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + readonly + + + volatile + + + + + + variable-declarators + + + + variable-declarator + + + + + variable-declarators + + + , + + + variable-declarator + + + + + + + + variable-declarator + + + + identifier + + + + + identifier + + + = + + + variable-initializer + + + + + + + + variable-initializer + + + + expression + + + array-initializer + + + + + + method-declaration + + + + method-header + + + method-body + + + + + + method-header + + + + + + attributes + + + + + + + method-modifiers + + + + + return-type + + + member-name + + + + + type-parameter-list + + + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + type-parameter-constraints-clauses + + + + + + + + method-modifiers + + + + method-modifier + + + + + method-modifiers + + + method-modifier + + + + + + + + method-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + return-type + + + + type + + + void + + + + + + member-name + + + + identifier + + + + + interface-type + + + . + + + identifier + + + + + + + + method-body + + + + block + + + ; + + + + + + formal-parameter-list + + + + fixed-parameters + + + + + fixed-parameters + + + , + + + parameter-array + + + + + parameter-array + + + + + + fixed-parameters + + + + fixed-parameter + + + + + fixed-parameters + + + , + + + fixed-parameter + + + + + + + + fixed-parameter + + + + + + attributes + + + + + + + parameter-modifier + + + + + type + + + identifier + + + + + + parameter-modifier + + + + ref + + + out + + + + + + parameter-array + + + + + + attributes + + + + + params + + + array-type + + + identifier + + + + + + property-declaration + + + + + + attributes + + + + + + + property-modifiers + + + + + type + + + member-name + + + { + + + accessor-declarations + + + } + + + + + + property-modifiers + + + + property-modifier + + + + + property-modifiers + + + property-modifier + + + + + + + + property-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + accessor-declarations + + + + + + get-accessor-declaration + + + + + set-accessor-declaration + + + + + + + + + set-accessor-declaration + + + + + get-accessor-declaration + + + + + + + + + + get-accessor-declaration + + + + + + attributes + + + + + + + accessor-modifier + + + + + get + + + accessor-body + + + + + + set-accessor-declaration + + + + + + attributes + + + + + + + accessor-modifier + + + + + set + + + accessor-body + + + + + + accessor-modifier + + + + protected + + + internal + + + private + + + + + protected + + + internal + + + + + + + internal + + + protected + + + + + + + + accessor-body + + + + block + + + ; + + + + + + event-declaration + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + variable-declarators + + + ; + + + + + + + + + attributes + + + + + + + event-modifiers + + + + + event + + + type + + + member-name + + + { + + + event-accessor-declarations + + + } + + + + + + + + event-modifiers + + + + event-modifier + + + + + event-modifiers + + + event-modifier + + + + + + + + event-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + static + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + event-accessor-declarations + + + + + + add-accessor-declaration + + + remove-accessor-declaration + + + + + + + remove-accessor-declaration + + + add-accessor-declaration + + + + + + + + add-accessor-declaration + + + + + + attributes + + + + + add + + + block + + + + + + remove-accessor-declaration + + + + + + attributes + + + + + remove + + + block + + + + + + indexer-declaration + + + + + + attributes + + + + + + + indexer-modifiers + + + + + indexer-declarator + + + { + + + accessor-declarations + + + } + + + + + + indexer-modifiers + + + + indexer-modifier + + + + + indexer-modifiers + + + indexer-modifier + + + + + + + + indexer-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + virtual + + + sealed + + + override + + + abstract + + + extern + + + + + + indexer-declarator + + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + type + + + interface-type + + + . + + + this + + + [ + + + formal-parameter-list + + + ] + + + + + + + + operator-declaration + + + + + + attributes + + + + + operator-modifiers + + + operator-declarator + + + operator-body + + + + + + operator-modifiers + + + + operator-modifier + + + + + operator-modifiers + + + operator-modifier + + + + + + + + operator-modifier + + + + public + + + static + + + extern + + + + + + operator-declarator + + + + unary-operator-declarator + + + binary-operator-declarator + + + conversion-operator-declarator + + + + + + unary-operator-declarator + + + + type + + + operator + + + overloadable-unary-operator + + + ( + + + type + + + identifier + + + ) + + + + + + overloadable-unary-operator + + + + + + + + - + + + ! + + + ~ + + + ++ + + + -- + + + true + + + false + + + + + + binary-operator-declarator + + + + type + + + operator + + + overloadable-binary-operator + + + ( + + + type + + + identifier + + + , + + + type + + + identifier + + + ) + + + + + + overloadable-binary-operator + + + + + + + + - + + + * + + + / + + + % + + + & + + + | + + + ^ + + + << + + + right-shift + + + == + + + != + + + > + + + < + + + >= + + + <= + + + + + + conversion-operator-declarator + + + + + + implicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + explicit + + + operator + + + type + + + ( + + + type + + + identifier + + + ) + + + + + + + + operator-body + + + + block + + + ; + + + + + + constructor-declaration + + + + + + attributes + + + + + + + constructor-modifiers + + + + + constructor-declarator + + + constructor-body + + + + + + constructor-modifiers + + + + constructor-modifier + + + + + constructor-modifiers + + + constructor-modifier + + + + + + + + constructor-modifier + + + + public + + + protected + + + internal + + + private + + + extern + + + + + + constructor-declarator + + + + identifier + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + constructor-initializer + + + + + + + + constructor-initializer + + + + + + : + + + base + + + ( + + + + + argument-list + + + + + ) + + + + + + + : + + + this + + + ( + + + + + argument-list + + + + + ) + + + + + + + + constructor-body + + + + block + + + ; + + + + + + static-constructor-declaration + + + + + + attributes + + + + + static-constructor-modifiers + + + identifier + + + ( + + + ) + + + static-constructor-body + + + + + + static-constructor-modifiers + + + + + + + + extern + + + + + static + + + + + + + static + + + + + extern + + + + + + + + + + static-constructor-body + + + + block + + + ; + + + + + + finalizer-declaration + + + + + + attributes + + + + + + + extern + + + + + ~ + + + identifier + + + ( + + + ) + + + finalizer-body + + + + + + finalizer-body + + + + block + + + ; + + + + + + struct-declaration + + + + + + attributes + + + + + + + struct-modifiers + + + + + + + partial + + + + + struct + + + identifier + + + + + type-parameter-list + + + + + + + struct-interfaces + + + + + + + type-parameter-constraints-clauses + + + + + struct-body + + + + + ; + + + + + + + + struct-modifiers + + + + struct-modifier + + + + + struct-modifiers + + + struct-modifier + + + + + + + + struct-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + struct-interfaces + + + + : + + + interface-type-list + + + + + + struct-body + + + + { + + + + + struct-member-declarations + + + + + } + + + + + + struct-member-declarations + + + + struct-member-declaration + + + + + struct-member-declarations + + + struct-member-declaration + + + + + + + + struct-member-declaration + + + + constant-declaration + + + field-declaration + + + method-declaration + + + property-declaration + + + event-declaration + + + indexer-declaration + + + operator-declaration + + + constructor-declaration + + + static-constructor-declaration + + + type-declaration + + + + + + array-initializer + + + + + + { + + + + + variable-initializer-list + + + + + } + + + + + + + { + + + variable-initializer-list + + + , + + + } + + + + + + + + variable-initializer-list + + + + variable-initializer + + + + + variable-initializer-list + + + , + + + variable-initializer + + + + + + + + interface-declaration + + + + + + attributes + + + + + + + interface-modifiers + + + + + + + partial + + + + + interface + + + identifier + + + + + type-parameter-list + + + + + + + interface-base + + + + + + + type-parameter-constraints-clauses + + + + + interface-body + + + + + ; + + + + + + + + interface-modifiers + + + + interface-modifier + + + + + interface-modifiers + + + interface-modifier + + + + + + + + interface-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + interface-base + + + + : + + + interface-type-list + + + + + + interface-body + + + + { + + + + + interface-member-declarations + + + + + } + + + + + + interface-member-declarations + + + + interface-member-declaration + + + + + interface-member-declarations + + + interface-member-declaration + + + + + + + + interface-member-declaration + + + + interface-method-declaration + + + interface-property-declaration + + + interface-event-declaration + + + interface-indexer-declaration + + + + + + interface-method-declaration + + + + + + attributes + + + + + + + new + + + + + return-type + + + identifier + + + + + type-parameter-list + + + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + type-parameter-constraints-clauses + + + + + ; + + + + + + interface-property-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + identifier + + + { + + + interface-accessors + + + } + + + + + + interface-accessors + + + + + + + + attributes + + + + + get + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + get + + + ; + + + + + attributes + + + + + set + + + ; + + + + + + + + + attributes + + + + + set + + + ; + + + + + attributes + + + + + get + + + ; + + + + + + + + interface-event-declaration + + + + + + attributes + + + + + + + new + + + + + event + + + type + + + identifier + + + ; + + + + + + interface-indexer-declaration + + + + + + attributes + + + + + + + new + + + + + type + + + this + + + [ + + + formal-parameter-list + + + ] + + + { + + + interface-accessors + + + } + + + + + + enum-declaration + + + + + + attributes + + + + + + + enum-modifiers + + + + + enum + + + identifier + + + + + enum-base + + + + + enum-body + + + + + ; + + + + + + + + enum-base + + + + : + + + integral-type + + + + + + enum-body + + + + + + { + + + + + enum-member-declarations + + + + + } + + + + + + + { + + + enum-member-declarations + + + , + + + } + + + + + + + + enum-modifiers + + + + enum-modifier + + + + + enum-modifiers + + + enum-modifier + + + + + + + + enum-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + enum-member-declarations + + + + enum-member-declaration + + + + + enum-member-declarations + + + , + + + enum-member-declaration + + + + + + + + enum-member-declaration + + + + + + + + attributes + + + + + identifier + + + + + + + + + attributes + + + + + identifier + + + = + + + constant-expression + + + + + + + + delegate-declaration + + + + + + attributes + + + + + + + delegate-modifiers + + + + + delegate + + + return-type + + + identifier + + + + + type-parameter-list + + + + + ( + + + + + formal-parameter-list + + + + + ) + + + + + type-parameter-constraints-clauses + + + + + ; + + + + + + delegate-modifiers + + + + delegate-modifier + + + + + delegate-modifiers + + + delegate-modifier + + + + + + + + delegate-modifier + + + + new + + + public + + + protected + + + internal + + + private + + + + + + global-attributes + + global-attribute-sections + + + + global-attribute-sections + + + + global-attribute-section + + + + + global-attribute-sections + + + global-attribute-section + + + + + + + + global-attribute-section + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + ] + + + + + + + [ + + + global-attribute-target-specifier + + + attribute-list + + + , + + + ] + + + + + + + + global-attribute-target-specifier + + + + global-attribute-target + + + : + + + + + + global-attribute-target + + + + identifier + + + keyword + + + + + + attributes + + attribute-sections + + + + attribute-sections + + + + attribute-section + + + + + attribute-sections + + + attribute-section + + + + + + + + attribute-section + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + ] + + + + + + + [ + + + + + attribute-target-specifier + + + + + attribute-list + + + , + + + ] + + + + + + + + attribute-target-specifier + + + + attribute-target + + + : + + + + + + attribute-target + + + + identifier + + + keyword + + + + + + attribute-list + + + + attribute + + + + + attribute-list + + + , + + + attribute + + + + + + + + attribute + + + + attribute-name + + + + + attribute-arguments + + + + + + + + attribute-name + + type-name + + + + attribute-arguments + + + + + + ( + + + + + positional-argument-list + + + + + ) + + + + + + + ( + + + positional-argument-list + + + , + + + named-argument-list + + + ) + + + + + + + ( + + + named-argument-list + + + ) + + + + + + + + positional-argument-list + + + + positional-argument + + + + + positional-argument-list + + + , + + + positional-argument + + + + + + + + positional-argument + + attribute-argument-expression + + + + named-argument-list + + + + named-argument + + + + + named-argument-list + + + , + + + named-argument + + + + + + + + named-argument + + + + identifier + + + = + + + attribute-argument-expression + + + + + + attribute-argument-expression + + expression + + + + type-parameter-list + + + + < + + + type-parameters + + + > + + + + + + type-parameters + + + + + + + + attributes + + + + + type-parameter + + + + + + + type-parameters + + + , + + + + + attributes + + + + + type-parameter + + + + + + + + type-parameter + + identifier + + + + type-argument-list + + + + < + + + type-arguments + + + > + + + + + + type-arguments + + + + type-argument + + + + + type-arguments + + + , + + + type-argument + + + + + + + + type-argument + + type + + + + type-parameter-constraints-clauses + + + + type-parameter-constraints-clause + + + + + type-parameter-constraints-clauses + + + type-parameter-constraints-clause + + + + + + + + type-parameter-constraints-clause + + + + where + + + type-parameter + + + : + + + type-parameter-constraints + + + + + + type-parameter-constraints + + + + primary-constraint + + + secondary-constraints + + + constructor-constraint + + + + + primary-constraint + + + , + + + secondary-constraints + + + + + + + primary-constraint + + + , + + + constructor-constraint + + + + + + + secondary-constraints + + + , + + + constructor-constraint + + + + + + + primary-constraint + + + , + + + secondary-constraints + + + , + + + constructor-constraint + + + + + + + + primary-constraint + + + + class-type + + + class + + + struct + + + + + + secondary-constraints + + + + interface-type + + + type-parameter + + + + + secondary-constraints + + + , + + + interface-type + + + + + + + secondary-constraints + + + , + + + type-parameter + + + + + + + + constructor-constraint + + + + new + + + ( + + + ) + + + + + + keyword + + + + abstract + + + as + + + base + + + bool + + + break + + + byte + + + case + + + catch + + + char + + + checked + + + class + + + const + + + continue + + + decimal + + + default + + + delegate + + + do + + + double + + + else + + + enum + + + event + + + explicit + + + extern + + + false + + + finally + + + fixed + + + float + + + for + + + foreach + + + goto + + + if + + + implicit + + + in + + + int + + + interface + + + internal + + + is + + + lock + + + long + + + namespace + + + new + + + null + + + object + + + operator + + + out + + + override + + + params + + + private + + + protected + + + public + + + readonly + + + ref + + + return + + + sbyte + + + sealed + + + short + + + sizeof + + + stackalloc + + + static + + + string + + + struct + + + switch + + + this + + + throw + + + true + + + try + + + typeof + + + uint + + + ulong + + + unchecked + + + unsafe + + + ushort + + + using + + + virtual + + + void + + + volatile + + + while + + + yield + + + partial + + + add + + + remove + + + get + + + set + + + where + + + alias + + + + + \ No newline at end of file diff --git a/shared/bgf/csharp-msft-ls-1.0.bgf b/shared/bgf/csharp-msft-ls-1.0.bgf new file mode 100644 index 00000000..87b31a53 --- /dev/null +++ b/shared/bgf/csharp-msft-ls-1.0.bgf @@ -0,0 +1 @@ +compilation-unitcompilation-unitusing-directivesglobal-attributesnamespace-member-declarationsusing-directivesusing-directiveusing-directivesusing-directiveusing-directiveusing-alias-directiveusing-namespace-directiveusing-alias-directiveusingidentifier=namespace-or-type-name;namespace-or-type-nameidentifiernamespace-or-type-name.identifierusing-namespace-directiveusingnamespace-name;namespace-namenamespace-or-type-nameglobal-attributesglobal-attribute-sectionsglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-section[global-attribute-target-specifierattribute-list][global-attribute-target-specifierattribute-list,]global-attribute-target-specifierglobal-attribute-target:global-attribute-targetassemblymoduleattribute-listattributeattribute-list,attributeattributeattribute-nameattribute-argumentsattribute-nametype-nametype-namenamespace-or-type-nameattribute-arguments(positional-argument-list)(positional-argument-list,named-argument-list)(named-argument-list)positional-argument-listpositional-argumentpositional-argument-list,positional-argumentpositional-argumentattribute-argument-expressionattribute-argument-expressionexpressionexpressionconditional-expressionassignmentconditional-expressionconditional-or-expressionconditional-or-expression?expression:expressionconditional-or-expressionconditional-and-expressionconditional-or-expression||conditional-and-expressionconditional-and-expressioninclusive-or-expressionconditional-and-expression&&inclusive-or-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressionand-expressionequality-expressionand-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionrelational-expressionistyperelational-expressionastypeshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressionunary-expressionmultiplicative-expression*unary-expressionmultiplicative-expression/unary-expressionmultiplicative-expression%unary-expressionunary-expressionprimary-expression+unary-expression-unary-expression!unary-expression~unary-expressionpre-increment-expressionpre-decrement-expressioncast-expressionprimary-expressionprimary-no-array-creation-expressionarray-creation-expressionprimary-no-array-creation-expressionliteralsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressiontypeof-expressionchecked-expressionunchecked-expressionsimple-nameidentifierparenthesized-expression(expression)member-accessprimary-expression.identifierpredefined-type.identifierpredefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortinvocation-expressionprimary-expression(argument-list)argument-listargumentargument-list,argumentargumentexpressionrefvariable-referenceoutvariable-referencevariable-referenceexpressionelement-accessprimary-no-array-creation-expression[expression-list]expression-listexpressionexpression-list,expressionthis-accessthisbase-accessbase.identifierbase[expression-list]post-increment-expressionprimary-expression++post-decrement-expressionprimary-expression--object-creation-expressionnewtype(argument-list)typevalue-typereference-typevalue-typestruct-typeenum-typestruct-typetype-namesimple-typesimple-typenumeric-typeboolnumeric-typeintegral-typefloating-point-typedecimalintegral-typesbytebyteshortushortintuintlongulongcharfloating-point-typefloatdoubleenum-typetype-namereference-typeclass-typeinterface-typearray-typedelegate-typeclass-typetype-nameobjectstringinterface-typetype-namearray-typenon-array-typerank-specifiersnon-array-typetyperank-specifiersrank-specifierrank-specifiersrank-specifierrank-specifier[dim-separators]dim-separators,dim-separators,delegate-typetype-namedelegate-creation-expressionnewdelegate-type(expression)typeof-expressiontypeof(type)typeof(void)checked-expressionchecked(expression)unchecked-expressionunchecked(expression)array-creation-expressionnewnon-array-type[expression-list]rank-specifiersarray-initializernewarray-typearray-initializerarray-initializer{variable-initializer-list}{variable-initializer-list,}variable-initializer-listvariable-initializervariable-initializer-list,variable-initializervariable-initializerexpressionarray-initializerpre-increment-expression++unary-expressionpre-decrement-expression--unary-expressioncast-expression(type)unary-expressionassignmentunary-expressionassignment-operatorexpressionassignment-operator=+=-=*=/=%=&=|=^=<<=>>=named-argument-listnamed-argumentnamed-argument-list,named-argumentnamed-argumentidentifier=attribute-argument-expressionnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationnamespace-declarationtype-declarationnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifieridentifierqualified-identifier.identifiernamespace-body{using-directivesnamespace-member-declarations}type-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifiersclassidentifierclass-baseclass-body;attributesattribute-sectionsattribute-sectionsattribute-sectionattribute-sectionsattribute-sectionattribute-section[attribute-target-specifierattribute-list][attribute-target-specifierattribute-list,]attribute-target-specifierattribute-target:attribute-targetfieldeventmethodparampropertyreturntypeclass-modifiersclass-modifierclass-modifiersclass-modifierclass-modifiernewpublicprotectedinternalprivateabstractsealedclass-base:class-type:interface-type-list:class-type,interface-type-listinterface-type-listinterface-typeinterface-type-list,interface-typeclass-body{class-member-declarations}class-member-declarationsclass-member-declarationclass-member-declarationsclass-member-declarationclass-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationdestructor-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifiersconsttypeconstant-declarators;constant-modifiersconstant-modifierconstant-modifiersconstant-modifierconstant-modifiernewpublicprotectedinternalprivateconstant-declaratorsconstant-declaratorconstant-declarators,constant-declaratorconstant-declaratoridentifier=constant-expressionconstant-expressionexpressionfield-declarationattributesfield-modifierstypevariable-declarators;field-modifiersfield-modifierfield-modifiersfield-modifierfield-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorsvariable-declaratorvariable-declarators,variable-declaratorvariable-declaratoridentifieridentifier=variable-initializermethod-declarationmethod-headermethod-bodymethod-headerattributesmethod-modifiersreturn-typemember-name(formal-parameter-list)method-modifiersmethod-modifiermethod-modifiersmethod-modifiermethod-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternreturn-typetypevoidmember-nameidentifierinterface-type.identifierformal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameterfixed-parameters,fixed-parameterfixed-parameterattributesparameter-modifiertypeidentifierparameter-modifierrefoutparameter-arrayattributesparamsarray-typeidentifiermethod-bodyblock;block{statement-list}statement-liststatementstatement-liststatementstatementlabeled-statementdeclaration-statementembedded-statementlabeled-statementidentifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationtypelocal-variable-declaratorslocal-variable-declaratorslocal-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declaratoridentifieridentifier=local-variable-initializerlocal-variable-initializerexpressionarray-initializerlocal-constant-declarationconsttypeconstant-declaratorsembedded-statementblockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statementempty-statement;expression-statementstatement-expression;statement-expressioninvocation-expressionobject-creation-expressionassignmentpost-increment-expressionpost-decrement-expressionpre-increment-expressionpre-decrement-expressionselection-statementif-statementswitch-statementif-statementif(boolean-expression)embedded-statementif(boolean-expression)embedded-statementelseembedded-statementboolean-expressionexpressionswitch-statementswitch(expression)switch-blockswitch-block{switch-sections}switch-sectionsswitch-sectionswitch-sectionsswitch-sectionswitch-sectionswitch-labelsstatement-listswitch-labelsswitch-labelswitch-labelsswitch-labelswitch-labelcaseconstant-expression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(boolean-expression)embedded-statementdo-statementdoembedded-statementwhile(boolean-expression);for-statementfor(for-initializer;for-condition;for-iterator)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-liststatement-expression-liststatement-expressionstatement-expression-list,statement-expressionfor-conditionboolean-expressionfor-iteratorstatement-expression-listforeach-statementforeach(typeidentifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotoidentifier;gotocaseconstant-expression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausestryblockfinally-clausetryblockcatch-clausesfinally-clausecatch-clausesspecific-catch-clausesgeneral-catch-clausespecific-catch-clausesgeneral-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausecatch(class-typeidentifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblockchecked-statementcheckedblockunchecked-statementuncheckedblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionproperty-declarationattributesproperty-modifierstypemember-name{accessor-declarations}property-modifiersproperty-modifierproperty-modifiersproperty-modifierproperty-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesgetaccessor-bodyaccessor-bodyblock;set-accessor-declarationattributessetaccessor-bodyevent-declarationattributesevent-modifierseventtypevariable-declarators;attributesevent-modifierseventtypemember-name{event-accessor-declarations}event-modifiersevent-modifierevent-modifiersevent-modifierevent-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifiersindexer-declarator{accessor-declarations}indexer-modifiersindexer-modifierindexer-modifiersindexer-modifierindexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typeinterface-type.this[formal-parameter-list]operator-declarationattributesoperator-modifiersoperator-declaratoroperator-bodyoperator-modifiersoperator-modifieroperator-modifiersoperator-modifieroperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typeidentifier)overloadable-unary-operator+-!~++--truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typeidentifier,typeidentifier)overloadable-binary-operator+-*/%&|^<<>>==!=><>=<=conversion-operator-declaratorimplicitoperatortype(typeidentifier)explicitoperatortype(typeidentifier)operator-bodyblock;constructor-declarationattributesconstructor-modifiersconstructor-declaratorconstructor-bodyconstructor-modifiersconstructor-modifierconstructor-modifiersconstructor-modifierconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratoridentifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)constructor-bodyblock;destructor-declarationattributesextern~identifier()destructor-bodydestructor-bodyblock;static-constructor-declarationattributesstatic-constructor-modifiersidentifier()static-constructor-bodystatic-constructor-modifiersexternstaticstaticexternstatic-constructor-bodyblock;struct-declarationattributesstruct-modifiersstructidentifierstruct-interfacesstruct-body;struct-modifiersstruct-modifierstruct-modifiersstruct-modifierstruct-modifiernewpublicprotectedinternalprivatestruct-interfaces:interface-type-liststruct-body{struct-member-declarations}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationinterface-declarationattributesinterface-modifiersinterfaceidentifierinterface-baseinterface-body;interface-modifiersinterface-modifierinterface-modifiersinterface-modifierinterface-modifiernewpublicprotectedinternalprivateinterface-base:interface-type-listinterface-body{interface-member-declarations}interface-member-declarationsinterface-member-declarationinterface-member-declarationsinterface-member-declarationinterface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewreturn-typeidentifier(formal-parameter-list);interface-property-declarationattributesnewtypeidentifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypeidentifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifiersenumidentifierenum-baseenum-body;enum-modifiersenum-modifierenum-modifiersenum-modifierenum-modifiernewpublicprotectedinternalprivateenum-base:integral-typeenum-body{enum-member-declarations}{enum-member-declarations,}enum-member-declarationsenum-member-declarationenum-member-declarations,enum-member-declarationenum-member-declarationattributesidentifierattributesidentifier=constant-expressiondelegate-declarationattributesdelegate-modifiersdelegatereturn-typeidentifier(formal-parameter-list);delegate-modifiersdelegate-modifierdelegate-modifiersdelegate-modifierdelegate-modifiernewpublicprotectedinternalprivate \ No newline at end of file diff --git a/shared/bgf/csharp-msft-ls-1.2.bgf b/shared/bgf/csharp-msft-ls-1.2.bgf new file mode 100644 index 00000000..87b31a53 --- /dev/null +++ b/shared/bgf/csharp-msft-ls-1.2.bgf @@ -0,0 +1 @@ +compilation-unitcompilation-unitusing-directivesglobal-attributesnamespace-member-declarationsusing-directivesusing-directiveusing-directivesusing-directiveusing-directiveusing-alias-directiveusing-namespace-directiveusing-alias-directiveusingidentifier=namespace-or-type-name;namespace-or-type-nameidentifiernamespace-or-type-name.identifierusing-namespace-directiveusingnamespace-name;namespace-namenamespace-or-type-nameglobal-attributesglobal-attribute-sectionsglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-section[global-attribute-target-specifierattribute-list][global-attribute-target-specifierattribute-list,]global-attribute-target-specifierglobal-attribute-target:global-attribute-targetassemblymoduleattribute-listattributeattribute-list,attributeattributeattribute-nameattribute-argumentsattribute-nametype-nametype-namenamespace-or-type-nameattribute-arguments(positional-argument-list)(positional-argument-list,named-argument-list)(named-argument-list)positional-argument-listpositional-argumentpositional-argument-list,positional-argumentpositional-argumentattribute-argument-expressionattribute-argument-expressionexpressionexpressionconditional-expressionassignmentconditional-expressionconditional-or-expressionconditional-or-expression?expression:expressionconditional-or-expressionconditional-and-expressionconditional-or-expression||conditional-and-expressionconditional-and-expressioninclusive-or-expressionconditional-and-expression&&inclusive-or-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressionand-expressionequality-expressionand-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionrelational-expressionistyperelational-expressionastypeshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expression>>additive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressionunary-expressionmultiplicative-expression*unary-expressionmultiplicative-expression/unary-expressionmultiplicative-expression%unary-expressionunary-expressionprimary-expression+unary-expression-unary-expression!unary-expression~unary-expressionpre-increment-expressionpre-decrement-expressioncast-expressionprimary-expressionprimary-no-array-creation-expressionarray-creation-expressionprimary-no-array-creation-expressionliteralsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressiontypeof-expressionchecked-expressionunchecked-expressionsimple-nameidentifierparenthesized-expression(expression)member-accessprimary-expression.identifierpredefined-type.identifierpredefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortinvocation-expressionprimary-expression(argument-list)argument-listargumentargument-list,argumentargumentexpressionrefvariable-referenceoutvariable-referencevariable-referenceexpressionelement-accessprimary-no-array-creation-expression[expression-list]expression-listexpressionexpression-list,expressionthis-accessthisbase-accessbase.identifierbase[expression-list]post-increment-expressionprimary-expression++post-decrement-expressionprimary-expression--object-creation-expressionnewtype(argument-list)typevalue-typereference-typevalue-typestruct-typeenum-typestruct-typetype-namesimple-typesimple-typenumeric-typeboolnumeric-typeintegral-typefloating-point-typedecimalintegral-typesbytebyteshortushortintuintlongulongcharfloating-point-typefloatdoubleenum-typetype-namereference-typeclass-typeinterface-typearray-typedelegate-typeclass-typetype-nameobjectstringinterface-typetype-namearray-typenon-array-typerank-specifiersnon-array-typetyperank-specifiersrank-specifierrank-specifiersrank-specifierrank-specifier[dim-separators]dim-separators,dim-separators,delegate-typetype-namedelegate-creation-expressionnewdelegate-type(expression)typeof-expressiontypeof(type)typeof(void)checked-expressionchecked(expression)unchecked-expressionunchecked(expression)array-creation-expressionnewnon-array-type[expression-list]rank-specifiersarray-initializernewarray-typearray-initializerarray-initializer{variable-initializer-list}{variable-initializer-list,}variable-initializer-listvariable-initializervariable-initializer-list,variable-initializervariable-initializerexpressionarray-initializerpre-increment-expression++unary-expressionpre-decrement-expression--unary-expressioncast-expression(type)unary-expressionassignmentunary-expressionassignment-operatorexpressionassignment-operator=+=-=*=/=%=&=|=^=<<=>>=named-argument-listnamed-argumentnamed-argument-list,named-argumentnamed-argumentidentifier=attribute-argument-expressionnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationnamespace-declarationtype-declarationnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifieridentifierqualified-identifier.identifiernamespace-body{using-directivesnamespace-member-declarations}type-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifiersclassidentifierclass-baseclass-body;attributesattribute-sectionsattribute-sectionsattribute-sectionattribute-sectionsattribute-sectionattribute-section[attribute-target-specifierattribute-list][attribute-target-specifierattribute-list,]attribute-target-specifierattribute-target:attribute-targetfieldeventmethodparampropertyreturntypeclass-modifiersclass-modifierclass-modifiersclass-modifierclass-modifiernewpublicprotectedinternalprivateabstractsealedclass-base:class-type:interface-type-list:class-type,interface-type-listinterface-type-listinterface-typeinterface-type-list,interface-typeclass-body{class-member-declarations}class-member-declarationsclass-member-declarationclass-member-declarationsclass-member-declarationclass-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationdestructor-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifiersconsttypeconstant-declarators;constant-modifiersconstant-modifierconstant-modifiersconstant-modifierconstant-modifiernewpublicprotectedinternalprivateconstant-declaratorsconstant-declaratorconstant-declarators,constant-declaratorconstant-declaratoridentifier=constant-expressionconstant-expressionexpressionfield-declarationattributesfield-modifierstypevariable-declarators;field-modifiersfield-modifierfield-modifiersfield-modifierfield-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorsvariable-declaratorvariable-declarators,variable-declaratorvariable-declaratoridentifieridentifier=variable-initializermethod-declarationmethod-headermethod-bodymethod-headerattributesmethod-modifiersreturn-typemember-name(formal-parameter-list)method-modifiersmethod-modifiermethod-modifiersmethod-modifiermethod-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternreturn-typetypevoidmember-nameidentifierinterface-type.identifierformal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameterfixed-parameters,fixed-parameterfixed-parameterattributesparameter-modifiertypeidentifierparameter-modifierrefoutparameter-arrayattributesparamsarray-typeidentifiermethod-bodyblock;block{statement-list}statement-liststatementstatement-liststatementstatementlabeled-statementdeclaration-statementembedded-statementlabeled-statementidentifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationtypelocal-variable-declaratorslocal-variable-declaratorslocal-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declaratoridentifieridentifier=local-variable-initializerlocal-variable-initializerexpressionarray-initializerlocal-constant-declarationconsttypeconstant-declaratorsembedded-statementblockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statementempty-statement;expression-statementstatement-expression;statement-expressioninvocation-expressionobject-creation-expressionassignmentpost-increment-expressionpost-decrement-expressionpre-increment-expressionpre-decrement-expressionselection-statementif-statementswitch-statementif-statementif(boolean-expression)embedded-statementif(boolean-expression)embedded-statementelseembedded-statementboolean-expressionexpressionswitch-statementswitch(expression)switch-blockswitch-block{switch-sections}switch-sectionsswitch-sectionswitch-sectionsswitch-sectionswitch-sectionswitch-labelsstatement-listswitch-labelsswitch-labelswitch-labelsswitch-labelswitch-labelcaseconstant-expression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(boolean-expression)embedded-statementdo-statementdoembedded-statementwhile(boolean-expression);for-statementfor(for-initializer;for-condition;for-iterator)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-liststatement-expression-liststatement-expressionstatement-expression-list,statement-expressionfor-conditionboolean-expressionfor-iteratorstatement-expression-listforeach-statementforeach(typeidentifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotoidentifier;gotocaseconstant-expression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausestryblockfinally-clausetryblockcatch-clausesfinally-clausecatch-clausesspecific-catch-clausesgeneral-catch-clausespecific-catch-clausesgeneral-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausecatch(class-typeidentifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblockchecked-statementcheckedblockunchecked-statementuncheckedblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionproperty-declarationattributesproperty-modifierstypemember-name{accessor-declarations}property-modifiersproperty-modifierproperty-modifiersproperty-modifierproperty-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesgetaccessor-bodyaccessor-bodyblock;set-accessor-declarationattributessetaccessor-bodyevent-declarationattributesevent-modifierseventtypevariable-declarators;attributesevent-modifierseventtypemember-name{event-accessor-declarations}event-modifiersevent-modifierevent-modifiersevent-modifierevent-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifiersindexer-declarator{accessor-declarations}indexer-modifiersindexer-modifierindexer-modifiersindexer-modifierindexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typeinterface-type.this[formal-parameter-list]operator-declarationattributesoperator-modifiersoperator-declaratoroperator-bodyoperator-modifiersoperator-modifieroperator-modifiersoperator-modifieroperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typeidentifier)overloadable-unary-operator+-!~++--truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typeidentifier,typeidentifier)overloadable-binary-operator+-*/%&|^<<>>==!=><>=<=conversion-operator-declaratorimplicitoperatortype(typeidentifier)explicitoperatortype(typeidentifier)operator-bodyblock;constructor-declarationattributesconstructor-modifiersconstructor-declaratorconstructor-bodyconstructor-modifiersconstructor-modifierconstructor-modifiersconstructor-modifierconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratoridentifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)constructor-bodyblock;destructor-declarationattributesextern~identifier()destructor-bodydestructor-bodyblock;static-constructor-declarationattributesstatic-constructor-modifiersidentifier()static-constructor-bodystatic-constructor-modifiersexternstaticstaticexternstatic-constructor-bodyblock;struct-declarationattributesstruct-modifiersstructidentifierstruct-interfacesstruct-body;struct-modifiersstruct-modifierstruct-modifiersstruct-modifierstruct-modifiernewpublicprotectedinternalprivatestruct-interfaces:interface-type-liststruct-body{struct-member-declarations}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationinterface-declarationattributesinterface-modifiersinterfaceidentifierinterface-baseinterface-body;interface-modifiersinterface-modifierinterface-modifiersinterface-modifierinterface-modifiernewpublicprotectedinternalprivateinterface-base:interface-type-listinterface-body{interface-member-declarations}interface-member-declarationsinterface-member-declarationinterface-member-declarationsinterface-member-declarationinterface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewreturn-typeidentifier(formal-parameter-list);interface-property-declarationattributesnewtypeidentifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypeidentifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifiersenumidentifierenum-baseenum-body;enum-modifiersenum-modifierenum-modifiersenum-modifierenum-modifiernewpublicprotectedinternalprivateenum-base:integral-typeenum-body{enum-member-declarations}{enum-member-declarations,}enum-member-declarationsenum-member-declarationenum-member-declarations,enum-member-declarationenum-member-declarationattributesidentifierattributesidentifier=constant-expressiondelegate-declarationattributesdelegate-modifiersdelegatereturn-typeidentifier(formal-parameter-list);delegate-modifiersdelegate-modifierdelegate-modifiersdelegate-modifierdelegate-modifiernewpublicprotectedinternalprivate \ No newline at end of file diff --git a/shared/bgf/csharp-msft-ls-3.0.bgf b/shared/bgf/csharp-msft-ls-3.0.bgf new file mode 100644 index 00000000..369f27be --- /dev/null +++ b/shared/bgf/csharp-msft-ls-3.0.bgf @@ -0,0 +1 @@ +compilation-unitcompilation-unitextern-alias-directivesusing-directivesglobal-attributesnamespace-member-declarationsextern-alias-directivesextern-alias-directiveextern-alias-directivesextern-alias-directiveextern-alias-directiveexternaliasidentifier;using-directivesusing-directiveusing-directivesusing-directiveusing-directiveusing-alias-directiveusing-namespace-directiveusing-alias-directiveusingidentifier=namespace-or-type-name;namespace-or-type-nameidentifiertype-argument-listnamespace-or-type-name.identifiertype-argument-listqualified-alias-membertype-argument-list<type-arguments>type-argumentstype-argumenttype-arguments,type-argumenttype-argumenttypetypevalue-typereference-typetype-parametervalue-typestruct-typeenum-typestruct-typetype-namesimple-typenullable-typetype-namenamespace-or-type-namesimple-typenumeric-typeboolnumeric-typeintegral-typefloating-point-typedecimalintegral-typesbytebyteshortushortintuintlongulongcharfloating-point-typefloatdoublenullable-typenon-nullable-value-type?non-nullable-value-typetypeenum-typetype-namereference-typeclass-typeinterface-typearray-typedelegate-typeclass-typetype-nameobjectstringinterface-typetype-namearray-typenon-array-typerank-specifiersnon-array-typetyperank-specifiersrank-specifierrank-specifiersrank-specifierrank-specifier[dim-separators]dim-separators,dim-separators,delegate-typetype-nametype-parameteridentifierqualified-alias-memberidentifier::identifiertype-argument-listusing-namespace-directiveusingnamespace-name;namespace-namenamespace-or-type-nameglobal-attributesglobal-attribute-sectionsglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-section[global-attribute-target-specifierattribute-list][global-attribute-target-specifierattribute-list,]global-attribute-target-specifierglobal-attribute-target:global-attribute-targetassemblymoduleattribute-listattributeattribute-list,attributeattributeattribute-nameattribute-argumentsattribute-nametype-nameattribute-arguments(positional-argument-list)(positional-argument-list,named-argument-list)(named-argument-list)positional-argument-listpositional-argumentpositional-argument-list,positional-argumentpositional-argumentattribute-argument-expressionattribute-argument-expressionexpressionexpressionnon-assignment-expressionassignmentnon-assignment-expressionconditional-expressionlambda-expressionquery-expressionconditional-expressionnull-coalescing-expressionnull-coalescing-expression?expression:expressionnull-coalescing-expressionconditional-or-expressionconditional-or-expression??null-coalescing-expressionconditional-or-expressionconditional-and-expressionconditional-or-expression||conditional-and-expressionconditional-and-expressioninclusive-or-expressionconditional-and-expression&&inclusive-or-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressionand-expressionequality-expressionand-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionrelational-expressionistyperelational-expressionastypeshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expressionright-shiftadditive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressionunary-expressionmultiplicative-expression*unary-expressionmultiplicative-expression/unary-expressionmultiplicative-expression%unary-expressionunary-expressionprimary-expression+unary-expression-unary-expression!unary-expression~unary-expressionpre-increment-expressionpre-decrement-expressioncast-expressionprimary-expressionprimary-no-array-creation-expressionarray-creation-expressionprimary-no-array-creation-expressionliteralsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressionanonymous-object-creation-expressiontypeof-expressionchecked-expressionunchecked-expressiondefault-value-expressionanonymous-method-expressionsimple-nameidentifiertype-argument-listparenthesized-expression(expression)member-accessprimary-expression.identifiertype-argument-listpredefined-type.identifiertype-argument-listqualified-alias-member.identifierpredefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortinvocation-expressionprimary-expression(argument-list)argument-listargumentargument-list,argumentargumentexpressionrefvariable-referenceoutvariable-referencevariable-referenceexpressionelement-accessprimary-no-array-creation-expression[expression-list]expression-listexpressionexpression-list,expressionthis-accessthisbase-accessbase.identifierbase[expression-list]post-increment-expressionprimary-expression++post-decrement-expressionprimary-expression--object-creation-expressionnewtype(argument-list)object-or-collection-initializernewtypeobject-or-collection-initializerobject-or-collection-initializerobject-initializercollection-initializerobject-initializer{member-initializer-list}{member-initializer-list,}member-initializer-listmember-initializermember-initializer-list,member-initializermember-initializeridentifier=initializer-valueinitializer-valueexpressionobject-or-collection-initializercollection-initializer{element-initializer-list}{element-initializer-list,}element-initializer-listelement-initializerelement-initializer-list,element-initializerelement-initializernon-assignment-expression{expression-list}delegate-creation-expressionnewdelegate-type(expression)anonymous-object-creation-expressionnewanonymous-object-initializeranonymous-object-initializer{member-declarator-list}{member-declarator-list,}member-declarator-listmember-declaratormember-declarator-list,member-declaratormember-declaratorsimple-namemember-accessidentifier=expressiontypeof-expressiontypeof(type)typeof(unbound-type-name)typeof(void)unbound-type-nameidentifiergeneric-dimension-specifieridentifier::identifiergeneric-dimension-specifierunbound-type-name.identifiergeneric-dimension-specifiergeneric-dimension-specifier<commas>commas,commas,checked-expressionchecked(expression)unchecked-expressionunchecked(expression)default-value-expressiondefault(type)anonymous-method-expressiondelegateexplicit-anonymous-function-signatureblockexplicit-anonymous-function-signature(explicit-anonymous-function-parameter-list)explicit-anonymous-function-parameter-listexplicit-anonymous-function-parameterexplicit-anonymous-function-parameter-list,explicit-anonymous-function-parameterexplicit-anonymous-function-parameteranonymous-function-parameter-modifiertypeidentifieranonymous-function-parameter-modifierrefoutblock{statement-list}statement-liststatementstatement-liststatementstatementlabeled-statementdeclaration-statementembedded-statementlabeled-statementidentifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationlocal-variable-typelocal-variable-declaratorslocal-variable-typetypevarlocal-variable-declaratorslocal-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declaratoridentifieridentifier=local-variable-initializerlocal-variable-initializerexpressionarray-initializerarray-initializer{variable-initializer-list}{variable-initializer-list,}variable-initializer-listvariable-initializervariable-initializer-list,variable-initializervariable-initializerexpressionarray-initializerlocal-constant-declarationconsttypeconstant-declaratorsconstant-declaratorsconstant-declaratorconstant-declarators,constant-declaratorconstant-declaratoridentifier=constant-expressionconstant-expressionexpressionembedded-statementblockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statementyield-statementempty-statement;expression-statementstatement-expression;statement-expressioninvocation-expressionobject-creation-expressionassignmentpost-increment-expressionpost-decrement-expressionpre-increment-expressionpre-decrement-expressionassignmentunary-expressionassignment-operatorexpressionassignment-operator=+=-=*=/=%=&=|=^=<<=right-shift-assignmentright-shift-assignment>>=pre-increment-expression++unary-expressionpre-decrement-expression--unary-expressionselection-statementif-statementswitch-statementif-statementif(boolean-expression)embedded-statementif(boolean-expression)embedded-statementelseembedded-statementboolean-expressionexpressionswitch-statementswitch(expression)switch-blockswitch-block{switch-sections}switch-sectionsswitch-sectionswitch-sectionsswitch-sectionswitch-sectionswitch-labelsstatement-listswitch-labelsswitch-labelswitch-labelsswitch-labelswitch-labelcaseconstant-expression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(boolean-expression)embedded-statementdo-statementdoembedded-statementwhile(boolean-expression);for-statementfor(for-initializer;for-condition;for-iterator)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-liststatement-expression-liststatement-expressionstatement-expression-list,statement-expressionfor-conditionboolean-expressionfor-iteratorstatement-expression-listforeach-statementforeach(local-variable-typeidentifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotoidentifier;gotocaseconstant-expression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausestryblockfinally-clausetryblockcatch-clausesfinally-clausecatch-clausesspecific-catch-clausesgeneral-catch-clausespecific-catch-clausesgeneral-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausecatch(class-typeidentifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblockchecked-statementcheckedblockunchecked-statementuncheckedblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionyield-statementyieldreturnexpression;yieldbreak;array-creation-expressionnewnon-array-type[expression-list]rank-specifiersarray-initializernewarray-typearray-initializernewrank-specifierarray-initializercast-expression(type)unary-expressionright-shift>>lambda-expressionanonymous-function-signature=>anonymous-function-bodyanonymous-function-signatureexplicit-anonymous-function-signatureimplicit-anonymous-function-signatureimplicit-anonymous-function-signature(implicit-anonymous-function-parameter-list)implicit-anonymous-function-parameterimplicit-anonymous-function-parameter-listimplicit-anonymous-function-parameterimplicit-anonymous-function-parameter-list,implicit-anonymous-function-parameterimplicit-anonymous-function-parameteridentifieranonymous-function-bodyexpressionblockquery-expressionfrom-clausequery-bodyfrom-clausefromtypeidentifierinexpressionquery-bodyquery-body-clausesselect-or-group-clausequery-continuationquery-body-clausesquery-body-clausequery-body-clausesquery-body-clausequery-body-clausefrom-clauselet-clausewhere-clausejoin-clausejoin-into-clauseorderby-clauselet-clauseletidentifier=expressionwhere-clausewhereboolean-expressionjoin-clausejointypeidentifierinexpressiononexpressionequalsexpressionjoin-into-clausejointypeidentifierinexpressiononexpressionequalsexpressionintoidentifierorderby-clauseorderbyorderingsorderingsorderingorderings,orderingorderingexpressionordering-directionordering-directionascendingdescendingselect-or-group-clauseselect-clausegroup-clauseselect-clauseselectexpressiongroup-clausegroupexpressionbyexpressionquery-continuationintoidentifierquery-bodynamed-argument-listnamed-argumentnamed-argument-list,named-argumentnamed-argumentidentifier=attribute-argument-expressionnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationnamespace-declarationtype-declarationnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifieridentifierqualified-identifier.identifiernamespace-body{extern-alias-directivesusing-directivesnamespace-member-declarations}type-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifierspartialclassidentifiertype-parameter-listclass-basetype-parameter-constraints-clausesclass-body;attributesattribute-sectionsattribute-sectionsattribute-sectionattribute-sectionsattribute-sectionattribute-section[attribute-target-specifierattribute-list][attribute-target-specifierattribute-list,]attribute-target-specifierattribute-target:attribute-targetfieldeventmethodparampropertyreturntypeclass-modifiersclass-modifierclass-modifiersclass-modifierclass-modifiernewpublicprotectedinternalprivateabstractsealedstatictype-parameter-list<type-parameters>type-parametersattributestype-parametertype-parameters,attributestype-parameterclass-base:class-type:interface-type-list:class-type,interface-type-listinterface-type-listinterface-typeinterface-type-list,interface-typetype-parameter-constraints-clausestype-parameter-constraints-clausetype-parameter-constraints-clausestype-parameter-constraints-clausetype-parameter-constraints-clausewheretype-parameter:type-parameter-constraintstype-parameter-constraintsprimary-constraintsecondary-constraintsconstructor-constraintprimary-constraint,secondary-constraintsprimary-constraint,constructor-constraintsecondary-constraints,constructor-constraintprimary-constraint,secondary-constraints,constructor-constraintprimary-constraintclass-typeclassstructsecondary-constraintsinterface-typetype-parametersecondary-constraints,interface-typesecondary-constraints,type-parameterconstructor-constraintnew()class-body{class-member-declarations}class-member-declarationsclass-member-declarationclass-member-declarationsclass-member-declarationclass-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationdestructor-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifiersconsttypeconstant-declarators;constant-modifiersconstant-modifierconstant-modifiersconstant-modifierconstant-modifiernewpublicprotectedinternalprivatefield-declarationattributesfield-modifierstypevariable-declarators;field-modifiersfield-modifierfield-modifiersfield-modifierfield-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorsvariable-declaratorvariable-declarators,variable-declaratorvariable-declaratoridentifieridentifier=variable-initializermethod-declarationmethod-headermethod-bodymethod-headerattributesmethod-modifierspartialreturn-typemember-nametype-parameter-list(formal-parameter-list)type-parameter-constraints-clausesmethod-modifiersmethod-modifiermethod-modifiersmethod-modifiermethod-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternreturn-typetypevoidmember-nameidentifierinterface-type.identifierformal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameterfixed-parameters,fixed-parameterfixed-parameterattributesparameter-modifiertypeidentifierparameter-modifierrefoutthisparameter-arrayattributesparamsarray-typeidentifiermethod-bodyblock;property-declarationattributesproperty-modifierstypemember-name{accessor-declarations}property-modifiersproperty-modifierproperty-modifiersproperty-modifierproperty-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesaccessor-modifiergetaccessor-bodyaccessor-modifierprotectedinternalprivateprotectedinternalinternalprotectedaccessor-bodyblock;set-accessor-declarationattributesaccessor-modifiersetaccessor-bodyevent-declarationattributesevent-modifierseventtypevariable-declarators;attributesevent-modifierseventtypemember-name{event-accessor-declarations}event-modifiersevent-modifierevent-modifiersevent-modifierevent-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifiersindexer-declarator{accessor-declarations}indexer-modifiersindexer-modifierindexer-modifiersindexer-modifierindexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typeinterface-type.this[formal-parameter-list]operator-declarationattributesoperator-modifiersoperator-declaratoroperator-bodyoperator-modifiersoperator-modifieroperator-modifiersoperator-modifieroperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typeidentifier)overloadable-unary-operator+-!~++--truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typeidentifier,typeidentifier)overloadable-binary-operator+-*/%&|^<<right-shift==!=><>=<=conversion-operator-declaratorimplicitoperatortype(typeidentifier)explicitoperatortype(typeidentifier)operator-bodyblock;constructor-declarationattributesconstructor-modifiersconstructor-declaratorconstructor-bodyconstructor-modifiersconstructor-modifierconstructor-modifiersconstructor-modifierconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratoridentifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)constructor-bodyblock;destructor-declarationattributesextern~identifier()destructor-bodydestructor-bodyblock;static-constructor-declarationattributesstatic-constructor-modifiersidentifier()static-constructor-bodystatic-constructor-modifiersexternstaticstaticexternstatic-constructor-bodyblock;struct-declarationattributesstruct-modifierspartialstructidentifiertype-parameter-liststruct-interfacestype-parameter-constraints-clausesstruct-body;struct-modifiersstruct-modifierstruct-modifiersstruct-modifierstruct-modifiernewpublicprotectedinternalprivatestruct-interfaces:interface-type-liststruct-body{struct-member-declarations}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationinterface-declarationattributesinterface-modifierspartialinterfaceidentifiertype-parameter-listinterface-basetype-parameter-constraints-clausesinterface-body;interface-modifiersinterface-modifierinterface-modifiersinterface-modifierinterface-modifiernewpublicprotectedinternalprivateinterface-base:interface-type-listinterface-body{interface-member-declarations}interface-member-declarationsinterface-member-declarationinterface-member-declarationsinterface-member-declarationinterface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewreturn-typeidentifiertype-parameter-list(formal-parameter-list)type-parameter-constraints-clauses;interface-property-declarationattributesnewtypeidentifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypeidentifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifiersenumidentifierenum-baseenum-body;enum-modifiersenum-modifierenum-modifiersenum-modifierenum-modifiernewpublicprotectedinternalprivateenum-base:integral-typeenum-body{enum-member-declarations}{enum-member-declarations,}enum-member-declarationsenum-member-declarationenum-member-declarations,enum-member-declarationenum-member-declarationattributesidentifierattributesidentifier=constant-expressiondelegate-declarationattributesdelegate-modifiersdelegatereturn-typeidentifiertype-parameter-list(formal-parameter-list)type-parameter-constraints-clauses;delegate-modifiersdelegate-modifierdelegate-modifiersdelegate-modifierdelegate-modifiernewpublicprotectedinternalprivate \ No newline at end of file diff --git a/shared/bgf/csharp-msft-ls-4.0.bgf b/shared/bgf/csharp-msft-ls-4.0.bgf new file mode 100644 index 00000000..a6081fff --- /dev/null +++ b/shared/bgf/csharp-msft-ls-4.0.bgf @@ -0,0 +1 @@ +compilation-unitcompilation-unitextern-alias-directivesusing-directivesglobal-attributesnamespace-member-declarationsextern-alias-directivesextern-alias-directiveextern-alias-directivesextern-alias-directiveextern-alias-directiveexternaliasidentifier;using-directivesusing-directiveusing-directivesusing-directiveusing-directiveusing-alias-directiveusing-namespace-directiveusing-alias-directiveusingidentifier=namespace-or-type-name;namespace-or-type-nameidentifiertype-argument-listnamespace-or-type-name.identifiertype-argument-listqualified-alias-membertype-argument-list<type-arguments>type-argumentstype-argumenttype-arguments,type-argumenttype-argumenttypetypevalue-typereference-typetype-parametervalue-typestruct-typeenum-typestruct-typetype-namesimple-typenullable-typetype-namenamespace-or-type-namesimple-typenumeric-typeboolnumeric-typeintegral-typefloating-point-typedecimalintegral-typesbytebyteshortushortintuintlongulongcharfloating-point-typefloatdoublenullable-typenon-nullable-value-type?non-nullable-value-typetypeenum-typetype-namereference-typeclass-typeinterface-typearray-typedelegate-typeclass-typetype-nameobjectdynamicstringinterface-typetype-namearray-typenon-array-typerank-specifiersnon-array-typetyperank-specifiersrank-specifierrank-specifiersrank-specifierrank-specifier[dim-separators]dim-separators,dim-separators,delegate-typetype-nametype-parameteridentifierqualified-alias-memberidentifier::identifiertype-argument-listusing-namespace-directiveusingnamespace-name;namespace-namenamespace-or-type-nameglobal-attributesglobal-attribute-sectionsglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-sectionsglobal-attribute-sectionglobal-attribute-section[global-attribute-target-specifierattribute-list][global-attribute-target-specifierattribute-list,]global-attribute-target-specifierglobal-attribute-target:global-attribute-targetassemblymoduleattribute-listattributeattribute-list,attributeattributeattribute-nameattribute-argumentsattribute-nametype-nameattribute-arguments(positional-argument-list)(positional-argument-list,named-argument-list)(named-argument-list)positional-argument-listpositional-argumentpositional-argument-list,positional-argumentpositional-argumentargument-nameattribute-argument-expressionargument-nameidentifier:attribute-argument-expressionexpressionexpressionnon-assignment-expressionassignmentnon-assignment-expressionconditional-expressionlambda-expressionquery-expressionconditional-expressionnull-coalescing-expressionnull-coalescing-expression?expression:expressionnull-coalescing-expressionconditional-or-expressionconditional-or-expression??null-coalescing-expressionconditional-or-expressionconditional-and-expressionconditional-or-expression||conditional-and-expressionconditional-and-expressioninclusive-or-expressionconditional-and-expression&&inclusive-or-expressioninclusive-or-expressionexclusive-or-expressioninclusive-or-expression|exclusive-or-expressionexclusive-or-expressionand-expressionexclusive-or-expression^and-expressionand-expressionequality-expressionand-expression&equality-expressionequality-expressionrelational-expressionequality-expression==relational-expressionequality-expression!=relational-expressionrelational-expressionshift-expressionrelational-expression<shift-expressionrelational-expression>shift-expressionrelational-expression<=shift-expressionrelational-expression>=shift-expressionrelational-expressionistyperelational-expressionastypeshift-expressionadditive-expressionshift-expression<<additive-expressionshift-expressionright-shiftadditive-expressionadditive-expressionmultiplicative-expressionadditive-expression+multiplicative-expressionadditive-expression-multiplicative-expressionmultiplicative-expressionunary-expressionmultiplicative-expression*unary-expressionmultiplicative-expression/unary-expressionmultiplicative-expression%unary-expressionunary-expressionprimary-expression+unary-expression-unary-expression!unary-expression~unary-expressionpre-increment-expressionpre-decrement-expressioncast-expressionprimary-expressionprimary-no-array-creation-expressionarray-creation-expressionprimary-no-array-creation-expressionliteralsimple-nameparenthesized-expressionmember-accessinvocation-expressionelement-accessthis-accessbase-accesspost-increment-expressionpost-decrement-expressionobject-creation-expressiondelegate-creation-expressionanonymous-object-creation-expressiontypeof-expressionchecked-expressionunchecked-expressiondefault-value-expressionanonymous-method-expressionsimple-nameidentifiertype-argument-listparenthesized-expression(expression)member-accessprimary-expression.identifiertype-argument-listpredefined-type.identifiertype-argument-listqualified-alias-member.identifierpredefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortinvocation-expressionprimary-expression(argument-list)argument-listargumentargument-list,argumentargumentargument-nameargument-valueargument-valueexpressionrefvariable-referenceoutvariable-referencevariable-referenceexpressionelement-accessprimary-no-array-creation-expression[argument-list]this-accessthisbase-accessbase.identifierbase[argument-list]post-increment-expressionprimary-expression++post-decrement-expressionprimary-expression--object-creation-expressionnewtype(argument-list)object-or-collection-initializernewtypeobject-or-collection-initializerobject-or-collection-initializerobject-initializercollection-initializerobject-initializer{member-initializer-list}{member-initializer-list,}member-initializer-listmember-initializermember-initializer-list,member-initializermember-initializeridentifier=initializer-valueinitializer-valueexpressionobject-or-collection-initializercollection-initializer{element-initializer-list}{element-initializer-list,}element-initializer-listelement-initializerelement-initializer-list,element-initializerelement-initializernon-assignment-expression{expression-list}expression-listexpressionexpression-list,expressiondelegate-creation-expressionnewdelegate-type(expression)anonymous-object-creation-expressionnewanonymous-object-initializeranonymous-object-initializer{member-declarator-list}{member-declarator-list,}member-declarator-listmember-declaratormember-declarator-list,member-declaratormember-declaratorsimple-namemember-accessidentifier=expressiontypeof-expressiontypeof(type)typeof(unbound-type-name)typeof(void)unbound-type-nameidentifiergeneric-dimension-specifieridentifier::identifiergeneric-dimension-specifierunbound-type-name.identifiergeneric-dimension-specifiergeneric-dimension-specifier<commas>commas,commas,checked-expressionchecked(expression)unchecked-expressionunchecked(expression)default-value-expressiondefault(type)anonymous-method-expressiondelegateexplicit-anonymous-function-signatureblockexplicit-anonymous-function-signature(explicit-anonymous-function-parameter-list)explicit-anonymous-function-parameter-listexplicit-anonymous-function-parameterexplicit-anonymous-function-parameter-list,explicit-anonymous-function-parameterexplicit-anonymous-function-parameteranonymous-function-parameter-modifiertypeidentifieranonymous-function-parameter-modifierrefoutblock{statement-list}statement-liststatementstatement-liststatementstatementlabeled-statementdeclaration-statementembedded-statementlabeled-statementidentifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationlocal-variable-typelocal-variable-declaratorslocal-variable-typetypevarlocal-variable-declaratorslocal-variable-declaratorlocal-variable-declarators,local-variable-declaratorlocal-variable-declaratoridentifieridentifier=local-variable-initializerlocal-variable-initializerexpressionarray-initializerarray-initializer{variable-initializer-list}{variable-initializer-list,}variable-initializer-listvariable-initializervariable-initializer-list,variable-initializervariable-initializerexpressionarray-initializerlocal-constant-declarationconsttypeconstant-declaratorsconstant-declaratorsconstant-declaratorconstant-declarators,constant-declaratorconstant-declaratoridentifier=constant-expressionconstant-expressionexpressionembedded-statementblockempty-statementexpression-statementselection-statementiteration-statementjump-statementtry-statementchecked-statementunchecked-statementlock-statementusing-statementyield-statementempty-statement;expression-statementstatement-expression;statement-expressioninvocation-expressionobject-creation-expressionassignmentpost-increment-expressionpost-decrement-expressionpre-increment-expressionpre-decrement-expressionassignmentunary-expressionassignment-operatorexpressionassignment-operator=+=-=*=/=%=&=|=^=<<=right-shift-assignmentright-shift-assignment>>=pre-increment-expression++unary-expressionpre-decrement-expression--unary-expressionselection-statementif-statementswitch-statementif-statementif(boolean-expression)embedded-statementif(boolean-expression)embedded-statementelseembedded-statementboolean-expressionexpressionswitch-statementswitch(expression)switch-blockswitch-block{switch-sections}switch-sectionsswitch-sectionswitch-sectionsswitch-sectionswitch-sectionswitch-labelsstatement-listswitch-labelsswitch-labelswitch-labelsswitch-labelswitch-labelcaseconstant-expression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(boolean-expression)embedded-statementdo-statementdoembedded-statementwhile(boolean-expression);for-statementfor(for-initializer;for-condition;for-iterator)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-liststatement-expression-liststatement-expressionstatement-expression-list,statement-expressionfor-conditionboolean-expressionfor-iteratorstatement-expression-listforeach-statementforeach(local-variable-typeidentifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotoidentifier;gotocaseconstant-expression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausestryblockfinally-clausetryblockcatch-clausesfinally-clausecatch-clausesspecific-catch-clausesgeneral-catch-clausespecific-catch-clausesgeneral-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausesspecific-catch-clausespecific-catch-clausecatch(class-typeidentifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblockchecked-statementcheckedblockunchecked-statementuncheckedblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionyield-statementyieldreturnexpression;yieldbreak;array-creation-expressionnewnon-array-type[expression-list]rank-specifiersarray-initializernewarray-typearray-initializernewrank-specifierarray-initializercast-expression(type)unary-expressionright-shift>>lambda-expressionanonymous-function-signature=>anonymous-function-bodyanonymous-function-signatureexplicit-anonymous-function-signatureimplicit-anonymous-function-signatureimplicit-anonymous-function-signature(implicit-anonymous-function-parameter-list)implicit-anonymous-function-parameterimplicit-anonymous-function-parameter-listimplicit-anonymous-function-parameterimplicit-anonymous-function-parameter-list,implicit-anonymous-function-parameterimplicit-anonymous-function-parameteridentifieranonymous-function-bodyexpressionblockquery-expressionfrom-clausequery-bodyfrom-clausefromtypeidentifierinexpressionquery-bodyquery-body-clausesselect-or-group-clausequery-continuationquery-body-clausesquery-body-clausequery-body-clausesquery-body-clausequery-body-clausefrom-clauselet-clausewhere-clausejoin-clausejoin-into-clauseorderby-clauselet-clauseletidentifier=expressionwhere-clausewhereboolean-expressionjoin-clausejointypeidentifierinexpressiononexpressionequalsexpressionjoin-into-clausejointypeidentifierinexpressiononexpressionequalsexpressionintoidentifierorderby-clauseorderbyorderingsorderingsorderingorderings,orderingorderingexpressionordering-directionordering-directionascendingdescendingselect-or-group-clauseselect-clausegroup-clauseselect-clauseselectexpressiongroup-clausegroupexpressionbyexpressionquery-continuationintoidentifierquery-bodynamed-argument-listnamed-argumentnamed-argument-list,named-argumentnamed-argumentidentifier=attribute-argument-expressionnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationsnamespace-member-declarationnamespace-member-declarationnamespace-declarationtype-declarationnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifieridentifierqualified-identifier.identifiernamespace-body{extern-alias-directivesusing-directivesnamespace-member-declarations}type-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifierspartialclassidentifiertype-parameter-listclass-basetype-parameter-constraints-clausesclass-body;attributesattribute-sectionsattribute-sectionsattribute-sectionattribute-sectionsattribute-sectionattribute-section[attribute-target-specifierattribute-list][attribute-target-specifierattribute-list,]attribute-target-specifierattribute-target:attribute-targetfieldeventmethodparampropertyreturntypeclass-modifiersclass-modifierclass-modifiersclass-modifierclass-modifiernewpublicprotectedinternalprivateabstractsealedstatictype-parameter-list<type-parameters>type-parametersattributestype-parametertype-parameters,attributestype-parameterclass-base:class-type:interface-type-list:class-type,interface-type-listinterface-type-listinterface-typeinterface-type-list,interface-typetype-parameter-constraints-clausestype-parameter-constraints-clausetype-parameter-constraints-clausestype-parameter-constraints-clausetype-parameter-constraints-clausewheretype-parameter:type-parameter-constraintstype-parameter-constraintsprimary-constraintsecondary-constraintsconstructor-constraintprimary-constraint,secondary-constraintsprimary-constraint,constructor-constraintsecondary-constraints,constructor-constraintprimary-constraint,secondary-constraints,constructor-constraintprimary-constraintclass-typeclassstructsecondary-constraintsinterface-typetype-parametersecondary-constraints,interface-typesecondary-constraints,type-parameterconstructor-constraintnew()class-body{class-member-declarations}class-member-declarationsclass-member-declarationclass-member-declarationsclass-member-declarationclass-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationdestructor-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifiersconsttypeconstant-declarators;constant-modifiersconstant-modifierconstant-modifiersconstant-modifierconstant-modifiernewpublicprotectedinternalprivatefield-declarationattributesfield-modifierstypevariable-declarators;field-modifiersfield-modifierfield-modifiersfield-modifierfield-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorsvariable-declaratorvariable-declarators,variable-declaratorvariable-declaratoridentifieridentifier=variable-initializermethod-declarationmethod-headermethod-bodymethod-headerattributesmethod-modifierspartialreturn-typemember-nametype-parameter-list(formal-parameter-list)type-parameter-constraints-clausesmethod-modifiersmethod-modifiermethod-modifiersmethod-modifiermethod-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternreturn-typetypevoidmember-nameidentifierinterface-type.identifierformal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameterfixed-parameters,fixed-parameterfixed-parameterattributesparameter-modifiertypeidentifierdefault-argumentparameter-modifierrefoutthisdefault-argument=expressionparameter-arrayattributesparamsarray-typeidentifiermethod-bodyblock;property-declarationattributesproperty-modifierstypemember-name{accessor-declarations}property-modifiersproperty-modifierproperty-modifiersproperty-modifierproperty-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesaccessor-modifiergetaccessor-bodyaccessor-modifierprotectedinternalprivateprotectedinternalinternalprotectedaccessor-bodyblock;set-accessor-declarationattributesaccessor-modifiersetaccessor-bodyevent-declarationattributesevent-modifierseventtypevariable-declarators;attributesevent-modifierseventtypemember-name{event-accessor-declarations}event-modifiersevent-modifierevent-modifiersevent-modifierevent-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifiersindexer-declarator{accessor-declarations}indexer-modifiersindexer-modifierindexer-modifiersindexer-modifierindexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typeinterface-type.this[formal-parameter-list]operator-declarationattributesoperator-modifiersoperator-declaratoroperator-bodyoperator-modifiersoperator-modifieroperator-modifiersoperator-modifieroperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typeidentifier)overloadable-unary-operator+-!~++--truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typeidentifier,typeidentifier)overloadable-binary-operator+-*/%&|^<<right-shift==!=><>=<=conversion-operator-declaratorimplicitoperatortype(typeidentifier)explicitoperatortype(typeidentifier)operator-bodyblock;constructor-declarationattributesconstructor-modifiersconstructor-declaratorconstructor-bodyconstructor-modifiersconstructor-modifierconstructor-modifiersconstructor-modifierconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratoridentifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)constructor-bodyblock;destructor-declarationattributesextern~identifier()destructor-bodydestructor-bodyblock;static-constructor-declarationattributesstatic-constructor-modifiersidentifier()static-constructor-bodystatic-constructor-modifiersexternstaticstaticexternstatic-constructor-bodyblock;struct-declarationattributesstruct-modifierspartialstructidentifiertype-parameter-liststruct-interfacestype-parameter-constraints-clausesstruct-body;struct-modifiersstruct-modifierstruct-modifiersstruct-modifierstruct-modifiernewpublicprotectedinternalprivatestruct-interfaces:interface-type-liststruct-body{struct-member-declarations}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationinterface-declarationattributesinterface-modifierspartialinterfaceidentifiervariant-type-parameter-listinterface-basetype-parameter-constraints-clausesinterface-body;interface-modifiersinterface-modifierinterface-modifiersinterface-modifierinterface-modifiernewpublicprotectedinternalprivatevariant-type-parameter-list<variant-type-parameters>variant-type-parametersattributesvariance-annotationtype-parametervariant-type-parameters,attributesvariance-annotationtype-parametervariance-annotationinoutinterface-base:interface-type-listinterface-body{interface-member-declarations}interface-member-declarationsinterface-member-declarationinterface-member-declarationsinterface-member-declarationinterface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewreturn-typeidentifiertype-parameter-list(formal-parameter-list)type-parameter-constraints-clauses;interface-property-declarationattributesnewtypeidentifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypeidentifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifiersenumidentifierenum-baseenum-body;enum-modifiersenum-modifierenum-modifiersenum-modifierenum-modifiernewpublicprotectedinternalprivateenum-base:integral-typeenum-body{enum-member-declarations}{enum-member-declarations,}enum-member-declarationsenum-member-declarationenum-member-declarations,enum-member-declarationenum-member-declarationattributesidentifierattributesidentifier=constant-expressiondelegate-declarationattributesdelegate-modifiersdelegatereturn-typeidentifiervariant-type-parameter-list(formal-parameter-list)type-parameter-constraints-clauses;delegate-modifiersdelegate-modifierdelegate-modifiersdelegate-modifierdelegate-modifiernewpublicprotectedinternalprivate \ No newline at end of file diff --git a/shared/bgf/csharp-zaytsev.bgf b/shared/bgf/csharp-zaytsev.bgf new file mode 100644 index 00000000..b390ebb8 --- /dev/null +++ b/shared/bgf/csharp-zaytsev.bgf @@ -0,0 +1 @@ +ref-or-outrefoutexpression-unary-operatorlex-csharp-extra/pluslex-csharp-extra/minusincrement-decrement!~*increment-decrement++--expression-shift-operator<<>>expression-relational-operatorlex-csharp-extra/less-thanlex-csharp-extra/greater-than<=>=isasexpression-equality-operator==!=conversion-kindimplicitexplicitmaybe-empty-block{statement};built-in-typeintegral-typebuilt-in-class-typebooldecimalfloatdoublebuilt-in-class-typeobjectstringelse-partelseembedded-statementqualified-identifier-listqualified-identifier,qualified-identifiercompilation-unitusing-directiveglobal-attributesnamespace-member-declarationtypenon-array-typerank-specifierintegral-typesbytebyteshortushortintuintlongulongcharargument-listargument,argumentargumentref-or-outexpressionprimary-expressionnewnon-array-type[expression-list]rank-specifierarray-initializernewarray-typearray-initializerlex-csharp/literallex-csharp/identifier(expression)primary-expression.lex-csharp/identifierpredefined-type.lex-csharp/identifierprimary-expression(argument-list)primary-expression[expression-list]thisbase.lex-csharp/identifierbase[expression-list]primary-expressionincrement-decrementnewtype(argument-list)typeof(type-or-void)checked(expression)unchecked(expression)predefined-typeboolbytechardecimaldoublefloatintlongobjectsbyteshortstringuintulongushortexpression-listexpression,expressionunary-expressionexpression-unary-operatorunary-expression(type)unary-expressionprimary-expressionassignment-operator=+=-=*=/=%=&=|=^=<<=>>=expressionexpression?expression:expressionexpression||expressionexpression&&expressionexpressionlex-csharp-extra/barexpressionexpression^expressionexpressionlex-csharp-extra/ampersandexpressionexpressionexpression-equality-operatorexpressionexpressionexpression-relational-operatorexpressionexpressionisbuilt-in-typeexpressionexpression-shift-operatorexpressionexpressionlex-csharp-extra/plusexpressionexpressionlex-csharp-extra/minusexpressionexpression*expressionexpression/expressionexpression%expressionunary-expressionunary-expressionassignment-operatorexpressionstatementlabeled-statementdeclaration-statementembedded-statementembedded-statementmaybe-empty-blockstatement-expression;selection-statementiteration-statementjump-statementtry-statementcheckedblockuncheckedblocklock-statementusing-statementblock{statement}labeled-statementlex-csharp/identifier:statementdeclaration-statementlocal-variable-declaration;local-constant-declaration;local-variable-declarationtypevariable-declarator,variable-declaratorlocal-constant-declarationconsttypeconstant-declarator,constant-declaratorconstant-declaratorlex-csharp/identifier=expressionstatement-expressionprimary-expression(argument-list)newtype(argument-list)unary-expressionassignment-operatorexpressionprimary-expressionincrement-decrementincrement-decrementprimary-expressionselection-statementif-statementswitch-statementif-statementif(expression)embedded-statementelse-partswitch-statementswitch(expression){switch-section}switch-sectionswitch-labelstatementswitch-labelcaseexpression:default:iteration-statementwhile-statementdo-statementfor-statementforeach-statementwhile-statementwhile(expression)embedded-statementdo-statementdoembedded-statementwhile(expression);for-statementfor(for-initializer;expression;statement-expression-list)embedded-statementfor-initializerlocal-variable-declarationstatement-expression-liststatement-expression-liststatement-expression,statement-expressionforeach-statementforeach(typelex-csharp/identifierinexpression)embedded-statementjump-statementbreak-statementcontinue-statementgoto-statementreturn-statementthrow-statementbreak-statementbreak;continue-statementcontinue;goto-statementgotolex-csharp/identifier;gotocaseexpression;gotodefault;return-statementreturnexpression;throw-statementthrowexpression;try-statementtryblockcatch-clausesfinally-clausetryblockfinally-clausecatch-clausesspecific-catch-clausegeneral-catch-clausespecific-catch-clausegeneral-catch-clausespecific-catch-clausecatch(built-in-class-typelex-csharp/identifier)blockcatch(qualified-identifierlex-csharp/identifier)blockgeneral-catch-clausecatchblockfinally-clausefinallyblocklock-statementlock(expression)embedded-statementusing-statementusing(resource-acquisition)embedded-statementresource-acquisitionlocal-variable-declarationexpressionnamespace-declarationnamespacequalified-identifiernamespace-body;qualified-identifierlex-csharp/identifier.lex-csharp/identifiernamespace-body{using-directivenamespace-member-declaration}using-directiveusinglex-csharp/identifier=qualified-identifier;namespace-member-declarationnamespace-declarationtype-declarationtype-declarationclass-declarationstruct-declarationinterface-declarationenum-declarationdelegate-declarationclass-declarationattributesclass-modifierclasslex-csharp/identifierclass-baseclass-body;class-modifiernewpublicprotectedinternalprivateabstractsealedclass-base:qualified-identifier-list:built-in-class-type,qualified-identifier-listclass-body{class-member-declaration}class-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationdestructor-declarationstatic-constructor-declarationtype-declarationconstant-declarationattributesconstant-modifierconsttypeconstant-declarator,constant-declarator;constant-modifiernewpublicprotectedinternalprivatefield-declarationattributesfield-modifiertypevariable-declarator,variable-declarator;field-modifiernewpublicprotectedinternalprivatestaticreadonlyvolatilevariable-declaratorlex-csharp/identifierlex-csharp/identifier=variable-initializermethod-declarationmethod-headermaybe-empty-blockmethod-headerattributesmethod-modifiertype-or-voidqualified-identifier(formal-parameter-list)method-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexterntype-or-voidtypevoidformal-parameter-listfixed-parametersfixed-parameters,parameter-arrayparameter-arrayfixed-parametersfixed-parameter,fixed-parameterfixed-parameterattributesparameter-modifiertypelex-csharp/identifierparameter-modifierrefoutparameter-arrayattributesparamsarray-typelex-csharp/identifierproperty-declarationattributesproperty-modifiertypequalified-identifier{accessor-declarations}property-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternaccessor-declarationsget-accessor-declarationset-accessor-declarationset-accessor-declarationget-accessor-declarationget-accessor-declarationattributesgetmaybe-empty-blockset-accessor-declarationattributessetmaybe-empty-blockevent-declarationattributesevent-modifiereventtypevariable-declarator,variable-declarator;attributesevent-modifiereventtypequalified-identifier{event-accessor-declarations}event-modifiernewpublicprotectedinternalprivatestaticvirtualsealedoverrideabstractexternevent-accessor-declarationsadd-accessor-declarationremove-accessor-declarationremove-accessor-declarationadd-accessor-declarationadd-accessor-declarationattributesaddblockremove-accessor-declarationattributesremoveblockindexer-declarationattributesindexer-modifierindexer-declarator{accessor-declarations}indexer-modifiernewpublicprotectedinternalprivatevirtualsealedoverrideabstractexternindexer-declaratortypethis[formal-parameter-list]typequalified-identifier.this[formal-parameter-list]operator-declarationattributesoperator-modifieroperator-declaratormaybe-empty-blockoperator-modifierpublicstaticexternoperator-declaratorunary-operator-declaratorbinary-operator-declaratorconversion-operator-declaratorunary-operator-declaratortypeoperatoroverloadable-unary-operator(typelex-csharp/identifier)overloadable-unary-operatorlex-csharp-extra/pluslex-csharp-extra/minusincrement-decrement!~truefalsebinary-operator-declaratortypeoperatoroverloadable-binary-operator(typelex-csharp/identifier,typelex-csharp/identifier)overloadable-binary-operatorlex-csharp-extra/pluslex-csharp-extra/minus*/%lex-csharp-extra/ampersandlex-csharp-extra/bar^<<>>==!=lex-csharp-extra/greater-thanlex-csharp-extra/less-than>=<=conversion-operator-declaratorconversion-kindoperatortype(typelex-csharp/identifier)constructor-declarationattributesconstructor-modifierconstructor-declaratormaybe-empty-blockconstructor-modifierpublicprotectedinternalprivateexternconstructor-declaratorlex-csharp/identifier(formal-parameter-list)constructor-initializerconstructor-initializer:base(argument-list):this(argument-list)static-constructor-declarationattributesstatic-constructor-modifierslex-csharp/identifier()maybe-empty-blockstatic-constructor-modifiersexternstaticstaticexterndestructor-declarationattributesextern~lex-csharp/identifier()maybe-empty-blockstruct-declarationattributesstruct-modifierstructlex-csharp/identifier:qualified-identifier-liststruct-body;struct-modifiernewpublicprotectedinternalprivatestruct-body{struct-member-declaration}struct-member-declarationsstruct-member-declarationstruct-member-declarationsstruct-member-declarationstruct-member-declarationconstant-declarationfield-declarationmethod-declarationproperty-declarationevent-declarationindexer-declarationoperator-declarationconstructor-declarationstatic-constructor-declarationtype-declarationarray-typenon-array-typerank-specifiernon-array-typequalified-identifierbuilt-in-typerank-specifier[,]array-initializer{}{variable-initializer,variable-initializer,}variable-initializerexpressionarray-initializerinterface-declarationattributesinterface-modifierinterfacelex-csharp/identifier:qualified-identifier-listinterface-body;interface-modifiernewpublicprotectedinternalprivateinterface-body{interface-member-declaration}interface-member-declarationinterface-method-declarationinterface-property-declarationinterface-event-declarationinterface-indexer-declarationinterface-method-declarationattributesnewtype-or-voidlex-csharp/identifier(formal-parameter-list);interface-property-declarationattributesnewtypelex-csharp/identifier{interface-accessors}interface-accessorsattributesget;attributesset;attributesset;attributesget;interface-event-declarationattributesneweventtypelex-csharp/identifier;interface-indexer-declarationattributesnewtypethis[formal-parameter-list]{interface-accessors}enum-declarationattributesenum-modifierenumlex-csharp/identifier:integral-typeenum-body;enum-body{}{enum-member-declaration,enum-member-declaration,}enum-modifiernewpublicprotectedinternalprivateenum-member-declarationattributeslex-csharp/identifier=expressiondelegate-declarationattributesdelegate-modifierdelegatetype-or-voidlex-csharp/identifier(formal-parameter-list);delegate-modifiernewpublicprotectedinternalprivateglobal-attributesglobal-attribute-sectionglobal-attribute-section[assembly:attribute-list,]attributesattribute-sectionattribute-section[attribute-target:attribute-list,]attribute-targetfieldeventmethodmoduleparampropertyreturntypeattribute-listattribute,attributeattributeattribute-nameattribute-argumentsattribute-namequalified-identifierattribute-arguments(expression-list) \ No newline at end of file diff --git a/shared/bgf/csharp.ecma-334.ext.bgf b/shared/bgf/csharp.ecma-334.ext.bgf deleted file mode 100644 index bd47f5c7..00000000 --- a/shared/bgf/csharp.ecma-334.ext.bgf +++ /dev/null @@ -1,7039 +0,0 @@ - - - - compilation-unit - - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - global-attributes - - - - - - - namespace-member-declarations - - - - - - - - namespace-name - - namespace-or-type-name - - - - type-name - - namespace-or-type-name - - - - namespace-or-type-name - - - - - - identifier - - - - - type-argument-list - - - - - - - qualified-alias-member - - - - - namespace-or-type-name - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - - type - - - - value-type - - - reference-type - - - type-parameter - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - nullable-type - - - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - enum-type - - type-name - - - - nullable-type - - - - non-nullable-value-type - - - ? - - - - - - non-nullable-value-type - - - - enum-type - - - type-name - - - simple-type - - - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - - - value-type - - - class-type - - - interface-type - - - delegate-type - - - type-parameter - - - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - variable-reference - - expression - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - primary-expression - - - - array-creation-expression - - - primary-no-array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - default-value-expression - - - anonymous-method-expression - - - - - - simple-name - - - - identifier - - - - - type-argument-list - - - - - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - predefined-type - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - qualified-alias-member - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - expression-list - - - ] - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - base - - - [ - - - expression-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - unbound-type-name - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - unbound-type-name - - - - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - identifier - - - :: - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - unbound-type-name - - - . - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - - generic-dimension-specifier - - - - < - - - - - commas - - - - - > - - - - - - commas - - - - , - - - - - commas - - - , - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - default-value-expression - - - - default - - - ( - - - type - - - ) - - - - - - anonymous-method-expression - - - - delegate - - - - - anonymous-method-signature - - - - - block - - - - - - anonymous-method-signature - - - - ( - - - - - anonymous-method-parameter-list - - - - - ) - - - - - - anonymous-method-parameter-list - - - - anonymous-method-parameter - - - - - anonymous-method-parameter-list - - - , - - - anonymous-method-parameter - - - - - - - - anonymous-method-parameter - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - right-shift - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - null-coalescing-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ?? - - - null-coalescing-expression - - - - - - - - conditional-expression - - - - null-coalescing-expression - - - - - null-coalescing-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - right-shift-assignment - - - - - - expression - - - - conditional-expression - - - assignment - - - - - - constant-expression - - expression - - - - boolean-expression - - expression - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - yield-statement - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - empty-statement - - ; - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - type - - - local-variable-declarators - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - foreach-statement - - - - foreach - - - ( - - - type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - - - catch-clauses - - - - - finally-clause - - - - - - - - catch-clauses - - - - specific-catch-clauses - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - yield-statement - - - - - - yield - - - return - - - expression - - - ; - - - - - - - yield - - - break - - - ; - - - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - extern-alias-directives - - - - extern-alias-directive - - - - - extern-alias-directives - - - extern-alias-directive - - - - - - - - extern-alias-directive - - - - extern - - - alias - - - identifier - - - ; - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - qualified-alias-member - - - - identifier - - - :: - - - identifier - - - - - type-argument-list - - - - - - - - class-declaration - - - - - - attributes - - - - - - - class-modifiers - - - - - - - partial - - - - - class - - - identifier - - - - - type-parameter-list - - - - - - - class-base - - - - - - - type-parameter-constraints-clauses - - - - - class-body - - - - - ; - - - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - static - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - finalizer-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - attributes - - - - - - - method-modifiers - - - - - return-type - - - member-name - - - - - type-parameter-list - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - method-body - - - - block - - - ; - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-modifier - - - - ref - - - out - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - get - - - accessor-body - - - - - - set-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - set - - - accessor-body - - - - - - accessor-modifier - - - - protected - - - internal - - - private - - - - - protected - - - internal - - - - - - - internal - - - protected - - - - - - - - accessor-body - - - - block - - - ; - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - right-shift - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - finalizer-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - finalizer-body - - - - - - finalizer-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - attributes - - - - - - - struct-modifiers - - - - - - - partial - - - - - struct - - - identifier - - - - - type-parameter-list - - - - - - - struct-interfaces - - - - - - - type-parameter-constraints-clauses - - - - - struct-body - - - - - ; - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - interface-declaration - - - - - - attributes - - - - - - - interface-modifiers - - - - - - - partial - - - - - interface - - - identifier - - - - - type-parameter-list - - - - - - - interface-base - - - - - - - type-parameter-constraints-clauses - - - - - interface-body - - - - - ; - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - - - type-parameter-list - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - identifier - - - - - type-parameter-list - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - identifier - - - keyword - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - identifier - - - keyword - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - attribute-argument-expression - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - attribute-argument-expression - - expression - - - - type-parameter-list - - - - < - - - type-parameters - - - > - - - - - - type-parameters - - - - - - - - attributes - - - - - type-parameter - - - - - - - type-parameters - - - , - - - - - attributes - - - - - type-parameter - - - - - - - - type-parameter - - identifier - - - - type-argument-list - - - - < - - - type-arguments - - - > - - - - - - type-arguments - - - - type-argument - - - - - type-arguments - - - , - - - type-argument - - - - - - - - type-argument - - type - - - - type-parameter-constraints-clauses - - - - type-parameter-constraints-clause - - - - - type-parameter-constraints-clauses - - - type-parameter-constraints-clause - - - - - - - - type-parameter-constraints-clause - - - - where - - - type-parameter - - - : - - - type-parameter-constraints - - - - - - type-parameter-constraints - - - - primary-constraint - - - secondary-constraints - - - constructor-constraint - - - - - primary-constraint - - - , - - - secondary-constraints - - - - - - - primary-constraint - - - , - - - constructor-constraint - - - - - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - primary-constraint - - - , - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - - primary-constraint - - - - class-type - - - class - - - struct - - - - - - secondary-constraints - - - - interface-type - - - type-parameter - - - - - secondary-constraints - - - , - - - interface-type - - - - - - - secondary-constraints - - - , - - - type-parameter - - - - - - - - constructor-constraint - - - - new - - - ( - - - ) - - - - - - keyword - - - - abstract - - - as - - - base - - - bool - - - break - - - byte - - - case - - - catch - - - char - - - checked - - - class - - - const - - - continue - - - decimal - - - default - - - delegate - - - do - - - double - - - else - - - enum - - - event - - - explicit - - - extern - - - false - - - finally - - - fixed - - - float - - - for - - - foreach - - - goto - - - if - - - implicit - - - in - - - int - - - interface - - - internal - - - is - - - lock - - - long - - - namespace - - - new - - - null - - - object - - - operator - - - out - - - override - - - params - - - private - - - protected - - - public - - - readonly - - - ref - - - return - - - sbyte - - - sealed - - - short - - - sizeof - - - stackalloc - - - static - - - string - - - struct - - - switch - - - this - - - throw - - - true - - - try - - - typeof - - - uint - - - ulong - - - unchecked - - - unsafe - - - ushort - - - using - - - virtual - - - void - - - volatile - - - while - - - get - - - set - - - yield - - - add - - - remove - - - alias - - - partial - - - where - - - - - diff --git a/shared/bgf/csharp.ecma-334.rec.bgf b/shared/bgf/csharp.ecma-334.rec.bgf deleted file mode 100644 index efb3a899..00000000 --- a/shared/bgf/csharp.ecma-334.rec.bgf +++ /dev/null @@ -1,7052 +0,0 @@ - - - compilation-unit - - compilation-unit - - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - global-attributes - - - - - - - namespace-member-declarations - - - - - - - - extern-alias-directives - - - - extern-alias-directive - - - - - extern-alias-directives - - - extern-alias-directive - - - - - - - - extern-alias-directive - - - - extern - - - alias - - - identifier - - - ; - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - namespace-or-type-name - - - - - - identifier - - - - - type-argument-list - - - - - - - qualified-alias-member - - - - - namespace-or-type-name - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - - type-argument-list - - - - < - - - type-arguments - - - > - - - - - - type-arguments - - - - type-argument - - - - - type-arguments - - - , - - - type-argument - - - - - - - - type-argument - - type - - - - type - - - - value-type - - - reference-type - - - type-parameter - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - nullable-type - - - - - - type-name - - namespace-or-type-name - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - nullable-type - - - - non-nullable-value-type - - - ? - - - - - - non-nullable-value-type - - - - enum-type - - - type-name - - - simple-type - - - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - - - value-type - - - class-type - - - interface-type - - - delegate-type - - - type-parameter - - - - - - delegate-type - - type-name - - - - type-parameter - - identifier - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - qualified-alias-member - - - - identifier - - - :: - - - identifier - - - - - type-argument-list - - - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-name - - namespace-or-type-name - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - identifier - - - keyword - - - - - - keyword - - - - abstract - - - as - - - base - - - bool - - - break - - - byte - - - case - - - catch - - - char - - - checked - - - class - - - const - - - continue - - - decimal - - - default - - - delegate - - - do - - - double - - - else - - - enum - - - event - - - explicit - - - extern - - - false - - - finally - - - fixed - - - float - - - for - - - foreach - - - goto - - - if - - - implicit - - - in - - - int - - - interface - - - internal - - - is - - - lock - - - long - - - namespace - - - new - - - null - - - object - - - operator - - - out - - - override - - - params - - - private - - - protected - - - public - - - readonly - - - ref - - - return - - - sbyte - - - sealed - - - short - - - sizeof - - - stackalloc - - - static - - - string - - - struct - - - switch - - - this - - - throw - - - true - - - try - - - typeof - - - uint - - - ulong - - - unchecked - - - unsafe - - - ushort - - - using - - - virtual - - - void - - - volatile - - - while - - - get - - - set - - - yield - - - add - - - remove - - - alias - - - partial - - - where - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - attribute-argument-expression - - - - attribute-argument-expression - - expression - - - - expression - - - - conditional-expression - - - assignment - - - - - - conditional-expression - - - - null-coalescing-expression - - - - - null-coalescing-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - null-coalescing-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ?? - - - null-coalescing-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - right-shift - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - primary-expression - - - - array-creation-expression - - - primary-no-array-creation-expression - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - default-value-expression - - - anonymous-method-expression - - - - - - simple-name - - - - identifier - - - - - type-argument-list - - - - - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - predefined-type - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - qualified-alias-member - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - variable-reference - - expression - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - expression-list - - - ] - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - base - - - [ - - - expression-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - unbound-type-name - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - unbound-type-name - - - - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - identifier - - - :: - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - unbound-type-name - - - . - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - - generic-dimension-specifier - - - - < - - - - - commas - - - - - > - - - - - - commas - - - - , - - - - - commas - - - , - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - default-value-expression - - - - default - - - ( - - - type - - - ) - - - - - - anonymous-method-expression - - - - delegate - - - - - anonymous-method-signature - - - - - block - - - - - - anonymous-method-signature - - - - ( - - - - - anonymous-method-parameter-list - - - - - ) - - - - - - anonymous-method-parameter-list - - - - anonymous-method-parameter - - - - - anonymous-method-parameter-list - - - , - - - anonymous-method-parameter - - - - - - - - anonymous-method-parameter - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-modifier - - - - ref - - - out - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - type - - - local-variable-declarators - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - constant-expression - - expression - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - yield-statement - - - - - - empty-statement - - ; - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - right-shift-assignment - - - - - - right-shift-assignment - - >>= - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - boolean-expression - - expression - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - foreach-statement - - - - foreach - - - ( - - - type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - - - catch-clauses - - - - - finally-clause - - - - - - - - catch-clauses - - - - specific-catch-clauses - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - yield-statement - - - - - - yield - - - return - - - expression - - - ; - - - - - - - yield - - - break - - - ; - - - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - right-shift - - >> - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - class-declaration - - - - - - attributes - - - - - - - class-modifiers - - - - - - - partial - - - - - class - - - identifier - - - - - type-parameter-list - - - - - - - class-base - - - - - - - type-parameter-constraints-clauses - - - - - class-body - - - - - ; - - - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - identifier - - - keyword - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - static - - - - - - type-parameter-list - - - - < - - - type-parameters - - - > - - - - - - type-parameters - - - - - - - - attributes - - - - - type-parameter - - - - - - - type-parameters - - - , - - - - - attributes - - - - - type-parameter - - - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - type-parameter-constraints-clauses - - - - type-parameter-constraints-clause - - - - - type-parameter-constraints-clauses - - - type-parameter-constraints-clause - - - - - - - - type-parameter-constraints-clause - - - - where - - - type-parameter - - - : - - - type-parameter-constraints - - - - - - type-parameter-constraints - - - - primary-constraint - - - secondary-constraints - - - constructor-constraint - - - - - primary-constraint - - - , - - - secondary-constraints - - - - - - - primary-constraint - - - , - - - constructor-constraint - - - - - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - primary-constraint - - - , - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - - primary-constraint - - - - class-type - - - class - - - struct - - - - - - secondary-constraints - - - - interface-type - - - type-parameter - - - - - secondary-constraints - - - , - - - interface-type - - - - - - - secondary-constraints - - - , - - - type-parameter - - - - - - - - constructor-constraint - - - - new - - - ( - - - ) - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - finalizer-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - attributes - - - - - - - method-modifiers - - - - - return-type - - - member-name - - - - - type-parameter-list - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - method-body - - - - block - - - ; - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - get - - - accessor-body - - - - - - accessor-modifier - - - - protected - - - internal - - - private - - - - - protected - - - internal - - - - - - - internal - - - protected - - - - - - - - accessor-body - - - - block - - - ; - - - - - - set-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - set - - - accessor-body - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - right-shift - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - finalizer-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - finalizer-body - - - - - - finalizer-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - attributes - - - - - - - struct-modifiers - - - - - - - partial - - - - - struct - - - identifier - - - - - type-parameter-list - - - - - - - struct-interfaces - - - - - - - type-parameter-constraints-clauses - - - - - struct-body - - - - - ; - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - interface-declaration - - - - - - attributes - - - - - - - interface-modifiers - - - - - - - partial - - - - - interface - - - identifier - - - - - type-parameter-list - - - - - - - interface-base - - - - - - - type-parameter-constraints-clauses - - - - - interface-body - - - - - ; - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - - - type-parameter-list - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - identifier - - - - - type-parameter-list - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - diff --git a/shared/bgf/csharp.microsoft-1.ext.bgf b/shared/bgf/csharp.microsoft-1.ext.bgf deleted file mode 100644 index d38b4404..00000000 --- a/shared/bgf/csharp.microsoft-1.ext.bgf +++ /dev/null @@ -1,6151 +0,0 @@ - - - - namespace-name - - namespace-or-type-name - - - - type-name - - namespace-or-type-name - - - - namespace-or-type-name - - - - identifier - - - - - namespace-or-type-name - - - . - - - identifier - - - - - - - - type - - - - value-type - - - reference-type - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - type - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - variable-reference - - expression - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - primary-expression - - - - primary-no-array-creation-expression - - - array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - - - - simple-name - - identifier - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - - - predefined-type - - - . - - - identifier - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - expression-list - - - ] - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - - - base - - - [ - - - expression-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - conditional-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - >>= - - - - - - expression - - - - conditional-expression - - - assignment - - - - - - constant-expression - - expression - - - - boolean-expression - - expression - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - empty-statement - - ; - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - type - - - local-variable-declarators - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - foreach-statement - - - - foreach - - - ( - - - type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - finally-clause - - - - - - - try - - - block - - - catch-clauses - - - finally-clause - - - - - - - - catch-clauses - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - compilation-unit - - - - - - using-directives - - - - - - - global-attributes - - - - - - - namespace-member-declarations - - - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - class-declaration - - - - - - attributes - - - - - - - class-modifiers - - - - - class - - - identifier - - - - - class-base - - - - - class-body - - - - - ; - - - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - destructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - attributes - - - - - - - method-modifiers - - - - - return-type - - - member-name - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - method-body - - - - block - - - ; - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-modifier - - - - ref - - - out - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - get - - - accessor-body - - - - - - set-accessor-declaration - - - - - - attributes - - - - - set - - - accessor-body - - - - - - accessor-body - - - - block - - - ; - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - >> - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - destructor-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - destructor-body - - - - - - destructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - attributes - - - - - - - struct-modifiers - - - - - struct - - - identifier - - - - - struct-interfaces - - - - - struct-body - - - - - ; - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - interface-declaration - - - - - - attributes - - - - - - - interface-modifiers - - - - - interface - - - identifier - - - - - interface-base - - - - - interface-body - - - - - ; - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - ; - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - identifier - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - ; - - - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - assembly - - - module - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - field - - - event - - - method - - - param - - - property - - - return - - - type - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - attribute-argument-expression - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - attribute-argument-expression - - expression - - - - keyword - - - - abstract - - - as - - - base - - - bool - - - break - - - byte - - - case - - - catch - - - char - - - checked - - - class - - - const - - - continue - - - decimal - - - default - - - delegate - - - do - - - double - - - else - - - enum - - - event - - - explicit - - - extern - - - false - - - finally - - - fixed - - - float - - - for - - - foreach - - - goto - - - if - - - implicit - - - in - - - int - - - interface - - - internal - - - is - - - lock - - - long - - - namespace - - - new - - - null - - - object - - - operator - - - out - - - override - - - params - - - private - - - protected - - - public - - - readonly - - - ref - - - return - - - sbyte - - - sealed - - - short - - - sizeof - - - stackalloc - - - static - - - string - - - struct - - - switch - - - this - - - throw - - - true - - - try - - - typeof - - - uint - - - ulong - - - unchecked - - - unsafe - - - ushort - - - using - - - virtual - - - void - - - volatile - - - while - - - assembly - - - module - - - add - - - remove - - - get - - - set - - - field - - - method - - - param - - - property - - - - - diff --git a/shared/bgf/csharp.microsoft-1.rec.bgf b/shared/bgf/csharp.microsoft-1.rec.bgf deleted file mode 100644 index ad8cccb6..00000000 --- a/shared/bgf/csharp.microsoft-1.rec.bgf +++ /dev/null @@ -1,5884 +0,0 @@ - - - compilation-unit - - compilation-unit - - - - - - using-directives - - - - - - - global-attributes - - - - - - - namespace-member-declarations - - - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - namespace-or-type-name - - - - identifier - - - - - namespace-or-type-name - - - . - - - identifier - - - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-name - - namespace-or-type-name - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - assembly - - - module - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - type-name - - namespace-or-type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - attribute-argument-expression - - - - attribute-argument-expression - - expression - - - - expression - - - - conditional-expression - - - assignment - - - - - - conditional-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - >> - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - primary-expression - - - - primary-no-array-creation-expression - - - array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - - - - simple-name - - identifier - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - - - predefined-type - - - . - - - identifier - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - variable-reference - - expression - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - expression-list - - - ] - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - - - base - - - [ - - - expression-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - - type - - - - value-type - - - reference-type - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - type - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - >>= - - - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - class-declaration - - - - - - attributes - - - - - - - class-modifiers - - - - - class - - - identifier - - - - - class-base - - - - - class-body - - - - - ; - - - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - field - - - event - - - method - - - param - - - property - - - return - - - type - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - destructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - constant-expression - - expression - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - attributes - - - - - - - method-modifiers - - - - - return-type - - - member-name - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-modifier - - - - ref - - - out - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - method-body - - - - block - - - ; - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - type - - - local-variable-declarators - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - - - - empty-statement - - ; - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - boolean-expression - - expression - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - foreach-statement - - - - foreach - - - ( - - - type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - finally-clause - - - - - - - try - - - block - - - catch-clauses - - - finally-clause - - - - - - - - catch-clauses - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - get - - - accessor-body - - - - - - accessor-body - - - - block - - - ; - - - - - - set-accessor-declaration - - - - - - attributes - - - - - set - - - accessor-body - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - >> - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - destructor-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - destructor-body - - - - - - destructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - attributes - - - - - - - struct-modifiers - - - - - struct - - - identifier - - - - - struct-interfaces - - - - - struct-body - - - - - ; - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - interface-declaration - - - - - - attributes - - - - - - - interface-modifiers - - - - - interface - - - identifier - - - - - interface-base - - - - - interface-body - - - - - ; - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - ; - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - identifier - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - ; - - - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - diff --git a/shared/bgf/csharp.microsoft-3.ext.bgf b/shared/bgf/csharp.microsoft-3.ext.bgf deleted file mode 100644 index 876704c4..00000000 --- a/shared/bgf/csharp.microsoft-3.ext.bgf +++ /dev/null @@ -1,7956 +0,0 @@ - - - - namespace-name - - namespace-or-type-name - - - - type-name - - namespace-or-type-name - - - - namespace-or-type-name - - - - - - identifier - - - - - type-argument-list - - - - - - - - - namespace-or-type-name - - - . - - - identifier - - - type-argument-listop - - - - - qualified-alias-member - - - - - - type - - - - value-type - - - reference-type - - - type-parameter - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - nullable-type - - - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - nullable-type - - - - non-nullable-value-type - - - ? - - - - - - non-nullable-value-type - - type - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - type - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - type-argument-list - - - - < - - - type-arguments - - - > - - - - - - type-arguments - - - - type-argument - - - - - type-arguments - - - , - - - type-argument - - - - - - - - type-argument - - type - - - - type-parameter - - identifier - - - - variable-reference - - expression - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - primary-expression - - - - primary-no-array-creation-expression - - - array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - anonymous-object-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - default-value-expression - - - anonymous-method-expression - - - - - - simple-name - - - - identifier - - - - - type-argument-list - - - - - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - predefined-type - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - qualified-alias-member - - - . - - - identifier - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - expression-list - - - ] - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - - - base - - - [ - - - expression-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - object-or-collection-initializer - - - - - - - - - new - - - type - - - object-or-collection-initializer - - - - - - - - object-or-collection-initializer - - - - object-initializer - - - collection-initializer - - - - - - object-initializer - - - - - - { - - - - - member-initializer-list - - - - - } - - - - - - - { - - - member-initializer-list - - - , - - - } - - - - - - - - member-initializer-list - - - - member-initializer - - - - - member-initializer-list - - - , - - - member-initializer - - - - - - - - member-initializer - - - - identifier - - - = - - - initializer-value - - - - - - initializer-value - - - - expression - - - object-or-collection-initializer - - - - - - collection-initializer - - - - - - { - - - element-initializer-list - - - } - - - - - - - { - - - element-initializer-list - - - , - - - } - - - - - - - - element-initializer-list - - - - element-initializer - - - - - element-initializer-list - - - , - - - element-initializer - - - - - - - - element-initializer - - - - non-assignment-expression - - - - - { - - - expression-list - - - } - - - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - new - - - rank-specifier - - - array-initializer - - - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - anonymous-object-creation-expression - - - - new - - - anonymous-object-initializer - - - - - - anonymous-object-initializer - - - - - - { - - - - - member-declarator-list - - - - - } - - - - - - - { - - - member-declarator-list - - - , - - - } - - - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - simple-name - - - member-access - - - - - identifier - - - = - - - expression - - - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - unbound-type-name - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - unbound-type-name - - - - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - identifier - - - :: - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - unbound-type-name - - - . - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - - generic-dimension-specifier - - - - < - - - - - commas - - - - - > - - - - - - commas - - - - , - - - - - commas - - - , - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - default-value-expression - - - - default - - - ( - - - type - - - ) - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - right-shift - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - null-coalescing-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ?? - - - null-coalescing-expression - - - - - - - - conditional-expression - - - - null-coalescing-expression - - - - - null-coalescing-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - lambda-expression - - - - anonymous-function-signature - - - => - - - anonymous-function-body - - - - - - anonymous-method-expression - - - - delegate - - - - - explicit-anonymous-function-signature - - - - - block - - - - - - anonymous-function-signature - - - - explicit-anonymous-function-signature - - - implicit-anonymous-function-signature - - - - - - explicit-anonymous-function-signature - - - - - - ( - - - - - explicit-anonymous-function-parameter-list - - - - - ) - - - - - explicit-anonymous-function-parameter-list - - - explicit-anonymous-function-parameter - - - - - explicit-anonymous-function-parameter-list - - - , - - - explicit-anonymous-function-parameter - - - - - - - - explicit-anonymous-function-parameter - - - - - - anonymous-function-parameter-modifier - - - - - type - - - identifier - - - - - - anonymous-function-parameter-modifier - - - - ref - - - out - - - - - - implicit-anonymous-function-signature - - - - - - ( - - - - - implicit-anonymous-function-parameter-list - - - - - ) - - - - - implicit-anonymous-function-parameter-list - - - implicit-anonymous-function-parameter - - - - - implicit-anonymous-function-parameter-list - - - , - - - implicit-anonymous-function-parameter - - - - - - - - implicit-anonymous-function-parameter - - identifier - - - - anonymous-function-body - - - - expression - - - block - - - - - - query-expression - - - - from-clause - - - query-body - - - - - - from-clause - - - - from - - - - - type - - - - - identifier - - - in - - - expression - - - - - - query-body - - - - - - query-body-clauses - - - - - select-or-group-clause - - - - - query-continuation - - - - - - - - query-body-clauses - - - - query-body-clause - - - - - query-body-clauses - - - query-body-clause - - - - - - - - query-body-clause - - - - from-clause - - - let-clause - - - where-clause - - - join-clause - - - join-into-clause - - - orderby-clause - - - - - - let-clause - - - - let - - - identifier - - - = - - - expression - - - - - - where-clause - - - - where - - - boolean-expression - - - - - - join-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - - - - join-into-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - into - - - identifier - - - - - - orderby-clause - - - - orderby - - - orderings - - - - - - orderings - - - - ordering - - - - - orderings - - - , - - - ordering - - - - - - - - ordering - - - - expression - - - - - ordering-direction - - - - - - - - ordering-direction - - - - ascending - - - descending - - - - - - select-or-group-clause - - - - select-clause - - - group-clause - - - - - - select-clause - - - - select - - - expression - - - - - - group-clause - - - - group - - - expression - - - by - - - expression - - - - - - query-continuation - - - - into - - - identifier - - - query-body - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - right-shift-assignment - - - - - - expression - - - - non-assignment-expression - - - assignment - - - - - - non-assignment-expression - - - - conditional-expression - - - lambda-expression - - - query-expression - - - - - - constant-expression - - expression - - - - boolean-expression - - expression - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - yield-statement - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - empty-statement - - ; - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - local-variable-type - - - local-variable-declarators - - - - - - local-variable-type - - - - type - - - var - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - foreach-statement - - - - foreach - - - ( - - - local-variable-type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - finally-clause - - - - - - - try - - - block - - - catch-clauses - - - finally-clause - - - - - - - - catch-clauses - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - yield-statement - - - - - - yield - - - return - - - expression - - - ; - - - - - - - yield - - - break - - - ; - - - - - - - - compilation-unit - - - - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - global-attributes - - - - - - - - - namespace-member-declarations - - - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - extern-alias-directives - - - - extern-alias-directive - - - - - extern-alias-directives - - - extern-alias-directive - - - - - - - - extern-alias-directive - - - - extern - - - alias - - - identifier - - - ; - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - qualified-alias-member - - - - identifier - - - :: - - - identifier - - - - - type-argument-list - - - - - - - - class-declaration - - - - - - - - attributes - - - - - - - class-modifiers - - - - - - - partial - - - - - class - - - identifier - - - - - type-parameter-list - - - - - - - - - - - class-base - - - - - - - type-parameter-constraints-clauses - - - - - class-body - - - - - ; - - - - - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - static - - - - - - type-parameter-list - - - - < - - - type-parameters - - - > - - - - - - type-parameters - - - - - - - - attributes - - - - - type-parameter - - - - - - - type-parameters - - - , - - - - - attributes - - - - - type-parameter - - - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - type-parameter-constraints-clauses - - - - type-parameter-constraints-clause - - - - - type-parameter-constraints-clauses - - - type-parameter-constraints-clause - - - - - - - - type-parameter-constraints-clause - - - - where - - - type-parameter - - - : - - - type-parameter-constraints - - - - - - type-parameter-constraints - - - - primary-constraint - - - secondary-constraints - - - constructor-constraint - - - - - primary-constraint - - - , - - - secondary-constraints - - - - - - - primary-constraint - - - , - - - constructor-constraint - - - - - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - primary-constraint - - - , - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - - primary-constraint - - - - class-type - - - class - - - struct - - - - - - secondary-constraints - - - - interface-type - - - type-parameter - - - - - secondary-constraints - - - , - - - interface-type - - - - - - - secondary-constraints - - - , - - - type-parameter - - - - - - - - constructor-constraint - - - - new - - - ( - - - ) - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - destructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - - - attributes - - - - - - - method-modifiers - - - - - - - partial - - - - - return-type - - - member-name - - - - - type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - method-body - - - - block - - - ; - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-modifier - - - - ref - - - out - - - this - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - get - - - accessor-body - - - - - - set-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - set - - - accessor-body - - - - - - accessor-modifier - - - - protected - - - internal - - - private - - - - - protected - - - internal - - - - - - - internal - - - protected - - - - - - - - accessor-body - - - - block - - - ; - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - right-shift - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - destructor-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - destructor-body - - - - - - destructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - - - attributes - - - - - - - struct-modifiers - - - - - - - partial - - - - - struct - - - identifier - - - - - type-parameter-list - - - - - - - - - - - struct-interfaces - - - - - - - type-parameter-constraints-clauses - - - - - struct-body - - - - - ; - - - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - interface-declaration - - - - - - - - attributes - - - - - - - interface-modifiers - - - - - - - partial - - - - - interface - - - identifier - - - - - type-parameter-list - - - - - - - - - - - interface-base - - - - - - - type-parameter-constraints-clauses - - - - - interface-body - - - - - ; - - - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - type-parameter-list - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - identifier - - - - - type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - assembly - - - module - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - field - - - event - - - method - - - param - - - property - - - return - - - type - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - attribute-argument-expression - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - attribute-argument-expression - - expression - - - - keyword - - - - abstract - - - as - - - base - - - bool - - - break - - - byte - - - case - - - catch - - - char - - - checked - - - class - - - const - - - continue - - - decimal - - - default - - - delegate - - - do - - - double - - - else - - - enum - - - event - - - explicit - - - extern - - - false - - - finally - - - fixed - - - float - - - for - - - foreach - - - goto - - - if - - - implicit - - - in - - - int - - - interface - - - internal - - - is - - - lock - - - long - - - namespace - - - new - - - null - - - object - - - operator - - - out - - - override - - - params - - - private - - - protected - - - public - - - readonly - - - ref - - - return - - - sbyte - - - sealed - - - short - - - sizeof - - - stackalloc - - - static - - - string - - - struct - - - switch - - - this - - - throw - - - true - - - try - - - typeof - - - uint - - - ulong - - - unchecked - - - unsafe - - - ushort - - - using - - - virtual - - - void - - - volatile - - - while - - - group - - - by - - - join - - - on - - - equals - - - into - - - let - - - get - - - set - - - yield - - - partial - - - var - - - orderby - - - add - - - remove - - - where - - - from - - - select - - - ascending - - - descending - - - alias - - - field - - - method - - - param - - - property - - - assembly - - - module - - - - - diff --git a/shared/bgf/csharp.microsoft-3.rec.bgf b/shared/bgf/csharp.microsoft-3.rec.bgf deleted file mode 100644 index 4e67e037..00000000 --- a/shared/bgf/csharp.microsoft-3.rec.bgf +++ /dev/null @@ -1,7661 +0,0 @@ - - - compilation-unit - - compilation-unit - - - - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - global-attributes - - - - - - - - - namespace-member-declarations - - - - - - - - extern-alias-directives - - - - extern-alias-directive - - - - - extern-alias-directives - - - extern-alias-directive - - - - - - - - extern-alias-directive - - - - extern - - - alias - - - identifier - - - ; - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - namespace-or-type-name - - - - - - identifier - - - - - type-argument-list - - - - - - - - - namespace-or-type-name - - - . - - - identifier - - - - - type-argument-list - - - - - - - qualified-alias-member - - - - - - type-argument-list - - - - < - - - type-arguments - - - > - - - - - - type-arguments - - - - type-argument - - - - - type-arguments - - - , - - - type-argument - - - - - - - - type-argument - - type - - - - type - - - - value-type - - - reference-type - - - type-parameter - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - nullable-type - - - - - - type-name - - namespace-or-type-name - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - nullable-type - - - - non-nullable-value-type - - - ? - - - - - - non-nullable-value-type - - type - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - type - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - type-parameter - - identifier - - - - qualified-alias-member - - - - identifier - - - :: - - - identifier - - - - - type-argument-list - - - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-name - - namespace-or-type-name - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - assembly - - - module - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - attribute-argument-expression - - - - attribute-argument-expression - - expression - - - - expression - - - - non-assignment-expression - - - assignment - - - - - - non-assignment-expression - - - - conditional-expression - - - lambda-expression - - - query-expression - - - - - - conditional-expression - - - - null-coalescing-expression - - - - - null-coalescing-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - null-coalescing-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ?? - - - null-coalescing-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - right-shift - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - primary-expression - - - - primary-no-array-creation-expression - - - array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - anonymous-object-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - default-value-expression - - - anonymous-method-expression - - - - - - simple-name - - - - identifier - - - - - type-argument-list - - - - - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - predefined-type - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - qualified-alias-member - - - . - - - identifier - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - variable-reference - - expression - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - expression-list - - - ] - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - - - base - - - [ - - - expression-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - object-or-collection-initializer - - - - - - - - - new - - - type - - - object-or-collection-initializer - - - - - - - - object-or-collection-initializer - - - - object-initializer - - - collection-initializer - - - - - - object-initializer - - - - - - { - - - - - member-initializer-list - - - - - } - - - - - - - { - - - member-initializer-list - - - , - - - } - - - - - - - - member-initializer-list - - - - member-initializer - - - - - member-initializer-list - - - , - - - member-initializer - - - - - - - - member-initializer - - - - identifier - - - = - - - initializer-value - - - - - - initializer-value - - - - expression - - - object-or-collection-initializer - - - - - - collection-initializer - - - - - - { - - - element-initializer-list - - - } - - - - - - - { - - - element-initializer-list - - - , - - - } - - - - - - - - element-initializer-list - - - - element-initializer - - - - - element-initializer-list - - - , - - - element-initializer - - - - - - - - element-initializer - - - - non-assignment-expression - - - - - { - - - expression-list - - - } - - - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - anonymous-object-creation-expression - - - - new - - - anonymous-object-initializer - - - - - - anonymous-object-initializer - - - - - - { - - - - - member-declarator-list - - - - - } - - - - - - - { - - - member-declarator-list - - - , - - - } - - - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - simple-name - - - member-access - - - - - identifier - - - = - - - expression - - - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - unbound-type-name - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - unbound-type-name - - - - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - identifier - - - :: - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - unbound-type-name - - - . - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - - generic-dimension-specifier - - - - < - - - - - commas - - - - - > - - - - - - commas - - - - , - - - - - commas - - - , - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - default-value-expression - - - - default - - - ( - - - type - - - ) - - - - - - anonymous-method-expression - - - - delegate - - - - - explicit-anonymous-function-signature - - - - - block - - - - - - explicit-anonymous-function-signature - - - - ( - - - - - explicit-anonymous-function-parameter-list - - - - - ) - - - - - - explicit-anonymous-function-parameter-list - - - - explicit-anonymous-function-parameter - - - - - explicit-anonymous-function-parameter-list - - - , - - - explicit-anonymous-function-parameter - - - - - - - - explicit-anonymous-function-parameter - - - - - - anonymous-function-parameter-modifier - - - - - type - - - identifier - - - - - - anonymous-function-parameter-modifier - - - - ref - - - out - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - local-variable-type - - - local-variable-declarators - - - - - - local-variable-type - - - - type - - - var - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - constant-expression - - expression - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - yield-statement - - - - - - empty-statement - - ; - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - right-shift-assignment - - - - - - right-shift-assignment - - >>= - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - boolean-expression - - expression - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - foreach-statement - - - - foreach - - - ( - - - local-variable-type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - finally-clause - - - - - - - try - - - block - - - catch-clauses - - - finally-clause - - - - - - - - catch-clauses - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - yield-statement - - - - - - yield - - - return - - - expression - - - ; - - - - - - - yield - - - break - - - ; - - - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - new - - - rank-specifier - - - array-initializer - - - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - right-shift - - >> - - - - lambda-expression - - - - anonymous-function-signature - - - => - - - anonymous-function-body - - - - - - anonymous-function-signature - - - - explicit-anonymous-function-signature - - - implicit-anonymous-function-signature - - - - - - implicit-anonymous-function-signature - - - - - - ( - - - - - implicit-anonymous-function-parameter-list - - - - - ) - - - - - implicit-anonymous-function-parameter - - - - - - implicit-anonymous-function-parameter-list - - - - implicit-anonymous-function-parameter - - - - - implicit-anonymous-function-parameter-list - - - , - - - implicit-anonymous-function-parameter - - - - - - - - implicit-anonymous-function-parameter - - identifier - - - - anonymous-function-body - - - - expression - - - block - - - - - - query-expression - - - - from-clause - - - query-body - - - - - - from-clause - - - - from - - - - - type - - - - - identifier - - - in - - - expression - - - - - - query-body - - - - - - query-body-clauses - - - - - select-or-group-clause - - - - - query-continuation - - - - - - - - query-body-clauses - - - - query-body-clause - - - - - query-body-clauses - - - query-body-clause - - - - - - - - query-body-clause - - - - from-clause - - - let-clause - - - where-clause - - - join-clause - - - join-into-clause - - - orderby-clause - - - - - - let-clause - - - - let - - - identifier - - - = - - - expression - - - - - - where-clause - - - - where - - - boolean-expression - - - - - - join-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - - - - join-into-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - into - - - identifier - - - - - - orderby-clause - - - - orderby - - - orderings - - - - - - orderings - - - - ordering - - - - - orderings - - - , - - - ordering - - - - - - - - ordering - - - - expression - - - - - ordering-direction - - - - - - - - ordering-direction - - - - ascending - - - descending - - - - - - select-or-group-clause - - - - select-clause - - - group-clause - - - - - - select-clause - - - - select - - - expression - - - - - - group-clause - - - - group - - - expression - - - by - - - expression - - - - - - query-continuation - - - - into - - - identifier - - - query-body - - - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - class-declaration - - - - - - - - attributes - - - - - - - class-modifiers - - - - - - - partial - - - - - class - - - identifier - - - - - type-parameter-list - - - - - - - - - - - class-base - - - - - - - type-parameter-constraints-clauses - - - - - class-body - - - - - ; - - - - - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - field - - - event - - - method - - - param - - - property - - - return - - - type - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - static - - - - - - type-parameter-list - - - - < - - - type-parameters - - - > - - - - - - type-parameters - - - - - - - - attributes - - - - - type-parameter - - - - - - - type-parameters - - - , - - - - - attributes - - - - - type-parameter - - - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - type-parameter-constraints-clauses - - - - type-parameter-constraints-clause - - - - - type-parameter-constraints-clauses - - - type-parameter-constraints-clause - - - - - - - - type-parameter-constraints-clause - - - - where - - - type-parameter - - - : - - - type-parameter-constraints - - - - - - type-parameter-constraints - - - - primary-constraint - - - secondary-constraints - - - constructor-constraint - - - - - primary-constraint - - - , - - - secondary-constraints - - - - - - - primary-constraint - - - , - - - constructor-constraint - - - - - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - primary-constraint - - - , - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - - primary-constraint - - - - class-type - - - class - - - struct - - - - - - secondary-constraints - - - - interface-type - - - type-parameter - - - - - secondary-constraints - - - , - - - interface-type - - - - - - - secondary-constraints - - - , - - - type-parameter - - - - - - - - constructor-constraint - - - - new - - - ( - - - ) - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - destructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - - - attributes - - - - - - - method-modifiers - - - - - - - partial - - - - - return-type - - - member-name - - - - - type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - - parameter-modifier - - - - ref - - - out - - - this - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - method-body - - - - block - - - ; - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - get - - - accessor-body - - - - - - accessor-modifier - - - - protected - - - internal - - - private - - - - - protected - - - internal - - - - - - - internal - - - protected - - - - - - - - accessor-body - - - - block - - - ; - - - - - - set-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - set - - - accessor-body - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - right-shift - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - destructor-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - destructor-body - - - - - - destructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - - - attributes - - - - - - - struct-modifiers - - - - - - - partial - - - - - struct - - - identifier - - - - - type-parameter-list - - - - - - - - - - - struct-interfaces - - - - - - - type-parameter-constraints-clauses - - - - - struct-body - - - - - ; - - - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - interface-declaration - - - - - - - - attributes - - - - - - - interface-modifiers - - - - - - - partial - - - - - interface - - - identifier - - - - - type-parameter-list - - - - - - - - - - - interface-base - - - - - - - type-parameter-constraints-clauses - - - - - interface-body - - - - - ; - - - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - type-parameter-list - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - identifier - - - - - type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - diff --git a/shared/bgf/csharp.microsoft-4.ext.bgf b/shared/bgf/csharp.microsoft-4.ext.bgf deleted file mode 100644 index 10c2a8fe..00000000 --- a/shared/bgf/csharp.microsoft-4.ext.bgf +++ /dev/null @@ -1,8126 +0,0 @@ - - - - namespace-name - - namespace-or-type-name - - - - type-name - - namespace-or-type-name - - - - namespace-or-type-name - - - - - - identifier - - - - - type-argument-list - - - - - - - - - namespace-or-type-name - - - . - - - identifier - - - - - type-argument-list - - - - - - - qualified-alias-member - - - - - - type - - - - value-type - - - reference-type - - - type-parameter - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - nullable-type - - - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - nullable-type - - - - non-nullable-value-type - - - ? - - - - - - non-nullable-value-type - - type - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - dynamic - - - string - - - - - - interface-type - - type-name - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - type-argument-list - - - - < - - - type-arguments - - - > - - - - - - type-arguments - - - - type-argument - - - - - type-arguments - - - , - - - type-argument - - - - - - - - type-argument - - type - - - - type-parameter - - identifier - - - - variable-reference - - expression - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - - - argument-name - - - - - argument-value - - - - - - argument-name - - - - identifier - - - : - - - - - - argument-value - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - primary-expression - - - - primary-no-array-creation-expression - - - array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - anonymous-object-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - default-value-expression - - - anonymous-method-expression - - - - - - simple-name - - - - identifier - - - - - type-argument-list - - - - - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - predefined-type - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - qualified-alias-member - - - . - - - identifier - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - argument-list - - - ] - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - - - base - - - [ - - - argument-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - object-or-collection-initializer - - - - - - - - - new - - - type - - - object-or-collection-initializer - - - - - - - - object-or-collection-initializer - - - - object-initializer - - - collection-initializer - - - - - - object-initializer - - - - - - { - - - - - member-initializer-list - - - - - } - - - - - - - { - - - member-initializer-list - - - , - - - } - - - - - - - - member-initializer-list - - - - member-initializer - - - - - member-initializer-list - - - , - - - member-initializer - - - - - - - - member-initializer - - - - identifier - - - = - - - initializer-value - - - - - - initializer-value - - - - expression - - - object-or-collection-initializer - - - - - - collection-initializer - - - - - - { - - - element-initializer-list - - - } - - - - - - - { - - - element-initializer-list - - - , - - - } - - - - - - - - element-initializer-list - - - - element-initializer - - - - - element-initializer-list - - - , - - - element-initializer - - - - - - - - element-initializer - - - - non-assignment-expression - - - - - { - - - expression-list - - - } - - - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - new - - - rank-specifier - - - array-initializer - - - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - anonymous-object-creation-expression - - - - new - - - anonymous-object-initializer - - - - - - anonymous-object-initializer - - - - - - { - - - - - member-declarator-list - - - - - } - - - - - - - { - - - member-declarator-list - - - , - - - } - - - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - simple-name - - - member-access - - - - - identifier - - - = - - - expression - - - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - unbound-type-name - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - unbound-type-name - - - - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - identifier - - - :: - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - unbound-type-name - - - . - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - - generic-dimension-specifier - - - - < - - - - - commas - - - - - > - - - - - - commas - - - - , - - - - - commas - - - , - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - default-value-expression - - - - default - - - ( - - - type - - - ) - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - right-shift - - - additive-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - null-coalescing-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ?? - - - null-coalescing-expression - - - - - - - - conditional-expression - - - - null-coalescing-expression - - - - - null-coalescing-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - lambda-expression - - - - anonymous-function-signature - - - => - - - anonymous-function-body - - - - - - anonymous-method-expression - - - - delegate - - - - - explicit-anonymous-function-signature - - - - - block - - - - - - anonymous-function-signature - - - - explicit-anonymous-function-signature - - - implicit-anonymous-function-signature - - - - - - explicit-anonymous-function-signature - - - - ( - - - - - explicit-anonymous-function-parameter-list - - - - - ) - - - - - - explicit-anonymous-function-parameter-list - - - - explicit-anonymous-function-parameter - - - - - explicit-anonymous-function-parameter-list - - - , - - - explicit-anonymous-function-parameter - - - - - - - - explicit-anonymous-function-parameter - - - - - - anonymous-function-parameter-modifier - - - - - type - - - identifier - - - - - - anonymous-function-parameter-modifier - - - - ref - - - out - - - - - - implicit-anonymous-function-signature - - - - - - ( - - - - - implicit-anonymous-function-parameter-list - - - - - ) - - - - - implicit-anonymous-function-parameter - - - - - - implicit-anonymous-function-parameter-list - - - - implicit-anonymous-function-parameter - - - - - implicit-anonymous-function-parameter-list - - - , - - - implicit-anonymous-function-parameter - - - - - - - - implicit-anonymous-function-parameter - - identifier - - - - anonymous-function-body - - - - expression - - - block - - - - - - query-expression - - - - from-clause - - - query-body - - - - - - from-clause - - - - from - - - - - type - - - - - identifier - - - in - - - expression - - - - - - query-body - - - - - - query-body-clauses - - - - - select-or-group-clause - - - - - query-continuation - - - - - - - - query-body-clauses - - - - query-body-clause - - - - - query-body-clauses - - - query-body-clause - - - - - - - - query-body-clause - - - - from-clause - - - let-clause - - - where-clause - - - join-clause - - - join-into-clause - - - orderby-clause - - - - - - let-clause - - - - let - - - identifier - - - = - - - expression - - - - - - where-clause - - - - where - - - boolean-expression - - - - - - join-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - - - - join-into-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - into - - - identifier - - - - - - orderby-clause - - - - orderby - - - orderings - - - - - - orderings - - - - ordering - - - - - orderings - - - , - - - ordering - - - - - - - - ordering - - - - expression - - - - - ordering-direction - - - - - - - - ordering-direction - - - - ascending - - - descending - - - - - - select-or-group-clause - - - - select-clause - - - group-clause - - - - - - select-clause - - - - select - - - expression - - - - - - group-clause - - - - group - - - expression - - - by - - - expression - - - - - - query-continuation - - - - into - - - identifier - - - query-body - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - right-shift-assignment - - - - - - expression - - - - non-assignment-expression - - - assignment - - - - - - non-assignment-expression - - - - conditional-expression - - - lambda-expression - - - query-expression - - - - - - constant-expression - - expression - - - - boolean-expression - - expression - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - yield-statement - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - empty-statement - - ; - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - local-variable-type - - - local-variable-declarators - - - - - - local-variable-type - - - - type - - - var - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - foreach-statement - - - - foreach - - - ( - - - local-variable-type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - finally-clause - - - - - - - try - - - block - - - catch-clauses - - - finally-clause - - - - - - - - catch-clauses - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - yield-statement - - - - - - yield - - - return - - - expression - - - ; - - - - - - - yield - - - break - - - ; - - - - - - - - compilation-unit - - - - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - global-attributes - - - - - - - - - namespace-member-declarations - - - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - extern-alias-directives - - - - extern-alias-directive - - - - - extern-alias-directives - - - extern-alias-directive - - - - - - - - extern-alias-directive - - - - extern - - - alias - - - identifier - - - ; - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - qualified-alias-member - - - - identifier - - - :: - - - identifier - - - - - type-argument-list - - - - - - - - class-declaration - - - - - - - - attributes - - - - - - - class-modifiers - - - - - - - partial - - - - - class - - - identifier - - - - - type-parameter-list - - - - - - - - - - - class-base - - - - - - - type-parameter-constraints-clauses - - - - - class-body - - - - - ; - - - - - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - static - - - - - - type-parameter-list - - - - < - - - type-parameters - - - > - - - - - - type-parameters - - - - - - - - attributes - - - - - type-parameter - - - - - - - type-parameters - - - , - - - - - attributes - - - - - type-parameter - - - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - type-parameter-constraints-clauses - - - - type-parameter-constraints-clause - - - - - type-parameter-constraints-clauses - - - type-parameter-constraints-clause - - - - - - - - type-parameter-constraints-clause - - - - where - - - type-parameter - - - : - - - type-parameter-constraints - - - - - - type-parameter-constraints - - - - primary-constraint - - - secondary-constraints - - - constructor-constraint - - - - - primary-constraint - - - , - - - secondary-constraints - - - - - - - primary-constraint - - - , - - - constructor-constraint - - - - - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - primary-constraint - - - , - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - - primary-constraint - - - - class-type - - - class - - - struct - - - - - - secondary-constraints - - - - interface-type - - - type-parameter - - - - - secondary-constraints - - - , - - - interface-type - - - - - - - secondary-constraints - - - , - - - type-parameter - - - - - - - - constructor-constraint - - - - new - - - ( - - - ) - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - destructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - - - attributes - - - - - - - method-modifiers - - - - - - - partial - - - - - return-type - - - member-name - - - - - type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - method-body - - - - block - - - ; - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - default-argument - - - - - - - - default-argument - - - - = - - - expression - - - - - - parameter-modifier - - - - ref - - - out - - - this - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - get - - - accessor-body - - - - - - set-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - set - - - accessor-body - - - - - - accessor-modifier - - - - protected - - - internal - - - private - - - - - protected - - - internal - - - - - - - internal - - - protected - - - - - - - - accessor-body - - - - block - - - ; - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - right-shift - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - destructor-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - destructor-body - - - - - - destructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - - - attributes - - - - - - - struct-modifiers - - - - - - - partial - - - - - struct - - - identifier - - - - - type-parameter-list - - - - - - - - - - - struct-interfaces - - - - - - - type-parameter-constraints-clauses - - - - - struct-body - - - - - ; - - - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - type - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - interface-declaration - - - - - - - - attributes - - - - - - - interface-modifiers - - - - - - - partial - - - - - interface - - - - - - - identifier - - - - - variant-type-parameter-list - - - - - - - interface-base - - - - - - - - - - - type-parameter-constraints-clauses - - - - - interface-body - - - - - ; - - - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - variant-type-parameter-list - - - - < - - - variant-type-parameters - - - > - - - - - - variant-type-parameters - - - - - - - - attributes - - - - - - - variance-annotation - - - - - type-parameter - - - - - - - variant-type-parameters - - - , - - - - - attributes - - - - - - - variance-annotation - - - - - type-parameter - - - - - - - - variance-annotation - - - - in - - - out - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - type-parameter-list - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - - - - - identifier - - - - - variant-type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - assembly - - - module - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - field - - - event - - - method - - - param - - - property - - - return - - - type - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - - - - - argument-name - - - - - attribute-argument-expression - - - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - attribute-argument-expression - - expression - - - - keyword - - - - abstract - - - as - - - base - - - bool - - - break - - - byte - - - case - - - catch - - - char - - - checked - - - class - - - const - - - continue - - - decimal - - - default - - - delegate - - - do - - - double - - - else - - - enum - - - event - - - explicit - - - extern - - - false - - - finally - - - fixed - - - float - - - for - - - foreach - - - goto - - - if - - - implicit - - - in - - - int - - - interface - - - internal - - - is - - - lock - - - long - - - namespace - - - new - - - null - - - object - - - operator - - - out - - - override - - - params - - - private - - - protected - - - public - - - readonly - - - ref - - - return - - - sbyte - - - sealed - - - short - - - sizeof - - - stackalloc - - - static - - - string - - - struct - - - switch - - - this - - - throw - - - true - - - try - - - typeof - - - uint - - - ulong - - - unchecked - - - unsafe - - - ushort - - - using - - - virtual - - - void - - - volatile - - - while - - - group - - - by - - - join - - - on - - - equals - - - into - - - let - - - get - - - set - - - yield - - - partial - - - var - - - orderby - - - add - - - remove - - - where - - - from - - - select - - - ascending - - - descending - - - alias - - - field - - - method - - - param - - - property - - - dynamic - - - assembly - - - module - - - - - diff --git a/shared/bgf/csharp.microsoft-4.rec.bgf b/shared/bgf/csharp.microsoft-4.rec.bgf deleted file mode 100644 index b1e4162f..00000000 --- a/shared/bgf/csharp.microsoft-4.rec.bgf +++ /dev/null @@ -1,7817 +0,0 @@ - - - compilation-unit - - compilation-unit - - - - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - global-attributes - - - - - - - - - namespace-member-declarations - - - - - - - - extern-alias-directives - - - - extern-alias-directive - - - - - extern-alias-directives - - - extern-alias-directive - - - - - - - - extern-alias-directive - - - - extern - - - alias - - - identifier - - - ; - - - - - - using-directives - - - - using-directive - - - - - using-directives - - - using-directive - - - - - - - - using-directive - - - - using-alias-directive - - - using-namespace-directive - - - - - - using-alias-directive - - - - using - - - identifier - - - = - - - namespace-or-type-name - - - ; - - - - - - namespace-or-type-name - - - - - - identifier - - - - - type-argument-list - - - - - - - - - namespace-or-type-name - - - . - - - identifier - - - - - type-argument-list - - - - - - - qualified-alias-member - - - - - - type-argument-list - - - - < - - - type-arguments - - - > - - - - - - type-arguments - - - - type-argument - - - - - type-arguments - - - , - - - type-argument - - - - - - - - type-argument - - type - - - - type - - - - value-type - - - reference-type - - - type-parameter - - - - - - value-type - - - - struct-type - - - enum-type - - - - - - struct-type - - - - type-name - - - simple-type - - - nullable-type - - - - - - type-name - - namespace-or-type-name - - - - simple-type - - - - numeric-type - - - bool - - - - - - numeric-type - - - - integral-type - - - floating-point-type - - - decimal - - - - - - integral-type - - - - sbyte - - - byte - - - short - - - ushort - - - int - - - uint - - - long - - - ulong - - - char - - - - - - floating-point-type - - - - float - - - double - - - - - - nullable-type - - - - non-nullable-value-type - - - ? - - - - - - non-nullable-value-type - - type - - - - enum-type - - type-name - - - - reference-type - - - - class-type - - - interface-type - - - array-type - - - delegate-type - - - - - - class-type - - - - type-name - - - object - - - dynamic - - - string - - - - - - interface-type - - type-name - - - - array-type - - - - non-array-type - - - rank-specifiers - - - - - - non-array-type - - type - - - - rank-specifiers - - - - rank-specifier - - - - - rank-specifiers - - - rank-specifier - - - - - - - - rank-specifier - - - - [ - - - - - dim-separators - - - - - ] - - - - - - dim-separators - - - - , - - - - - dim-separators - - - , - - - - - - - - delegate-type - - type-name - - - - type-parameter - - identifier - - - - qualified-alias-member - - - - identifier - - - :: - - - identifier - - - - - type-argument-list - - - - - - - - using-namespace-directive - - - - using - - - namespace-name - - - ; - - - - - - namespace-name - - namespace-or-type-name - - - - global-attributes - - global-attribute-sections - - - - global-attribute-sections - - - - global-attribute-section - - - - - global-attribute-sections - - - global-attribute-section - - - - - - - - global-attribute-section - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - ] - - - - - - - [ - - - global-attribute-target-specifier - - - attribute-list - - - , - - - ] - - - - - - - - global-attribute-target-specifier - - - - global-attribute-target - - - : - - - - - - global-attribute-target - - - - assembly - - - module - - - - - - attribute-list - - - - attribute - - - - - attribute-list - - - , - - - attribute - - - - - - - - attribute - - - - attribute-name - - - - - attribute-arguments - - - - - - - - attribute-name - - type-name - - - - attribute-arguments - - - - - - ( - - - - - positional-argument-list - - - - - ) - - - - - - - ( - - - positional-argument-list - - - , - - - named-argument-list - - - ) - - - - - - - ( - - - named-argument-list - - - ) - - - - - - - - positional-argument-list - - - - positional-argument - - - - - positional-argument-list - - - , - - - positional-argument - - - - - - - - positional-argument - - - - - - argument-name - - - - - attribute-argument-expression - - - - - - argument-name - - - - identifier - - - : - - - - - - attribute-argument-expression - - expression - - - - expression - - - - non-assignment-expression - - - assignment - - - - - - non-assignment-expression - - - - conditional-expression - - - lambda-expression - - - query-expression - - - - - - conditional-expression - - - - null-coalescing-expression - - - - - null-coalescing-expression - - - ? - - - expression - - - : - - - expression - - - - - - - - null-coalescing-expression - - - - conditional-or-expression - - - - - conditional-or-expression - - - ?? - - - null-coalescing-expression - - - - - - - - conditional-or-expression - - - - conditional-and-expression - - - - - conditional-or-expression - - - || - - - conditional-and-expression - - - - - - - - conditional-and-expression - - - - inclusive-or-expression - - - - - conditional-and-expression - - - && - - - inclusive-or-expression - - - - - - - - inclusive-or-expression - - - - exclusive-or-expression - - - - - inclusive-or-expression - - - | - - - exclusive-or-expression - - - - - - - - exclusive-or-expression - - - - and-expression - - - - - exclusive-or-expression - - - ^ - - - and-expression - - - - - - - - and-expression - - - - equality-expression - - - - - and-expression - - - & - - - equality-expression - - - - - - - - equality-expression - - - - relational-expression - - - - - equality-expression - - - == - - - relational-expression - - - - - - - equality-expression - - - != - - - relational-expression - - - - - - - - relational-expression - - - - shift-expression - - - - - relational-expression - - - < - - - shift-expression - - - - - - - relational-expression - - - > - - - shift-expression - - - - - - - relational-expression - - - <= - - - shift-expression - - - - - - - relational-expression - - - >= - - - shift-expression - - - - - - - relational-expression - - - is - - - type - - - - - - - relational-expression - - - as - - - type - - - - - - - - shift-expression - - - - additive-expression - - - - - shift-expression - - - << - - - additive-expression - - - - - - - shift-expression - - - right-shift - - - additive-expression - - - - - - - - additive-expression - - - - multiplicative-expression - - - - - additive-expression - - - + - - - multiplicative-expression - - - - - - - additive-expression - - - - - - - multiplicative-expression - - - - - - - - multiplicative-expression - - - - unary-expression - - - - - multiplicative-expression - - - * - - - unary-expression - - - - - - - multiplicative-expression - - - / - - - unary-expression - - - - - - - multiplicative-expression - - - % - - - unary-expression - - - - - - - - unary-expression - - - - primary-expression - - - - - + - - - unary-expression - - - - - - - - - - - unary-expression - - - - - - - ! - - - unary-expression - - - - - - - ~ - - - unary-expression - - - - - pre-increment-expression - - - pre-decrement-expression - - - cast-expression - - - - - - primary-expression - - - - primary-no-array-creation-expression - - - array-creation-expression - - - - - - primary-no-array-creation-expression - - - - literal - - - simple-name - - - parenthesized-expression - - - member-access - - - invocation-expression - - - element-access - - - this-access - - - base-access - - - post-increment-expression - - - post-decrement-expression - - - object-creation-expression - - - delegate-creation-expression - - - anonymous-object-creation-expression - - - typeof-expression - - - checked-expression - - - unchecked-expression - - - default-value-expression - - - anonymous-method-expression - - - - - - simple-name - - - - identifier - - - - - type-argument-list - - - - - - - - parenthesized-expression - - - - ( - - - expression - - - ) - - - - - - member-access - - - - - - primary-expression - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - predefined-type - - - . - - - identifier - - - - - type-argument-list - - - - - - - - - qualified-alias-member - - - . - - - identifier - - - - - - - - predefined-type - - - - bool - - - byte - - - char - - - decimal - - - double - - - float - - - int - - - long - - - object - - - sbyte - - - short - - - string - - - uint - - - ulong - - - ushort - - - - - - invocation-expression - - - - primary-expression - - - ( - - - - - argument-list - - - - - ) - - - - - - argument-list - - - - argument - - - - - argument-list - - - , - - - argument - - - - - - - - argument - - - - - - argument-name - - - - - argument-value - - - - - - argument-value - - - - expression - - - - - ref - - - variable-reference - - - - - - - out - - - variable-reference - - - - - - - - variable-reference - - expression - - - - element-access - - - - primary-no-array-creation-expression - - - [ - - - argument-list - - - ] - - - - - - this-access - - this - - - - base-access - - - - - - base - - - . - - - identifier - - - - - - - base - - - [ - - - argument-list - - - ] - - - - - - - - post-increment-expression - - - - primary-expression - - - ++ - - - - - - post-decrement-expression - - - - primary-expression - - - -- - - - - - - object-creation-expression - - - - - - new - - - type - - - ( - - - - - argument-list - - - - - ) - - - - - object-or-collection-initializer - - - - - - - - - new - - - type - - - object-or-collection-initializer - - - - - - - - object-or-collection-initializer - - - - object-initializer - - - collection-initializer - - - - - - object-initializer - - - - - - { - - - - - member-initializer-list - - - - - } - - - - - - - { - - - member-initializer-list - - - , - - - } - - - - - - - - member-initializer-list - - - - member-initializer - - - - - member-initializer-list - - - , - - - member-initializer - - - - - - - - member-initializer - - - - identifier - - - = - - - initializer-value - - - - - - initializer-value - - - - expression - - - object-or-collection-initializer - - - - - - collection-initializer - - - - - - { - - - element-initializer-list - - - } - - - - - - - { - - - element-initializer-list - - - , - - - } - - - - - - - - element-initializer-list - - - - element-initializer - - - - - element-initializer-list - - - , - - - element-initializer - - - - - - - - element-initializer - - - - non-assignment-expression - - - - - { - - - expression-list - - - } - - - - - - - - expression-list - - - - expression - - - - - expression-list - - - , - - - expression - - - - - - - - delegate-creation-expression - - - - new - - - delegate-type - - - ( - - - expression - - - ) - - - - - - anonymous-object-creation-expression - - - - new - - - anonymous-object-initializer - - - - - - anonymous-object-initializer - - - - - - { - - - - - member-declarator-list - - - - - } - - - - - - - { - - - member-declarator-list - - - , - - - } - - - - - - - - member-declarator-list - - - - member-declarator - - - - - member-declarator-list - - - , - - - member-declarator - - - - - - - - member-declarator - - - - simple-name - - - member-access - - - - - identifier - - - = - - - expression - - - - - - - - typeof-expression - - - - - - typeof - - - ( - - - type - - - ) - - - - - - - typeof - - - ( - - - unbound-type-name - - - ) - - - - - - - typeof - - - ( - - - void - - - ) - - - - - - - - unbound-type-name - - - - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - identifier - - - :: - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - unbound-type-name - - - . - - - identifier - - - - - generic-dimension-specifier - - - - - - - - - - generic-dimension-specifier - - - - < - - - - - commas - - - - - > - - - - - - commas - - - - , - - - - - commas - - - , - - - - - - - - checked-expression - - - - checked - - - ( - - - expression - - - ) - - - - - - unchecked-expression - - - - unchecked - - - ( - - - expression - - - ) - - - - - - default-value-expression - - - - default - - - ( - - - type - - - ) - - - - - - anonymous-method-expression - - - - delegate - - - - - explicit-anonymous-function-signature - - - - - block - - - - - - explicit-anonymous-function-signature - - - - ( - - - - - explicit-anonymous-function-parameter-list - - - - - ) - - - - - - explicit-anonymous-function-parameter-list - - - - explicit-anonymous-function-parameter - - - - - explicit-anonymous-function-parameter-list - - - , - - - explicit-anonymous-function-parameter - - - - - - - - explicit-anonymous-function-parameter - - - - - - anonymous-function-parameter-modifier - - - - - type - - - identifier - - - - - - anonymous-function-parameter-modifier - - - - ref - - - out - - - - - - block - - - - { - - - - - statement-list - - - - - } - - - - - - statement-list - - - - statement - - - - - statement-list - - - statement - - - - - - - - statement - - - - labeled-statement - - - declaration-statement - - - embedded-statement - - - - - - labeled-statement - - - - identifier - - - : - - - statement - - - - - - declaration-statement - - - - - - local-variable-declaration - - - ; - - - - - - - local-constant-declaration - - - ; - - - - - - - - local-variable-declaration - - - - local-variable-type - - - local-variable-declarators - - - - - - local-variable-type - - - - type - - - var - - - - - - local-variable-declarators - - - - local-variable-declarator - - - - - local-variable-declarators - - - , - - - local-variable-declarator - - - - - - - - local-variable-declarator - - - - identifier - - - - - identifier - - - = - - - local-variable-initializer - - - - - - - - local-variable-initializer - - - - expression - - - array-initializer - - - - - - array-initializer - - - - - - { - - - - - variable-initializer-list - - - - - } - - - - - - - { - - - variable-initializer-list - - - , - - - } - - - - - - - - variable-initializer-list - - - - variable-initializer - - - - - variable-initializer-list - - - , - - - variable-initializer - - - - - - - - variable-initializer - - - - expression - - - array-initializer - - - - - - local-constant-declaration - - - - const - - - type - - - constant-declarators - - - - - - constant-declarators - - - - constant-declarator - - - - - constant-declarators - - - , - - - constant-declarator - - - - - - - - constant-declarator - - - - identifier - - - = - - - constant-expression - - - - - - constant-expression - - expression - - - - embedded-statement - - - - block - - - empty-statement - - - expression-statement - - - selection-statement - - - iteration-statement - - - jump-statement - - - try-statement - - - checked-statement - - - unchecked-statement - - - lock-statement - - - using-statement - - - yield-statement - - - - - - empty-statement - - ; - - - - expression-statement - - - - statement-expression - - - ; - - - - - - statement-expression - - - - invocation-expression - - - object-creation-expression - - - assignment - - - post-increment-expression - - - post-decrement-expression - - - pre-increment-expression - - - pre-decrement-expression - - - - - - assignment - - - - unary-expression - - - assignment-operator - - - expression - - - - - - assignment-operator - - - - = - - - += - - - -= - - - *= - - - /= - - - %= - - - &= - - - |= - - - ^= - - - <<= - - - right-shift-assignment - - - - - - right-shift-assignment - - >>= - - - - pre-increment-expression - - - - ++ - - - unary-expression - - - - - - pre-decrement-expression - - - - -- - - - unary-expression - - - - - - selection-statement - - - - if-statement - - - switch-statement - - - - - - if-statement - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - - if - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - else - - - embedded-statement - - - - - - - - boolean-expression - - expression - - - - switch-statement - - - - switch - - - ( - - - expression - - - ) - - - switch-block - - - - - - switch-block - - - - { - - - - - switch-sections - - - - - } - - - - - - switch-sections - - - - switch-section - - - - - switch-sections - - - switch-section - - - - - - - - switch-section - - - - switch-labels - - - statement-list - - - - - - switch-labels - - - - switch-label - - - - - switch-labels - - - switch-label - - - - - - - - switch-label - - - - - - case - - - constant-expression - - - : - - - - - - - default - - - : - - - - - - - - iteration-statement - - - - while-statement - - - do-statement - - - for-statement - - - foreach-statement - - - - - - while-statement - - - - while - - - ( - - - boolean-expression - - - ) - - - embedded-statement - - - - - - do-statement - - - - do - - - embedded-statement - - - while - - - ( - - - boolean-expression - - - ) - - - ; - - - - - - for-statement - - - - for - - - ( - - - - - for-initializer - - - - - ; - - - - - for-condition - - - - - ; - - - - - for-iterator - - - - - ) - - - embedded-statement - - - - - - for-initializer - - - - local-variable-declaration - - - statement-expression-list - - - - - - statement-expression-list - - - - statement-expression - - - - - statement-expression-list - - - , - - - statement-expression - - - - - - - - for-condition - - boolean-expression - - - - for-iterator - - statement-expression-list - - - - foreach-statement - - - - foreach - - - ( - - - local-variable-type - - - identifier - - - in - - - expression - - - ) - - - embedded-statement - - - - - - jump-statement - - - - break-statement - - - continue-statement - - - goto-statement - - - return-statement - - - throw-statement - - - - - - break-statement - - - - break - - - ; - - - - - - continue-statement - - - - continue - - - ; - - - - - - goto-statement - - - - - - goto - - - identifier - - - ; - - - - - - - goto - - - case - - - constant-expression - - - ; - - - - - - - goto - - - default - - - ; - - - - - - - - return-statement - - - - return - - - - - expression - - - - - ; - - - - - - throw-statement - - - - throw - - - - - expression - - - - - ; - - - - - - try-statement - - - - - - try - - - block - - - catch-clauses - - - - - - - try - - - block - - - finally-clause - - - - - - - try - - - block - - - catch-clauses - - - finally-clause - - - - - - - - catch-clauses - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - - - - specific-catch-clauses - - - - - general-catch-clause - - - - - - - - specific-catch-clauses - - - - specific-catch-clause - - - - - specific-catch-clauses - - - specific-catch-clause - - - - - - - - specific-catch-clause - - - - catch - - - ( - - - class-type - - - - - identifier - - - - - ) - - - block - - - - - - general-catch-clause - - - - catch - - - block - - - - - - finally-clause - - - - finally - - - block - - - - - - checked-statement - - - - checked - - - block - - - - - - unchecked-statement - - - - unchecked - - - block - - - - - - lock-statement - - - - lock - - - ( - - - expression - - - ) - - - embedded-statement - - - - - - using-statement - - - - using - - - ( - - - resource-acquisition - - - ) - - - embedded-statement - - - - - - resource-acquisition - - - - local-variable-declaration - - - expression - - - - - - yield-statement - - - - - - yield - - - return - - - expression - - - ; - - - - - - - yield - - - break - - - ; - - - - - - - - array-creation-expression - - - - - - new - - - non-array-type - - - [ - - - expression-list - - - ] - - - - - rank-specifiers - - - - - - - array-initializer - - - - - - - - - new - - - array-type - - - array-initializer - - - - - - - new - - - rank-specifier - - - array-initializer - - - - - - - - cast-expression - - - - ( - - - type - - - ) - - - unary-expression - - - - - - right-shift - - >> - - - - lambda-expression - - - - anonymous-function-signature - - - => - - - anonymous-function-body - - - - - - anonymous-function-signature - - - - explicit-anonymous-function-signature - - - implicit-anonymous-function-signature - - - - - - implicit-anonymous-function-signature - - - - - - ( - - - - - implicit-anonymous-function-parameter-list - - - - - ) - - - - - implicit-anonymous-function-parameter - - - - - - implicit-anonymous-function-parameter-list - - - - implicit-anonymous-function-parameter - - - - - implicit-anonymous-function-parameter-list - - - , - - - implicit-anonymous-function-parameter - - - - - - - - implicit-anonymous-function-parameter - - identifier - - - - anonymous-function-body - - - - expression - - - block - - - - - - query-expression - - - - from-clause - - - query-body - - - - - - from-clause - - - - from - - - - - type - - - - - identifier - - - in - - - expression - - - - - - query-body - - - - - - query-body-clauses - - - - - select-or-group-clause - - - - - query-continuation - - - - - - - - query-body-clauses - - - - query-body-clause - - - - - query-body-clauses - - - query-body-clause - - - - - - - - query-body-clause - - - - from-clause - - - let-clause - - - where-clause - - - join-clause - - - join-into-clause - - - orderby-clause - - - - - - let-clause - - - - let - - - identifier - - - = - - - expression - - - - - - where-clause - - - - where - - - boolean-expression - - - - - - join-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - - - - join-into-clause - - - - join - - - - - type - - - - - identifier - - - in - - - expression - - - on - - - expression - - - equals - - - expression - - - into - - - identifier - - - - - - orderby-clause - - - - orderby - - - orderings - - - - - - orderings - - - - ordering - - - - - orderings - - - , - - - ordering - - - - - - - - ordering - - - - expression - - - - - ordering-direction - - - - - - - - ordering-direction - - - - ascending - - - descending - - - - - - select-or-group-clause - - - - select-clause - - - group-clause - - - - - - select-clause - - - - select - - - expression - - - - - - group-clause - - - - group - - - expression - - - by - - - expression - - - - - - query-continuation - - - - into - - - identifier - - - query-body - - - - - - named-argument-list - - - - named-argument - - - - - named-argument-list - - - , - - - named-argument - - - - - - - - named-argument - - - - identifier - - - = - - - attribute-argument-expression - - - - - - namespace-member-declarations - - - - namespace-member-declaration - - - - - namespace-member-declarations - - - namespace-member-declaration - - - - - - - - namespace-member-declaration - - - - namespace-declaration - - - type-declaration - - - - - - namespace-declaration - - - - namespace - - - qualified-identifier - - - namespace-body - - - - - ; - - - - - - - - qualified-identifier - - - - identifier - - - - - qualified-identifier - - - . - - - identifier - - - - - - - - namespace-body - - - - { - - - - - extern-alias-directives - - - - - - - using-directives - - - - - - - namespace-member-declarations - - - - - } - - - - - - type-declaration - - - - class-declaration - - - struct-declaration - - - interface-declaration - - - enum-declaration - - - delegate-declaration - - - - - - class-declaration - - - - - - - - attributes - - - - - - - class-modifiers - - - - - - - partial - - - - - class - - - identifier - - - - - type-parameter-list - - - - - - - - - - - class-base - - - - - - - type-parameter-constraints-clauses - - - - - class-body - - - - - ; - - - - - - - - - - attributes - - attribute-sections - - - - attribute-sections - - - - attribute-section - - - - - attribute-sections - - - attribute-section - - - - - - - - attribute-section - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - ] - - - - - - - [ - - - - - attribute-target-specifier - - - - - attribute-list - - - , - - - ] - - - - - - - - attribute-target-specifier - - - - attribute-target - - - : - - - - - - attribute-target - - - - field - - - event - - - method - - - param - - - property - - - return - - - type - - - - - - class-modifiers - - - - class-modifier - - - - - class-modifiers - - - class-modifier - - - - - - - - class-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - abstract - - - sealed - - - static - - - - - - type-parameter-list - - - - < - - - type-parameters - - - > - - - - - - type-parameters - - - - - - - - attributes - - - - - type-parameter - - - - - - - type-parameters - - - , - - - - - attributes - - - - - type-parameter - - - - - - - - class-base - - - - - - : - - - class-type - - - - - - - : - - - interface-type-list - - - - - - - : - - - class-type - - - , - - - interface-type-list - - - - - - - - interface-type-list - - - - interface-type - - - - - interface-type-list - - - , - - - interface-type - - - - - - - - type-parameter-constraints-clauses - - - - type-parameter-constraints-clause - - - - - type-parameter-constraints-clauses - - - type-parameter-constraints-clause - - - - - - - - type-parameter-constraints-clause - - - - where - - - type-parameter - - - : - - - type-parameter-constraints - - - - - - type-parameter-constraints - - - - primary-constraint - - - secondary-constraints - - - constructor-constraint - - - - - primary-constraint - - - , - - - secondary-constraints - - - - - - - primary-constraint - - - , - - - constructor-constraint - - - - - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - primary-constraint - - - , - - - secondary-constraints - - - , - - - constructor-constraint - - - - - - - - primary-constraint - - - - class-type - - - class - - - struct - - - - - - secondary-constraints - - - - interface-type - - - type-parameter - - - - - secondary-constraints - - - , - - - interface-type - - - - - - - secondary-constraints - - - , - - - type-parameter - - - - - - - - constructor-constraint - - - - new - - - ( - - - ) - - - - - - class-body - - - - { - - - - - class-member-declarations - - - - - } - - - - - - class-member-declarations - - - - class-member-declaration - - - - - class-member-declarations - - - class-member-declaration - - - - - - - - class-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - destructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - constant-declaration - - - - - - attributes - - - - - - - constant-modifiers - - - - - const - - - type - - - constant-declarators - - - ; - - - - - - constant-modifiers - - - - constant-modifier - - - - - constant-modifiers - - - constant-modifier - - - - - - - - constant-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - field-declaration - - - - - - attributes - - - - - - - field-modifiers - - - - - type - - - variable-declarators - - - ; - - - - - - field-modifiers - - - - field-modifier - - - - - field-modifiers - - - field-modifier - - - - - - - - field-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - readonly - - - volatile - - - - - - variable-declarators - - - - variable-declarator - - - - - variable-declarators - - - , - - - variable-declarator - - - - - - - - variable-declarator - - - - identifier - - - - - identifier - - - = - - - variable-initializer - - - - - - - - method-declaration - - - - method-header - - - method-body - - - - - - method-header - - - - - - - - attributes - - - - - - - method-modifiers - - - - - - - partial - - - - - return-type - - - member-name - - - - - type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - - - - - - method-modifiers - - - - method-modifier - - - - - method-modifiers - - - method-modifier - - - - - - - - method-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - return-type - - - - type - - - void - - - - - - member-name - - - - identifier - - - - - interface-type - - - . - - - identifier - - - - - - - - formal-parameter-list - - - - fixed-parameters - - - - - fixed-parameters - - - , - - - parameter-array - - - - - parameter-array - - - - - - fixed-parameters - - - - fixed-parameter - - - - - fixed-parameters - - - , - - - fixed-parameter - - - - - - - - fixed-parameter - - - - - - attributes - - - - - - - parameter-modifier - - - - - type - - - identifier - - - - - default-argument - - - - - - - - parameter-modifier - - - - ref - - - out - - - this - - - - - - default-argument - - - - = - - - expression - - - - - - parameter-array - - - - - - attributes - - - - - params - - - array-type - - - identifier - - - - - - method-body - - - - block - - - ; - - - - - - property-declaration - - - - - - attributes - - - - - - - property-modifiers - - - - - type - - - member-name - - - { - - - accessor-declarations - - - } - - - - - - property-modifiers - - - - property-modifier - - - - - property-modifiers - - - property-modifier - - - - - - - - property-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - accessor-declarations - - - - - - get-accessor-declaration - - - - - set-accessor-declaration - - - - - - - - - set-accessor-declaration - - - - - get-accessor-declaration - - - - - - - - - - get-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - get - - - accessor-body - - - - - - accessor-modifier - - - - protected - - - internal - - - private - - - - - protected - - - internal - - - - - - - internal - - - protected - - - - - - - - accessor-body - - - - block - - - ; - - - - - - set-accessor-declaration - - - - - - attributes - - - - - - - accessor-modifier - - - - - set - - - accessor-body - - - - - - event-declaration - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - variable-declarators - - - ; - - - - - - - - - attributes - - - - - - - event-modifiers - - - - - event - - - type - - - member-name - - - { - - - event-accessor-declarations - - - } - - - - - - - - event-modifiers - - - - event-modifier - - - - - event-modifiers - - - event-modifier - - - - - - - - event-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - static - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - event-accessor-declarations - - - - - - add-accessor-declaration - - - remove-accessor-declaration - - - - - - - remove-accessor-declaration - - - add-accessor-declaration - - - - - - - - add-accessor-declaration - - - - - - attributes - - - - - add - - - block - - - - - - remove-accessor-declaration - - - - - - attributes - - - - - remove - - - block - - - - - - indexer-declaration - - - - - - attributes - - - - - - - indexer-modifiers - - - - - indexer-declarator - - - { - - - accessor-declarations - - - } - - - - - - indexer-modifiers - - - - indexer-modifier - - - - - indexer-modifiers - - - indexer-modifier - - - - - - - - indexer-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - virtual - - - sealed - - - override - - - abstract - - - extern - - - - - - indexer-declarator - - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - type - - - interface-type - - - . - - - this - - - [ - - - formal-parameter-list - - - ] - - - - - - - - operator-declaration - - - - - - attributes - - - - - operator-modifiers - - - operator-declarator - - - operator-body - - - - - - operator-modifiers - - - - operator-modifier - - - - - operator-modifiers - - - operator-modifier - - - - - - - - operator-modifier - - - - public - - - static - - - extern - - - - - - operator-declarator - - - - unary-operator-declarator - - - binary-operator-declarator - - - conversion-operator-declarator - - - - - - unary-operator-declarator - - - - type - - - operator - - - overloadable-unary-operator - - - ( - - - type - - - identifier - - - ) - - - - - - overloadable-unary-operator - - - - + - - - - - - - ! - - - ~ - - - ++ - - - -- - - - true - - - false - - - - - - binary-operator-declarator - - - - type - - - operator - - - overloadable-binary-operator - - - ( - - - type - - - identifier - - - , - - - type - - - identifier - - - ) - - - - - - overloadable-binary-operator - - - - + - - - - - - - * - - - / - - - % - - - & - - - | - - - ^ - - - << - - - right-shift - - - == - - - != - - - > - - - < - - - >= - - - <= - - - - - - conversion-operator-declarator - - - - - - implicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - explicit - - - operator - - - type - - - ( - - - type - - - identifier - - - ) - - - - - - - - operator-body - - - - block - - - ; - - - - - - constructor-declaration - - - - - - attributes - - - - - - - constructor-modifiers - - - - - constructor-declarator - - - constructor-body - - - - - - constructor-modifiers - - - - constructor-modifier - - - - - constructor-modifiers - - - constructor-modifier - - - - - - - - constructor-modifier - - - - public - - - protected - - - internal - - - private - - - extern - - - - - - constructor-declarator - - - - identifier - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - constructor-initializer - - - - - - - - constructor-initializer - - - - - - : - - - base - - - ( - - - - - argument-list - - - - - ) - - - - - - - : - - - this - - - ( - - - - - argument-list - - - - - ) - - - - - - - - constructor-body - - - - block - - - ; - - - - - - destructor-declaration - - - - - - attributes - - - - - - - extern - - - - - ~ - - - identifier - - - ( - - - ) - - - destructor-body - - - - - - destructor-body - - - - block - - - ; - - - - - - static-constructor-declaration - - - - - - attributes - - - - - static-constructor-modifiers - - - identifier - - - ( - - - ) - - - static-constructor-body - - - - - - static-constructor-modifiers - - - - - - - - extern - - - - - static - - - - - - - static - - - - - extern - - - - - - - - - - static-constructor-body - - - - block - - - ; - - - - - - struct-declaration - - - - - - - - attributes - - - - - - - struct-modifiers - - - - - - - partial - - - - - struct - - - identifier - - - - - type-parameter-list - - - - - - - - - - - struct-interfaces - - - - - - - type-parameter-constraints-clauses - - - - - struct-body - - - - - ; - - - - - - - - - - struct-modifiers - - - - struct-modifier - - - - - struct-modifiers - - - struct-modifier - - - - - - - - struct-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - struct-interfaces - - - - : - - - interface-type-list - - - - - - struct-body - - - - { - - - - - struct-member-declarations - - - - - } - - - - - - struct-member-declarations - - - - struct-member-declaration - - - - - struct-member-declarations - - - struct-member-declaration - - - - - - - - struct-member-declaration - - - - constant-declaration - - - field-declaration - - - method-declaration - - - property-declaration - - - event-declaration - - - indexer-declaration - - - operator-declaration - - - constructor-declaration - - - static-constructor-declaration - - - type-declaration - - - - - - interface-declaration - - - - - - - - attributes - - - - - - - interface-modifiers - - - - - - - partial - - - - - interface - - - - - - - identifier - - - - - variant-type-parameter-list - - - - - - - interface-base - - - - - - - - - - - type-parameter-constraints-clauses - - - - - interface-body - - - - - ; - - - - - - - - - - interface-modifiers - - - - interface-modifier - - - - - interface-modifiers - - - interface-modifier - - - - - - - - interface-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - variant-type-parameter-list - - - - < - - - variant-type-parameters - - - > - - - - - - variant-type-parameters - - - - - - - - attributes - - - - - - - variance-annotation - - - - - type-parameter - - - - - - - variant-type-parameters - - - , - - - - - attributes - - - - - - - variance-annotation - - - - - type-parameter - - - - - - - - variance-annotation - - - - in - - - out - - - - - - interface-base - - - - : - - - interface-type-list - - - - - - interface-body - - - - { - - - - - interface-member-declarations - - - - - } - - - - - - interface-member-declarations - - - - interface-member-declaration - - - - - interface-member-declarations - - - interface-member-declaration - - - - - - - - interface-member-declaration - - - - interface-method-declaration - - - interface-property-declaration - - - interface-event-declaration - - - interface-indexer-declaration - - - - - - interface-method-declaration - - - - - - - - attributes - - - - - - - new - - - - - return-type - - - identifier - - - type-parameter-list - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - interface-property-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - identifier - - - { - - - interface-accessors - - - } - - - - - - interface-accessors - - - - - - - - attributes - - - - - get - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - get - - - ; - - - - - attributes - - - - - set - - - ; - - - - - - - - - attributes - - - - - set - - - ; - - - - - attributes - - - - - get - - - ; - - - - - - - - interface-event-declaration - - - - - - attributes - - - - - - - new - - - - - event - - - type - - - identifier - - - ; - - - - - - interface-indexer-declaration - - - - - - attributes - - - - - - - new - - - - - type - - - this - - - [ - - - formal-parameter-list - - - ] - - - { - - - interface-accessors - - - } - - - - - - enum-declaration - - - - - - attributes - - - - - - - enum-modifiers - - - - - enum - - - identifier - - - - - enum-base - - - - - enum-body - - - - - ; - - - - - - - - enum-modifiers - - - - enum-modifier - - - - - enum-modifiers - - - enum-modifier - - - - - - - - enum-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - - enum-base - - - - : - - - integral-type - - - - - - enum-body - - - - - - { - - - - - enum-member-declarations - - - - - } - - - - - - - { - - - enum-member-declarations - - - , - - - } - - - - - - - - enum-member-declarations - - - - enum-member-declaration - - - - - enum-member-declarations - - - , - - - enum-member-declaration - - - - - - - - enum-member-declaration - - - - - - - - attributes - - - - - identifier - - - - - - - - - attributes - - - - - identifier - - - = - - - constant-expression - - - - - - - - delegate-declaration - - - - - - - - attributes - - - - - - - delegate-modifiers - - - - - delegate - - - return-type - - - - - - - identifier - - - - - variant-type-parameter-list - - - - - - - - - ( - - - - - formal-parameter-list - - - - - ) - - - - - type-parameter-constraints-clauses - - - - - ; - - - - - - - - delegate-modifiers - - - - delegate-modifier - - - - - delegate-modifiers - - - delegate-modifier - - - - - - - - delegate-modifier - - - - new - - - public - - - protected - - - internal - - - private - - - - - diff --git a/shared/bgf/dart-google.bgf b/shared/bgf/dart-google.bgf new file mode 100644 index 00000000..7c3b36a8 --- /dev/null +++ b/shared/bgf/dart-google.bgf @@ -0,0 +1 @@ +compilationUnitlibraryUnitcompilationUnitHASHBANGdirectivetopLevelDefinitionEOFHASHBANG#!NEWLINENEWLINE\n\rdirective#identifierarguments;identifierIDENTIFIER_NO_DOLLARIDENTIFIERABSTRACTASSERTCLASSEXTENDSFACTORYGETIMPLEMENTSIMPORTINTERFACEISLIBRARYNATIVENEGATEOPERATORSETSOURCESTATICTYPEDEFIDENTIFIER_NO_DOLLARIDENTIFIER_START_NO_DOLLARIDENTIFIER_PART_NO_DOLLARIDENTIFIER_START_NO_DOLLARLETTER_LETTERabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZIDENTIFIER_PART_NO_DOLLARIDENTIFIER_START_NO_DOLLARDIGITDIGIT0123456789IDENTIFIERIDENTIFIER_STARTIDENTIFIER_PARTIDENTIFIER_STARTIDENTIFIER_START_NO_DOLLAR$IDENTIFIER_PARTIDENTIFIER_STARTDIGITABSTRACTabstractASSERTassertCLASSclassEXTENDSextendsFACTORYfactoryGETgetIMPLEMENTSimplementsIMPORTimportINTERFACEinterfaceISisLIBRARYlibraryNATIVEnativeNEGATEnegateOPERATORoperatorSETsetSOURCEsourceSTATICstaticTYPEDEFtypedefarguments(argumentList)argumentListnamedArgument,namedArgumentexpressionList,namedArgumentnamedArgumentlabelexpressionlabelidentifier:expressionassignableExpressionassignmentOperatorexpressionconditionalExpressionassignableExpressionprimaryargumentsassignableSelectorSUPERassignableSelectoridentifierprimaryprimaryNoFEprimaryFEprimaryNoFETHISSUPERassignableSelectorliteralidentifierCONSTtypeArgumentscompoundLiteralNEWCONSTtype.identifierargumentsexpressionInParenthesesTHISthisSUPERsuperassignableSelector[expression].identifierliteralNULLTRUEFALSEHEX_NUMBERNUMBERSTRINGNULLnullTRUEtrueFALSEfalseHEX_NUMBER0xHEX_DIGIT0XHEX_DIGITHEX_DIGITabcdefABCDEFDIGITNUMBERDIGITNUMBER_OPT_FRACTIONAL_PARTEXPONENTNUMBER_OPT_ILLEGAL_END.DIGITEXPONENTNUMBER_OPT_ILLEGAL_ENDNUMBER_OPT_FRACTIONAL_PART.DIGITEXPONENTeE+-DIGITNUMBER_OPT_ILLEGAL_ENDSTRING@MULTI_LINE_STRINGSINGLE_LINE_STRINGMULTI_LINE_STRING""""""\'\'\'\'\'\'SINGLE_LINE_STRING"STRING_CONTENT_DQ"\'STRING_CONTENT_SQ\'@\'\'@""STRING_CONTENT_DQ\\STRING_CONTENT_SQ\\CONSTconsttypeArguments<typeList>typeListtype,typetypequalifiedtypeArgumentsqualifiedidentifier.identifiercompoundLiterallistLiteralmapLiterallistLiteral[expressionList,]expressionListexpression,expressionmapLiteral{mapLiteralEntry,mapLiteralEntry,}mapLiteralEntrySTRING:expressionNEWnewexpressionInParentheses(expression)primaryFEfunctionExpressionprimaryNoFEfunctionExpressionreturnTypeidentifierformalParameterListfunctionExpressionBodyreturnTypeVOIDtypeVOIDvoidformalParameterList(namedFormalParameters)(normalFormalParameternormalFormalParameterTail)namedFormalParameters[defaultFormalParameter,defaultFormalParameter]defaultFormalParameternormalFormalParameter=constantExpressionnormalFormalParameterfunctionDeclarationfieldFormalParametersimpleFormalParameterfunctionDeclarationreturnTypeidentifierformalParameterListfieldFormalParameterfinalVarOrTypeTHIS.identifierfinalVarOrTypeFINALtypeVARtypeFINALfinalVARvarsimpleFormalParameterdeclaredIdentifieridentifierdeclaredIdentifierFINALtypeidentifierVARidentifiertypeidentifierconstantExpressionexpressionnormalFormalParameterTail,namedFormalParameters,normalFormalParameternormalFormalParameterTailfunctionExpressionBody=>expressionblockblock{statements}statementsstatementstatementlabelnonLabelledStatementnonLabelledStatementblockinitializedVariableDeclaration;iterationStatementselectionStatementtryStatementBREAKidentifier;CONTINUEidentifier;RETURNexpression;THROWexpression;expression;ASSERT(conditionalExpression);functionDeclarationfunctionBodyinitializedVariableDeclarationdeclaredIdentifier=expression,initializedIdentifierinitializedIdentifieridentifier=expressioniterationStatementWHILE(expression)statementDOstatementWHILE(expression);FOR(forLoopParts)statementWHILEwhileDOdoFORforforLoopPartsforInitializerStatementexpression;expressionListdeclaredIdentifierINexpressionidentifierINexpressionforInitializerStatementinitializedVariableDeclaration;expression;INinselectionStatementIF(expression)statementELSEstatementSWITCH(expression){switchCasedefaultCase}IFifELSEelseSWITCHswitchswitchCaselabelCASEexpression:statementsCASEcasedefaultCaselabelCASEexpression:DEFAULT:statementsDEFAULTdefaulttryStatementTRYblockcatchPartfinallyPartfinallyPartTRYtrycatchPartCATCH(declaredIdentifier,declaredIdentifier)blockCATCHcatchfinallyPartFINALLYblockFINALLYfinallyBREAKbreakCONTINUEcontinueRETURNreturnTHROWthrowconditionalExpressionlogicalOrExpression?expression:expressionlogicalOrExpressionlogicalAndExpression||logicalAndExpressionlogicalAndExpressionbitwiseOrExpression&&bitwiseOrExpressionbitwiseOrExpressionbitwiseXorExpression|bitwiseXorExpressionSUPER|bitwiseXorExpressionbitwiseXorExpressionbitwiseAndExpression^bitwiseAndExpressionSUPER^bitwiseAndExpressionbitwiseAndExpressionequalityExpression&equalityExpressionSUPER&equalityExpressionequalityExpressionrelationalExpressionequalityOperatorrelationalExpressionSUPERequalityOperatorrelationalExpressionrelationalExpressionshiftExpressionisOperatortyperelationalOperatorshiftExpressionSUPERrelationalOperatorshiftExpressionshiftExpressionadditiveExpressionshiftOperatoradditiveExpressionSUPERshiftOperatoradditiveExpressionadditiveExpressionmultiplicativeExpressionadditiveOperatormultiplicativeExpressionSUPERadditiveOperatormultiplicativeExpressionmultiplicativeExpressionunaryExpressionmultiplicativeOperatorunaryExpressionSUPERmultiplicativeOperatorunaryExpressionunaryExpressionpostfixExpressionprefixOperatorunaryExpressionnegateOperatorSUPER-SUPERincrementOperatorassignableExpressionpostfixExpressionassignableExpressionpostfixOperatorprimaryselectorpostfixOperatorincrementOperatorincrementOperator++--selectorassignableSelectorargumentsprefixOperatoradditiveOperatornegateOperatoradditiveOperator+-negateOperator!~multiplicativeOperator*/%~/shiftOperator<<>>>>>isOperatorIS!relationalOperator>=><=<equalityOperator==!====!==functionBody=>expression;blockassignmentOperator=*=/=~/=%=+=-=<<=>>>=>>=&=^=|=topLevelDefinitionclassDefinitioninterfaceDefinitionfunctionTypeAliasfunctionDeclarationfunctionBodyOrNativereturnTypegetOrSetidentifierformalParameterListfunctionBodyOrNativeFINALtypestaticFinalDeclarationList;constInitializedVariableDeclaration;classDefinitionCLASSidentifiertypeParameterssuperclassinterfaces{classMemberDefinition}CLASSidentifiertypeParametersinterfacesNATIVESTRING{classMemberDefinition}typeParameters<typeParameter,typeParameter>typeParameteridentifierEXTENDStypesuperclassEXTENDStypeinterfacesIMPLEMENTStypeListclassMemberDefinitiondeclaration;constructorDeclaration;methodDeclarationfunctionBodyOrNativeCONSTfactoryConstructorDeclarationfunctionNativedeclarationconstantConstructorDeclarationredirectioninitializersfunctionDeclarationredirectionnamedConstructorDeclarationredirectionABSTRACTspecialSignatureDefinitionABSTRACTfunctionDeclarationSTATICFINALtypestaticFinalDeclarationListSTATICconstInitializedVariableDeclarationconstantConstructorDeclarationCONSTqualifiedformalParameterListredirection:THIS.identifierargumentsinitializers:superCallOrFieldInitializer,superCallOrFieldInitializersuperCallOrFieldInitializerSUPERargumentsSUPER.identifierargumentsfieldInitializerfieldInitializerTHIS.identifier=conditionalExpressionnamedConstructorDeclarationidentifier.identifierformalParameterListspecialSignatureDefinitionSTATICreturnTypegetOrSetidentifierformalParameterListreturnTypeOPERATORuserDefinableOperatorformalParameterListgetOrSetGETSETuserDefinableOperatormultiplicativeOperatoradditiveOperatorshiftOperatorrelationalOperatorbitwiseOperator==~NEGATE[][]=bitwiseOperator&^|staticFinalDeclarationListstaticFinalDeclaration,staticFinalDeclarationstaticFinalDeclarationidentifier=constantExpressionconstInitializedVariableDeclarationdeclaredIdentifier=constantExpression,constInitializedIdentifierconstInitializedIdentifieridentifier=constantExpressionconstructorDeclarationidentifierformalParameterListredirectioninitializersnamedConstructorDeclarationredirectioninitializersmethodDeclarationfactoryConstructorDeclarationSTATICfunctionDeclarationspecialSignatureDefinitionfunctionDeclarationinitializersnamedConstructorDeclarationinitializersfactoryConstructorDeclarationFACTORYqualifiedtypeParameters.identifierformalParameterListfunctionBodyOrNativeNATIVEfunctionBodyfunctionNativefunctionBodyfunctionNativeNATIVESTRING;interfaceDefinitionINTERFACEidentifiertypeParameterssuperinterfacesfactorySpecification{interfaceMemberDefinition}superinterfacesEXTENDStypeListfactorySpecificationFACTORYtypeinterfaceMemberDefinitionSTATICFINALtypeinitializedIdentifierList;functionDeclaration;constantConstructorDeclaration;namedConstructorDeclaration;specialSignatureDefinition;variableDeclaration;initializedIdentifierListinitializedIdentifier,initializedIdentifiervariableDeclarationdeclaredIdentifier,identifierfunctionTypeAliasTYPEDEFfunctionPrefixtypeParametersformalParameterList;functionPrefixreturnTypeidentifierlibraryUnitlibraryDefinitionEOFlibraryDefinitionLIBRARY{libraryBody}libraryBodylibraryImportlibrarySourcelibraryImportIMPORT=[importReferences]importReferencesimportReference,importReference,importReferenceIDENTIFIER:STRINGlibrarySourceSOURCE=[sourceUrls]sourceUrlsSTRING,STRING, \ No newline at end of file diff --git a/shared/bgf/dart-spec-0.01.bgf b/shared/bgf/dart-spec-0.01.bgf new file mode 100644 index 00000000..be8f4b47 --- /dev/null +++ b/shared/bgf/dart-spec-0.01.bgf @@ -0,0 +1,4808 @@ + + + + + variableDeclaration + + + + declaredIdentifier + + + + + + + , + + + identifier + + + + + + + + + + initializedVariableDeclaration + + + + declaredIdentifier + + + + + + + = + + + expression + + + + + + + + + + + , + + + initializedIdentifier + + + + + + + + + + initializedIdentifierList + + + + initializedIdentifier + + + + + + + , + + + initializedIdentifier + + + + + + + + + + initializedIdentifier + + + + identifier + + + + + + + = + + + expression + + + + + + + + + + declaredIdentifier + + + + finalVarOrType + + + identifier + + + + + + finalVarOrType + + + + + + final + + + + + type + + + + + + + var + + + type + + + + + + functionSignature + + + + + + returnType + + + + + identifier + + + formalParameterList + + + + + + functionPrefix + + + + + + returnType + + + + + identifier + + + + + + functionBody + + + + + + => + + + expression + + + ; + + + + + block + + + + + + block + + + + { + + + statements + + + } + + + + + + formalParameterList + + + + + + ( + + + ) + + + + + + + ( + + + normalFormalParameters + + + + + + + , + + + namedFormalParameters + + + + + + + ) + + + + + namedFormalParameters + + + + + + normalFormalParameters + + + + normalFormalParameter + + + + + + + , + + + normalFormalParameter + + + + + + + + + + namedFormalParameters + + + + [ + + + defaultFormalParameter + + + + + + + , + + + defaultFormalParameter + + + + + + + ] + + + + + + normalFormalParameter + + + + functionSignature + + + fieldFormalParameter + + + simpleFormalParameter + + + + + + simpleFormalParameter + + + + declaredIdentifier + + + identifier + + + + + + fieldFormalParameter + + + + + + finalVarOrType + + + + + this + + + . + + + identifier + + + + + + defaultFormalParameter + + + + normalFormalParameter + + + + + + + = + + + expression + + + + + + + + + + classDefinition + + + + class + + + identifier + + + + + typeParameters + + + + + + + superclass + + + + + + + interfaces + + + + + { + + + + + classMemberDefinition + + + + + } + + + + + + classMemberDefinition + + + + + + declaration + + + ; + + + + + + + methodSignature + + + functionBody + + + + + + + + methodSignature + + + + factoryConstructorSignature + + + + + static + + + functionSignature + + + + + getterSignature + + + setterSignature + + + operatorSignature + + + + + functionSignature + + + + + initializers + + + + + + + + + namedConstructorSignature + + + + + initializers + + + + + + + + + + declaration + + + + + + constantConstructorSignature + + + + + + + redirection + + + initializers + + + + + + + + + + + constructorSignature + + + + + + + redirection + + + initializers + + + + + + + + + + + functionSignature + + + redirection + + + + + + + namedConstructorSignature + + + redirection + + + + + + + abstract + + + getterSignature + + + + + + + abstract + + + setterSignature + + + + + + + abstract + + + operatorSignature + + + + + + + abstract + + + functionSignature + + + + + + + static + + + final + + + + + type + + + + + staticFinalDeclarationList + + + + + + + + + static + + + + + initializedVariableDeclaration + + + + + + + + staticFinalDeclarationList + + + + staticFinalDeclaration + + + + + + + , + + + staticFinalDeclaration + + + + + + + + + + staticFinalDeclaration + + + + identifier + + + = + + + expression + + + + + + operatorSignature + + + + + + returnType + + + + + operator + + + operator + + + formalParameterList + + + + + + operator + + + + unaryOperator + + + binaryOperator + + + [] + + + []= + + + negate + + + + + + unaryOperator + + negateOperator + + + + binaryOperator + + + + multiplicativeOperator + + + additiveOperator + + + shiftOperator + + + relationalOperator + + + equalityOperator + + + bitwiseOperator + + + + + + prefixOperator + + + + additiveOperator + + + negateOperator + + + + + + negateOperator + + + + ! + + + ~ + + + + + + getterSignature + + + + + + static + + + + + + + returnType + + + + + get + + + identifier + + + formalParameterList + + + + + + setterSignature + + + + + + static + + + + + + + returnType + + + + + set + + + identifier + + + formalParameterList + + + + + + constructorSignature + + + + + + identifier + + + formalParameterList + + + + + namedConstructorSignature + + + + + + namedConstructorSignature + + + + identifier + + + . + + + identifier + + + formalParameterList + + + + + + redirection + + + + : + + + this + + + + + + + . + + + identifier + + + + + + + arguments + + + + + + initializers + + + + : + + + superCallOrFieldInitializer + + + + + + + , + + + superCallOrFieldInitializer + + + + + + + + + + superCallOrFieldInitializer + + + + + + super + + + arguments + + + + + + + super + + + . + + + identifier + + + arguments + + + + + fieldInitializer + + + + + + fieldInitializer + + + + + + + + this + + + . + + + + + + + identifier + + + = + + + conditionalExpression + + + + + + factoryConstructorSignature + + + + factory + + + qualified + + + + + typeVariables + + + + + + + + + . + + + identifier + + + + + + + formalParameterList + + + + + + constantConstructorSignature + + + + const + + + qualified + + + formalParameterList + + + + + + superclass + + + + extends + + + type + + + + + + interfaces + + + + implements + + + typeList + + + + + + interfaceDefinition + + + + interface + + + identifier + + + + + typeParameters + + + + + + + superinterfaces + + + + + + + factorySpecification + + + + + { + + + + + interfaceMemberDefinition + + + + + } + + + + + + interfaceMemberDefinition + + + + + + static + + + final + + + + + type + + + + + initializedIdentifierList + + + ; + + + + + + + functionSignature + + + ; + + + + + + + constantConstructorSignature + + + ; + + + + + + + namedConstructorSignature + + + ; + + + + + + + getterSignature + + + ; + + + + + + + setterSignature + + + ; + + + + + + + operatorSignature + + + ; + + + + + + + variableDeclaration + + + ; + + + + + + + + factorySpecification + + + + factory + + + identifier + + + + + typeParameters + + + + + + + + superinterfaces + + + + extends + + + typeList + + + + + + typeParameter + + + + identifier + + + + + + + extends + + + type + + + + + + + + + + typeParameters + + + + < + + + typeParameter + + + + + + + , + + + typeParameter + + + + + + + > + + + + + + expression + + + + + + assignableExpression + + + assignmentOperator + + + expression + + + + + conditionalExpression + + + + + + expressionList + + + + expression + + + + + + + , + + + expression + + + + + + + + + + primary + + + + thisExpression + + + + + super + + + assignableSelector + + + + + functionExpression + + + literal + + + identifier + + + + + newExpression + + + constantObjectExpression + + + + + + + ( + + + expression + + + ) + + + + + + + + literal + + + + nullLiteral + + + booleanLiteral + + + numericLiteral + + + stringLiteral + + + mapLiteral + + + listLiteral + + + + + + nullLiteral + + null + + + + numericLiteral + + + + NUMBER + + + HEX_NUMBER + + + + + + NUMBER + + + + + + + + DIGIT + + + + + + + + + . + + + + + DIGIT + + + + + + + + + + + EXPONENT + + + + + + + + + . + + + + + DIGIT + + + + + + + EXPONENT + + + + + + + + + + EXPONENT + + + + + + e + + + E + + + + + + + + + + + + + - + + + + + + + + + DIGIT + + + + + + + + HEX_NUMBER + + + + + + 0x + + + + + HEX_DIGIT + + + + + + + + + 0X + + + + + HEX_DIGIT + + + + + + + + + + HEX_DIGIT + + + + a + + + b + + + c + + + d + + + e + + + f + + + A + + + B + + + C + + + D + + + E + + + F + + + DIGIT + + + + + + booleanLiteral + + + + true + + + false + + + + + + stringLiteral + + + + + + + + @ + + + + + MULTI_LINE_STRING + + + + + SINGLE_LINE_STRING + + + + + + SINGLE_LINE_STRING + + + + + + " + + + + + STRING_CONTENT_DQ + + + + + " + + + + + + + ' + + + + + STRING_CONTENT_SQ + + + + + ' + + + + + + + @ + + + ' + + + + + + + + + + ' + + + + + + + @ + + + " + + + + + + + + + + " + + + + + + + + MULTI_LINE_STRING + + + + + + """ + + + + + + + + + + """ + + + + + + + ''' + + + + + + + + + + ''' + + + + + + + + ESCAPE_SEQUENCE + + + + + + \ + + + n + + + + + + + \ + + + r + + + + + + + \ + + + f + + + + + + + \ + + + b + + + + + + + \ + + + t + + + + + + + \ + + + v + + + + + + + \ + + + x + + + HEX_DIGIT + + + HEX_DIGIT + + + + + + + \ + + + u + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + + + + + \ + + + u + + + + + + + + HEX_DIGIT_SEQUENCE + + + + HEX_DIGIT + + + + + HEX_DIGIT + + + + + + + HEX_DIGIT + + + + + + + HEX_DIGIT + + + + + + + HEX_DIGIT + + + + + + + HEX_DIGIT + + + + + + + HEX_DIGIT + + + + + + + + STRING_CONTENT_DQ + + + + + + + + + \ + + + + + + + + STRING_INTERPOLATION + + + + + + STRING_CONTENT_SQ + + + + + + + + + \ + + + + + + + + STRING_INTERPOLATION + + + + + + NEWLINE + + + + \n + + + \r + + + + + + STRING_INTERPOLATION + + + + + + $ + + + IDENTIFIER_NO_DOLLAR + + + + + + + $ + + + { + + + expression + + + } + + + + + + + + listLiteral + + + + + + const + + + + + + + typeArguments + + + + + [ + + + + + + + expressionList + + + + + , + + + + + + + + + ] + + + + + + mapLiteral + + + + + + const + + + + + + + typeArguments + + + + + { + + + + + + + mapLiteralEntry + + + + + + + , + + + mapLiteralEntry + + + + + + + + + , + + + + + + + + + } + + + + + + mapLiteralEntry + + + + + + identifier + + + : + + + expression + + + + + + + stringLiteral + + + : + + + expression + + + + + + + + functionExpression + + + + + + + + + + returnType + + + + + identifier + + + + + + + formalParameterList + + + functionExpressionBody + + + + + + functionExpressionBody + + + + + + => + + + expression + + + + + block + + + + + + thisExpression + + this + + + + newExpression + + + + new + + + type + + + + + + + . + + + identifier + + + + + + + arguments + + + + + + constantObjectExpression + + + + const + + + type + + + + + + + . + + + identifier + + + + + + + arguments + + + + + + arguments + + + + ( + + + + + argumentList + + + + + ) + + + + + + argumentList + + + + + + namedArgument + + + + + + + , + + + namedArgument + + + + + + + + + + + expressionList + + + + + + + , + + + namedArgument + + + + + + + + + + + + namedArgument + + + + label + + + expression + + + + + + assignmentOperator + + + + = + + + compoundAssignmentOperator + + + + + + compoundAssignmentOperator + + + + *= + + + /= + + + ~/= + + + %= + + + += + + + -= + + + <<= + + + + + > + + + > + + + > + + + + + = + + + + + + + + + < + + + < + + + + + = + + + + + + + &= + + + ^= + + + |= + + + + + + conditionalExpression + + + + logicalOrExpression + + + + + + + ? + + + expression + + + : + + + expression + + + + + + + + + + logicalOrExpression + + + + logicalAndExpression + + + + + + + || + + + logicalAndExpression + + + + + + + + + + logicalAndExpression + + + + bitwiseOrExpression + + + + + + + && + + + bitwiseOrExpression + + + + + + + + + + bitwiseOrExpression + + + + + + bitwiseXorExpression + + + + + + + | + + + bitwiseXorExpression + + + + + + + + + + + super + + + + + + + | + + + bitwiseXorExpression + + + + + + + + + + + + bitwiseXorExpression + + + + + + bitwiseAndExpression + + + + + + + ^ + + + bitwiseAndExpression + + + + + + + + + + + super + + + + + + + ^ + + + bitwiseAndExpression + + + + + + + + + + + + bitwiseAndExpression + + + + + + equalityExpression + + + + + + + & + + + equalityExpression + + + + + + + + + + + super + + + + + + + & + + + equalityExpression + + + + + + + + + + + + bitwiseOperator + + + + & + + + ^ + + + | + + + + + + equalityExpression + + + + + + relationalExpression + + + + + + + equalityOperator + + + relationalExpression + + + + + + + + + + + super + + + equalityOperator + + + relationalExpression + + + + + + + + equalityOperator + + + + == + + + != + + + === + + + !== + + + + + + relationalExpression + + + + + + shiftExpression + + + + + + + + + isOperator + + + type + + + + + + + relationalOperator + + + shiftExpression + + + + + + + + + + + + + super + + + relationalOperator + + + shiftExpression + + + + + + + + relationalOperator + + + + >= + + + > + + + <= + + + < + + + + + + shiftExpression + + + + + + additiveExpression + + + + + + + shiftOperator + + + additiveExpression + + + + + + + + + + + super + + + + + + + shiftOperator + + + additiveExpression + + + + + + + + + + + + shiftOperator + + + + << + + + >>> + + + >> + + + + + + additiveExpression + + + + + + multiplicativeExpression + + + + + + + additiveOperator + + + multiplicativeExpression + + + + + + + + + + + super + + + + + + + additiveOperator + + + multiplicativeExpression + + + + + + + + + + + + additiveOperator + + + + + + + + - + + + + + + multiplicativeExpression + + + + + + unaryExpression + + + + + + + multiplicativeOperator + + + unaryExpression + + + + + + + + + + + super + + + + + + + multiplicativeOperator + + + unaryExpression + + + + + + + + + + + + multiplicativeOperator + + + + * + + + / + + + % + + + ~/ + + + + + + unaryExpression + + + + prefixExpression + + + postfixExpression + + + + + unaryOperator + + + super + + + + + + + - + + + super + + + + + + + incrementOperator + + + assignableExpression + + + + + + + + prefixExpression + + + + prefixOperator + + + unaryExpression + + + + + + postfixExpression + + + + + + assignableExpression + + + postfixOperator + + + + + + + primary + + + + + selector + + + + + + + + + + postfixOperator + + incrementOperator + + + + incrementOperator + + + + ++ + + + -- + + + + + + assignableExpression + + + + + + primary + + + + + + + + + arguments + + + + + assignableSelector + + + + + + + + + + + super + + + assignableSelector + + + + + identifier + + + + + + selector + + + + assignableSelector + + + arguments + + + + + + assignableSelector + + + + + + [ + + + expression + + + ] + + + + + + + . + + + identifier + + + + + + + + identifier + + + + IDENTIFIER_NO_DOLLAR + + + IDENTIFIER + + + BUILT_IN_IDENTIFIER + + + + + + IDENTIFIER_NO_DOLLAR + + + + IDENTIFIER_START_NO_DOLLAR + + + + + IDENTIFIER_PART_NO_DOLLAR + + + + + + + + IDENTIFIER + + + + IDENTIFIER_START + + + + + IDENTIFIER_PART + + + + + + + + BUILT_IN_IDENTIFIER + + + + abstract + + + assert + + + class + + + extends + + + factory + + + get + + + implements + + + import + + + interface + + + is + + + library + + + negate + + + operator + + + set + + + source + + + static + + + typedef + + + + + + IDENTIFIER_START + + + + IDENTIFIER_START_NO_DOLLAR + + + $ + + + + + + IDENTIFIER_START_NO_DOLLAR + + + + LETTER + + + _ + + + + + + IDENTIFIER_PART_NO_DOLLAR + + + + IDENTIFIER_START_NO_DOLLAR + + + DIGIT + + + + + + IDENTIFIER_PART + + + + IDENTIFIER_START + + + DIGIT + + + + + + qualified + + + + identifier + + + + + + + . + + + identifier + + + + + + + + + + isOperator + + + + is + + + + + ! + + + + + + + + statements + + + + statement + + + + + + statement + + + + + + label + + + + + nonLabelledStatement + + + + + + nonLabelledStatement + + + + block + + + + + initializedVariableDeclaration + + + ; + + + + + forStatement + + + whileStatement + + + doStatement + + + switchStatement + + + ifStatement + + + tryStatement + + + breakStatement + + + continueStatement + + + returnStatement + + + throwStatement + + + expressionStatement + + + assertStatement + + + + + functionSignature + + + functionBody + + + + + + + + expressionStatement + + + + + + expression + + + + + ; + + + + + + ifStatement + + + + if + + + ( + + + expression + + + ) + + + statement + + + + + + + else + + + statement + + + + + + + + + + forStatement + + + + for + + + ( + + + forLoopParts + + + ) + + + statement + + + + + + forLoopParts + + + + + + forInitializerStatement + + + + + expression + + + + + ; + + + + + expressionList + + + + + + + + + declaredIdentifier + + + in + + + expression + + + + + + + identifier + + + in + + + expression + + + + + + + + forInitializerStatement + + + + + + initializedVariableDeclaration + + + ; + + + + + + + + + expression + + + + + ; + + + + + + + + whileStatement + + + + while + + + ( + + + expression + + + ) + + + statement + + + + + + doStatement + + + + do + + + statement + + + while + + + ( + + + expression + + + ) + + + ; + + + + + + switchStatement + + + + switch + + + ( + + + expression + + + ) + + + { + + + + + switchCase + + + + + + + defaultCase + + + + + } + + + + + + switchCase + + + + + + label + + + + + + + + + case + + + expression + + + : + + + + + + + statements + + + + + + defaultCase + + + + + + label + + + + + + + + + case + + + expression + + + : + + + + + + + default + + + : + + + statements + + + + + + tryStatement + + + + try + + + block + + + + + + + + + catchPart + + + + + + + finallyPart + + + + + + + finallyPart + + + + + + + + catchPart + + + + catch + + + ( + + + declaredIndentifier + + + + + + + , + + + declaredIndentifier + + + + + + + ) + + + block + + + + + + finallyPart + + + + finally + + + block + + + + + + returnStatement + + + + return + + + + + expression + + + + + ; + + + + + + label + + + + identifier + + + : + + + + + + breakStatement + + + + break + + + + + identifier + + + + + ; + + + + + + continueStatement + + + + continue + + + + + identifier + + + + + ; + + + + + + throwStatement + + + + throw + + + + + expression + + + + + ; + + + + + + assertStatement + + + + assert + + + ( + + + conditionalExpression + + + ) + + + ; + + + + + + topLevelDefinition + + + + classDefinition + + + interfaceDefinition + + + functionTypeAlias + + + + + functionSignature + + + functionBody + + + + + + + + + returnType + + + + + getOrSet + + + identifier + + + formalParameterList + + + functionBody + + + + + + + final + + + + + type + + + + + staticFinalDeclarationList + + + ; + + + + + + + variableDeclaration + + + ; + + + + + + + + getOrSet + + + + get + + + set + + + + + + libraryDefinition + + + + + + scriptTag + + + + + libraryName + + + + + libraryImport + + + + + + + include + + + + + + + resource + + + + + + + topLevelDefinition + + + + + + + + scriptTag + + + + #! + + + + + + + + + + NEWLINE + + + + + + libraryName + + + + # + + + library + + + ( + + + stringLiteral + + + ) + + + ; + + + + + + resource + + + + # + + + resource + + + ( + + + stringLiteral + + + ) + + + ; + + + + + + libraryImport + + + + # + + + import + + + ( + + + stringLiteral + + + + + + + , + + + prefix: + + + stringLiteral + + + + + + + ) + + + ; + + + + + + include + + + + # + + + source + + + ( + + + stringLiteral + + + ) + + + ; + + + + + + compilationUnit + + + + + + topLevelDefinition + + + + + EOF + + + + + + scriptDefinition + + + + + + scriptTag + + + + + + + libraryName + + + + + + + libraryImport + + + + + + + include + + + + + + + resource + + + + + + + topLevelDefinition + + + + + + + + type + + + + qualified + + + + + typeArguments + + + + + + + + typeArguments + + + + < + + + typeList + + + > + + + + + + typeList + + + + type + + + + + + + , + + + type + + + + + + + + + + functionTypeAlias + + + + typedef + + + functionPrefix + + + + + typeParameters + + + + + formalParameterList + + + ; + + + + + + LETTER + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + + DIGIT + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + WHITESPACE + + + + + + \t + + + + + + NEWLINE + + + + + + + + SINGLE_LINE_COMMENT + + + + // + + + + + + + + + + + + NEWLINE + + + + + + + + MULTI_LINE_COMMENT + + + + /* + + + + + + + + + + + + + returnType + + + + void + + + type + + + + + \ No newline at end of file diff --git a/shared/bgf/dart-spec-0.05.bgf b/shared/bgf/dart-spec-0.05.bgf new file mode 100644 index 00000000..ef2a9e01 --- /dev/null +++ b/shared/bgf/dart-spec-0.05.bgf @@ -0,0 +1 @@ +variableDeclarationdeclaredIdentifier,identifierinitializedVariableDeclarationdeclaredIdentifier=expression,initializedIdentifierinitializedIdentifieridentifier=expressiondeclaredIdentifierfinalVarOrTypeidentifierfinalVarOrTypefinaltypevartypefunctionSignaturereturnTypeidentifierformalParameterListreturnTypevoidtypefunctionBody=>expression;blockblock{statements}formalParameterList()(normalFormalParameters,namedFormalParameters)(namedFormalParameters)normalFormalParametersnormalFormalParameter,normalFormalParameternamedFormalParameters[defaultFormalParameter,defaultFormalParameter]normalFormalParameterfunctionSignaturefieldFormalParametersimpleFormalParametersimpleFormalParameterdeclaredIdentifieridentifierfieldFormalParameterfinalVarOrTypethis.identifierdefaultFormalParameternormalFormalParameter=constantExpressionclassDefinitionclassidentifiertypeParameterssuperclassinterfaces{classMemberDefinition}classMemberDefinitiondeclaration;methodSignaturefunctionBodymethodSignaturefactoryConstructorSignaturestaticfunctionSignaturegetterSignaturesetterSignatureoperatorSignaturefunctionSignatureinitializersnamedConstructorSignatureinitializersdeclarationconstantConstructorSignatureredirectioninitializersfunctionSignatureredirectionnamedConstructorSignatureredirectionabstractgetterSignatureabstractsetterSignatureabstractoperatorSignatureabstractfunctionSignaturestaticfinaltypestaticFinalDeclarationListstaticinitializedVariableDeclarationstaticFinalDeclarationListstaticFinalDeclaration,staticFinalDeclarationoperatorSignaturereturnTypeoperatoroperatorformalParameterListoperatorunaryOperatorbinaryOperator[][]=negateunaryOperatornegateOperatorbinaryOperatormultiplicativeOperatoradditiveOperatorshiftOperatorrelationalOperatorequalityOperatorbitwiseOperatorprefixOperator-negateOperatornegateOperator!~getterSignaturestaticreturnTypegetidentifierformalParameterListsetterSignaturestaticreturnTypesetidentifierformalParameterListconstructorSignatureidentifierformalParameterListnamedConstructorSignaturenamedConstructorSignatureidentifier.identifierformalParameterListredirection:this.identifierargumentsinitializers:superCallOrFieldInitializer,superCallOrFieldInitializersuperCallOrFieldInitializersuperargumentssuper.identifierargumentsfieldInitializerfieldInitializerthis.identifier=conditionalExpressionfactoryConstructorSignaturefactoryqualifiedtypeParameters.identifierformalParameterListconstantConstructorSignatureconstqualifiedformalParameterListsuperclassextendstypeinterfacesimplementstypeListinterfaceDefinitioninterfaceidentifiertypeParameterssuperinterfacesfactorySpecification{interfaceMemberDefinition}interfaceMemberDefinitionstaticfinaltypeinitializedIdentifierList;functionSignature;constantConstructorSignature;namedConstructorSignature;getterSignature;setterSignature;operatorSignature;variableDeclaration;factorySpecificationfactoryqualifiedtypeParameterssuperinterfacesextendstypeListtypeParameteridentifierextendstypetypeParameters<typeParameter,typeParameter>expressionassignableExpressionassignmentOperatorexpressionconditionalExpressionexpressionListexpression,expressionprimarythisExpressionsuperassignableSelectorfunctionExpressionliteralidentifiernewExpressionconstantObjectExpression(expression)literalnullLiteralbooleanLiteralnumericLiteralstringLiteralmapLiterallistLiteralnullLiteralnullnumericLiteralNUMBERHEX_NUMBERNUMBER+DIGIT.DIGITEXPONENT+.DIGITEXPONENTEXPONENTeE+-DIGITHEX_NUMBER0xHEX_DIGIT0XHEX_DIGITHEX_DIGITa..fA..FDIGITbooleanLiteraltruefalsestringLiteral@MULTI_LINE_STRINGSINGLE_LINE_STRINGSINGLE_LINE_STRING"STRING_CONTENT_DQ"'STRING_CONTENT_SQ'@' ' ' ~'NEWLINE'@"~"NEWLINE"MULTI_LINE_STRING"""~""""""'''~''''''ESCAPE_SEQUENCE\n\r\f\b\t\v\xHEX_DIGITHEX_DIGIT\uHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGIT\u{HEX_DIGIT_SEQUENCE}HEX_DIGIT_SEQUENCEHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGITSTRING_CONTENT_DQ~\\ " $NEWLINE\\~NEWLINESTRING_INTERPOLATIONSTRING_CONTENT_SQ~\\\'$NEWLINE\\~NEWLINESTRING_INTERPOLATIONNEWLINE\n\rSTRING_INTERPOLATION$IDENTIFIER_NO_DOLLAR${Expression}listLiteralconsttypeArguments[expressionList,]mapLiteralconsttypeArguments{mapLiteralEntry,mapLiteralEntry,}mapLiteralEntryidentifier:expressionstringLiteral:expressionfunctionExpressionreturnTypeidentifierformalParameterListfunctionExpressionBodyfunctionExpressionBody=>expressionblockthisExpressionthisnewExpressionnewtype.identifierargumentsconstObjectExpressionconsttype.identifierargumentsarguments(argumentList)argumentListnamedArgument,namedArgumentexpressionList,namedArgumentnamedArgumentlabelexpressionassignmentOperator=compoundAssignmentOperatorcompoundAssignmentOperator*=/=~/=%=+=-=<<=>>>=>>=&=^=|=conditionalExpressionlogicalOrExpression?expression:expressionlogicalOrExpressionlogicalAndExpression||logicalAndExpressionlogicalAndExpressionbitwiseOrExpression&&bitwiseOrExpressionbitwiseOrExpressionbitwiseXorExpression|bitwiseXorExpressionsuper|bitwiseXorExpressionbitwiseXorExpressionbitwiseAndExpression^bitwiseAndExpressionsuper^bitwiseAndExpressionbitwiseAndExpressionequalityExpression&equalityExpressionsuper&equalityExpressionbitwiseOperator&^|equalityExpressionrelationalExpressionequalityOperatorrelationalExpressionsuperequalityOperatorrelationalExpressionequalityOperator==!====!==relationalExpressionshiftExpressionisOperatortyperelationalOperatorshiftExpressionsuperrelationalOperatorshiftExpressionrelationalOperator>=><=<shiftExpressionadditiveExpressionshiftOperatoradditiveExpressionsupershiftOperatoradditiveExpressionshiftOperator<<>>>>>additiveExpressionmultiplicativeExpressionadditiveOperatormultiplicativeExpressionsuperadditiveOperatormultiplicativeExpressionadditiveOperator+-multiplicativeExpressionunaryExpressionmultiplicativeOperatorunaryExpressionsupermultiplicativeOperatorunaryExpressionmultiplicativeOperator*/%~/unaryExpressionprefixOperatorunaryExpressionpostfixExpressionunaryOperatorsuper-superincrementOperatorassignableExpressionpostfixExpressionassignableExpressionpostfixOperatorprimaryselectorpostfixOperatorincrementOperatorincrementOperator++--assignableExpressionprimaryargumentsassignableSelectorsuperassignableSelectoridentifierselectorassignableSelectorargumentsassignableSelector[expression].identifieridentifierIDENTIFIER_NO_DOLLARIDENTIFIERBUILT_IN_IDENTIFIERIDENTIFIER_NO_DOLLARIDENTIFIER_START_NO_DOLLARIDENTIFIER_PART_NO_DOLLARIDENTIFIERIDENTIFIER_STARTIDENTIFIER_PARTBUILT_IN_IDENTIFIERabstractassertDynamicfactorygetimplementsimportinterfacelibrarynegateoperatorsetsourcestatictypedefIDENTIFIER_STARTIDENTIFIER_START_NO_DOLLAR$IDENTIFIER_START_NO_DOLLARLETTER_IDENTIFIER_PART_NO_DOLLARIDENTIFIER_START_NO_DOLLARDIGITIDENTIFIER_PARTIDENTIFIER_STARTDIGITqualifiedidentifier.identifierisOperatoris!statementsstatementstatementlabelnonLabelledStatementnonLabelledStatementblockinitializedVariableDeclaration;forStatementwhileStatementdoStatementswitchStatementifStatementtryStatementbreakStatementcontinueStatementreturnStatementthrowStatementexpressionStatementassertStatementfunctionSignaturefunctionBodyexpressionStatementexpression;ifStatementif(expression)statementelsestatementforStatementfor(forLoopParts)statementforLoopPartsforInitializerStatementexpression;expressionListdeclaredIdentifierinexpressionidentifierinexpressionforInitializerStatementinitializedVariableDeclaration;expression;whileStatementwhile(expression)statementdoStatementdostatementwhile(expression);switchStatementswitch(expression){switchCasedefaultCase}switchCaselabelcaseexpression:statementsdefaultCaselabelcaseexpression:default:statementstryStatementtryblockcatchPartfinallyPartfinallyPartcatchPartcatch(simpleFormalParameter,simpleFormalParameter)blockfinallyPartfinallyblockreturnStatementreturnexpression;labelidentifier:breakStatementbreakidentifier;continueStatementcontinueidentifier;throwStatementthrowexpression;assertStatementassert(conditionalExpression);topLevelDefinitionclassDefinitioninterfaceDefinitionfunctionTypeAliasfunctionSignaturefunctionBodyreturnTypegetOrSetidentifierformalParameterListfunctionBodyfinaltypestaticFinalDeclarationList;variableDeclaration;getOrSetgetsetlibraryDefinitionscriptTaglibraryNameimportincluderesourcetopLevelDefinitionscriptTag#!~NEWLINENEWLINElibraryName#library(stringLiteral);resource#resource(stringLiteral);import#import(stringLiteral,prefix:stringLiteral);include#source(stringLiteral);compilationUnittopLevelDefinitionEOFscriptDefinitionscriptTaglibraryNameimportincluderesourcetopLevelDefinitiontypequalifiedtypeArgumentstypeArguments<typeList>typeListtype,typefunctionTypeAliastypedeffunctionPrefixtypeParametersformalParameterList;functionPrefixreturnTypeidentifierDIGIT0123456789WHITESPACE\t NEWLINESINGLE_LINE_COMMENT//~NEWLINENEWLINEMULTI_LINE_COMMENT/*MULTI_LINE_COMMENT~*/*/ \ No newline at end of file diff --git a/shared/bgf/eiffel-bezault.bgf b/shared/bgf/eiffel-bezault.bgf new file mode 100644 index 00000000..e8ccec28 --- /dev/null +++ b/shared/bgf/eiffel-bezault.bgf @@ -0,0 +1,2722 @@ + + + + + Class_declaration + + + + + + Indexing + + + + + Class_header + + + + + Formal_generics + + + + + + + Obsolete + + + + + + + Inheritance + + + + + + + Creators + + + + + + + Features + + + + + + + Invariant + + + + + end + + + + + + + -- + + + class + + + Class_name + + + + + + + + + + Indexing + + + + indexing + + + Index_list + + + + + + Index_list + + + + + + Index_clause + + + ; + + + + + + + + Index_clause + + + + + + Index + + + + + Index_terms + + + + + + Index + + + + Identifier + + + : + + + + + + Index_terms + + + + + + Index_value + + + , + + + + + + + + Index_value + + + + Identifier + + + Manifest_constant + + + + + + Class_header + + + + + + Header_mark + + + + + class + + + Class_name + + + + + + Header_mark + + + + deferred + + + expanded + + + separate + + + + + + Class_name + + Identifier + + + + Formal_generics + + + + Formal_generic_list + + + + + + Formal_generic_list + + + + + + Formal_generic + + + , + + + + + + + + Formal_generic + + + + Formal_generic_name + + + + + Constraint + + + + + + + + Formal_generic_name + + Identifier + + + + Constraint + + + + - + + + > + + + Class_type + + + + + + Obsolete + + + + obsolete + + + Message + + + + + + Message + + Manifest_string + + + + Inheritance + + + + inherit + + + Parent_list + + + + + + Parent_list + + + + + + Parent + + + ; + + + + + + + + Parent + + + + Class_type + + + + + Feature_adaptation + + + + + + + + Feature_adaptation + + + + + + Rename + + + + + + + New_exports + + + + + + + Undefine + + + + + + + Redefine + + + + + + + Select + + + + + end + + + + + + Rename + + + + rename + + + Rename_list + + + + + + Rename_list + + + + + + Rename_pair + + + , + + + + + + + + Rename_pair + + + + Feature_name + + + as + + + Feature_name + + + + + + New_exports + + + + export + + + New_export_list + + + + + + New_export_list + + + + + + New_export_item + + + ; + + + + + + + + New_export_item + + + + Clients + + + Feature_set + + + + + + Feature_set + + + + Feature_list + + + all + + + + + + Feature_list + + + + + + Feature_name + + + , + + + + + + + + Clients + + + + { + + + Class_list + + + } + + + + + + Class_list + + + + + + Class_name + + + , + + + + + + + + Redefine + + + + redefine + + + Feature_list + + + + + + Undefine + + + + undefine + + + Feature_list + + + + + + Select + + + + select + + + Feature_list + + + + + + Creators + + + + creation + + + + + + + Creation_clause + + + creation + + + + + + + + + + Creation_clause + + + + + + Clients + + + + + + + Header_comment + + + + + Procedure_list + + + + + + Procedure_list + + + + + + Procedure_name + + + , + + + + + + + + Procedure_name + + Identifier + + + + Features + + + + feature + + + + + + + Feature_clause + + + feature + + + + + + + + + + Feature_clause + + + + + + Clients + + + + + + + Header_comment + + + + + Feature_declaration_list + + + + + + Feature_declaration_list + + + + + + Feature_declaration + + + ; + + + + + + + + Feature_declaration + + + + New_feature_list + + + Declaration_body + + + + + + Declaration_body + + + + + + Formal_arguments + + + + + + + Type_mark + + + + + + + Constant_or_routine + + + + + + + + Constant_or_routine + + + + is + + + Feature_value + + + + + + Feature_value + + + + Manifest_constant + + + Unique + + + Routine + + + + + + Unique + + Unique + + + + New_feature_list + + + + + + New_feature + + + , + + + + + + + + New_feature + + + + + + frozen + + + + + Feature_name + + + + + + Feature_name + + + + Identifier + + + Prefix + + + Infix + + + + + + Prefix + + + + prefix + + + " + + + Prefix_operator + + + " + + + + + + Infix + + + + infix + + + " + + + Infix_operator + + + " + + + + + + Prefix_operator + + + + Unary + + + Free_operator + + + + + + Infix_operator + + + + Binary + + + Free_operator + + + + + + Unary + + + + not + + + + + + + - + + + + + + Binary + + + + + + + + - + + + * + + + / + + + < + + + > + + + <= + + + >= + + + // + + + \\ + + + ^ + + + and + + + or + + + xor + + + + + and + + + then + + + + + + + or + + + else + + + + + implies + + + + + + Formal_arguments + + + + ( + + + Entity_declaration_list + + + ) + + + + + + Entity_declaration_list + + + + + + Entity_declaration_group + + + ; + + + + + + + + Entity_declaration_group + + + + Identifier_list + + + Type_mark + + + + + + Identifier_list + + + + + + Identifier + + + , + + + + + + + + Type_mark + + + + : + + + Type + + + + + + Routine + + + + + + Obsolete + + + + + + + Header_comment + + + + + + + Precondition + + + + + + + Local_declarations + + + + + Routine_body + + + + + Postcondition + + + + + + + Rescue + + + + + end + + + + + + + -- + + + Feature_name + + + + + + + + + + Routine_body + + + + Effective + + + Deferred + + + + + + Effective + + + + Internal + + + External + + + + + + Internal + + + + Routine_mark + + + Compound + + + + + + Routine_mark + + + + do + + + once + + + + + + Deferred + + deferred + + + + External + + + + external + + + Language_name + + + + + External_name + + + + + + + + Language_name + + Manifest_string + + + + External_name + + + + alias + + + Manifest_string + + + + + + Local_declarations + + + + local + + + Entity_declaration_list + + + + + + Precondition + + + + require + + + + + else + + + + + Assertion + + + + + + Postcondition + + + + ensure + + + + + then + + + + + Assertion + + + + + + Invariant + + + + invariant + + + Assertion + + + + + + Assertion + + + + + + Assertion_clause + + + ; + + + + + + + + Assertion_clause + + + + + + Tag_mark + + + + + Unlabeled_assertion_clause + + + + + + Unlabeled_assertion_clause + + + + Boolean_expression + + + Comment + + + + + + Tag_mark + + + + Tag + + + : + + + + + + Tag + + Identifier + + + + Rescue + + + + rescue + + + Compound + + + + + + Type + + + + Class_type + + + Class_type_expanded + + + Class_type_separate + + + Anchored + + + Bit_type + + + + + + Class_type + + + + Class_name + + + + + Actual_generics + + + + + + + + Actual_generics + + + + Type_list + + + + + + Type_list + + + + + + Type + + + , + + + + + + + + Class_type_expanded + + + + expanded + + + Class_type + + + + + + Class_type_separate + + + + separate + + + Class_type + + + + + + Bit_type + + + + BIT + + + Bit_length + + + + + + Bit_length + + + + Integer_constant + + + Attribute + + + + + + Anchored + + + + like + + + Anchor + + + + + + Anchor + + + + Identifier + + + Current + + + + + + Compound + + + + + + Instruction + + + ; + + + + + + + + Instruction + + + + Creation + + + Call + + + Assignment + + + Assignment_attempt + + + Conditional + + + Multi_branch + + + Loop + + + Debug + + + Check + + + Retry + + + Null_instruction + + + + + + Creation + + + + ! + + + + + Type + + + + + ! + + + Writable + + + + + Creation_call + + + + + + + + Creation_call + + + + . + + + Procedure_name + + + + + Actuals + + + + + + + + Assignment + + + + Writable + + + := + + + Expression + + + + + + Assignment_attempt + + + + Writable + + + ?= + + + Expression + + + + + + Conditional + + + + if + + + Then_part_list + + + + + Else_part + + + + + end + + + + + + Then_part_list + + + + + + Then_part + + + elseif + + + + + + + + Then_part + + + + Boolean_expression + + + then + + + Compound + + + + + + Else_part + + + + else + + + Compound + + + + + + Multi_branch + + + + inspect + + + Expression + + + + + When_part_list + + + + + + + Else_part + + + + + end + + + + + + When_part_list + + + + when + + + + + + + When_part + + + when + + + + + + + + + + When_part + + + + Choices + + + then + + + Compound + + + + + + Choices + + + + + + Choice + + + , + + + + + + + + Choice + + + + Choice_constant + + + Interval + + + + + + Interval + + + + Choice_constant + + + .. + + + Choice_constant + + + + + + Choice_constant + + + + Integer_constant + + + Character_constant + + + Attribute + + + + + + Loop + + + + Initialization + + + + + Invariant + + + + + + + Variant + + + + + Loop_body + + + end + + + + + + Initialization + + + + from + + + Compound + + + + + + Variant + + + + variant + + + + + Tag_mark + + + + + Expression + + + + + + Loop_body + + + + Exit + + + loop + + + Compound + + + + + + Exit + + + + until + + + Boolean_expression + + + + + + Debug + + + + debug + + + + + Debug_keys + + + + + Compound + + + end + + + + + + Debug_keys + + + + ( + + + Debug_key_list + + + ) + + + + + + Debug_key_list + + + + + + Debug_key + + + , + + + + + + + + Debug_key + + Manifest_string + + + + Check + + + + check + + + Assertion + + + end + + + + + + Retry + + retry + + + + Null_instruction + + + + + + Call + + + + Qualified_call + + + Precursor + + + + + + Qualified_call + + + + + + Call_qualifier + + + + + Call_chain + + + + + + Call_qualifier + + + + Call_target + + + . + + + + + + Call_target + + + + Parenthesized + + + Result + + + Current + + + Precursor + + + + + + Call_chain + + + + + + Unqualified_call + + + . + + + + + + + + Unqualified_call + + + + Identifier + + + + + Actuals + + + + + + + + Precursor + + + + + + Parent_qualification + + + + + Precursor + + + + + Actuals + + + + + + + + Parent_qualification + + + + { + + + Class_name + + + } + + + + + + Attribute + + Identifier + + + + Writable + + + + Identifier + + + Result + + + + + + Actuals + + + + ( + + + Actual_list + + + ) + + + + + + Actual_list + + + + + + Actual + + + , + + + + + + + + Actual + + + + Expression + + + Address + + + + + + Address + + + + $ + + + Address_mark + + + + + + Address_mark + + + + Feature_name + + + Current + + + Result + + + + + + Expression + + + + Current + + + Result + + + Call + + + Operator_expression + + + Equality + + + Manifest_array + + + Old + + + Strip + + + Boolean_constant + + + Bit_constant + + + Integer + + + Real + + + Manifest_string + + + Character_constant + + + Wide_character_constant + + + Wide_manifest_string + + + Hexadecimal_constant + + + + + + Boolean_expression + + Expression + + + + Operator_expression + + + + Parenthesized + + + Unary_expression + + + Binary_expression + + + + + + Parenthesized + + + + ( + + + Expression + + + ) + + + + + + Unary_expression + + + + Prefix_operator + + + Expression + + + + + + Binary_expression + + + + Expression + + + Infix_operator + + + Expression + + + + + + Equality + + + + Expression + + + Comparison + + + Expression + + + + + + Comparison + + + + = + + + /= + + + + + + Manifest_constant + + + + Boolean_constant + + + Character_constant + + + Integer_constant + + + Real_constant + + + Manifest_string + + + Bit_constant + + + Wide_character_constant + + + Wide_manifest_string + + + Hexadecimal_constant + + + + + + Boolean_constant + + + + True + + + False + + + + + + Integer_constant + + + + + + Sign + + + + + Integer + + + + + + Real_constant + + + + + + Sign + + + + + Real + + + + + + Sign + + + + + + + + - + + + + + + Wide_character_constant + + + + $ + + + Character_constant + + + + + + Wide_manifest_string + + + + $ + + + Manifest_string + + + + + + Manifest_array + + + + << + + + Expression_list + + + >> + + + + + + Expression_list + + + + + + Expression + + + , + + + + + + + + Old + + + + old + + + Expression + + + + + + Strip + + + + Strip + + + ( + + + Attribute_list + + + ) + + + + + + Attribute_list + + + + + + Attribute + + + , + + + + + + + + Identifier + + + + Letter + + + + + + + Letter + + + Decimal_digit + + + _ + + + + + + + + + + Integer + + + + + + Decimal_digit + + + + + + + Decimal_digit + + + + + + + Decimal_digit + + + + + Decimal_digit + + + + + + + + + + + + + _ + + + Decimal_digit + + + Decimal_digit + + + Decimal_digit + + + + + + + + + + + \ No newline at end of file diff --git a/shared/bgf/eiffel-iso-25436-2006.bgf b/shared/bgf/eiffel-iso-25436-2006.bgf new file mode 100644 index 00000000..951c38f6 --- /dev/null +++ b/shared/bgf/eiffel-iso-25436-2006.bgf @@ -0,0 +1,4167 @@ + + + + + Class_name + + Identifier + + + + Class_declaration + + + + + + Notes + + + + + Class_header + + + + + Formal_generics + + + + + + + Obsolete + + + + + + + Inheritance + + + + + + + Creators + + + + + + + Converters + + + + + + + Features + + + + + + + Invariant + + + + + + + Notes + + + + + end + + + + + + Notes + + + + note + + + Note_list + + + + + + Note_list + + + + + + Note_entry + + + + + + + ; + + + Note_entry + + + + + + + + + + + + Note_entry + + + + Note_name + + + Note_values + + + + + + Note_name + + + + Identifier + + + : + + + + + + Note_values + + + + Note_item + + + + + + + , + + + Note_item + + + + + + + + + + Note_item + + + + Identifier + + + Manifest_constant + + + + + + Class_header + + + + + + Header_mark + + + + + class + + + Class_name + + + + + + Header_mark + + + + deferred + + + expanded + + + frozen + + + + + + Obsolete + + + + obsolete + + + Message + + + + + + Message + + Manifest_string + + + + Features + + + + Feature_clause + + + + + + Feature_clause + + + + feature + + + + + Clients + + + + + + + Header_comment + + + + + Feature_declaration_list + + + + + + Feature_declaration_list + + + + + + Feature_declaration + + + + + + + ; + + + Feature_declaration + + + + + + + + + + + + Header_comment + + Comment + + + + Feature_declaration + + + + New_feature_list + + + Declaration_body + + + + + + Declaration_body + + + + + + Formal_arguments + + + + + + + Query_mark + + + + + + + Feature_value + + + + + + + + Query_mark + + + + Type_mark + + + + + Assigner_mark + + + + + + + + Type_mark + + + + : + + + Type + + + + + + Feature_value + + + + + + Explicit_value + + + + + + + Obsolete + + + + + + + Header_comment + + + + + + + Attribute_or_routine + + + + + + + + Explicit_value + + + + = + + + Manifest_constant + + + + + + New_feature_list + + + + New_feature + + + + + + + , + + + New_feature + + + + + + + + + + New_feature + + + + + + frozen + + + + + Extended_feature_name + + + + + + Attribute_or_routine + + + + + + Precondition + + + + + + + Local_declarations + + + + + Feature_body + + + + + Postcondition + + + + + + + Rescue + + + + + end + + + + + + Feature_body + + + + Deferred + + + Effective_routine + + + Attribute + + + + + + Extended_feature_name + + + + Feature_name + + + + + Alias + + + + + + + + Feature_name + + Identifier + + + + Alias + + + + alias + + + " + + + Alias_name + + + " + + + + + convert + + + + + + + + Alias_name + + + + Operator + + + Bracket + + + + + + Bracket + + [] + + + + Operator + + + + Unary + + + Binary + + + + + + Unary + + + + not + + + + + + + - + + + Free_unary + + + + + + Binary + + + + + + + + - + + + * + + + / + + + // + + + \\ + + + ^ + + + .. + + + < + + + > + + + <= + + + >= + + + and + + + or + + + xor + + + + + and + + + then + + + + + + + or + + + else + + + + + implies + + + Free_binary + + + + + + Assigner_mark + + + + assign + + + Feature_name + + + + + + Inheritance + + + + Inherit_clause + + + + + + Inherit_clause + + + + inherit + + + + + Non_conformance + + + + + Parent_list + + + + + + Non_conformance + + + + { + + + NONE + + + } + + + + + + Parent_list + + + + Parent + + + + + + + ; + + + Parent + + + + + + + + + + Parent + + + + Class_type + + + + + Feature_adaptation + + + + + + + + Feature_adaptation + + + + + + Undefine + + + + + + + Redefine + + + + + + + Rename + + + + + + + New_exports + + + + + + + Select + + + + + end + + + + + + Rename + + + + rename + + + Rename_list + + + + + + Rename_list + + + + Rename_pair + + + + + + + , + + + Rename_pair + + + + + + + + + + Rename_pair + + + + Feature_name + + + as + + + Extended_feature_name + + + + + + Clients + + + + { + + + Class_list + + + } + + + + + + Class_list + + + + Class_name + + + + + + + , + + + Class_name + + + + + + + + + + New_exports + + + + export + + + New_export_list + + + + + + New_export_list + + + + New_export_item + + + + + + + ; + + + New_export_item + + + + + + + + + + New_export_item + + + + Clients + + + + + Header_comment + + + + + Feature_set + + + + + + Feature_set + + + + Feature_list + + + all + + + + + + Feature_list + + + + Feature_name + + + + + + + , + + + Feature_name + + + + + + + + + + Formal_arguments + + + + ( + + + Entity_declaration_list + + + ) + + + + + + Entity_declaration_list + + + + Entity_declaration_group + + + + + + + ; + + + Entity_declaration_group + + + + + + + + + + Entity_declaration_group + + + + Identifier_list + + + Type_mark + + + + + + Identifier_list + + + + Identifier + + + + + + + , + + + Identifier + + + + + + + + + + Deferred + + deferred + + + + Effective_routine + + + + Internal + + + External + + + + + + Internal + + + + Routine_mark + + + Compound + + + + + + Routine_mark + + + + do + + + Once + + + + + + Once + + + + once + + + + + + + ( + + + Key_list + + + ) + + + + + + + + + + Key_list + + + + Manifest_string + + + + + + + , + + + Manifest_string + + + + + + + + + + Local_declarations + + + + local + + + + + Entity_declaration_list + + + + + + + + Compound + + + + + + Instruction + + + + + + + ; + + + Instruction + + + + + + + + + + + + Instruction + + + + Creation_instruction + + + Call + + + Assignment + + + Assigner_call + + + Conditional + + + Multi_branch + + + Loop + + + Debug + + + Precursor + + + Check + + + Retry + + + + + + Precondition + + + + require + + + + + else + + + + + Assertion + + + + + + Postcondition + + + + ensure + + + + + then + + + + + Assertion + + + + + Only + + + + + + + + Invariant + + + + invariant + + + Assertion + + + + + + Assertion + + + + + + Assertion_clause + + + + + + + ; + + + Assertion_clause + + + + + + + + + + + + Assertion_clause + + + + + + Tag_mark + + + + + Unlabeled_assertion_clause + + + + + + Unlabeled_assertion_clause + + + + Boolean_expression + + + Comment + + + + + + Tag_mark + + + + Tag + + + : + + + + + + Tag + + Identifier + + + + Old + + + + old + + + Expression + + + + + + Only + + + + only + + + + + Feature_list + + + + + + + + Check + + + + check + + + Assertion + + + + + Notes + + + + + end + + + + + + Variant + + + + variant + + + + + Tag_mark + + + + + Expression + + + + + + Precursor + + + + Precursor + + + + + Parent_qualification + + + + + + + Actuals + + + + + + + + Parent_qualification + + + + { + + + Class_name + + + } + + + + + + Redefine + + + + redefine + + + Feature_list + + + + + + Undefine + + + + undefine + + + Feature_list + + + + + + Type + + + + Class_or_tuple_type + + + Formal_generic_name + + + Anchored + + + + + + Class_or_tuple_type + + + + Class_type + + + Tuple_type + + + + + + Class_type + + + + + + Attachment_mark + + + + + Class_name + + + + + Actual_generics + + + + + + + + Attachment_mark + + + + ? + + + ! + + + + + + Anchored + + + + + + Attachment_mark + + + + + like + + + Anchor + + + + + + Anchor + + + + Feature_name + + + Current + + + + + + Actual_generics + + + + [ + + + Type_list + + + ] + + + + + + Type_list + + + + Type + + + + + + + , + + + Type + + + + + + + + + + Formal_generics + + + + [ + + + Formal_generic_list + + + ] + + + + + + Formal_generic_list + + + + Formal_generic + + + + + + + , + + + Formal_generic + + + + + + + + + + Formal_generic + + + + + + frozen + + + + + Formal_generic_name + + + + + Constraint + + + + + + + + Formal_generic_name + + + + + + ? + + + + + Identifier + + + + + + Constraint + + + + -> + + + Constraining_types + + + + + Constraint_creators + + + + + + + + Constraining_types + + + + Single_constraint + + + Multiple_constraint + + + + + + Single_constraint + + + + Type + + + + + Renaming + + + + + + + + Renaming + + + + Rename + + + end + + + + + + Multiple_constraint + + + + { + + + Constraint_list + + + } + + + + + + Constraint_list + + + + Single_constraint + + + + + + + , + + + Single_constraint + + + + + + + + + + Constraint_creators + + + + create + + + Feature_list + + + end + + + + + + Tuple_type + + + + TUPLE + + + + + Tuple_parameter_list + + + + + + + + Tuple_parameter_list + + + + [ + + + Tuple_parameters + + + ] + + + + + + Tuple_parameters + + + + Type_list + + + Entity_declaration_list + + + + + + Manifest_tuple + + + + [ + + + Expression_list + + + ] + + + + + + Expression_list + + + + + + Expression + + + + + + + , + + + Expression + + + + + + + + + + + + Converters + + + + convert + + + Converter_list + + + + + + Converter_list + + + + Converter + + + + + + + , + + + Converter + + + + + + + + + + Converter + + + + Conversion_procedure + + + Conversion_query + + + + + + Conversion_procedure + + + + Feature_name + + + ({ + + + Type_list + + + }) + + + + + + Conversion_query + + + + Feature_name + + + :{ + + + Type_list + + + } + + + + + + Select + + + + select + + + Feature_list + + + + + + Conditional + + + + if + + + Then_part_list + + + + + Else_part + + + + + end + + + + + + Then_part_list + + + + Then_part + + + + + + + elseif + + + Then_part + + + + + + + + + + Then_part + + + + Boolean_expression + + + then + + + Compound + + + + + + Else_part + + + + else + + + Compound + + + + + + Multi_branch + + + + inspect + + + Expression + + + + + When_part_list + + + + + + + Else_part + + + + + end + + + + + + When_part_list + + + + When_part + + + + + + When_part + + + + when + + + Choices + + + then + + + Compound + + + + + + Choices + + + + Choice + + + + + + + , + + + Choice + + + + + + + + + + Choice + + + + Constant + + + Manifest_type + + + Constant_interval + + + Type_interval + + + + + + Constant_interval + + + + Constant + + + .. + + + Constant + + + + + + Type_interval + + + + Manifest_type + + + .. + + + Manifest_type + + + + + + Loop + + + + Initialization + + + + + Invariant + + + + + Exit_condition + + + Loop_body + + + + + Variant + + + + + end + + + + + + Initialization + + + + from + + + Compound + + + + + + Exit_condition + + + + until + + + Boolean_expression + + + + + + Loop_body + + + + loop + + + Compound + + + + + + Debug + + + + debug + + + + + + + ( + + + Key_list + + + ) + + + + + + + Compound + + + end + + + + + + Attribute + + + + attribute + + + Compound + + + + + + Entity + + + + Variable + + + Read_only + + + + + + Variable + + + + Variable_attribute + + + Local + + + + + + Variable_attribute + + Feature_name + + + + Local + + + + Identifier + + + Result + + + + + + Read_only + + + + Formal + + + Constant_attribute + + + Current + + + + + + Formal + + Identifier + + + + Constant_attribute + + Feature_name + + + + Creators + + + + Creation_clause + + + + + + Creation_clause + + + + create + + + + + Clients + + + + + + + Header_comment + + + + + Creation_procedure_list + + + + + + Creation_procedure_list + + + + Creation_procedure + + + + + + + , + + + Creation_procedure + + + + + + + + + + Creation_procedure + + Feature_name + + + + Creation_instruction + + + + create + + + + + Explicit_creation_type + + + + + Creation_call + + + + + + Explicit_creation_type + + + + { + + + Type + + + } + + + + + + Creation_call + + + + Variable + + + + + Explicit_creation_call + + + + + + + + Explicit_creation_call + + + + . + + + Unqualified_call + + + + + + Creation_expression + + + + create + + + Explicit_creation_type + + + + + Explicit_creation_call + + + + + + + + Equality + + + + Expression + + + Comparison + + + Expression + + + + + + Comparison + + + + = + + + /= + + + ~ + + + /~ + + + + + + Assignment + + + + Variable + + + := + + + Expression + + + + + + Assigner_call + + + + Expression + + + := + + + Expression + + + + + + Call + + + + Object_call + + + Non_object_call + + + + + + Object_call + + + + + + + + Target + + + . + + + + + + + Unqualified_call + + + + + + Unqualified_call + + + + Feature_name + + + + + Actuals + + + + + + + + Target + + + + Local + + + Read_only + + + Call + + + Parenthesized_target + + + + + + Parenthesized_target + + + + (| + + + Expression + + + |) + + + + + + Non_object_call + + + + { + + + Type + + + }. + + + Unqualified_call + + + + + + Actuals + + + + ( + + + Actual_list + + + ) + + + + + + Actual_list + + + + Expression + + + + + + + , + + + Expression + + + + + + + + + + Object_test + + + + { + + + Identifier + + + : + + + Type + + + } + + + Expression + + + + + + Rescue + + + + rescue + + + Compound + + + + + + Retry + + retry + + + + Agent + + + + Call_agent + + + Inline_agent + + + + + + Call_agent + + + + agent + + + Call_agent_body + + + + + + Inline_agent + + + + agent + + + + + Formal_arguments + + + + + + + Type_mark + + + + + + + Attribute_or_routine + + + + + + + Agent_actuals + + + + + + + + Call_agent_body + + + + Agent_qualified + + + Agent_unqualified + + + + + + Agent_qualified + + + + Agent_target + + + . + + + Agent_unqualified + + + + + + Agent_unqualified + + + + Feature_name + + + + + Agent_actuals + + + + + + + + Agent_target + + + + Entity + + + Parenthesized + + + Manifest_type + + + + + + Agent_actuals + + + + ( + + + Agent_actual_list + + + ) + + + + + + Agent_actual_list + + + + Agent_actual + + + + + + + , + + + Agent_actual + + + + + + + + + + Agent_actual + + + + Expression + + + Placeholder + + + + + + Placeholder + + + + + + Manifest_type + + + + + ? + + + + + + Expression + + + + Basic_expression + + + Special_expression + + + + + + Basic_expression + + + + Read_only + + + Local + + + Call + + + Precursor + + + Equality + + + Parenthesized + + + Old + + + Operator_expression + + + Bracket_expression + + + Creation_expression + + + + + + Special_expression + + + + Manifest_constant + + + Manifest_tuple + + + Agent + + + Object_test + + + Once_string + + + Address + + + + + + Parenthesized + + + + ( + + + Expression + + + ) + + + + + + Address + + + + $ + + + Variable + + + + + + Once_string + + + + once + + + Manifest_string + + + + + + Boolean_expression + + + + Basic_expression + + + Boolean_constant + + + Object_test + + + + + + Operator_expression + + + + Unary_expression + + + Binary_expression + + + + + + Unary_expression + + + + Unary + + + Expression + + + + + + Binary_expression + + + + Expression + + + Binary + + + Expression + + + + + + Bracket_expression + + + + Bracket_target + + + [ + + + Actuals + + + ] + + + + + + Bracket_target + + + + Target + + + Once_string + + + Manifest_constant + + + Manifest_tuple + + + + + + Constant + + + + Manifest_constant + + + Constant_attribute + + + + + + Manifest_constant + + + + + + Manifest_type + + + + + Manifest_value + + + + + + Manifest_type + + + + { + + + Type + + + } + + + + + + Manifest_value + + + + Boolean_constant + + + Character_constant + + + Integer_constant + + + Real_constant + + + Manifest_string + + + Manifest_type + + + + + + Sign + + + + + + + + - + + + + + + Integer_constant + + + + + + Sign + + + + + Integer + + + + + + Character_constant + + + + ' + + + Character + + + ' + + + + + + Boolean_constant + + + + True + + + False + + + + + + Real_constant + + + + + + Sign + + + + + Real + + + + + + Manifest_string + + + + Basic_manifest_string + + + Verbatim_string + + + + + + Basic_manifest_string + + + + " + + + String_content + + + " + + + + + + String_content + + + + Simple_string + + + + + + + Line_wrapping_part + + + Simple_string + + + + + + + + + + Verbatim_string + + + + Verbatim_string_opener + + + Line_sequence + + + Verbatim_string_closer + + + + + + Verbatim_string_opener + + + + " + + + + + Simple_string + + + + + Open_bracket + + + + + + Verbatim_string_closer + + + + Close_bracket + + + + + Simple_string + + + + + " + + + + + + Open_bracket + + + + [ + + + { + + + + + + Close_bracket + + + + ] + + + } + + + + + + External + + + + external + + + External_language + + + + + External_name + + + + + + + + External_language + + + + Unregistered_language + + + Registered_language + + + + + + Unregistered_language + + Manifest_string + + + + External_name + + + + alias + + + Manifest_string + + + + + + Registered_language + + + + C_external + + + CPP_external + + + DLL_external + + + + + + External_signature + + + + signature + + + + + External_argument_types + + + + + + + + + : + + + External_type + + + + + + + + + + External_argument_types + + + + ( + + + External_type_list + + + ) + + + + + + External_type_list + + + + + + External_type + + + + + + + , + + + External_type + + + + + + + + + + + + External_type + + Simple_string + + + + External_file_use + + + + use + + + External_file_list + + + + + + External_file_list + + + + External_file + + + + + + + , + + + External_file + + + + + + + + + + External_file + + + + External_user_file + + + External_system_file + + + + + + External_user_file + + + + " + + + Simple_string + + + " + + + + + + External_system_file + + + + < + + + Simple_string + + + > + + + + + + C_external + + + + " + + + C + + + + + inline + + + + + + + External_signature + + + + + + + External_file_use + + + + + " + + + + + + CPP_external + + + + " + + + C++ + + + inline + + + + + External_signature + + + + + + + External_file_use + + + + + " + + + + + + DLL_external + + + + " + + + dll + + + + + windows + + + + + DLL_identifier + + + + + DLL_index + + + + + + + External_signature + + + + + + + External_file_use + + + + + " + + + + + + DLL_identifier + + Simple_string + + + + DLL_index + + Integer + + + + Comment + + + + -- + + + + + + + Simple_string + + + + + + + Comment_break + + + Simple_string + + + + + + + + + + + + + + Comment_break + + + + New_line + + + + + Blanks_or_tabs + + + + + -- + + + + + + Integer + + + + + + Integer_base + + + + + Digit_sequence + + + + + + Integer_base + + + + 0 + + + Integer_base_letter + + + + + + Integer_base_letter + + + + b + + + c + + + x + + + B + + + C + + + X + + + + + + Digit_sequence + + + + Digit + + + + + + Digit + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + a + + + b + + + c + + + d + + + e + + + f + + + A + + + B + + + C + + + D + + + E + + + F + + + _ + + + + + \ No newline at end of file diff --git a/shared/bgf/fl.antlr.ext.bgf b/shared/bgf/fl.antlr.ext.bgf deleted file mode 100644 index a8d0f400..00000000 --- a/shared/bgf/fl.antlr.ext.bgf +++ /dev/null @@ -1,167 +0,0 @@ - - - -program - - - -function - - - - - -function - - - -ID - - - - -ID - - - - -= - - -expr - - - - -NEWLINE - - - - - - - -expr - - - -binary - - -apply - - -ifThenElse - - - - - -binary - - - -atom - - - - - - -ops - - -atom - - - - - - - - - -apply - - - -ID - - - - -atom - - - - - - - -ifThenElse - - - -if - - -expr - - -then - - -expr - - -else - - -expr - - - - - -atom - - - -ID - - -INT - - - - -( - - -expr - - -) - - - - - - - -ops - - - -== - - -+ - - -- - - - - - diff --git a/shared/bgf/fl.antlr.rec.bgf b/shared/bgf/fl.antlr.rec.bgf deleted file mode 100644 index 953f8e93..00000000 --- a/shared/bgf/fl.antlr.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -programprogramfunctionfunctionIDID=exprNEWLINEexprbinaryapplyifThenElsebinaryatomopsatomatomIDINT(expr)ops==+-applyIDatomifThenElseifexprthenexprelseexpr \ No newline at end of file diff --git a/shared/bgf/fl.dcg.ext.bgf b/shared/bgf/fl.dcg.ext.bgf deleted file mode 100644 index 1c6550ec..00000000 --- a/shared/bgf/fl.dcg.ext.bgf +++ /dev/null @@ -1,164 +0,0 @@ - - - - - program - - - - function - - - - - - function - - - - name - - - - - name - - - - - = - - - expr - - - - - newline - - - - - - - - - expr - - - - atom - - - - - - - ops - - - atom - - - - - - - - - - - expr - - - - name - - - - - atom - - - - - - - - - expr - - - - if - - - expr - - - then - - - expr - - - else - - - expr - - - - - - - atom - - int - - - - - atom - - name - - - - atom - - - - ( - - - expr - - - ) - - - - - - - ops - - == - - - - - ops - - + - - - - - ops - - - - - - \ No newline at end of file diff --git a/shared/bgf/fl.dcg.rec.bgf b/shared/bgf/fl.dcg.rec.bgf deleted file mode 100644 index 24488e8e..00000000 --- a/shared/bgf/fl.dcg.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -programprogramfunctionfunctionnamename=exprnewlineexpratomopsatomexprnameatomexprifexprthenexprelseexpratomintatomnameatom(expr)ops==ops+ops- \ No newline at end of file diff --git a/shared/bgf/fl.ecore.ext.bgf b/shared/bgf/fl.ecore.ext.bgf deleted file mode 100644 index 59a4ad76..00000000 --- a/shared/bgf/fl.ecore.ext.bgf +++ /dev/null @@ -1,2 +0,0 @@ - -ProgramfunctionFunctionFunctionnamestringargumentArgumentdefinitionExpArgumentnamestringExpLiteralExpArgumentExpIfThenElseExpApplyExpBinaryExpLiteralExpvalueintArgumentExpargumentArgumentIfThenElseExpifExpthenExpelseExpApplyExpfunctionFunctionargumentExpBinaryExpPlusExpMinusExpEqualExpPlusExpleftExprightExpMinusExpleftExprightExpEqualExpleftExprightExp diff --git a/shared/bgf/fl.ecore.rec.bgf b/shared/bgf/fl.ecore.rec.bgf deleted file mode 100644 index 6f325c1d..00000000 --- a/shared/bgf/fl.ecore.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -ProgramProgramfunctionFunctionFunctionnamestringargumentArgumentdefinitionExpArgumentnamestringExpLiteralExpArgumentExpIfThenElseExpApplyExpBinaryExpLiteralExpvalueintArgumentExpargumentArgumentIfThenElseExpifExpthenExpelseExpApplyExpfunctionFunctionargumentExpBinaryExpPlusExpMinusExpEqualExpPlusExpleftExprightExpMinusExpleftExprightExpEqualExpleftExprightExp \ No newline at end of file diff --git a/shared/bgf/fl.java.ext.bgf b/shared/bgf/fl.java.ext.bgf deleted file mode 100644 index 21655f5e..00000000 --- a/shared/bgf/fl.java.ext.bgf +++ /dev/null @@ -1,223 +0,0 @@ - - - -Apply - - - - -name - -string - - - - - -args - - - - - - - - - - - - - -Argument - - -name - -string - - - - - -Binary - - - - -ops - -Ops - - - - - -left - -Expr - - - - - -right - -Expr - - - - - - - -Expr - - - -Apply - - -Argument - - -Binary - - -IfThenElse - - -Literal - - - - - -Function - - - - -name - -string - - - - - -args - - - - - - - - - - - -rhs - -Expr - - - - - - - -IfThenElse - - - - -ifExpr - -Expr - - - - - -thenExpr - -Expr - - - - - -elseExpr - -Expr - - - - - - - -Literal - - -info - -int - - - - - -Ops - - - - -Equal - - - - - - - -Plus - - - - - - - -Minus - - - - - - - - - -Program - - -functions - - - - - - - - - - - -Visitor - - - - - diff --git a/shared/bgf/fl.java.rec.bgf b/shared/bgf/fl.java.rec.bgf deleted file mode 100644 index 30291a15..00000000 --- a/shared/bgf/fl.java.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -FunctionFunctionnamestringargsrhsExprExprApplyArgumentBinaryIfThenElseLiteralApplynamestringargsArgumentnamestringBinaryopsOpsleftExprrightExprOpsEqualPlusMinusIfThenElseifExprExprthenExprExprelseExprExprLiteralinfoint \ No newline at end of file diff --git a/shared/bgf/fl.sdf.ext.bgf b/shared/bgf/fl.sdf.ext.bgf deleted file mode 100644 index 7b4b11a6..00000000 --- a/shared/bgf/fl.sdf.ext.bgf +++ /dev/null @@ -1,132 +0,0 @@ - - - Program - - - Function - - - - - Function - - - - Name - - - Name - - - = - - Expr - - - Newline - - - - - - - - Expr - - - - Expr - - Ops - - Expr - - - - - - - Expr - - - - Name - - - Expr - - - - - - - - Expr - - - - if - - Expr - - then - - Expr - - else - - Expr - - - - - - Expr - - - - ( - - Expr - - ) - - - - - - - Expr - - Name - - - - - Expr - - Int - - - - - Ops - - - - - - - - Ops - - + - - - - - Ops - - == - - - diff --git a/shared/bgf/fl.sdf.rec.bgf b/shared/bgf/fl.sdf.rec.bgf deleted file mode 100644 index 77f2ee22..00000000 --- a/shared/bgf/fl.sdf.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -ProgramProgramFunctionFunctionNameName=ExprNewlineExprExprOpsExprExprNameExprExprifExprthenExprelseExprExpr(Expr)ExprNameExprIntOps-Ops+Ops== \ No newline at end of file diff --git a/shared/bgf/fl.txl.ext.bgf b/shared/bgf/fl.txl.ext.bgf deleted file mode 100644 index 02fefd28..00000000 --- a/shared/bgf/fl.txl.ext.bgf +++ /dev/null @@ -1,2 +0,0 @@ - -programprogramfunfunidid=expressionnewlineexpressionexpressionopexpressionidexpressionifexpressionthenexpressionelseexpression(expression)idnumberop+-== diff --git a/shared/bgf/fl.txl.rec.bgf b/shared/bgf/fl.txl.rec.bgf deleted file mode 100644 index 2da45306..00000000 --- a/shared/bgf/fl.txl.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -programprogramfunfunidid=expressionnewlineexpressionexpressionopexpressionidexpressionifexpressionthenexpressionelseexpression(expression)idnumberop+-== \ No newline at end of file diff --git a/shared/bgf/fl.xsd.ecore.ext.bgf b/shared/bgf/fl.xsd.ecore.ext.bgf deleted file mode 100644 index 7b737598..00000000 --- a/shared/bgf/fl.xsd.ecore.ext.bgf +++ /dev/null @@ -1,2 +0,0 @@ - -ApplynamestringargExprArgumentnamestringBinaryopsOpsleftExprrightExprExprApplyArgumentBinaryIfThenElseLiteralFunctionnamestringargstringrhsExprIfThenElseifExprExprthenExprExprelseExprExprLiteralinfointOpsEqualPlusMinusProgramTypefunctionFunction diff --git a/shared/bgf/fl.xsd.ecore.rec.bgf b/shared/bgf/fl.xsd.ecore.rec.bgf deleted file mode 100644 index 5f3e970f..00000000 --- a/shared/bgf/fl.xsd.ecore.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -ProgramTypeProgramTypefunctionFunctionFunctionnamestringargstringrhsExprExprApplyArgumentBinaryIfThenElseLiteralApplynamestringargExprArgumentnamestringBinaryopsOpsleftExprrightExprOpsEqualPlusMinusIfThenElseifExprExprthenExprExprelseExprExprLiteralinfoint \ No newline at end of file diff --git a/shared/bgf/fl.xsd.java.ext.bgf b/shared/bgf/fl.xsd.java.ext.bgf deleted file mode 100644 index 62762897..00000000 --- a/shared/bgf/fl.xsd.java.ext.bgf +++ /dev/null @@ -1,229 +0,0 @@ - - - -Apply - - - - -Name - -string - - - - - -Arg - - - - - - - - - - - - - -Argument - - -Name - -string - - - - - -Binary - - - - -Ops - -Ops - - - - - -Left - -Expr - - - - - -Right - -Expr - - - - - - - -Expr - - - -Apply - - -Argument - - -Binary - - -IfThenElse - - -Literal - - - - - -Function - - - - -Name - -string - - - - - -Arg - - - - - - - - - - - -Rhs - -Expr - - - - - - - -IfThenElse - - - - -IfExpr - -Expr - - - - - -ThenExpr - -Expr - - - - - -ElseExpr - -Expr - - - - - - - -Literal - - -Info - -int - - - - - -ObjectFactory - - - - - -Ops - - - - -EQUAL - - - - - - - -PLUS - - - - - - - -MINUS - - - - - - - - - -package-info - - - - - -Program - - -Function - - - - - - - - - - - diff --git a/shared/bgf/fl.xsd.java.rec.bgf b/shared/bgf/fl.xsd.java.rec.bgf deleted file mode 100644 index 259c5102..00000000 --- a/shared/bgf/fl.xsd.java.rec.bgf +++ /dev/null @@ -1 +0,0 @@ -FunctionFunctionNamestringArgRhsExprExprApplyArgumentBinaryIfThenElseLiteralApplyNamestringArgArgumentNamestringBinaryOpsOpsLeftExprRightExprOpsEQUALPLUSMINUSIfThenElseIfExprExprThenExprExprElseExprExprLiteralInfoint \ No newline at end of file diff --git a/shared/bgf/fortran-derricks.bgf b/shared/bgf/fortran-derricks.bgf new file mode 100644 index 00000000..8c00988a --- /dev/null +++ b/shared/bgf/fortran-derricks.bgf @@ -0,0 +1,11034 @@ + + + + ExecutableProgram + + ExecutableProgram + + + + + + StartCommentBlock + + + + + + + ProgramUnit + + + + + + + + ProgramUnit + + + + MainProgram + + + FunctionSubprogram + + + SubroutineSubprogram + + + Module + + + BlockDataSubprogram + + + + + + MainProgram + + + + + + ProgramStmt + + + + + MainRange + + + + + + ProgramStmt + + + + LblDef + + + program + + + ProgramName + + + EOS + + + + + + LblDef + + + + Label + + + + + + ProgramName + + Ident + + + + MainRange + + + + + + + + BodyConstruct + + + + + EndProgramStmt + + + + + + + InternalSubProgPart + + + EndProgramStmt + + + + + EndProgramStmt + + + + + + BodyConstruct + + + + SpecificationPartConstruct + + + ExecutableConstruct + + + + + + SpecificationPartConstruct + + + + ImplicitStmt + + + ParameterStmt + + + FormatStmt + + + EntryStmt + + + DeclarationConstruct + + + UseStmt + + + + + + ImplicitStmt + + + + + + LblDef + + + implicit + + + none + + + EOS + + + + + + + LblDef + + + implicit + + + ImplicitSpec + + + + + + + , + + + ImplicitSpec + + + + + + + EOS + + + + + + + + ImplicitSpec + + + + TypeSpec + + + ( + + + LetterSpec + + + + + + + , + + + LetterSpec + + + + + + + ) + + + + + + TypeSpec + + + + + + integer + + + KindSelector + + + + + + + real + + + KindSelector + + + + + + + double + + + precision + + + + + + + complex + + + KindSelector + + + + + + + character + + + CharSelector + + + + + + + logical + + + KindSelector + + + + + + + type + + + ( + + + TypeName + + + ) + + + + + integer + + + real + + + complex + + + logical + + + character + + + + + character + + + LengthSelector + + + + + + + + KindSelector + + + + + + ( + + + + + + + kind + + + = + + + + + + + Expr + + + ) + + + + + + + * + + + Icon + + + + + + + + Expr + + + + + + + + Expr + + + DefinedBinaryOp + + + + + + + Level5Expr + + + + + + DefinedBinaryOp + + Dop + + + + Level5Expr + + + + + + + + Level5Expr + + + EquivOp + + + + + + + EquivOperand + + + + + + EquivOp + + + + .eqv. + + + .neqv. + + + + + + EquivOperand + + + + + + + + EquivOperand + + + OrOp + + + + + + + OrOperand + + + + + + OrOp + + .or. + + + + OrOperand + + + + + + + + OrOperand + + + AndOp + + + + + + + AndOperand + + + + + + AndOp + + .and. + + + + AndOperand + + + + + + NotOp + + + + + Level4Expr + + + + + + NotOp + + .not. + + + + Level4Expr + + + + + + + + Level3Expr + + + RelOp + + + + + + + Level3Expr + + + + + + Level3Expr + + + + + + + + Level3Expr + + + ConcatOp + + + + + + + Level2Expr + + + + + + ConcatOp + + // + + + + Level2Expr + + + + + + + + + + Level2Expr + + + AddOp + + + + + + + AddOperand + + + + + + + Sign + + + AddOperand + + + + + + + + AddOp + + + + + + + + - + + + + + + AddOperand + + + + + + + + AddOperand + + + MultOp + + + + + + + MultOperand + + + + + + MultOp + + + + * + + + / + + + + + + MultOperand + + + + Level1Expr + + + + + + + PowerOp + + + MultOperand + + + + + + + + + + Level1Expr + + + + + + DefinedUnaryOp + + + + + Primary + + + + + + DefinedUnaryOp + + Dop + + + + Primary + + + + ArrayConstructor + + + UnsignedArithmeticConstant + + + Name + + + DataRef + + + FunctionReference + + + + + ( + + + Expr + + + ) + + + + + Scon + + + LogicalConstant + + + + + + ArrayConstructor + + + + (/ + + + AcValueList + + + /) + + + + + + AcValueList + + + + AcValue + + + + + + + , + + + AcValue + + + + + + + + + + AcValue + + + + Expr + + + AcImpliedDo + + + + + + AcImpliedDo + + + + + + ( + + + Expr + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + ) + + + + + + + ( + + + Expr + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + , + + + Expr + + + ) + + + + + + + ( + + + AcImpliedDo + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + ) + + + + + + + ( + + + AcImpliedDo + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + , + + + Expr + + + ) + + + + + + + + ImpliedDoVariable + + Ident + + + + UnsignedArithmeticConstant + + + + + + Icon + + + _ + + + KindParam + + + + + + + Rcon + + + _ + + + KindParam + + + + + Icon + + + Rcon + + + ComplexConst + + + + + + KindParam + + + + Icon + + + NamedConstantUse + + + + + + NamedConstantUse + + Ident + + + + ComplexConst + + + + ( + + + Expr + + + , + + + Expr + + + ) + + + + + + Name + + Ident + + + + DataRef + + + + + + Name + + + % + + + Name + + + + + + + DataRef + + + % + + + Name + + + + + + + Name + + + ( + + + SectionSubscriptList + + + ) + + + + + + + DataRef + + + ( + + + SectionSubscriptList + + + ) + + + + + + + + SectionSubscriptList + + + + SectionSubscript + + + + + + + , + + + SectionSubscript + + + + + + + + + + SectionSubscript + + + + Expr + + + SubscriptTriplet + + + + + + SubscriptTriplet + + + + + + Expr + + + + + : + + + + + Expr + + + + + + + + + : + + + Expr + + + + + + + + + + FunctionReference + + + + Name + + + ( + + + + + FunctionArgList + + + + + ) + + + + + + FunctionArgList + + + + FunctionArg + + + + + FunctionArgList + + + , + + + FunctionArg + + + + + + + SectionSubscriptList + + + , + + + FunctionArg + + + + + + + + FunctionArg + + + + Name + + + = + + + Expr + + + + + + LogicalConstant + + + + + + .true. + + + _ + + + KindParam + + + + + + + .false. + + + _ + + + KindParam + + + + + .true. + + + .false. + + + + + + PowerOp + + ** + + + + Sign + + + + + + + + - + + + + + + RelOp + + + + == + + + /= + + + < + + + <= + + + > + + + >= + + + .eq. + + + .ne. + + + .lt. + + + .le. + + + .gt. + + + .ge. + + + + + + CharSelector + + + + + + ( + + + len + + + = + + + TypeParamValue + + + , + + + kind + + + = + + + Expr + + + ) + + + + + + + ( + + + len + + + = + + + TypeParamValue + + + , + + + Expr + + + ) + + + + + + + ( + + + len + + + = + + + TypeParamValue + + + ) + + + + + + + ( + + + + + + + kind + + + = + + + + + + + Expr + + + ) + + + + + + + + TypeParamValue + + + + SpecificationExpr + + + * + + + + + + SpecificationExpr + + Expr + + + + TypeName + + Ident + + + + LengthSelector + + + + + + ( + + + TypeParamValue + + + ) + + + + + + + * + + + CharLength + + + + + + + + CharLength + + + + + + ( + + + TypeParamValue + + + ) + + + + + ScalarIntLiteralConstant + + + + + + LetterSpec + + + + Letter + + + + + + + - + + + Letter + + + + + + + + + + ParameterStmt + + + + LblDef + + + parameter + + + ( + + + NamedConstantDefList + + + ) + + + EOS + + + + + + NamedConstantDefList + + + + NamedConstantDef + + + + + + + , + + + NamedConstantDef + + + + + + + + + + NamedConstantDef + + + + NamedConstant + + + = + + + Expr + + + + + + NamedConstant + + Ident + + + + FormatStmt + + + + LblDef + + + format + + + ( + + + + + FormatItemList + + + + + ) + + + EOS + + + + + + FormatItemList + + + + FormatItem + + + + + + + , + + + FormatItem + + + + + + + + + + FormatItem + + + + + + + + Icon + + + + + DataEditDescr + + + + + ControlEditDescr + + + CharStringEditDescr + + + + + + + Icon + + + + + ( + + + FormatItemList + + + ) + + + + + + + FormatItem + + + : + + + FormatItem + + + + + + + + DataEditDescr + + + + + + I + + + Icon + + + + + + + . + + + Icon + + + + + + + + + + + O + + + Icon + + + + + + + . + + + Icon + + + + + + + + + + + B + + + Icon + + + + + + + . + + + Icon + + + + + + + + + + + Z + + + Icon + + + + + + + . + + + Icon + + + + + + + + + + + F + + + Icon + + + . + + + Icon + + + + + + + E + + + Icon + + + . + + + Icon + + + + + + + E + + + Icon + + + + + + + + + + + EN + + + Icon + + + . + + + Icon + + + + + + + E + + + Icon + + + + + + + + + + + ES + + + Icon + + + . + + + Icon + + + + + + + E + + + Icon + + + + + + + + + + + G + + + Icon + + + . + + + Icon + + + + + + + E + + + Icon + + + + + + + + + + + L + + + Icon + + + + + + + A + + + + + Icon + + + + + + + + + D + + + Icon + + + . + + + Icon + + + + + + + + ControlEditDescr + + + + PositionEditDescr + + + + + + + Icon + + + + + / + + + + + : + + + SignEditDescr + + + + + + + + + - + + + + + + + + + + + Icon + + + P + + + + + + + + + Icon + + + + + DataEditDescr + + + + + + + + + BlankInterpEditDescr + + + + + + PositionEditDescr + + + + + + T + + + Icon + + + + + + + TL + + + Icon + + + + + + + TR + + + Icon + + + + + + + Icon + + + X + + + + + + + + SignEditDescr + + + + S + + + SP + + + SS + + + + + + BlankInterpEditDescr + + + + BN + + + BZ + + + + + + CharStringEditDescr + + + + Scon + + + + + Icon + + + H + + + + + Character + + + + + + + + + + EntryStmt + + + + + + LblDef + + + entry + + + EntryName + + + SubroutineParList + + + EOS + + + + + + + LblDef + + + entry + + + EntryName + + + SubroutineParList + + + result + + + ( + + + Name + + + ) + + + EOS + + + + + + + + EntryName + + Ident + + + + SubroutineParList + + + + ( + + + + + + + SubroutinePar + + + + + + + , + + + SubroutinePar + + + + + + + + + + + ) + + + + + + SubroutinePar + + + + DummyArgName + + + * + + + + + + DummyArgName + + Ident + + + + DeclarationConstruct + + + + TypeDeclarationStmt + + + SpecificationStmt + + + DerivedTypeDef + + + InterfaceBlock + + + + + + TypeDeclarationStmt + + + + + + LblDef + + + TypeSpec + + + + + + + , + + + AttrSpec + + + + + + + : + + + : + + + EntityDecl + + + + + + + , + + + EntityDecl + + + + + + + EOS + + + + + + + LblDef + + + TypeSpec + + + EntityDecl + + + + + + + , + + + EntityDecl + + + + + + + EOS + + + + + + + + AttrSpec + + + + parameter + + + AccessSpec + + + allocatable + + + + + dimension + + + ( + + + ArraySpec + + + ) + + + + + external + + + + + intent + + + ( + + + IntentSpec + + + ) + + + + + intrinsic + + + optional + + + pointer + + + save + + + target + + + + + + AccessSpec + + + + public + + + private + + + + + + ArraySpec + + + + AssumedShapeSpecList + + + DeferredShapeSpecList + + + ExplicitShapeSpecList + + + AssumedSizeSpec + + + + + + AssumedShapeSpecList + + + + + + LowerBound + + + : + + + + + + + DeferredShapeSpecList + + + , + + + LowerBound + + + : + + + + + + + AssumedShapeSpecList + + + , + + + AssumedShapeSpec + + + + + + + + LowerBound + + SpecificationExpr + + + + DeferredShapeSpecList + + + + DeferredShapeSpec + + + + + + + , + + + DeferredShapeSpec + + + + + + + + + + DeferredShapeSpec + + : + + + + AssumedShapeSpec + + + + + + LowerBound + + + + + : + + + + + + ExplicitShapeSpecList + + + + ExplicitShapeSpec + + + + + + + , + + + ExplicitShapeSpec + + + + + + + + + + ExplicitShapeSpec + + + + + + + + LowerBound + + + : + + + + + + + UpperBound + + + + + + UpperBound + + SpecificationExpr + + + + AssumedSizeSpec + + + + + + + + + + LowerBound + + + : + + + + + + + * + + + + + + + ExplicitShapeSpecList + + + , + + + * + + + + + + + ExplicitShapeSpecList + + + , + + + LowerBound + + + : + + + * + + + + + + + + IntentSpec + + + + in + + + out + + + + + in + + + out + + + + + + + + EntityDecl + + + + + + ObjectName + + + = + + + Expr + + + + + + + ObjectName + + + ( + + + ArraySpec + + + ) + + + = + + + Expr + + + + + + + ObjectName + + + * + + + CharLength + + + = + + + Expr + + + + + + + ObjectName + + + * + + + CharLength + + + ( + + + ArraySpec + + + ) + + + = + + + Expr + + + + + ObjectName + + + + + ObjectName + + + * + + + CharLength + + + + + + + ObjectName + + + ( + + + ArraySpec + + + ) + + + + + + + ObjectName + + + ( + + + ArraySpec + + + ) + + + * + + + CharLength + + + + + + + + ObjectName + + Ident + + + + SpecificationStmt + + + + AccessStmt + + + AllocatableStmt + + + CommonStmt + + + DataStmt + + + DimensionStmt + + + EquivalenceStmt + + + ExternalStmt + + + IntrinsicStmt + + + SaveStmt + + + IntentStmt + + + NamelistStmt + + + OptionalStmt + + + PointerStmt + + + TargetStmt + + + + + + AccessStmt + + + + + + LblDef + + + AccessSpec + + + : + + + : + + + AccessIdList + + + EOS + + + + + + + LblDef + + + AccessSpec + + + + + AccessIdList + + + + + EOS + + + + + + + + AccessIdList + + + + AccessId + + + + + + + , + + + AccessId + + + + + + + + + + AccessId + + + + GenericName + + + GenericSpec + + + + + + GenericName + + Ident + + + + GenericSpec + + + + + + operator + + + ( + + + DefinedOperator + + + ) + + + + + + + assignment + + + ( + + + = + + + ) + + + + + + + + DefinedOperator + + + + Dop + + + PowerOp + + + MultOp + + + AddOp + + + ConcatOp + + + RelOp + + + NotOp + + + AndOp + + + OrOp + + + EquivOp + + + + + + AllocatableStmt + + + + + + LblDef + + + allocatable + + + : + + + : + + + ArrayAllocationList + + + EOS + + + + + + + LblDef + + + allocatable + + + ArrayAllocationList + + + EOS + + + + + + + + ArrayAllocationList + + + + ArrayAllocation + + + + + + + , + + + ArrayAllocation + + + + + + + + + + ArrayAllocation + + + + ArrayName + + + + + + + ( + + + DeferredShapeSpecList + + + ) + + + + + + + + + + ArrayName + + Ident + + + + CommonStmt + + + + LblDef + + + common + + + + + Comblock + + + + + CommonBlockObjectList + + + + + + + + + , + + + + + Comblock + + + CommonBlockObjectList + + + + + + + EOS + + + + + + Comblock + + + + / + + + + + CommonBlockName + + + + + / + + + + + + CommonBlockName + + Ident + + + + CommonBlockObjectList + + + + CommonBlockObject + + + + + + + , + + + CommonBlockObject + + + + + + + + + + CommonBlockObject + + + + VariableName + + + ArrayDeclarator + + + + + + VariableName + + Ident + + + + ArrayDeclarator + + + + VariableName + + + ( + + + ArraySpec + + + ) + + + + + + DataStmt + + + + LblDef + + + data + + + Datalist + + + EOS + + + + + + Datalist + + + + DataStmtSet + + + + + + + , + + + DataStmtSet + + + + + + + + + + DataStmtSet + + + + DataStmtObjectList + + + / + + + DataStmtValueList + + + / + + + + + + DataStmtObjectList + + + + DataStmtObject + + + + + + + , + + + DataStmtObject + + + + + + + + + + DataStmtObject + + + + Variable + + + DataImpliedDo + + + + + + Variable + + + + VariableName + + + + + VariableName + + + ( + + + Subscript + + + + + + + , + + + Subscript + + + + + + + ) + + + + + + + VariableName + + + SubstringRange + + + + + + + VariableName + + + ( + + + Subscript + + + + + + + , + + + Subscript + + + + + + + ) + + + SubstringRange + + + + + + + + Subscript + + Expr + + + + SubstringRange + + + + ( + + + SubscriptTriplet + + + ) + + + + + + DataImpliedDo + + + + ( + + + DataIDoObjectList + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + + + + + , + + + Expr + + + + + + + ) + + + + + + DataIDoObjectList + + + + DataIDoObject + + + + + + + , + + + DataIDoObject + + + + + + + + + + DataIDoObject + + + + ArrayElement + + + DataImpliedDo + + + StructureComponent + + + + + + ArrayElement + + + + + + StructureComponent + + + ( + + + SectionSubscriptList + + + ) + + + + + + + VariableName + + + ( + + + SectionSubscriptList + + + ) + + + + + + + + StructureComponent + + + + + + VariableName + + + FieldSelector + + + + + + + StructureComponent + + + FieldSelector + + + + + + + + FieldSelector + + + + + + ( + + + SectionSubscriptList + + + ) + + + % + + + Name + + + + + + + % + + + Name + + + + + + + + DataStmtValueList + + + + DataStmtValue + + + + + + + , + + + DataStmtValue + + + + + + + + + + DataStmtValue + + + + Constant + + + + + NamedConstantUse + + + * + + + Constant + + + + + + + + Constant + + + + NamedConstantUse + + + UnsignedArithmeticConstant + + + + + + + + + UnsignedArithmeticConstant + + + + + + + - + + + UnsignedArithmeticConstant + + + + + Scon + + + LogicalConstant + + + + + Icon + + + _ + + + Scon + + + + + + + NamedConstantUse + + + _ + + + Scon + + + + + StructureConstructor + + + BozLiteralConstant + + + + + + StructureConstructor + + + + TypeName + + + ( + + + Expr + + + + + + + , + + + Expr + + + + + + + ) + + + + + + BozLiteralConstant + + + + BinaryConstant + + + OctalConstant + + + HexConstant + + + + + + DimensionStmt + + + + + + LblDef + + + dimension + + + : + + + : + + + ArrayDeclaratorList + + + EOS + + + + + + + LblDef + + + dimension + + + ArrayDeclaratorList + + + EOS + + + + + + + + ArrayDeclaratorList + + + + ArrayDeclarator + + + + + + + , + + + ArrayDeclarator + + + + + + + + + + EquivalenceStmt + + + + LblDef + + + equivalence + + + EquivalenceSetList + + + EOS + + + + + + EquivalenceSetList + + + + EquivalenceSet + + + + + + + , + + + EquivalenceSet + + + + + + + + + + EquivalenceSet + + + + ( + + + EquivalenceObject + + + , + + + EquivalenceObject + + + + + + + , + + + EquivalenceObject + + + + + + + ) + + + + + + EquivalenceObject + + + + ArrayName + + + Variable + + + + + + ExternalStmt + + + + LblDef + + + external + + + ExternalName + + + + + + + , + + + ExternalName + + + + + + + EOS + + + + + + ExternalName + + Ident + + + + IntrinsicStmt + + + + LblDef + + + intrinsic + + + IntrinsicProcedureName + + + + + + + , + + + IntrinsicProcedureName + + + + + + + EOS + + + + + + IntrinsicProcedureName + + Ident + + + + SaveStmt + + + + + + LblDef + + + save + + + : + + + : + + + SavedEntityList + + + EOS + + + + + + + LblDef + + + save + + + + + SavedEntityList + + + + + EOS + + + + + + + + SavedEntityList + + + + SavedEntity + + + + + + + , + + + SavedEntity + + + + + + + + + + SavedEntity + + + + VariableName + + + + + / + + + CommonBlockName + + + / + + + + + + + + IntentStmt + + + + + + LblDef + + + intent + + + ( + + + IntentSpec + + + ) + + + : + + + : + + + IntentParList + + + EOS + + + + + + + LblDef + + + intent + + + ( + + + IntentSpec + + + ) + + + IntentParList + + + EOS + + + + + + + + IntentParList + + + + IntentPar + + + + + + + , + + + IntentPar + + + + + + + + + + IntentPar + + DummyArgName + + + + NamelistStmt + + + + LblDef + + + namelist + + + NamelistGroup + + + + + + + + + , + + + + + NamelistGroup + + + + + + + EOS + + + + + + NamelistGroup + + + + / + + + NamelistGroupName + + + / + + + NamelistGroupObject + + + + + + + , + + + NamelistGroupObject + + + + + + + + + + NamelistGroupName + + Ident + + + + NamelistGroupObject + + VariableName + + + + OptionalStmt + + + + + + LblDef + + + optional + + + : + + + : + + + OptionalParList + + + EOS + + + + + + + LblDef + + + optional + + + OptionalParList + + + EOS + + + + + + + + OptionalParList + + + + OptionalPar + + + + + + + , + + + OptionalPar + + + + + + + + + + OptionalPar + + DummyArgName + + + + PointerStmt + + + + + + LblDef + + + pointer + + + : + + + : + + + PointerStmtObjectList + + + EOS + + + + + + + LblDef + + + pointer + + + PointerStmtObjectList + + + EOS + + + + + + + + PointerStmtObjectList + + + + PointerStmtObject + + + + + + + , + + + PointerStmtObject + + + + + + + + + + PointerStmtObject + + + + ObjectName + + + + + ObjectName + + + ( + + + DeferredShapeSpecList + + + ) + + + + + + + + TargetStmt + + + + + + LblDef + + + target + + + : + + + : + + + TargetObjectList + + + EOS + + + + + + + LblDef + + + target + + + TargetObjectList + + + EOS + + + + + + + + TargetObjectList + + + + TargetObject + + + + + + + , + + + TargetObject + + + + + + + + + + TargetObject + + + + ObjectName + + + + + ObjectName + + + ( + + + ArraySpec + + + ) + + + + + + + + DerivedTypeDef + + + + DerivedTypeStmt + + + + + DerivedTypeBody + + + + + EndTypeStmt + + + + + + DerivedTypeStmt + + + + + + LblDef + + + type + + + TypeName + + + EOS + + + + + + + LblDef + + + type + + + : + + + : + + + TypeName + + + EOS + + + + + + + LblDef + + + type + + + , + + + AccessSpec + + + : + + + : + + + TypeName + + + EOS + + + + + + + + DerivedTypeBody + + + + PrivateSequenceStmt + + + ComponentDefStmt + + + + + + PrivateSequenceStmt + + + + + + LblDef + + + private + + + EOS + + + + + + + LblDef + + + sequence + + + EOS + + + + + + + + ComponentDefStmt + + + + + + LblDef + + + TypeSpec + + + + + + + , + + + ComponentAttrSpecList + + + + + + + : + + + : + + + ComponentDeclList + + + EOS + + + + + + + LblDef + + + TypeSpec + + + ComponentDeclList + + + EOS + + + + + + + + ComponentAttrSpecList + + + + ComponentAttrSpec + + + + + + + , + + + ComponentAttrSpec + + + + + + + + + + ComponentAttrSpec + + + + pointer + + + + + dimension + + + ( + + + ComponentArraySpec + + + ) + + + + + + + + ComponentArraySpec + + + + ExplicitShapeSpecList + + + DeferredShapeSpecList + + + + + + ComponentDeclList + + + + ComponentDecl + + + + + + + , + + + ComponentDecl + + + + + + + + + + ComponentDecl + + + + ComponentName + + + + + + + ( + + + ComponentArraySpec + + + ) + + + + + + + + + + + * + + + CharLength + + + + + + + + + + ComponentName + + Ident + + + + EndTypeStmt + + + + LblDef + + + end + + + type + + + + + TypeName + + + + + EOS + + + + + + InterfaceBlock + + + + InterfaceStmt + + + + + InterfaceBlockPart + + + + + EndInterfaceStmt + + + + + + InterfaceStmt + + + + + + LblDef + + + interface + + + GenericName + + + EOS + + + + + + + LblDef + + + interface + + + GenericSpec + + + EOS + + + + + + + LblDef + + + interface + + + EOS + + + + + + + + InterfaceBlockPart + + + + InterfaceBody + + + ModuleProcedureStmt + + + + + + InterfaceBody + + + + + + LblDef + + + FunctionPrefix + + + FunctionName + + + FunctionInterfaceRange + + + + + + + LblDef + + + subroutine + + + SubroutineName + + + SubroutineInterfaceRange + + + + + + + + FunctionPrefix + + + + + + recursive + + + function + + + + + + + recursive + + + TypeSpec + + + function + + + + + + + TypeSpec + + + recursive + + + function + + + + + + + + + TypeSpec + + + + + function + + + + + + + + FunctionName + + Ident + + + + FunctionInterfaceRange + + + + + + FunctionParList + + + EOS + + + SubprogramInterfaceBody + + + EndFunctionStmt + + + + + + + FunctionParList + + + EOS + + + EndFunctionStmt + + + + + + + + FunctionParList + + + + ( + + + + + + + FunctionPar + + + + + + + , + + + FunctionPar + + + + + + + + + + + ) + + + + + + FunctionPar + + DummyArgName + + + + SubprogramInterfaceBody + + + + SpecificationPartConstruct + + + + + SubprogramInterfaceBody + + + SpecificationPartConstruct + + + + + + + + EndFunctionStmt + + + + + + LblDef + + + end + + + EOS + + + + + + + LblDef + + + end + + + function + + + + + EndName + + + + + EOS + + + + + + + + EndName + + Ident + + + + SubroutineName + + Ident + + + + SubroutineInterfaceRange + + + + + + SubroutineParList + + + EOS + + + SubprogramInterfaceBody + + + EndSubroutineStmt + + + + + + + SubroutineParList + + + EOS + + + EndSubroutineStmt + + + + + + + + EndSubroutineStmt + + + + + + LblDef + + + end + + + subroutine + + + + + EndName + + + + + EOS + + + + + + + LblDef + + + end + + + EOS + + + + + + + + ModuleProcedureStmt + + + + LblDef + + + module + + + procedure + + + ProcedureNameList + + + EOS + + + + + + ProcedureNameList + + + + ProcedureName + + + + + + + , + + + ProcedureName + + + + + + + + + + ProcedureName + + Ident + + + + EndInterfaceStmt + + + + LblDef + + + end + + + interface + + + EOS + + + + + + UseStmt + + + + + + LblDef + + + use + + + Name + + + + + + + , + + + RenameList + + + + + + + EOS + + + + + + + LblDef + + + use + + + Name + + + , + + + only + + + : + + + + + OnlyList + + + + + EOS + + + + + + + + RenameList + + + + Rename + + + + + + + , + + + Rename + + + + + + + + + + Rename + + + + Ident + + + => + + + UseName + + + + + + UseName + + Ident + + + + OnlyList + + + + Only + + + + + + + , + + + Only + + + + + + + + + + Only + + + + GenericSpec + + + + + + + + + Ident + + + => + + + + + + + UseName + + + + + + + + ExecutableConstruct + + + + ActionStmt + + + DoConstruct + + + IfConstruct + + + CaseConstruct + + + WhereConstruct + + + EndDoStmt + + + + + + ActionStmt + + + + AllocateStmt + + + CycleStmt + + + DeallocateStmt + + + ExitStmt + + + NullifyStmt + + + PointerAssignmentStmt + + + WhereStmt + + + ArithmeticIfStmt + + + AssignmentStmt + + + AssignStmt + + + BackspaceStmt + + + CallStmt + + + CloseStmt + + + ContinueStmt + + + EndfileStmt + + + GotoStmt + + + ComputedGotoStmt + + + AssignedGotoStmt + + + IfStmt + + + InquireStmt + + + OpenStmt + + + PauseStmt + + + PrintStmt + + + ReadStmt + + + ReturnStmt + + + RewindStmt + + + StopStmt + + + WriteStmt + + + + + + AllocateStmt + + + + + + LblDef + + + allocate + + + ( + + + AllocationList + + + , + + + stat + + + = + + + Variable + + + ) + + + EOS + + + + + + + LblDef + + + allocate + + + ( + + + AllocationList + + + ) + + + EOS + + + + + + + + AllocationList + + + + Allocation + + + + + + + , + + + Allocation + + + + + + + + + + Allocation + + + + AllocateObject + + + + + AllocatedShape + + + + + + + + AllocateObject + + + + VariableName + + + + + AllocateObject + + + FieldSelector + + + + + + + + AllocatedShape + + + + ( + + + SectionSubscriptList + + + ) + + + + + + CycleStmt + + + + LblDef + + + cycle + + + + + EndName + + + + + EOS + + + + + + DeallocateStmt + + + + + + LblDef + + + deallocate + + + ( + + + AllocateObjectList + + + , + + + stat + + + = + + + Variable + + + ) + + + EOS + + + + + + + LblDef + + + deallocate + + + ( + + + AllocateObjectList + + + ) + + + EOS + + + + + + + + AllocateObjectList + + + + AllocateObject + + + + + + + , + + + AllocateObject + + + + + + + + + + ExitStmt + + + + LblDef + + + exit + + + + + EndName + + + + + EOS + + + + + + NullifyStmt + + + + LblDef + + + nullify + + + ( + + + PointerObjectList + + + ) + + + EOS + + + + + + PointerObjectList + + + + PointerObject + + + + + + + , + + + PointerObject + + + + + + + + + + PointerObject + + + + Name + + + PointerField + + + + + + PointerField + + + + + + Name + + + ( + + + SFExprList + + + ) + + + % + + + Name + + + + + + + Name + + + ( + + + SFDummyArgNameList + + + ) + + + % + + + Name + + + + + + + Name + + + % + + + Name + + + + + + + PointerField + + + FieldSelector + + + + + + + + SFExprList + + + + + + SFExpr + + + : + + + Expr + + + : + + + Expr + + + + + + + SFExpr + + + : + + + : + + + Expr + + + + + + + : + + + Expr + + + : + + + Expr + + + + + + + : + + + : + + + Expr + + + + + : + + + + + : + + + Expr + + + + + SFExpr + + + + + SFExpr + + + : + + + + + + + SFExpr + + + : + + + Expr + + + + + + + SFExprList + + + , + + + SectionSubscript + + + + + + + SFDummyArgNameList + + + , + + + : + + + + + + + SFDummyArgNameList + + + , + + + : + + + Expr + + + + + + + SFDummyArgNameList + + + , + + + SFExpr + + + : + + + + + + + SFDummyArgNameList + + + , + + + SFExpr + + + : + + + Expr + + + + + + + + SFExpr + + + + SFTerm + + + + + Sign + + + AddOperand + + + + + + + SFExpr + + + AddOp + + + AddOperand + + + + + + + + SFTerm + + + + SFFactor + + + + + SFTerm + + + MultOp + + + MultOperand + + + + + + + + SFFactor + + + + SFPrimary + + + + + SFPrimary + + + PowerOp + + + MultOperand + + + + + + + + SFPrimary + + + + ArrayConstructor + + + Icon + + + Name + + + DataRef + + + FunctionReference + + + + + ( + + + Expr + + + ) + + + + + + + + SFDummyArgNameList + + + + SFDummyArgName + + + + + + + , + + + SFDummyArgName + + + + + + + + + + SFDummyArgName + + Ident + + + + PointerAssignmentStmt + + + + + + LblDef + + + Name + + + => + + + Target + + + EOS + + + + + + + LblDef + + + Name + + + % + + + Name + + + => + + + Target + + + EOS + + + + + + + LblDef + + + Name + + + % + + + DataRef + + + => + + + Target + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFExprList + + + ) + + + % + + + Name + + + => + + + Target + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFExprList + + + ) + + + % + + + DataRef + + + => + + + Target + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFDummyArgNameList + + + ) + + + % + + + Name + + + => + + + Target + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFDummyArgNameList + + + ) + + + % + + + DataRef + + + => + + + Target + + + EOS + + + + + + + + Target + + Expr + + + + WhereStmt + + + + LblDef + + + where + + + ( + + + MaskExpr + + + ) + + + AssignmentStmt + + + + + + MaskExpr + + Expr + + + + AssignmentStmt + + + + + + LblDef + + + Name + + + % + + + Name + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + % + + + DataRef + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFExprList + + + ) + + + % + + + Name + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFExprList + + + ) + + + % + + + DataRef + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFDummyArgNameList + + + ) + + + % + + + Name + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFDummyArgNameList + + + ) + + + % + + + DataRef + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFExprList + + + ) + + + = + + + Expr + + + EOS + + + + + + + LblDef + + + Name + + + ( + + + SFExprList + + + ) + + + SubstringRange + + + = + + + Expr + + + EOS + + + + + + + + ArithmeticIfStmt + + + + LblDef + + + if + + + ( + + + ScalarNumericExpr + + + ) + + + LblRef + + + , + + + LblRef + + + , + + + LblRef + + + EOS + + + + + + ScalarNumericExpr + + Expr + + + + LblRef + + Icon + + + + AssignStmt + + + + LblDef + + + assign + + + LblRef + + + to + + + VariableName + + + EOS + + + + + + BackspaceStmt + + + + + + LblDef + + + backspace + + + UnitIdentifier + + + EOS + + + + + + + LblDef + + + backspace + + + ( + + + PositionSpec + + + + + + + , + + + PositionSpec + + + + + + + ) + + + EOS + + + + + + + + UnitIdentifier + + + + UFExpr + + + * + + + + + + UFExpr + + + + UFTerm + + + + + Sign + + + UFTerm + + + + + + + UFExpr + + + AddOp + + + UFTerm + + + + + + + + UFTerm + + + + UFFactor + + + + + UFTerm + + + MultOp + + + UFFactor + + + + + + + UFTerm + + + ConcatOp + + + UFPrimary + + + + + + + + UFFactor + + + + UFPrimary + + + + + UFPrimary + + + PowerOp + + + UFFactor + + + + + + + + UFPrimary + + + + Icon + + + Scon + + + Name + + + FunctionReference + + + DataRef + + + + + ( + + + UFExpr + + + ) + + + + + + + + PositionSpec + + + + + + + + unit= + + + + + UnitIdentifier + + + + + + + iostat= + + + ScalarVariable + + + + + + + err= + + + LblRef + + + + + + + + ScalarVariable + + + + VariableName + + + ArrayElement + + + + + + CallStmt + + + + + + LblDef + + + call + + + SubroutineNameUse + + + EOS + + + + + + + LblDef + + + call + + + SubroutineNameUse + + + ( + + + + + + + ActualArg + + + + + + + , + + + ActualArg + + + + + + + + + + + ) + + + EOS + + + + + + + + SubroutineNameUse + + Ident + + + + ActualArg + + + + + + + + + + Name + + + = + + + + + + + Expr + + + + + + + + + + + Name + + + = + + + + + + + * + + + LblRef + + + + + + + + CloseStmt + + + + LblDef + + + close + + + ( + + + CloseSpecList + + + ) + + + EOS + + + + + + CloseSpecList + + + + CloseSpec + + + + + + + , + + + CloseSpec + + + + + + + + + + CloseSpec + + + + UnitIdentifier + + + + + unit + + + = + + + UnitIdentifier + + + + + + + iostat + + + = + + + ScalarVariable + + + + + + + err + + + = + + + LblRef + + + + + + + status + + + = + + + CExpr + + + + + + + + CExpr + + + + + + + + CExpr + + + ConcatOp + + + + + + + CPrimary + + + + + + CPrimary + + + + COperand + + + + + ( + + + CExpr + + + ) + + + + + + + + COperand + + + + Scon + + + Name + + + DataRef + + + FunctionReference + + + + + + ContinueStmt + + + + LblDef + + + continue + + + EOS + + + + + + EndfileStmt + + + + + + LblDef + + + end + + + file + + + UnitIdentifier + + + EOS + + + + + + + LblDef + + + end + + + file + + + ( + + + PositionSpec + + + + + + + , + + + PositionSpec + + + + + + + ) + + + EOS + + + + + + + + GotoStmt + + + + LblDef + + + GoToKw + + + LblRef + + + EOS + + + + + + GoToKw + + + + go + + + to + + + + + + ComputedGotoStmt + + + + LblDef + + + GoToKw + + + ( + + + LblRef + + + + + + + , + + + LblRef + + + + + + + ) + + + + + , + + + + + ScalarIntExpr + + + EOS + + + + + + ScalarIntExpr + + Expr + + + + AssignedGotoStmt + + + + + + LblDef + + + GoToKw + + + VariableName + + + EOS + + + + + + + LblDef + + + GoToKw + + + VariableName + + + + + , + + + + + ( + + + LblRef + + + + + + + , + + + LblRef + + + + + + + ) + + + EOS + + + + + + + + IfStmt + + + + LblDef + + + if + + + ( + + + ScalarLogicalExpr + + + ) + + + ActionStmt + + + + + + ScalarLogicalExpr + + Expr + + + + InquireStmt + + + + + + LblDef + + + inquire + + + ( + + + InquireSpecList + + + ) + + + EOS + + + + + + + LblDef + + + inquire + + + ( + + + iolength + + + = + + + ScalarVariable + + + ) + + + OutputItemList + + + EOS + + + + + + + + InquireSpecList + + + + + + UnitIdentifier + + + , + + + InquireSpec + + + + + + + , + + + InquireSpec + + + + + + + + + + + InquireSpec + + + + + + + , + + + InquireSpec + + + + + + + + + + + + InquireSpec + + + + + + unit + + + = + + + UnitIdentifier + + + + + + + file + + + = + + + CExpr + + + + + + + iostat + + + = + + + ScalarVariable + + + + + + + err + + + = + + + LblRef + + + + + + + exist + + + = + + + ScalarVariable + + + + + + + opened + + + = + + + ScalarVariable + + + + + + + number + + + = + + + ScalarVariable + + + + + + + named + + + = + + + ScalarVariable + + + + + + + name + + + = + + + ScalarVariable + + + + + + + access + + + = + + + ScalarVariable + + + + + + + sequential + + + = + + + ScalarVariable + + + + + + + direct + + + = + + + ScalarVariable + + + + + + + form + + + = + + + ScalarVariable + + + + + + + formatted + + + = + + + ScalarVariable + + + + + + + unformatted + + + = + + + ScalarVariable + + + + + + + recl + + + = + + + Expr + + + + + + + nextrec + + + = + + + ScalarVariable + + + + + + + blank + + + = + + + ScalarVariable + + + + + + + position + + + = + + + ScalarVariable + + + + + + + action + + + = + + + ScalarVariable + + + + + + + read + + + = + + + ScalarVariable + + + + + + + write + + + = + + + ScalarVariable + + + + + + + readwrite + + + = + + + ScalarVariable + + + + + + + delim + + + = + + + ScalarVariable + + + + + + + pad + + + = + + + ScalarVariable + + + + + + + + OutputItemList + + + + OutputItem + + + + + + + , + + + OutputItem + + + + + + + + + + OutputItem + + + + Expr + + + OutputImpliedDo + + + + + + OutputImpliedDo + + + + + + ( + + + OutputItemList + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + ) + + + + + + + ( + + + OutputItemList + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + , + + + Expr + + + ) + + + + + + + + OpenStmt + + + + LblDef + + + open + + + ( + + + ConnectSpecList + + + ) + + + EOS + + + + + + ConnectSpecList + + + + ConnectSpec + + + + + + + , + + + ConnectSpec + + + + + + + + + + ConnectSpec + + + + UnitIdentifier + + + + + unit + + + = + + + UnitIdentifier + + + + + + + iostat + + + = + + + ScalarVariable + + + + + + + err + + + = + + + LblRef + + + + + + + file + + + = + + + CExpr + + + + + + + status + + + = + + + CExpr + + + + + + + access + + + = + + + CExpr + + + + + + + form + + + = + + + CExpr + + + + + + + recl + + + = + + + Expr + + + + + + + blank + + + = + + + CExpr + + + + + + + position + + + = + + + CExpr + + + + + + + action + + + = + + + CExpr + + + + + + + delim + + + = + + + CExpr + + + + + + + pad + + + = + + + CExpr + + + + + + + + PauseStmt + + + + LblDef + + + pause + + + + + + + Icon + + + Scon + + + + + + + EOS + + + + + + PrintStmt + + + + LblDef + + + print + + + FormatIdentifier + + + + + + + , + + + OutputItemList + + + + + + + EOS + + + + + + FormatIdentifier + + + + LblRef + + + CExpr + + + * + + + + + + ReadStmt + + + + + + LblDef + + + read + + + RdCtlSpec + + + + + InputItemList + + + + + EOS + + + + + + + LblDef + + + read + + + RdFmtId + + + EOS + + + + + + + LblDef + + + read + + + RdFmtId + + + , + + + InputItemList + + + EOS + + + + + + + + RdCtlSpec + + + + RdUnitId + + + + + ( + + + RdIoCtlSpecList + + + ) + + + + + + + + RdUnitId + + + + + + ( + + + UFExpr + + + ) + + + + + + + ( + + + * + + + ) + + + + + + + + RdIoCtlSpecList + + + + + + UnitIdentifier + + + , + + + IoControlSpec + + + + + + + UnitIdentifier + + + , + + + FormatIdentifier + + + + + IoControlSpec + + + + + RdIoCtlSpecList + + + , + + + IoControlSpec + + + + + + + + IoControlSpec + + + + + + unit + + + = + + + UnitIdentifier + + + + + + + fmt + + + = + + + FormatIdentifier + + + + + + + nml + + + = + + + NamelistGroupName + + + + + + + rec + + + = + + + Expr + + + + + + + iostat + + + = + + + ScalarVariable + + + + + + + err + + + = + + + LblRef + + + + + + + end + + + = + + + LblRef + + + + + + + advance + + + = + + + CExpr + + + + + + + size + + + = + + + Variable + + + + + + + eor + + + = + + + LblRef + + + + + + + + InputItemList + + + + InputItem + + + + + + + , + + + InputItem + + + + + + + + + + InputItem + + + + Name + + + DataRef + + + InputImpliedDo + + + + + + InputImpliedDo + + + + + + ( + + + InputItemList + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + ) + + + + + + + ( + + + InputItemList + + + , + + + ImpliedDoVariable + + + = + + + Expr + + + , + + + Expr + + + , + + + Expr + + + ) + + + + + + + + RdFmtId + + + + LblRef + + + * + + + COperand + + + + + COperand + + + ConcatOp + + + CPrimary + + + + + + + RdFmtIdExpr + + + ConcatOp + + + CPrimary + + + + + + + + RdFmtIdExpr + + + + ( + + + UFExpr + + + ) + + + + + + ReturnStmt + + + + LblDef + + + return + + + + + Expr + + + + + EOS + + + + + + RewindStmt + + + + + + LblDef + + + rewind + + + UnitIdentifier + + + EOS + + + + + + + LblDef + + + rewind + + + ( + + + PositionSpec + + + + + + + , + + + PositionSpec + + + + + + + ) + + + EOS + + + + + + + + StopStmt + + + + LblDef + + + stop + + + + + + + Icon + + + Scon + + + + + + + EOS + + + + + + WriteStmt + + + + LblDef + + + write + + + ( + + + IoControlSpecList + + + ) + + + + + OutputItemList + + + + + EOS + + + + + + IoControlSpecList + + + + + + UnitIdentifier + + + , + + + + + FormatIdentifier + + + + + + + + + UnitIdentifier + + + , + + + IoControlSpec + + + + + IoControlSpec + + + + + IoControlSpecList + + + , + + + IoControlSpec + + + + + + + + DoConstruct + + + + BlockDoConstruct + + + LabelDoStmt + + + + + + BlockDoConstruct + + + + + + LblDef + + + do + + + LblRef + + + EOS + + + + + + + LblDef + + + do + + + LoopControl + + + EOS + + + + + + + LblDef + + + do + + + EOS + + + + + + + LblDef + + + Name + + + : + + + do + + + LblRef + + + LoopControl + + + EOS + + + + + + + LblDef + + + Name + + + : + + + do + + + LblRef + + + EOS + + + + + + + LblDef + + + Name + + + : + + + do + + + LoopControl + + + EOS + + + + + + + LblDef + + + Name + + + : + + + do + + + EOS + + + + + + + + LoopControl + + + + + + while + + + ( + + + Expr + + + ) + + + + + + + VariableName + + + = + + + Int-Real-Dp-Expression + + + , + + + Int-Real-Dp-Expression + + + + + + + , + + + Int-Real-Dp-Expression + + + + + + + + + + + + Int-Real-Dp-Expression + + Expr + + + + LabelDoStmt + + + + LblDef + + + do + + + LblRef + + + + + , + + + + + LoopControl + + + EOS + + + + + + IfConstruct + + + + IfThenStmt + + + + + ExecutionPartConstruct + + + + + + + + + ElseIfStmt + + + + + ExecutionPartConstruct + + + + + + + + + + + + + ElseStmt + + + + + ExecutionPartConstruct + + + + + + + + + EndIfStmt + + + + + + IfThenStmt + + + + LblDef + + + + + + + IfConstructName + + + : + + + + + + + if + + + ( + + + ScalarLogicalExpr + + + ) + + + then + + + EOS + + + + + + IfConstructName + + Ident + + + + ExecutionPartConstruct + + + + ExecutableConstruct + + + FormatStmt + + + DataStmt + + + EntryStmt + + + + + + ElseIfStmt + + + + LblDef + + + else + + + if + + + ( + + + ScalarLogicalExpr + + + ) + + + then + + + + + IfConstructName + + + + + EOS + + + + + + ElseStmt + + + + LblDef + + + else + + + + + IfConstructName + + + + + EOS + + + + + + EndIfStmt + + + + LblDef + + + end + + + if + + + + + IfConstructName + + + + + EOS + + + + + + CaseConstruct + + + + + + LblDef + + + Name + + + : + + + select + + + case + + + ( + + + Expr + + + ) + + + EOS + + + SelectCaseRange + + + + + + + LblDef + + + select + + + case + + + ( + + + Expr + + + ) + + + EOS + + + SelectCaseRange + + + + + + + + SelectCaseRange + + + + + + SelectCaseBody + + + EndSelectStmt + + + + + EndSelectStmt + + + + + + SelectCaseBody + + + + CaseBodyConstruct + + + + + + CaseBodyConstruct + + + + CaseStmt + + + ExecutionPartConstruct + + + + + + CaseStmt + + + + LblDef + + + case + + + CaseSelector + + + + + Name + + + + + EOS + + + + + + CaseSelector + + + + + + ( + + + CaseValueRange + + + + + + + , + + + CaseValueRange + + + + + + + ) + + + + + default + + + + + + CaseValueRange + + + + Expr + + + + + Expr + + + : + + + + + + + : + + + Expr + + + + + + + Expr + + + : + + + Expr + + + + + + + + EndSelectStmt + + + + LblDef + + + end + + + select + + + + + EndName + + + + + EOS + + + + + + WhereConstruct + + + + WhereConstructStmt + + + + + AssignmentStmt + + + + + + + + + ElsewhereStmt + + + + + AssignmentStmt + + + + + + + + + EndWhereStmt + + + + + + WhereConstructStmt + + + + LblDef + + + where + + + ( + + + MaskExpr + + + ) + + + EOS + + + + + + ElsewhereStmt + + + + LblDef + + + elsewhere + + + EOS + + + + + + EndWhereStmt + + + + LblDef + + + end + + + where + + + EOS + + + + + + EndDoStmt + + + + LblDef + + + end + + + do + + + + + Name + + + + + EOS + + + + + + EndProgramStmt + + + + + + LblDef + + + end + + + EOS + + + + + + + LblDef + + + end + + + program + + + + + EndName + + + + + EOS + + + + + + + + InternalSubProgPart + + + + + + Body + + + ContainsStmt + + + InternalSubprogram + + + + + + + ContainsStmt + + + InternalSubprogram + + + + + + + InternalSubProgPart + + + InternalSubprogram + + + + + + + + Body + + + + BodyConstruct + + + + + + ContainsStmt + + + + LblDef + + + contains + + + EOS + + + + + + InternalSubprogram + + + + FunctionSubprogram + + + SubroutineSubprogram + + + + + + FunctionSubprogram + + + + LblDef + + + FunctionPrefix + + + FunctionName + + + FunctionRange + + + + + + FunctionRange + + + + + + FunctionParList + + + EOS + + + + + Body + + + + + EndFunctionStmt + + + + + + + FunctionParList + + + result + + + ( + + + Name + + + ) + + + EOS + + + InternalSubProgPart + + + EndFunctionStmt + + + + + + + FunctionParList + + + result + + + ( + + + Name + + + ) + + + EOS + + + Body + + + EndFunctionStmt + + + + + + + FunctionParList + + + result + + + ( + + + Name + + + ) + + + EOS + + + EndFunctionStmt + + + + + + + FunctionParList + + + EOS + + + InternalSubProgPart + + + EndFunctionStmt + + + + + + + + SubroutineSubprogram + + + + LblDef + + + + + recursive + + + + + subroutine + + + SubroutineName + + + SubroutineRange + + + + + + SubroutineRange + + + + + + + + SubroutineParList + + + + + EOS + + + + + Body + + + + + EndSubroutineStmt + + + + + + + SubroutineParList + + + EOS + + + InternalSubProgPart + + + EndSubroutineStmt + + + + + + + + Module + + + + + + ModuleStmt + + + ModuleBody + + + EndModuleStmt + + + + + + + ModuleStmt + + + EndModuleStmt + + + + + + + + ModuleStmt + + + + LblDef + + + module + + + ModuleName + + + EOS + + + + + + ModuleName + + Ident + + + + ModuleBody + + + + SpecificationPartConstruct + + + ModuleSubprogramPartConstruct + + + + + ModuleBody + + + SpecificationPartConstruct + + + + + + + ModuleBody + + + ModuleSubprogramPartConstruct + + + + + + + + ModuleSubprogramPartConstruct + + + + ContainsStmt + + + ModuleSubprogram + + + + + + ModuleSubprogram + + + + FunctionSubprogram + + + SubroutineSubprogram + + + + + + EndModuleStmt + + + + + + LblDef + + + end + + + EOS + + + + + + + LblDef + + + end + + + module + + + + + EndName + + + + + EOS + + + + + + + + BlockDataSubprogram + + + + + + BlockDataStmt + + + BlockDataBody + + + EndBlockDataStmt + + + + + + + BlockDataStmt + + + EndBlockDataStmt + + + + + + + + BlockDataStmt + + + + LblDef + + + block + + + data + + + + + BlockDataName + + + + + EOS + + + + + + BlockDataName + + Ident + + + + BlockDataBody + + + + BlockDataBodyConstruct + + + + + + BlockDataBodyConstruct + + SpecificationPartConstruct + + + + EndBlockDataStmt + + + + + + LblDef + + + end + + + block + + + data + + + + + EndName + + + + + EOS + + + + + + + LblDef + + + end + + + EOS + + + + + + + \ No newline at end of file diff --git a/shared/bgf/java-1-jls-impl.bgf b/shared/bgf/java-1-jls-impl.bgf new file mode 100644 index 00000000..8cbff250 --- /dev/null +++ b/shared/bgf/java-1-jls-impl.bgf @@ -0,0 +1,3263 @@ + + + + CompilationUnit + + ClassBodyDeclarations + + ClassBodyDeclaration + + + + ClassBodyDeclarations + + + + ClassBodyDeclarations + + + ClassBodyDeclaration + + + + + + PostDecrementExpression + + + + PostfixExpression + + + -- + + + + + + ExpressionStatement + + + + StatementExpression + + + ; + + + + + + PrimitiveType + + NumericType + + + + PrimitiveType + + boolean + + + + InterfaceTypeList + + InterfaceType + + + + InterfaceTypeList + + + + InterfaceTypeList + + + , + + + InterfaceType + + + + + + InterfaceDeclaration + + + + + + Modifiers + + + + + interface + + + Identifier + + + + + ExtendsInterfaces + + + + + InterfaceBody + + + + + + Statement + + StatementWithoutTrailingSubstatement + + + + Statement + + LabeledStatement + + + + Statement + + IfThenStatement + + + + Statement + + IfThenElseStatement + + + + Statement + + WhileStatement + + + + Statement + + ForStatement + + + + AndExpression + + EqualityExpression + + + + AndExpression + + + + AndExpression + + + & + + + EqualityExpression + + + + + + ConstructorBody + + + + { + + + + + ExplicitConstructorInvocation + + + + + + + BlockStatements + + + + + } + + + + + + ArgumentList + + Expression + + + + ArgumentList + + + + ArgumentList + + + , + + + Expression + + + + + + ClassMemberDeclaration + + FieldDeclaration + + + + ClassMemberDeclaration + + MethodDeclaration + + + + Assignment + + + + LeftHandSide + + + AssignmentOperator + + + AssignmentExpression + + + + + + Interfaces + + + + implements + + + InterfaceTypeList + + + + + + CatchClause + + + + catch + + + ( + + + FormalParameter + + + ) + + + Block + + + + + + PostIncrementExpression + + + + PostfixExpression + + + ++ + + + + + + InterfaceType + + ClassOrInterfaceType + + + + BlockStatement + + LocalVariableDeclarationStatement + + + + BlockStatement + + Statement + + + + SwitchBlockStatementGroups + + SwitchBlockStatementGroup + + + + SwitchBlockStatementGroups + + + + SwitchBlockStatementGroups + + + SwitchBlockStatementGroup + + + + + + SingleTypeImportDeclaration + + + + import + + + Name + + + ; + + + + + + ConditionalExpression + + ConditionalOrExpression + + + + ConditionalExpression + + + + ConditionalOrExpression + + + ? + + + Expression + + + : + + + ConditionalExpression + + + + + + PreIncrementExpression + + + + ++ + + + UnaryExpression + + + + + + ExplicitConstructorInvocation + + + + this + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ExplicitConstructorInvocation + + + + super + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + UnaryExpression + + PreIncrementExpression + + + + UnaryExpression + + PreDecrementExpression + + + + UnaryExpression + + + + + + + + UnaryExpression + + + + + + UnaryExpression + + + + - + + + UnaryExpression + + + + + + UnaryExpression + + UnaryExpressionNotPlusMinus + + + + VariableInitializers + + VariableInitializer + + + + VariableInitializers + + + + VariableInitializers + + + , + + + VariableInitializer + + + + + + DimExpr + + + + [ + + + Expression + + + ] + + + + + + Throws + + + + throws + + + ClassTypeList + + + + + + BlockStatements + + BlockStatement + + + + BlockStatements + + + + BlockStatements + + + BlockStatement + + + + + + ConstantDeclaration + + FieldDeclaration + + + + ClassTypeList + + ClassType + + + + ClassTypeList + + + + ClassTypeList + + + , + + + ClassType + + + + + + PrimaryNoNewArray + + Literal + + + + PrimaryNoNewArray + + this + + + + PrimaryNoNewArray + + + + ( + + + Expression + + + ) + + + + + + PrimaryNoNewArray + + ClassInstanceCreationExpression + + + + PrimaryNoNewArray + + FieldAccess + + + + PrimaryNoNewArray + + MethodInvocation + + + + PrimaryNoNewArray + + ArrayAccess + + + + AssignmentOperator + + = + + + + AssignmentOperator + + *= + + + + AssignmentOperator + + /= + + + + AssignmentOperator + + %= + + + + AssignmentOperator + + += + + + + AssignmentOperator + + -= + + + + AssignmentOperator + + <<= + + + + AssignmentOperator + + >>= + + + + AssignmentOperator + + >>>= + + + + AssignmentOperator + + &= + + + + AssignmentOperator + + ^= + + + + AssignmentOperator + + |= + + + + Finally + + + + finally + + + Block + + + + + + EmptyStatement + + ; + + + + ReturnStatement + + + + return + + + + + Expression + + + + + ; + + + + + + VariableDeclarator + + VariableDeclaratorId + + + + VariableDeclarator + + + + VariableDeclaratorId + + + = + + + VariableInitializer + + + + + + PostfixExpression + + Primary + + + + PostfixExpression + + Name + + + + PostfixExpression + + PostIncrementExpression + + + + PostfixExpression + + PostDecrementExpression + + + + SwitchLabel + + + + case + + + ConstantExpression + + + : + + + + + + SwitchLabel + + + + default + + + : + + + + + + AssignmentExpression + + ConditionalExpression + + + + AssignmentExpression + + Assignment + + + + FormalParameter + + + + Type + + + VariableDeclaratorId + + + + + + ConditionalAndExpression + + InclusiveOrExpression + + + + ConditionalAndExpression + + + + ConditionalAndExpression + + + && + + + InclusiveOrExpression + + + + + + Type + + PrimitiveType + + + + Type + + ReferenceType + + + + EqualityExpression + + RelationalExpression + + + + EqualityExpression + + + + EqualityExpression + + + == + + + RelationalExpression + + + + + + EqualityExpression + + + + EqualityExpression + + + != + + + RelationalExpression + + + + + + InterfaceMemberDeclaration + + ConstantDeclaration + + + + InterfaceMemberDeclaration + + AbstractMethodDeclaration + + + + MultiplicativeExpression + + UnaryExpression + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + * + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + / + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + % + + + UnaryExpression + + + + + + BreakStatement + + + + break + + + + + Identifier + + + + + ; + + + + + + IfThenStatement + + + + if + + + ( + + + Expression + + + ) + + + Statement + + + + + + SynchronizedStatement + + + + synchronized + + + ( + + + Expression + + + ) + + + Block + + + + + + ClassInstanceCreationExpression + + + + new + + + ClassType + + + ( + + + + + ArgumentList + + + + + ) + + + + + + Super + + + + extends + + + ClassType + + + + + + ArrayCreationExpression + + + + new + + + PrimitiveType + + + DimExprs + + + + + Dims + + + + + + + + ArrayCreationExpression + + + + new + + + ClassOrInterfaceType + + + DimExprs + + + + + Dims + + + + + + + + ArrayInitializer + + + + { + + + + + VariableInitializers + + + + + + + , + + + + + } + + + + + + UnaryExpressionNotPlusMinus + + PostfixExpression + + + + UnaryExpressionNotPlusMinus + + + + ~ + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + + + ! + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + CastExpression + + + + SwitchBlock + + + + { + + + + + SwitchBlockStatementGroups + + + + + + + SwitchLabels + + + + + } + + + + + + FieldDeclaration + + + + + + Modifiers + + + + + Type + + + VariableDeclarators + + + ; + + + + + + StatementNoShortIf + + StatementWithoutTrailingSubstatement + + + + StatementNoShortIf + + LabeledStatementNoShortIf + + + + StatementNoShortIf + + IfThenElseStatementNoShortIf + + + + StatementNoShortIf + + WhileStatementNoShortIf + + + + StatementNoShortIf + + ForStatementNoShortIf + + + + MethodInvocation + + + + Name + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + Primary + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + super + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + AbstractMethodDeclaration + + + + MethodHeader + + + ; + + + + + + IfThenElseStatement + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + Statement + + + + + + ArrayAccess + + + + Name + + + [ + + + Expression + + + ] + + + + + + ArrayAccess + + + + PrimaryNoNewArray + + + [ + + + Expression + + + ] + + + + + + Modifier + + public + + + + Modifier + + protected + + + + Modifier + + private + + + + Modifier + + static + + + + Modifier + + abstract + + + + Modifier + + final + + + + Modifier + + native + + + + Modifier + + synchronized + + + + Modifier + + transient + + + + Modifier + + volatile + + + + Block + + + + { + + + + + BlockStatements + + + + + } + + + + + + ForUpdate + + StatementExpressionList + + + + ForInit + + StatementExpressionList + + + + ForInit + + LocalVariableDeclaration + + + + VariableDeclarators + + VariableDeclarator + + + + VariableDeclarators + + + + VariableDeclarators + + + , + + + VariableDeclarator + + + + + + ThrowStatement + + + + throw + + + Expression + + + ; + + + + + + ExclusiveOrExpression + + AndExpression + + + + ExclusiveOrExpression + + + + ExclusiveOrExpression + + + ^ + + + AndExpression + + + + + + Primary + + PrimaryNoNewArray + + + + Primary + + ArrayCreationExpression + + + + PackageDeclaration + + + + package + + + Name + + + ; + + + + + + RelationalExpression + + ShiftExpression + + + + RelationalExpression + + + + RelationalExpression + + + < + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + > + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + <= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + >= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + instanceof + + + ReferenceType + + + + + + WhileStatementNoShortIf + + + + while + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + + + + ExtendsInterfaces + + + + extends + + + InterfaceType + + + + + + ExtendsInterfaces + + + + ExtendsInterfaces + + + , + + + InterfaceType + + + + + + ConstantExpression + + Expression + + + + VariableInitializer + + Expression + + + + VariableInitializer + + ArrayInitializer + + + + StaticInitializer + + + + static + + + Block + + + + + + Literal + + IntegerLiteral + + + + Literal + + FloatingPointLiteral + + + + Literal + + BooleanLiteral + + + + Literal + + CharacterLiteral + + + + Literal + + StringLiteral + + + + Literal + + NullLiteral + + + + ConstructorDeclaration + + + + + + Modifiers + + + + + ConstructorDeclarator + + + + + Throws + + + + + ConstructorBody + + + + + + TypeImportOnDemandDeclaration + + + + import + + + Name + + + . + + + * + + + ; + + + + + + PreDecrementExpression + + + + -- + + + UnaryExpression + + + + + + InterfaceMemberDeclarations + + InterfaceMemberDeclaration + + + + InterfaceMemberDeclarations + + + + InterfaceMemberDeclarations + + + InterfaceMemberDeclaration + + + + + + ForStatement + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + Statement + + + + + + ContinueStatement + + + + continue + + + + + Identifier + + + + + ; + + + + + + ImportDeclaration + + SingleTypeImportDeclaration + + + + ImportDeclaration + + TypeImportOnDemandDeclaration + + + + SwitchStatement + + + + switch + + + ( + + + Expression + + + ) + + + SwitchBlock + + + + + + Dims + + + + [ + + + ] + + + + + + Dims + + + + Dims + + + [ + + + ] + + + + + + ClassBody + + + + { + + + + + ClassBodyDeclarations + + + + + } + + + + + + ConditionalOrExpression + + ConditionalAndExpression + + + + ConditionalOrExpression + + + + ConditionalOrExpression + + + || + + + ConditionalAndExpression + + + + + + ClassBodyDeclaration + + ClassMemberDeclaration + + + + ClassBodyDeclaration + + StaticInitializer + + + + ClassBodyDeclaration + + ConstructorDeclaration + + + + SwitchBlockStatementGroup + + + + SwitchLabels + + + BlockStatements + + + + + + MethodDeclaration + + + + MethodHeader + + + MethodBody + + + + + + Catches + + CatchClause + + + + Catches + + + + Catches + + + CatchClause + + + + + + Modifiers + + Modifier + + + + Modifiers + + + + Modifiers + + + Modifier + + + + + + DoStatement + + + + do + + + Statement + + + while + + + ( + + + Expression + + + ) + + + ; + + + + + + ClassOrInterfaceType + + Name + + + + TryStatement + + + + try + + + Block + + + Catches + + + + + + TryStatement + + + + try + + + Block + + + + + Catches + + + + + Finally + + + + + + SwitchLabels + + SwitchLabel + + + + SwitchLabels + + + + SwitchLabels + + + SwitchLabel + + + + + + FormalParameterList + + FormalParameter + + + + FormalParameterList + + + + FormalParameterList + + + , + + + FormalParameter + + + + + + Expression + + AssignmentExpression + + + + StatementExpressionList + + StatementExpression + + + + StatementExpressionList + + + + StatementExpressionList + + + , + + + StatementExpression + + + + + + AdditiveExpression + + MultiplicativeExpression + + + + AdditiveExpression + + + + AdditiveExpression + + + + + + + MultiplicativeExpression + + + + + + AdditiveExpression + + + + AdditiveExpression + + + - + + + MultiplicativeExpression + + + + + + FloatingPointType + + float + + + + FloatingPointType + + double + + + + LocalVariableDeclaration + + + + Type + + + VariableDeclarators + + + + + + ConstructorDeclarator + + + + SimpleName + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + InclusiveOrExpression + + ExclusiveOrExpression + + + + InclusiveOrExpression + + + + InclusiveOrExpression + + + | + + + ExclusiveOrExpression + + + + + + ClassType + + ClassOrInterfaceType + + + + WhileStatement + + + + while + + + ( + + + Expression + + + ) + + + Statement + + + + + + ClassDeclaration + + + + + + Modifiers + + + + + class + + + Identifier + + + + + Super + + + + + + + Interfaces + + + + + ClassBody + + + + + + CastExpression + + + + ( + + + PrimitiveType + + + + + Dims + + + + + ) + + + UnaryExpression + + + + + + CastExpression + + + + ( + + + Expression + + + ) + + + UnaryExpressionNotPlusMinus + + + + + + CastExpression + + + + ( + + + Name + + + Dims + + + ) + + + UnaryExpressionNotPlusMinus + + + + + + ImportDeclarations + + ImportDeclaration + + + + ImportDeclarations + + + + ImportDeclarations + + + ImportDeclaration + + + + + + TypeDeclaration + + ClassDeclaration + + + + TypeDeclaration + + InterfaceDeclaration + + + + TypeDeclaration + + ; + + + + LabeledStatement + + + + Identifier + + + : + + + Statement + + + + + + ArrayType + + + + PrimitiveType + + + [ + + + ] + + + + + + ArrayType + + + + Name + + + [ + + + ] + + + + + + ArrayType + + + + ArrayType + + + [ + + + ] + + + + + + StatementExpression + + Assignment + + + + StatementExpression + + PreIncrementExpression + + + + StatementExpression + + PreDecrementExpression + + + + StatementExpression + + PostIncrementExpression + + + + StatementExpression + + PostDecrementExpression + + + + StatementExpression + + MethodInvocation + + + + StatementExpression + + ClassInstanceCreationExpression + + + + MethodDeclarator + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + MethodDeclarator + + + + MethodDeclarator + + + [ + + + ] + + + + + + VariableDeclaratorId + + Identifier + + + + VariableDeclaratorId + + + + VariableDeclaratorId + + + [ + + + ] + + + + + + IntegralType + + byte + + + + IntegralType + + short + + + + IntegralType + + int + + + + IntegralType + + long + + + + IntegralType + + char + + + + QualifiedName + + + + Name + + + . + + + Identifier + + + + + + NumericType + + IntegralType + + + + NumericType + + FloatingPointType + + + + LeftHandSide + + Name + + + + LeftHandSide + + FieldAccess + + + + LeftHandSide + + ArrayAccess + + + + IfThenElseStatementNoShortIf + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + StatementNoShortIf + + + + + + LocalVariableDeclarationStatement + + + + LocalVariableDeclaration + + + ; + + + + + + ShiftExpression + + AdditiveExpression + + + + ShiftExpression + + + + ShiftExpression + + + << + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >> + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >>> + + + AdditiveExpression + + + + + + MethodBody + + Block + + + + MethodBody + + ; + + + + Name + + SimpleName + + + + Name + + QualifiedName + + + + SimpleName + + Identifier + + + + ReferenceType + + ClassOrInterfaceType + + + + ReferenceType + + ArrayType + + + + CompilationUnit + + + + + + PackageDeclaration + + + + + + + ImportDeclarations + + + + + + + TypeDeclarations + + + + + + + + ForStatementNoShortIf + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + StatementNoShortIf + + + + + + MethodHeader + + + + + + Modifiers + + + + + Type + + + MethodDeclarator + + + + + Throws + + + + + + + + MethodHeader + + + + + + Modifiers + + + + + void + + + MethodDeclarator + + + + + Throws + + + + + + + + LabeledStatementNoShortIf + + + + Identifier + + + : + + + StatementNoShortIf + + + + + + InterfaceBody + + + + { + + + + + InterfaceMemberDeclarations + + + + + } + + + + + + FieldAccess + + + + Primary + + + . + + + Identifier + + + + + + FieldAccess + + + + super + + + . + + + Identifier + + + + + + TypeDeclarations + + TypeDeclaration + + + + TypeDeclarations + + + + TypeDeclarations + + + TypeDeclaration + + + + + + StatementWithoutTrailingSubstatement + + Block + + + + StatementWithoutTrailingSubstatement + + EmptyStatement + + + + StatementWithoutTrailingSubstatement + + ExpressionStatement + + + + StatementWithoutTrailingSubstatement + + SwitchStatement + + + + StatementWithoutTrailingSubstatement + + DoStatement + + + + StatementWithoutTrailingSubstatement + + BreakStatement + + + + StatementWithoutTrailingSubstatement + + ContinueStatement + + + + StatementWithoutTrailingSubstatement + + ReturnStatement + + + + StatementWithoutTrailingSubstatement + + SynchronizedStatement + + + + StatementWithoutTrailingSubstatement + + ThrowStatement + + + + StatementWithoutTrailingSubstatement + + TryStatement + + + + DimExprs + + DimExpr + + + + DimExprs + + + + DimExprs + + + DimExpr + + + + + \ No newline at end of file diff --git a/shared/bgf/java-1-jls-read.bgf b/shared/bgf/java-1-jls-read.bgf new file mode 100644 index 00000000..a2828370 --- /dev/null +++ b/shared/bgf/java-1-jls-read.bgf @@ -0,0 +1,3529 @@ + + + + CompilationUnit + + ClassBodyDeclarations + + ClassBodyDeclaration + + + + ClassBodyDeclarations + + + + ClassBodyDeclarations + + + ClassBodyDeclaration + + + + + + PostDecrementExpression + + + + PostfixExpression + + + -- + + + + + + ExpressionStatement + + + + StatementExpression + + + ; + + + + + + PrimitiveType + + NumericType + + + + PrimitiveType + + boolean + + + + InterfaceTypeList + + InterfaceType + + + + InterfaceTypeList + + + + InterfaceTypeList + + + , + + + InterfaceType + + + + + + InterfaceDeclaration + + + + + + InterfaceModifiers + + + + + interface + + + Identifier + + + + + ExtendsInterfaces + + + + + InterfaceBody + + + + + + Statement + + StatementWithoutTrailingSubstatement + + + + Statement + + LabeledStatement + + + + Statement + + IfThenStatement + + + + Statement + + IfThenElseStatement + + + + Statement + + WhileStatement + + + + Statement + + ForStatement + + + + AndExpression + + EqualityExpression + + + + AndExpression + + + + AndExpression + + + & + + + EqualityExpression + + + + + + ConstructorBody + + + + { + + + + + ExplicitConstructorInvocation + + + + + + + BlockStatements + + + + + } + + + + + + ArgumentList + + Expression + + + + ArgumentList + + + + ArgumentList + + + , + + + Expression + + + + + + MethodName + + Identifier + + + + MethodName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ClassMemberDeclaration + + FieldDeclaration + + + + ClassMemberDeclaration + + MethodDeclaration + + + + Assignment + + + + LeftHandSide + + + AssignmentOperator + + + AssignmentExpression + + + + + + Interfaces + + + + implements + + + InterfaceTypeList + + + + + + CatchClause + + + + catch + + + ( + + + FormalParameter + + + ) + + + Block + + + + + + AbstractMethodModifiers + + AbstractMethodModifier + + + + AbstractMethodModifiers + + + + AbstractMethodModifiers + + + AbstractMethodModifier + + + + + + PostIncrementExpression + + + + PostfixExpression + + + ++ + + + + + + TypeName + + Identifier + + + + TypeName + + + + PackageName + + + . + + + Identifier + + + + + + InterfaceType + + TypeName + + + + BlockStatement + + LocalVariableDeclarationStatement + + + + BlockStatement + + Statement + + + + IfThenStatement + + + + if + + + ( + + + Expression + + + ) + + + Statement + + + + + + SwitchBlockStatementGroups + + SwitchBlockStatementGroup + + + + SwitchBlockStatementGroups + + + + SwitchBlockStatementGroups + + + SwitchBlockStatementGroup + + + + + + ClassModifier + + public + + + + ClassModifier + + abstract + + + + ClassModifier + + final + + + + SingleTypeImportDeclaration + + + + import + + + TypeName + + + ; + + + + + + InterfaceModifiers + + InterfaceModifier + + + + InterfaceModifiers + + + + InterfaceModifiers + + + InterfaceModifier + + + + + + PreIncrementExpression + + + + ++ + + + UnaryExpression + + + + + + ExplicitConstructorInvocation + + + + this + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ExplicitConstructorInvocation + + + + super + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + UnaryExpression + + PreIncrementExpression + + + + UnaryExpression + + PreDecrementExpression + + + + UnaryExpression + + + + + + + + UnaryExpression + + + + + + UnaryExpression + + + + - + + + UnaryExpression + + + + + + UnaryExpression + + UnaryExpressionNotPlusMinus + + + + VariableInitializers + + VariableInitializer + + + + VariableInitializers + + + + VariableInitializers + + + , + + + VariableInitializer + + + + + + DimExpr + + + + [ + + + Expression + + + ] + + + + + + Throws + + + + throws + + + ClassTypeList + + + + + + BlockStatements + + BlockStatement + + + + BlockStatements + + + + BlockStatements + + + BlockStatement + + + + + + ConstantDeclaration + + + + + + ConstantModifiers + + + + + Type + + + VariableDeclarator + + + + + + ClassTypeList + + ClassType + + + + ClassTypeList + + + + ClassTypeList + + + , + + + ClassType + + + + + + PrimaryNoNewArray + + Literal + + + + PrimaryNoNewArray + + this + + + + PrimaryNoNewArray + + + + ( + + + Expression + + + ) + + + + + + PrimaryNoNewArray + + ClassInstanceCreationExpression + + + + PrimaryNoNewArray + + FieldAccess + + + + PrimaryNoNewArray + + MethodInvocation + + + + PrimaryNoNewArray + + ArrayAccess + + + + AssignmentOperator + + = + + + + AssignmentOperator + + *= + + + + AssignmentOperator + + /= + + + + AssignmentOperator + + %= + + + + AssignmentOperator + + += + + + + AssignmentOperator + + -= + + + + AssignmentOperator + + <<= + + + + AssignmentOperator + + >>= + + + + AssignmentOperator + + >>>= + + + + AssignmentOperator + + &= + + + + AssignmentOperator + + ^= + + + + AssignmentOperator + + |= + + + + Literal + + IntegerLiteral + + + + Literal + + FloatingPointLiteral + + + + Literal + + BooleanLiteral + + + + Literal + + CharacterLiteral + + + + Literal + + StringLiteral + + + + Literal + + NullLiteral + + + + EmptyStatement + + ; + + + + ReturnStatement + + + + return + + + + + Expression + + + + + ; + + + + + + VariableDeclarator + + VariableDeclaratorId + + + + VariableDeclarator + + + + VariableDeclaratorId + + + = + + + VariableInitializer + + + + + + PostfixExpression + + Primary + + + + PostfixExpression + + ExpressionName + + + + PostfixExpression + + PostIncrementExpression + + + + PostfixExpression + + PostDecrementExpression + + + + SwitchLabel + + + + case + + + ConstantExpression + + + : + + + + + + SwitchLabel + + + + default + + + : + + + + + + AssignmentExpression + + ConditionalExpression + + + + AssignmentExpression + + Assignment + + + + FormalParameter + + + + Type + + + VariableDeclaratorId + + + + + + PackageName + + Identifier + + + + PackageName + + + + PackageName + + + . + + + Identifier + + + + + + ConditionalAndExpression + + InclusiveOrExpression + + + + ConditionalAndExpression + + + + ConditionalAndExpression + + + && + + + InclusiveOrExpression + + + + + + MethodModifiers + + MethodModifier + + + + MethodModifiers + + + + MethodModifiers + + + MethodModifier + + + + + + Type + + PrimitiveType + + + + Type + + ReferenceType + + + + EqualityExpression + + RelationalExpression + + + + EqualityExpression + + + + EqualityExpression + + + == + + + RelationalExpression + + + + + + EqualityExpression + + + + EqualityExpression + + + != + + + RelationalExpression + + + + + + InterfaceMemberDeclaration + + ConstantDeclaration + + + + InterfaceMemberDeclaration + + AbstractMethodDeclaration + + + + MultiplicativeExpression + + UnaryExpression + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + * + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + / + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + % + + + UnaryExpression + + + + + + BreakStatement + + + + break + + + + + Identifier + + + + + ; + + + + + + ConstructorModifier + + public + + + + ConstructorModifier + + protected + + + + ConstructorModifier + + private + + + + SynchronizedStatement + + + + synchronized + + + ( + + + Expression + + + ) + + + Block + + + + + + ClassInstanceCreationExpression + + + + new + + + ClassType + + + ( + + + + + ArgumentList + + + + + ) + + + + + + Super + + + + extends + + + ClassType + + + + + + ArrayCreationExpression + + + + new + + + PrimitiveType + + + DimExprs + + + + + Dims + + + + + + + + ArrayCreationExpression + + + + new + + + TypeName + + + DimExprs + + + + + Dims + + + + + + + + ArrayInitializer + + + + { + + + + + VariableInitializers + + + + + + + , + + + + + } + + + + + + InterfaceModifier + + public + + + + InterfaceModifier + + abstract + + + + UnaryExpressionNotPlusMinus + + PostfixExpression + + + + UnaryExpressionNotPlusMinus + + + + ~ + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + + + ! + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + CastExpression + + + + SwitchBlock + + + + { + + + + + SwitchBlockStatementGroups + + + + + + + SwitchLabels + + + + + } + + + + + + FieldDeclaration + + + + + + FieldModifiers + + + + + Type + + + VariableDeclarators + + + ; + + + + + + StatementNoShortIf + + StatementWithoutTrailingSubstatement + + + + StatementNoShortIf + + LabeledStatementNoShortIf + + + + StatementNoShortIf + + IfThenElseStatementNoShortIf + + + + StatementNoShortIf + + WhileStatementNoShortIf + + + + StatementNoShortIf + + ForStatementNoShortIf + + + + MethodInvocation + + + + MethodName + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + Primary + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + super + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + AbstractMethodDeclaration + + + + + + AbstractMethodModifiers + + + + + ResultType + + + MethodDeclarator + + + + + Throws + + + + + ; + + + + + + IfThenElseStatement + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + Statement + + + + + + ArrayAccess + + + + ExpressionName + + + [ + + + Expression + + + ] + + + + + + ArrayAccess + + + + PrimaryNoNewArray + + + [ + + + Expression + + + ] + + + + + + Block + + + + { + + + + + BlockStatements + + + + + } + + + + + + ForUpdate + + StatementExpressionList + + + + ForInit + + StatementExpressionList + + + + ForInit + + LocalVariableDeclaration + + + + VariableDeclarators + + VariableDeclarator + + + + VariableDeclarators + + + + VariableDeclarators + + + , + + + VariableDeclarator + + + + + + ThrowStatement + + + + throw + + + Expression + + + ; + + + + + + ExclusiveOrExpression + + AndExpression + + + + ExclusiveOrExpression + + + + ExclusiveOrExpression + + + ^ + + + AndExpression + + + + + + Primary + + PrimaryNoNewArray + + + + Primary + + ArrayCreationExpression + + + + PackageDeclaration + + + + package + + + PackageName + + + ; + + + + + + RelationalExpression + + ShiftExpression + + + + RelationalExpression + + + + RelationalExpression + + + < + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + > + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + <= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + >= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + instanceof + + + ReferenceType + + + + + + WhileStatementNoShortIf + + + + while + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + + + + ExtendsInterfaces + + + + extends + + + InterfaceType + + + + + + ExtendsInterfaces + + + + ExtendsInterfaces + + + , + + + InterfaceType + + + + + + AbstractMethodModifier + + public + + + + AbstractMethodModifier + + abstract + + + + ConstantExpression + + Expression + + + + VariableInitializer + + Expression + + + + VariableInitializer + + ArrayInitializer + + + + StaticInitializer + + + + static + + + Block + + + + + + Finally + + + + finally + + + Block + + + + + + ConstructorDeclaration + + + + + + ConstructorModifiers + + + + + ConstructorDeclarator + + + + + Throws + + + + + ConstructorBody + + + + + + TypeImportOnDemandDeclaration + + + + import + + + PackageName + + + . + + + * + + + ; + + + + + + PreDecrementExpression + + + + -- + + + UnaryExpression + + + + + + InterfaceMemberDeclarations + + InterfaceMemberDeclaration + + + + InterfaceMemberDeclarations + + + + InterfaceMemberDeclarations + + + InterfaceMemberDeclaration + + + + + + ForStatement + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + Statement + + + + + + AmbiguousName + + Identifier + + + + AmbiguousName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ContinueStatement + + + + continue + + + + + Identifier + + + + + ; + + + + + + ImportDeclaration + + SingleTypeImportDeclaration + + + + ImportDeclaration + + TypeImportOnDemandDeclaration + + + + CompilationUnit + + + + + + PackageDeclaration + + + + + + + ImportDeclarations + + + + + + + TypeDeclarations + + + + + + + + SwitchStatement + + + + switch + + + ( + + + Expression + + + ) + + + SwitchBlock + + + + + + Dims + + + + [ + + + ] + + + + + + Dims + + + + Dims + + + [ + + + ] + + + + + + ClassBody + + + + { + + + + + ClassBodyDeclarations + + + + + } + + + + + + ConditionalOrExpression + + ConditionalAndExpression + + + + ConditionalOrExpression + + + + ConditionalOrExpression + + + || + + + ConditionalAndExpression + + + + + + ClassBodyDeclaration + + ClassMemberDeclaration + + + + ClassBodyDeclaration + + StaticInitializer + + + + ClassBodyDeclaration + + ConstructorDeclaration + + + + SwitchBlockStatementGroup + + + + SwitchLabels + + + BlockStatements + + + + + + MethodDeclaration + + + + MethodHeader + + + MethodBody + + + + + + MethodModifier + + public + + + + MethodModifier + + protected + + + + MethodModifier + + private + + + + MethodModifier + + abstract + + + + MethodModifier + + static + + + + MethodModifier + + final + + + + MethodModifier + + synchronized + + + + MethodModifier + + native + + + + DoStatement + + + + do + + + Statement + + + while + + + ( + + + Expression + + + ) + + + ; + + + + + + ConditionalExpression + + ConditionalOrExpression + + + + ConditionalExpression + + + + ConditionalOrExpression + + + ? + + + Expression + + + : + + + ConditionalExpression + + + + + + ClassOrInterfaceType + + ClassType + + + + ClassOrInterfaceType + + InterfaceType + + + + TryStatement + + + + try + + + Block + + + Catches + + + + + + TryStatement + + + + try + + + Block + + + + + Catches + + + + + Finally + + + + + + SwitchLabels + + SwitchLabel + + + + SwitchLabels + + + + SwitchLabels + + + SwitchLabel + + + + + + FormalParameterList + + FormalParameter + + + + FormalParameterList + + + + FormalParameterList + + + , + + + FormalParameter + + + + + + Expression + + AssignmentExpression + + + + StatementExpressionList + + StatementExpression + + + + StatementExpressionList + + + + StatementExpressionList + + + , + + + StatementExpression + + + + + + AdditiveExpression + + MultiplicativeExpression + + + + AdditiveExpression + + + + AdditiveExpression + + + + + + + MultiplicativeExpression + + + + + + AdditiveExpression + + + + AdditiveExpression + + + - + + + MultiplicativeExpression + + + + + + FloatingPointType + + float + + + + FloatingPointType + + double + + + + LocalVariableDeclaration + + + + Type + + + VariableDeclarators + + + + + + ConstructorDeclarator + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + InclusiveOrExpression + + ExclusiveOrExpression + + + + InclusiveOrExpression + + + + InclusiveOrExpression + + + | + + + ExclusiveOrExpression + + + + + + ClassType + + TypeName + + + + WhileStatement + + + + while + + + ( + + + Expression + + + ) + + + Statement + + + + + + ClassDeclaration + + + + + + ClassModifiers + + + + + class + + + Identifier + + + + + Super + + + + + + + Interfaces + + + + + ClassBody + + + + + + CastExpression + + + + ( + + + PrimitiveType + + + + + Dims + + + + + ) + + + UnaryExpression + + + + + + CastExpression + + + + ( + + + ReferenceType + + + ) + + + UnaryExpressionNotPlusMinus + + + + + + ImportDeclarations + + ImportDeclaration + + + + ImportDeclarations + + + + ImportDeclarations + + + ImportDeclaration + + + + + + TypeDeclaration + + ClassDeclaration + + + + TypeDeclaration + + InterfaceDeclaration + + + + TypeDeclaration + + ; + + + + LabeledStatement + + + + Identifier + + + : + + + Statement + + + + + + ExpressionName + + Identifier + + + + ExpressionName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ArrayType + + + + Type + + + [ + + + ] + + + + + + StatementExpression + + Assignment + + + + StatementExpression + + PreIncrementExpression + + + + StatementExpression + + PreDecrementExpression + + + + StatementExpression + + PostIncrementExpression + + + + StatementExpression + + PostDecrementExpression + + + + StatementExpression + + MethodInvocation + + + + StatementExpression + + ClassInstanceCreationExpression + + + + MethodDeclarator + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + MethodDeclarator + + + + MethodDeclarator + + + [ + + + ] + + + + + + VariableDeclaratorId + + Identifier + + + + VariableDeclaratorId + + + + VariableDeclaratorId + + + [ + + + ] + + + + + + IntegralType + + byte + + + + IntegralType + + short + + + + IntegralType + + int + + + + IntegralType + + long + + + + IntegralType + + char + + + + NumericType + + IntegralType + + + + NumericType + + FloatingPointType + + + + LeftHandSide + + ExpressionName + + + + LeftHandSide + + FieldAccess + + + + LeftHandSide + + ArrayAccess + + + + IfThenElseStatementNoShortIf + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + StatementNoShortIf + + + + + + LocalVariableDeclarationStatement + + + + LocalVariableDeclaration + + + ; + + + + + + ShiftExpression + + AdditiveExpression + + + + ShiftExpression + + + + ShiftExpression + + + << + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >> + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >>> + + + AdditiveExpression + + + + + + FieldModifiers + + FieldModifier + + + + FieldModifiers + + + + FieldModifiers + + + FieldModifier + + + + + + MethodBody + + Block + + + + MethodBody + + ; + + + + Catches + + CatchClause + + + + Catches + + + + Catches + + + CatchClause + + + + + + ResultType + + Type + + + + ResultType + + void + + + + ConstructorModifiers + + ConstructorModifier + + + + ConstructorModifiers + + + + ConstructorModifiers + + + ConstructorModifier + + + + + + ReferenceType + + ClassOrInterfaceType + + + + ReferenceType + + ArrayType + + + + ClassModifiers + + ClassModifier + + + + ClassModifiers + + + + ClassModifiers + + + ClassModifier + + + + + + ForStatementNoShortIf + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + StatementNoShortIf + + + + + + MethodHeader + + + + + + MethodModifiers + + + + + ResultType + + + MethodDeclarator + + + + + Throws + + + + + + + + LabeledStatementNoShortIf + + + + Identifier + + + : + + + StatementNoShortIf + + + + + + InterfaceBody + + + + { + + + + + InterfaceMemberDeclarations + + + + + } + + + + + + ConstantModifiers + + ConstantModifier + + + + ConstantModifiers + + + + ConstantModifiers + + + ConstantModifier + + + + + + ConstantModifier + + public + + + + ConstantModifier + + static + + + + ConstantModifier + + final + + + + FieldAccess + + + + Primary + + + . + + + Identifier + + + + + + FieldAccess + + + + super + + + . + + + Identifier + + + + + + TypeDeclarations + + TypeDeclaration + + + + TypeDeclarations + + + + TypeDeclarations + + + TypeDeclaration + + + + + + FieldModifier + + public + + + + FieldModifier + + protected + + + + FieldModifier + + private + + + + FieldModifier + + final + + + + FieldModifier + + static + + + + FieldModifier + + transient + + + + FieldModifier + + volatile + + + + StatementWithoutTrailingSubstatement + + Block + + + + StatementWithoutTrailingSubstatement + + EmptyStatement + + + + StatementWithoutTrailingSubstatement + + ExpressionStatement + + + + StatementWithoutTrailingSubstatement + + SwitchStatement + + + + StatementWithoutTrailingSubstatement + + DoStatement + + + + StatementWithoutTrailingSubstatement + + BreakStatement + + + + StatementWithoutTrailingSubstatement + + ContinueStatement + + + + StatementWithoutTrailingSubstatement + + ReturnStatement + + + + StatementWithoutTrailingSubstatement + + SynchronizedStatement + + + + StatementWithoutTrailingSubstatement + + ThrowStatement + + + + StatementWithoutTrailingSubstatement + + TryStatement + + + + DimExprs + + DimExpr + + + + DimExprs + + + + DimExprs + + + DimExpr + + + + + \ No newline at end of file diff --git a/shared/bgf/java-2-jls-impl.bgf b/shared/bgf/java-2-jls-impl.bgf new file mode 100644 index 00000000..eef6291c --- /dev/null +++ b/shared/bgf/java-2-jls-impl.bgf @@ -0,0 +1,2530 @@ + + + + CompilationUnit + + ConstantExpression + + Expression + + + + PrefixOp + + ++ + + + + PrefixOp + + -- + + + + PrefixOp + + ! + + + + PrefixOp + + ~ + + + + PrefixOp + + + + + + + PrefixOp + + - + + + + SwitchLabel + + + + case + + + ConstantExpression + + + : + + + + + + SwitchLabel + + + + default + + + : + + + + + + VariableInitializer + + ArrayInitializer + + + + VariableInitializer + + Expression + + + + InterfaceMemberDecl + + InterfaceMethodOrFieldDecl + + + + InterfaceMemberDecl + + + + void + + + Identifier + + + VoidInterfaceMethodDeclaratorRest + + + + + + InterfaceMemberDecl + + ClassOrInterfaceDeclaration + + + + FormalParameter + + + + + + final + + + + + Type + + + VariableDeclaratorId + + + + + + TypeDeclaration + + ClassOrInterfaceDeclaration + + + + TypeDeclaration + + ; + + + + MethodOrFieldDecl + + + + Type + + + Identifier + + + MethodOrFieldRest + + + + + + ConstantDeclaratorRest + + + + BracketsOpt + + + = + + + VariableInitializer + + + + + + StatementExpression + + Expression + + + + InterfaceDeclaration + + + + interface + + + Identifier + + + + + + + extends + + + TypeList + + + + + + + InterfaceBody + + + + + + QualifiedIdentifierList + + + + QualifiedIdentifier + + + + + + + , + + + QualifiedIdentifier + + + + + + + + + + Arguments + + + + ( + + + + + + + Expression + + + + + + + , + + + Expression + + + + + + + + + + + ) + + + + + + Statement + + Block + + + + Statement + + + + if + + + ParExpression + + + Statement + + + + + + + else + + + Statement + + + + + + + + + + Statement + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + Statement + + + + + + Statement + + + + while + + + ParExpression + + + Statement + + + + + + Statement + + + + do + + + Statement + + + while + + + ParExpression + + + ; + + + + + + Statement + + + + try + + + Block + + + + + Catches + + + + + + + Catches + + + + + finally + + + Block + + + + + + + + + + Statement + + + + switch + + + ParExpression + + + { + + + SwitchBlockStatementGroups + + + } + + + + + + Statement + + + + synchronized + + + ParExpression + + + Block + + + + + + Statement + + + + return + + + + + Expression + + + + + ; + + + + + + Statement + + + + throw + + + Expression + + + ; + + + + + + Statement + + + + break + + + + + Identifier + + + + + ; + + + + + + Statement + + + + continue + + + + + Identifier + + + + + ; + + + + + + Statement + + ; + + + + Statement + + ExpressionStatement + + + + Statement + + + + Identifier + + + : + + + Statement + + + + + + VariableDeclaratorId + + + + Identifier + + + BracketsOpt + + + + + + Type + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + BracketsOpt + + + + + + Type + + BasicType + + + + ArrayCreatorRest + + + + [ + + + + + + + ] + + + BracketsOpt + + + ArrayInitializer + + + + + + + Expression + + + ] + + + + + + + [ + + + Expression + + + ] + + + + + + + BracketsOpt + + + + + + + + + + Modifier + + public + + + + Modifier + + protected + + + + Modifier + + private + + + + Modifier + + static + + + + Modifier + + abstract + + + + Modifier + + final + + + + Modifier + + native + + + + Modifier + + synchronized + + + + Modifier + + transient + + + + Modifier + + volatile + + + + Modifier + + strictfp + + + + InterfaceMethodOrFieldDecl + + + + Type + + + Identifier + + + InterfaceMethodOrFieldRest + + + + + + ImportDeclaration + + + + import + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + + + . + + + * + + + + + + + ; + + + + + + CompilationUnit + + + + + + + + package + + + QualifiedIdentifier + + + ; + + + + + + + + + ImportDeclaration + + + + + + + TypeDeclaration + + + + + + + + BasicType + + byte + + + + BasicType + + short + + + + BasicType + + char + + + + BasicType + + int + + + + BasicType + + long + + + + BasicType + + float + + + + BasicType + + double + + + + BasicType + + boolean + + + + CatchClause + + + + catch + + + ( + + + FormalParameter + + + ) + + + Block + + + + + + Selector + + + + . + + + Identifier + + + + + Arguments + + + + + + + + Selector + + + + . + + + this + + + + + + Selector + + + + . + + + super + + + SuperSuffix + + + + + + Selector + + + + . + + + new + + + InnerCreator + + + + + + Selector + + + + [ + + + Expression + + + ] + + + + + + ModifiersOpt + + + + Modifier + + + + + + ClassCreatorRest + + + + Arguments + + + + + ClassBody + + + + + + + + ConstantDeclarator + + + + Identifier + + + ConstantDeclaratorRest + + + + + + ClassBodyDeclaration + + ; + + + + ClassBodyDeclaration + + + + + + static + + + + + Block + + + + + + ClassBodyDeclaration + + + + ModifiersOpt + + + MemberDecl + + + + + + BlockStatements + + + + BlockStatement + + + + + + VoidInterfaceMethodDeclaratorRest + + + + FormalParameters + + + BracketsOpt + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + ; + + + + + + LocalVariableDeclarationStatement + + + + + + final + + + + + Type + + + VariableDeclarators + + + ; + + + + + + Expression1 + + + + Expression2 + + + + + Expression1Rest + + + + + + + + MemberDecl + + MethodOrFieldDecl + + + + MemberDecl + + + + void + + + Identifier + + + MethodDeclaratorRest + + + + + + MemberDecl + + + + Identifier + + + ConstructorDeclaratorRest + + + + + + MemberDecl + + ClassOrInterfaceDeclaration + + + + Expression3 + + + + PrefixOp + + + Expression3 + + + + + + Expression3 + + + + ( + + + + + Expression + + + Type + + + + + ) + + + Expression3 + + + + + + Expression3 + + + + Primary + + + + + Selector + + + + + + + PostfixOp + + + + + + + + Expression2 + + + + Expression3 + + + + + Expression2Rest + + + + + + + + BracketsOpt + + + + + + [ + + + ] + + + + + + + + MethodOrFieldRest + + VariableDeclaratorRest + + + + MethodOrFieldRest + + MethodDeclaratorRest + + + + MoreStatementExpressions + + + + + + , + + + StatementExpression + + + + + + + + SwitchBlockStatementGroups + + + + SwitchBlockStatementGroup + + + + + + ArrayInitializer + + + + { + + + + + + + VariableInitializer + + + + + + + , + + + VariableInitializer + + + + + + + + + , + + + + + + + + + } + + + + + + Catches + + + + CatchClause + + + + + CatchClause + + + + + + + + InterfaceMethodOrFieldRest + + + + ConstantDeclaratorsRest + + + ; + + + + + + InterfaceMethodOrFieldRest + + InterfaceMethodDeclaratorRest + + + + Expression1Rest + + + + + + ? + + + Expression + + + : + + + Expression1 + + + + + + + + Infixop + + || + + + + Infixop + + && + + + + Infixop + + | + + + + Infixop + + ^ + + + + Infixop + + & + + + + Infixop + + == + + + + Infixop + + != + + + + Infixop + + < + + + + Infixop + + > + + + + Infixop + + <= + + + + Infixop + + >= + + + + Infixop + + << + + + + Infixop + + >> + + + + Infixop + + >>> + + + + Infixop + + + + + + + Infixop + + - + + + + Infixop + + * + + + + Infixop + + / + + + + Infixop + + % + + + + MethodDeclaratorRest + + + + FormalParameters + + + BracketsOpt + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + + + MethodBody + + + ; + + + + + + + + InterfaceBodyDeclaration + + ; + + + + InterfaceBodyDeclaration + + + + ModifiersOpt + + + InterfaceMemberDecl + + + + + + QualifiedIdentifier + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + + ConstantDeclaratorsRest + + + + ConstantDeclaratorRest + + + + + + + , + + + ConstantDeclarator + + + + + + + + + + ClassOrInterfaceDeclaration + + + + ModifiersOpt + + + + + ClassDeclaration + + + InterfaceDeclaration + + + + + + + + SuperSuffix + + Arguments + + + + SuperSuffix + + + + . + + + Identifier + + + + + Arguments + + + + + + + + VariableDeclaratorRest + + + + BracketsOpt + + + + + + + = + + + VariableInitializer + + + + + + + + + + BlockStatement + + LocalVariableDeclarationStatement + + + + BlockStatement + + ClassOrInterfaceDeclaration + + + + BlockStatement + + + + + + + + Identifier + + + : + + + + + + + Statement + + + + + + InterfaceBody + + + + { + + + + + InterfaceBodyDeclaration + + + + + } + + + + + + Literal + + IntegerLiteral + + + + Literal + + FloatingPointLiteral + + + + Literal + + CharacterLiteral + + + + Literal + + StringLiteral + + + + Literal + + BooleanLiteral + + + + Literal + + NullLiteral + + + + Expression + + + + Expression1 + + + + + + + AssignmentOperator + + + Expression1 + + + + + + + + + + SwitchBlockStatementGroup + + + + SwitchLabel + + + BlockStatements + + + + + + Block + + + + { + + + BlockStatements + + + } + + + + + + PostfixOp + + ++ + + + + PostfixOp + + -- + + + + InterfaceMethodDeclaratorRest + + + + FormalParameters + + + BracketsOpt + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + ; + + + + + + IdentifierSuffix + + + + [ + + + + + + + ] + + + BracketsOpt + + + . + + + class + + + + + + + Expression + + + ] + + + + + + + + + + IdentifierSuffix + + Arguments + + + + IdentifierSuffix + + + + . + + + + + class + + + this + + + + + super + + + Arguments + + + + + + + new + + + InnerCreator + + + + + + + + + + ForUpdate + + + + StatementExpression + + + MoreStatementExpressions + + + + + + ForInit + + + + StatementExpression + + + MoreStatementExpressions + + + + + + ForInit + + + + + + final + + + + + Type + + + VariableDeclarators + + + + + + Creator + + + + QualifiedIdentifier + + + + + ArrayCreatorRest + + + ClassCreatorRest + + + + + + + + AssignmentOperator + + = + + + + AssignmentOperator + + += + + + + AssignmentOperator + + -= + + + + AssignmentOperator + + *= + + + + AssignmentOperator + + /= + + + + AssignmentOperator + + &= + + + + AssignmentOperator + + |= + + + + AssignmentOperator + + ^= + + + + AssignmentOperator + + %= + + + + AssignmentOperator + + <<= + + + + AssignmentOperator + + >>= + + + + AssignmentOperator + + >>>= + + + + ParExpression + + + + ( + + + Expression + + + ) + + + + + + VariableDeclarators + + + + VariableDeclarator + + + + + + + , + + + VariableDeclarator + + + + + + + + + + ClassBody + + + + { + + + + + ClassBodyDeclaration + + + + + } + + + + + + Primary + + + + ( + + + Expression + + + ) + + + + + + Primary + + + + this + + + + + Arguments + + + + + + + + Primary + + + + super + + + SuperSuffix + + + + + + Primary + + Literal + + + + Primary + + + + new + + + Creator + + + + + + Primary + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + IdentifierSuffix + + + + + + + + Primary + + + + BasicType + + + BracketsOpt + + + . + + + class + + + + + + Primary + + + + void + + + . + + + class + + + + + + ConstructorDeclaratorRest + + + + FormalParameters + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + MethodBody + + + + + + FormalParameters + + + + ( + + + + + + + FormalParameter + + + + + + + , + + + FormalParameter + + + + + + + + + + + ) + + + + + + TypeList + + + + Type + + + + + + + , + + + Type + + + + + + + + + + MethodBody + + Block + + + + ClassDeclaration + + + + class + + + Identifier + + + + + + + extends + + + Type + + + + + + + + + + + implements + + + TypeList + + + + + + + ClassBody + + + + + + Expression2Rest + + + + + + Infixop + + + Expression3 + + + + + + + + Expression2Rest + + + + instanceof + + + Type + + + + + + InnerCreator + + + + Identifier + + + ClassCreatorRest + + + + + + VariableDeclarator + + + + Identifier + + + VariableDeclaratorRest + + + + + + ExpressionStatement + + + + StatementExpression + + + ; + + + + + \ No newline at end of file diff --git a/shared/bgf/java-2-jls-read.bgf b/shared/bgf/java-2-jls-read.bgf new file mode 100644 index 00000000..6aae9ada --- /dev/null +++ b/shared/bgf/java-2-jls-read.bgf @@ -0,0 +1,3916 @@ + + + + CompilationUnit + + ClassBodyDeclarations + + ClassBodyDeclaration + + + + ClassBodyDeclarations + + + + ClassBodyDeclarations + + + ClassBodyDeclaration + + + + + + PostDecrementExpression + + + + PostfixExpression + + + -- + + + + + + ExpressionStatement + + + + StatementExpression + + + ; + + + + + + PrimitiveType + + NumericType + + + + PrimitiveType + + boolean + + + + InterfaceTypeList + + InterfaceType + + + + InterfaceTypeList + + + + InterfaceTypeList + + + , + + + InterfaceType + + + + + + InterfaceDeclaration + + + + + + InterfaceModifiers + + + + + interface + + + Identifier + + + + + ExtendsInterfaces + + + + + InterfaceBody + + + + + + Statement + + StatementWithoutTrailingSubstatement + + + + Statement + + LabeledStatement + + + + Statement + + IfThenStatement + + + + Statement + + IfThenElseStatement + + + + Statement + + WhileStatement + + + + Statement + + ForStatement + + + + AndExpression + + EqualityExpression + + + + AndExpression + + + + AndExpression + + + & + + + EqualityExpression + + + + + + ArgumentList + + Expression + + + + ArgumentList + + + + ArgumentList + + + , + + + Expression + + + + + + MethodName + + Identifier + + + + MethodName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ClassMemberDeclaration + + FieldDeclaration + + + + ClassMemberDeclaration + + MethodDeclaration + + + + ClassMemberDeclaration + + ClassDeclaration + + + + ClassMemberDeclaration + + InterfaceDeclaration + + + + ClassMemberDeclaration + + ; + + + + Assignment + + + + LeftHandSide + + + AssignmentOperator + + + AssignmentExpression + + + + + + Interfaces + + + + implements + + + InterfaceTypeList + + + + + + CatchClause + + + + catch + + + ( + + + FormalParameter + + + ) + + + Block + + + + + + AbstractMethodModifiers + + AbstractMethodModifier + + + + AbstractMethodModifiers + + + + AbstractMethodModifiers + + + AbstractMethodModifier + + + + + + PostIncrementExpression + + + + PostfixExpression + + + ++ + + + + + + TypeName + + Identifier + + + + TypeName + + + + PackageOrTypeName + + + . + + + Identifier + + + + + + InterfaceType + + TypeName + + + + BlockStatement + + LocalVariableDeclarationStatement + + + + BlockStatement + + ClassDeclaration + + + + BlockStatement + + Statement + + + + IfThenStatement + + + + if + + + ( + + + Expression + + + ) + + + Statement + + + + + + SwitchBlockStatementGroups + + SwitchBlockStatementGroup + + + + SwitchBlockStatementGroups + + + + SwitchBlockStatementGroups + + + SwitchBlockStatementGroup + + + + + + ClassModifier + + public + + + + ClassModifier + + protected + + + + ClassModifier + + private + + + + ClassModifier + + abstract + + + + ClassModifier + + static + + + + ClassModifier + + final + + + + ClassModifier + + strictfp + + + + SingleTypeImportDeclaration + + + + import + + + TypeName + + + ; + + + + + + ConstantDeclaration + + + + + + ConstantModifiers + + + + + Type + + + VariableDeclarators + + + + + + PreIncrementExpression + + + + ++ + + + UnaryExpression + + + + + + ExplicitConstructorInvocation + + + + this + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ExplicitConstructorInvocation + + + + super + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ExplicitConstructorInvocation + + + + Primary + + + . + + + super + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + UnaryExpression + + PreIncrementExpression + + + + UnaryExpression + + PreDecrementExpression + + + + UnaryExpression + + + + + + + + UnaryExpression + + + + + + UnaryExpression + + + + - + + + UnaryExpression + + + + + + UnaryExpression + + UnaryExpressionNotPlusMinus + + + + VariableInitializers + + VariableInitializer + + + + VariableInitializers + + + + VariableInitializers + + + , + + + VariableInitializer + + + + + + DimExpr + + + + [ + + + Expression + + + ] + + + + + + Throws + + + + throws + + + ClassTypeList + + + + + + BlockStatements + + BlockStatement + + + + BlockStatements + + + + BlockStatements + + + BlockStatement + + + + + + InterfaceModifiers + + InterfaceModifier + + + + InterfaceModifiers + + + + InterfaceModifiers + + + InterfaceModifier + + + + + + ClassTypeList + + ClassType + + + + ClassTypeList + + + + ClassTypeList + + + , + + + ClassType + + + + + + PrimaryNoNewArray + + Literal + + + + PrimaryNoNewArray + + + + Type + + + . + + + class + + + + + + PrimaryNoNewArray + + + + void + + + . + + + class + + + + + + PrimaryNoNewArray + + this + + + + PrimaryNoNewArray + + + + ClassName + + + . + + + this + + + + + + PrimaryNoNewArray + + + + ( + + + Expression + + + ) + + + + + + PrimaryNoNewArray + + ClassInstanceCreationExpression + + + + PrimaryNoNewArray + + FieldAccess + + + + PrimaryNoNewArray + + MethodInvocation + + + + PrimaryNoNewArray + + ArrayAccess + + + + AssignmentOperator + + = + + + + AssignmentOperator + + *= + + + + AssignmentOperator + + /= + + + + AssignmentOperator + + %= + + + + AssignmentOperator + + += + + + + AssignmentOperator + + -= + + + + AssignmentOperator + + <<= + + + + AssignmentOperator + + >>= + + + + AssignmentOperator + + >>>= + + + + AssignmentOperator + + &= + + + + AssignmentOperator + + ^= + + + + AssignmentOperator + + |= + + + + Literal + + IntegerLiteral + + + + Literal + + FloatingPointLiteral + + + + Literal + + BooleanLiteral + + + + Literal + + CharacterLiteral + + + + Literal + + StringLiteral + + + + Literal + + NullLiteral + + + + FieldDeclaration + + + + + + FieldModifiers + + + + + Type + + + VariableDeclarators + + + ; + + + + + + ReturnStatement + + + + return + + + + + Expression + + + + + ; + + + + + + VariableDeclarator + + VariableDeclaratorId + + + + VariableDeclarator + + + + VariableDeclaratorId + + + = + + + VariableInitializer + + + + + + PostfixExpression + + Primary + + + + PostfixExpression + + ExpressionName + + + + PostfixExpression + + PostIncrementExpression + + + + PostfixExpression + + PostDecrementExpression + + + + SwitchLabel + + + + case + + + ConstantExpression + + + : + + + + + + SwitchLabel + + + + default + + + : + + + + + + ConstantModifier + + public + + + + ConstantModifier + + static + + + + ConstantModifier + + final + + + + FormalParameter + + + + + + final + + + + + Type + + + VariableDeclaratorId + + + + + + PackageName + + Identifier + + + + PackageName + + + + PackageName + + + . + + + Identifier + + + + + + ConditionalAndExpression + + InclusiveOrExpression + + + + ConditionalAndExpression + + + + ConditionalAndExpression + + + && + + + InclusiveOrExpression + + + + + + MethodModifiers + + MethodModifier + + + + MethodModifiers + + + + MethodModifiers + + + MethodModifier + + + + + + Type + + PrimitiveType + + + + Type + + ReferenceType + + + + EqualityExpression + + RelationalExpression + + + + EqualityExpression + + + + EqualityExpression + + + == + + + RelationalExpression + + + + + + EqualityExpression + + + + EqualityExpression + + + != + + + RelationalExpression + + + + + + InterfaceMemberDeclaration + + ConstantDeclaration + + + + InterfaceMemberDeclaration + + AbstractMethodDeclaration + + + + InterfaceMemberDeclaration + + ClassDeclaration + + + + InterfaceMemberDeclaration + + InterfaceDeclaration + + + + InterfaceMemberDeclaration + + ; + + + + MultiplicativeExpression + + UnaryExpression + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + * + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + / + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + % + + + UnaryExpression + + + + + + BreakStatement + + + + break + + + + + Identifier + + + + + ; + + + + + + ConstructorModifier + + public + + + + ConstructorModifier + + protected + + + + ConstructorModifier + + private + + + + SynchronizedStatement + + + + synchronized + + + ( + + + Expression + + + ) + + + Block + + + + + + ClassInstanceCreationExpression + + + + new + + + ClassOrInterfaceType + + + ( + + + + + ArgumentList + + + + + ) + + + + + ClassBody + + + + + + + + ClassInstanceCreationExpression + + + + Primary + + + . + + + new + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + ClassBody + + + + + + + + Super + + + + extends + + + ClassType + + + + + + ArrayCreationExpression + + + + new + + + PrimitiveType + + + DimExprs + + + + + Dims + + + + + + + + ArrayCreationExpression + + + + new + + + TypeName + + + DimExprs + + + + + Dims + + + + + + + + ArrayCreationExpression + + + + new + + + PrimitiveType + + + Dims + + + ArrayInitializer + + + + + + ArrayCreationExpression + + + + new + + + TypeName + + + Dims + + + ArrayInitializer + + + + + + ArrayInitializer + + + + { + + + + + VariableInitializers + + + + + + + , + + + + + } + + + + + + InterfaceModifier + + public + + + + InterfaceModifier + + protected + + + + InterfaceModifier + + private + + + + InterfaceModifier + + abstract + + + + InterfaceModifier + + static + + + + InterfaceModifier + + strictfp + + + + UnaryExpressionNotPlusMinus + + PostfixExpression + + + + UnaryExpressionNotPlusMinus + + + + ~ + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + + + ! + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + CastExpression + + + + EmptyStatement + + ; + + + + StatementNoShortIf + + StatementWithoutTrailingSubstatement + + + + StatementNoShortIf + + LabeledStatementNoShortIf + + + + StatementNoShortIf + + IfThenElseStatementNoShortIf + + + + StatementNoShortIf + + WhileStatementNoShortIf + + + + StatementNoShortIf + + ForStatementNoShortIf + + + + MethodInvocation + + + + MethodName + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + Primary + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + super + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + ClassName + + + . + + + super + + + . + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + AbstractMethodDeclaration + + + + + + AbstractMethodModifiers + + + + + ResultType + + + MethodDeclarator + + + + + Throws + + + + + ; + + + + + + IfThenElseStatement + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + Statement + + + + + + ArrayAccess + + + + ExpressionName + + + [ + + + Expression + + + ] + + + + + + ArrayAccess + + + + PrimaryNoNewArray + + + [ + + + Expression + + + ] + + + + + + ForUpdate + + StatementExpressionList + + + + ForInit + + StatementExpressionList + + + + ForInit + + LocalVariableDeclaration + + + + VariableDeclarators + + VariableDeclarator + + + + VariableDeclarators + + + + VariableDeclarators + + + , + + + VariableDeclarator + + + + + + ThrowStatement + + + + throw + + + Expression + + + ; + + + + + + ExclusiveOrExpression + + AndExpression + + + + ExclusiveOrExpression + + + + ExclusiveOrExpression + + + ^ + + + AndExpression + + + + + + Primary + + PrimaryNoNewArray + + + + Primary + + ArrayCreationExpression + + + + PackageDeclaration + + + + package + + + PackageName + + + ; + + + + + + RelationalExpression + + ShiftExpression + + + + RelationalExpression + + + + RelationalExpression + + + < + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + > + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + <= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + >= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + instanceof + + + ReferenceType + + + + + + WhileStatementNoShortIf + + + + while + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + + + + ExtendsInterfaces + + + + extends + + + InterfaceType + + + + + + ExtendsInterfaces + + + + ExtendsInterfaces + + + , + + + InterfaceType + + + + + + AbstractMethodModifier + + public + + + + AbstractMethodModifier + + abstract + + + + ConstantExpression + + Expression + + + + VariableInitializer + + Expression + + + + VariableInitializer + + ArrayInitializer + + + + StaticInitializer + + + + static + + + Block + + + + + + Finally + + + + finally + + + Block + + + + + + ConstructorDeclaration + + + + + + ConstructorModifiers + + + + + ConstructorDeclarator + + + + + Throws + + + + + ConstructorBody + + + + + + TypeImportOnDemandDeclaration + + + + import + + + PackageOrTypeName + + + . + + + * + + + ; + + + + + + PreDecrementExpression + + + + -- + + + UnaryExpression + + + + + + InterfaceMemberDeclarations + + InterfaceMemberDeclaration + + + + InterfaceMemberDeclarations + + + + InterfaceMemberDeclarations + + + InterfaceMemberDeclaration + + + + + + ForStatement + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + Statement + + + + + + PackageOrTypeName + + Identifier + + + + PackageOrTypeName + + + + PackageOrTypeName + + + . + + + Identifier + + + + + + AmbiguousName + + Identifier + + + + AmbiguousName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ContinueStatement + + + + continue + + + + + Identifier + + + + + ; + + + + + + ImportDeclaration + + SingleTypeImportDeclaration + + + + ImportDeclaration + + TypeImportOnDemandDeclaration + + + + CompilationUnit + + + + + + PackageDeclaration + + + + + + + ImportDeclarations + + + + + + + TypeDeclarations + + + + + + + + SwitchStatement + + + + switch + + + ( + + + Expression + + + ) + + + SwitchBlock + + + + + + Dims + + + + [ + + + ] + + + + + + Dims + + + + Dims + + + [ + + + ] + + + + + + ConditionalOrExpression + + ConditionalAndExpression + + + + ConditionalOrExpression + + + + ConditionalOrExpression + + + || + + + ConditionalAndExpression + + + + + + ClassBodyDeclaration + + ClassMemberDeclaration + + + + ClassBodyDeclaration + + InstanceInitializer + + + + ClassBodyDeclaration + + StaticInitializer + + + + ClassBodyDeclaration + + ConstructorDeclaration + + + + SwitchBlockStatementGroup + + + + SwitchLabels + + + BlockStatements + + + + + + MethodDeclaration + + + + MethodHeader + + + MethodBody + + + + + + MethodModifier + + public + + + + MethodModifier + + protected + + + + MethodModifier + + private + + + + MethodModifier + + abstract + + + + MethodModifier + + static + + + + MethodModifier + + final + + + + MethodModifier + + synchronized + + + + MethodModifier + + native + + + + MethodModifier + + strictfp + + + + DoStatement + + + + do + + + Statement + + + while + + + ( + + + Expression + + + ) + + + ; + + + + + + ConditionalExpression + + ConditionalOrExpression + + + + ConditionalExpression + + + + ConditionalOrExpression + + + ? + + + Expression + + + : + + + ConditionalExpression + + + + + + ClassOrInterfaceType + + ClassType + + + + ClassOrInterfaceType + + InterfaceType + + + + InstanceInitializer + + Block + + + + TryStatement + + + + try + + + Block + + + Catches + + + + + + TryStatement + + + + try + + + Block + + + + + Catches + + + + + Finally + + + + + + SwitchLabels + + SwitchLabel + + + + SwitchLabels + + + + SwitchLabels + + + SwitchLabel + + + + + + FormalParameterList + + FormalParameter + + + + FormalParameterList + + + + FormalParameterList + + + , + + + FormalParameter + + + + + + Expression + + AssignmentExpression + + + + StatementExpressionList + + StatementExpression + + + + StatementExpressionList + + + + StatementExpressionList + + + , + + + StatementExpression + + + + + + AdditiveExpression + + MultiplicativeExpression + + + + AdditiveExpression + + + + AdditiveExpression + + + + + + + MultiplicativeExpression + + + + + + AdditiveExpression + + + + AdditiveExpression + + + - + + + MultiplicativeExpression + + + + + + FloatingPointType + + float + + + + FloatingPointType + + double + + + + LocalVariableDeclaration + + + + + + final + + + + + Type + + + VariableDeclarators + + + + + + ConstructorDeclarator + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + InclusiveOrExpression + + ExclusiveOrExpression + + + + InclusiveOrExpression + + + + InclusiveOrExpression + + + | + + + ExclusiveOrExpression + + + + + + ClassType + + TypeName + + + + WhileStatement + + + + while + + + ( + + + Expression + + + ) + + + Statement + + + + + + ClassDeclaration + + + + + + ClassModifiers + + + + + class + + + Identifier + + + + + Super + + + + + + + Interfaces + + + + + ClassBody + + + + + + AssignmentExpression + + ConditionalExpression + + + + AssignmentExpression + + Assignment + + + + CastExpression + + + + ( + + + PrimitiveType + + + + + Dims + + + + + ) + + + UnaryExpression + + + + + + CastExpression + + + + ( + + + ReferenceType + + + ) + + + UnaryExpressionNotPlusMinus + + + + + + ImportDeclarations + + ImportDeclaration + + + + ImportDeclarations + + + + ImportDeclarations + + + ImportDeclaration + + + + + + TypeDeclaration + + ClassDeclaration + + + + TypeDeclaration + + InterfaceDeclaration + + + + TypeDeclaration + + ; + + + + LabeledStatement + + + + Identifier + + + : + + + Statement + + + + + + ExpressionName + + Identifier + + + + ExpressionName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ArrayType + + + + Type + + + [ + + + ] + + + + + + StatementExpression + + Assignment + + + + StatementExpression + + PreIncrementExpression + + + + StatementExpression + + PreDecrementExpression + + + + StatementExpression + + PostIncrementExpression + + + + StatementExpression + + PostDecrementExpression + + + + StatementExpression + + MethodInvocation + + + + StatementExpression + + ClassInstanceCreationExpression + + + + MethodDeclarator + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + MethodDeclarator + + + + MethodDeclarator + + + [ + + + ] + + + + + + VariableDeclaratorId + + Identifier + + + + VariableDeclaratorId + + + + VariableDeclaratorId + + + [ + + + ] + + + + + + IntegralType + + byte + + + + IntegralType + + short + + + + IntegralType + + int + + + + IntegralType + + long + + + + IntegralType + + char + + + + NumericType + + IntegralType + + + + NumericType + + FloatingPointType + + + + LeftHandSide + + ExpressionName + + + + LeftHandSide + + FieldAccess + + + + LeftHandSide + + ArrayAccess + + + + IfThenElseStatementNoShortIf + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + StatementNoShortIf + + + + + + LocalVariableDeclarationStatement + + + + LocalVariableDeclaration + + + ; + + + + + + ShiftExpression + + AdditiveExpression + + + + ShiftExpression + + + + ShiftExpression + + + << + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >> + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >>> + + + AdditiveExpression + + + + + + FieldModifiers + + FieldModifier + + + + FieldModifiers + + + + FieldModifiers + + + FieldModifier + + + + + + MethodBody + + Block + + + + MethodBody + + ; + + + + Catches + + CatchClause + + + + Catches + + + + Catches + + + CatchClause + + + + + + ResultType + + Type + + + + ResultType + + void + + + + ConstructorModifiers + + ConstructorModifier + + + + ConstructorModifiers + + + + ConstructorModifiers + + + ConstructorModifier + + + + + + ReferenceType + + ClassOrInterfaceType + + + + ReferenceType + + ArrayType + + + + ClassModifiers + + ClassModifier + + + + ClassModifiers + + + + ClassModifiers + + + ClassModifier + + + + + + ForStatementNoShortIf + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + StatementNoShortIf + + + + + + MethodHeader + + + + + + MethodModifiers + + + + + ResultType + + + MethodDeclarator + + + + + Throws + + + + + + + + LabeledStatementNoShortIf + + + + Identifier + + + : + + + StatementNoShortIf + + + + + + ConstantModifiers + + ConstantModifier + + + + ConstantModifiers + + + + ConstantModifiers + + + ConstantModifier + + + + + + FieldAccess + + + + Primary + + + . + + + Identifier + + + + + + FieldAccess + + + + super + + + . + + + Identifier + + + + + + FieldAccess + + + + ClassName + + + . + + + super + + + . + + + Identifier + + + + + + TypeDeclarations + + TypeDeclaration + + + + TypeDeclarations + + + + TypeDeclarations + + + TypeDeclaration + + + + + + FieldModifier + + public + + + + FieldModifier + + protected + + + + FieldModifier + + private + + + + FieldModifier + + static + + + + FieldModifier + + final + + + + FieldModifier + + transient + + + + FieldModifier + + volatile + + + + StatementWithoutTrailingSubstatement + + Block + + + + StatementWithoutTrailingSubstatement + + EmptyStatement + + + + StatementWithoutTrailingSubstatement + + ExpressionStatement + + + + StatementWithoutTrailingSubstatement + + SwitchStatement + + + + StatementWithoutTrailingSubstatement + + DoStatement + + + + StatementWithoutTrailingSubstatement + + BreakStatement + + + + StatementWithoutTrailingSubstatement + + ContinueStatement + + + + StatementWithoutTrailingSubstatement + + ReturnStatement + + + + StatementWithoutTrailingSubstatement + + SynchronizedStatement + + + + StatementWithoutTrailingSubstatement + + ThrowStatement + + + + StatementWithoutTrailingSubstatement + + TryStatement + + + + DimExprs + + DimExpr + + + + DimExprs + + + + DimExprs + + + DimExpr + + + + + + InterfaceBody + + + + { + + + + + InterfaceMemberDeclarations + + + + + } + + + + + + ClassBody + + + + { + + + + + ClassBodyDeclarations + + + + + } + + + + + + Block + + + + { + + + + + BlockStatements + + + + + } + + + + + + SwitchBlock + + + + { + + + + + SwitchBlockStatementGroups + + + + + + + SwitchLabels + + + + + } + + + + + + ConstructorBody + + + + { + + + + + ExplicitConstructorInvocation + + + + + + + BlockStatements + + + + + } + + + + + + ClassName + + Identifier + + + + ClassName + + + + AmbiguousName + + + . + + + Identifier + + + + + \ No newline at end of file diff --git a/shared/bgf/java-5-habelitz.bgf b/shared/bgf/java-5-habelitz.bgf new file mode 100644 index 00000000..ec9c577f --- /dev/null +++ b/shared/bgf/java-5-habelitz.bgf @@ -0,0 +1 @@ +javaSourcejavaSourcecompilationUnitcompilationUnitannotationListpackageDeclarationimportDeclarationtypeDeclsannotationListannotationannotationATqualifiedIdentifierannotationInitAT@qualifiedIdentifierIDENTDOTidentIDENTIDENTJAVA_ID_STARTJAVA_ID_PARTJAVA_ID_STARTabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZJAVA_ID_PARTJAVA_ID_START0123456789DOT.annotationInitLPARENannotationInitializersRPARENLPAREN(annotationInitializersannotationInitializerCOMMAannotationInitializerannotationElementValueannotationInitializerIDENTASSIGNannotationElementValueASSIGN=annotationElementValueannotationElementValueExpressionannotationannotationElementValueArrayInitializerannotationElementValueExpressionconditionalExpressionconditionalExpressionlogicalOrExpressionQUESTIONassignmentExpressionCOLONconditionalExpressionlogicalOrExpressionlogicalAndExpressionLOGICAL_ORlogicalAndExpressionlogicalAndExpressioninclusiveOrExpressionLOGICAL_ANDinclusiveOrExpressioninclusiveOrExpressionexclusiveOrExpressionORexclusiveOrExpressionexclusiveOrExpressionandExpressionXORandExpressionandExpressionequalityExpressionANDequalityExpressionequalityExpressioninstanceOfExpressionEQUALNOT_EQUALinstanceOfExpressioninstanceOfExpressionrelationalExpressionINSTANCEOFtyperelationalExpressionshiftExpressionLESS_OR_EQUALGREATER_OR_EQUALLESS_THANGREATER_THANshiftExpressionshiftExpressionadditiveExpressionBIT_SHIFT_RIGHTSHIFT_RIGHTSHIFT_LEFTadditiveExpressionadditiveExpressionmultiplicativeExpressionPLUSMINUSmultiplicativeExpressionmultiplicativeExpressionunaryExpressionSTARDIVMODunaryExpressionunaryExpressionPLUSunaryExpressionMINUSunaryExpressionINCpostfixedExpressionDECpostfixedExpressionunaryExpressionNotPlusMinusPLUS+MINUS-INC++postfixedExpressionprimaryExpressionouterDotDOTgenericTypeArgumentListSimplifiedIDENTargumentsTHISSuperSUPERargumentsSUPERinnerDotDOTIDENTargumentsinnerNewExpressionLBRACKexpressionRBRACKINCDECprimaryExpressionparenthesizedExpressionliteralnewExpressionqualifiedIdentExpressiongenericTypeArgumentListSimplifiedSUPERargumentsDOTIDENTargumentsIDENTargumentsTHISargumentsTHISargumentsSUPERargumentsSUPERDOTIDENTargumentsprimitiveTypearrayDeclaratorDOTCLASSVOIDDOTCLASSparenthesizedExpressionLPARENexpressionRPARENexpressionassignmentExpressionassignmentExpressionconditionalExpressionASSIGNPLUS_ASSIGNMINUS_ASSIGNSTAR_ASSIGNDIV_ASSIGNAND_ASSIGNOR_ASSIGNXOR_ASSIGNMOD_ASSIGNSHIFT_LEFT_ASSIGNSHIFT_RIGHT_ASSIGNBIT_SHIFT_RIGHT_ASSIGNassignmentExpressionPLUS_ASSIGN+=MINUS_ASSIGN-=STAR_ASSIGN*=DIV_ASSIGN/=AND_ASSIGN&=OR_ASSIGN|=XOR_ASSIGN^=MOD_ASSIGN%=SHIFT_LEFT_ASSIGN<<=SHIFT_RIGHT_ASSIGN>>=BIT_SHIFT_RIGHT_ASSIGN>>>=RPAREN)literalHEX_LITERALOCTAL_LITERALDECIMAL_LITERALFLOATING_POINT_LITERALCHARACTER_LITERALSTRING_LITERALTRUEFALSENULLHEX_LITERAL0xXHEX_DIGITINTEGER_TYPE_SUFFIXHEX_DIGIT0123456789abcdefABCDEFINTEGER_TYPE_SUFFIXlLOCTAL_LITERAL001234567INTEGER_TYPE_SUFFIXDECIMAL_LITERAL01234567890123456789INTEGER_TYPE_SUFFIXFLOATING_POINT_LITERAL0123456789DOT0123456789EXPONENTFLOAT_TYPE_SUFFIXEXPONENTFLOAT_TYPE_SUFFIXFLOAT_TYPE_SUFFIXDOT0123456789EXPONENTFLOAT_TYPE_SUFFIXEXPONENTeE+-0123456789FLOAT_TYPE_SUFFIXfFdDCHARACTER_LITERAL\'ESCAPE_SEQUENCEstring\'ESCAPE_SEQUENCE\\btnfr\"\'\\UNICODE_ESCAPEOCTAL_ESCAPEUNICODE_ESCAPE\\uHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGITOCTAL_ESCAPE01230123456701234567\\0123456701234567\\01234567STRING_LITERAL"ESCAPE_SEQUENCEstring"TRUEtrueFALSEfalseNULLnullnewExpressionNEWprimitiveTypenewArrayConstructiongenericTypeArgumentListSimplifiedqualifiedTypeIdentSimplifiednewArrayConstructionargumentsclassBodyNEWnewprimitiveTypeBOOLEANCHARBYTESHORTINTLONGFLOATDOUBLEBOOLEANbooleanCHARcharBYTEbyteSHORTshortINTintLONGlongFLOATfloatDOUBLEdoublenewArrayConstructionarrayDeclaratorListarrayInitializerLBRACKexpressionRBRACKLBRACKexpressionRBRACKarrayDeclaratorListarrayDeclaratorListarrayDeclaratorarrayDeclaratorLBRACKRBRACKLBRACK[RBRACK]arrayInitializerLCURLYvariableInitializerCOMMAvariableInitializerCOMMARCURLYLCURLY{variableInitializerarrayInitializerexpressionCOMMA,RCURLY}genericTypeArgumentListSimplifiedLESS_THANgenericTypeArgumentSimplifiedCOMMAgenericTypeArgumentSimplifiedgenericTypeListClosingLESS_THAN<genericTypeArgumentSimplifiedtypeQUESTIONtypesimpleTypeobjectTypesimpleTypeprimitiveTypearrayDeclaratorListobjectTypequalifiedTypeIdentarrayDeclaratorListqualifiedTypeIdenttypeIdentDOTtypeIdenttypeIdentIDENTgenericTypeArgumentListgenericTypeArgumentListLESS_THANgenericTypeArgumentCOMMAgenericTypeArgumentgenericTypeListClosinggenericTypeArgumenttypeQUESTIONgenericWildcardBoundTypeQUESTION?genericWildcardBoundTypeEXTENDSSUPERtypeEXTENDSextendsSUPERsupergenericTypeListClosingGREATER_THANSHIFT_RIGHTBIT_SHIFT_RIGHTGREATER_THAN>SHIFT_RIGHT>>BIT_SHIFT_RIGHT>>>qualifiedTypeIdentSimplifiedtypeIdentSimplifiedDOTtypeIdentSimplifiedtypeIdentSimplifiedIDENTgenericTypeArgumentListSimplifiedargumentsLPARENexpressionListRPARENexpressionListexpressionCOMMAexpressionclassBodyLCURLYclassScopeDeclarationsRCURLYclassScopeDeclarationsblockSTATICblockmodifierListgenericTypeParameterListtypeIDENTformalParameterListarrayDeclaratorListthrowsClauseblockSEMIVOIDIDENTformalParameterListthrowsClauseblockSEMIidentIDENTformalParameterListthrowsClauseblocktypeclassFieldDeclaratorListSEMItypeDeclarationSEMIblockLCURLYblockStatementRCURLYblockStatementlocalVariableDeclarationSEMItypeDeclarationstatementlocalVariableDeclarationlocalModifierListtypeclassFieldDeclaratorListlocalModifierListlocalModifierlocalModifierFINALannotationFINALfinalclassFieldDeclaratorListclassFieldDeclaratorCOMMAclassFieldDeclaratorclassFieldDeclaratorvariableDeclaratorIdASSIGNvariableInitializervariableDeclaratorIdIDENTarrayDeclaratorListSEMI;typeDeclarationmodifierListclassTypeDeclarationinterfaceTypeDeclarationenumTypeDeclarationannotationTypeDeclarationmodifierListmodifiermodifierPUBLICPROTECTEDPRIVATESTATICABSTRACTNATIVESYNCHRONIZEDTRANSIENTVOLATILESTRICTFPlocalModifierPUBLICpublicPROTECTEDprotectedPRIVATEprivateSTATICstaticABSTRACTabstractNATIVEnativeSYNCHRONIZEDsynchronizedTRANSIENTtransientVOLATILEvolatileSTRICTFPstrictfpclassTypeDeclarationCLASSIDENTgenericTypeParameterListclassExtendsClauseimplementsClauseclassBodyCLASSclassgenericTypeParameterListLESS_THANgenericTypeParameterCOMMAgenericTypeParametergenericTypeListClosinggenericTypeParameterIDENTboundboundEXTENDStypeANDtypeAND&classExtendsClauseEXTENDStypeimplementsClauseIMPLEMENTStypeListIMPLEMENTSimplementstypeListtypeCOMMAtypeinterfaceTypeDeclarationINTERFACEIDENTgenericTypeParameterListinterfaceExtendsClauseinterfaceBodyINTERFACEinterfaceinterfaceExtendsClauseEXTENDStypeListinterfaceBodyLCURLYinterfaceScopeDeclarationsRCURLYinterfaceScopeDeclarationsmodifierListgenericTypeParameterListtypeIDENTformalParameterListarrayDeclaratorListthrowsClauseSEMIVOIDIDENTformalParameterListthrowsClauseSEMItypeinterfaceFieldDeclaratorListSEMItypeDeclarationSEMIformalParameterListLPARENformalParameterStandardDeclCOMMAformalParameterStandardDeclCOMMAformalParameterVarArgDeclformalParameterVarArgDeclRPARENformalParameterStandardDecllocalModifierListtypevariableDeclaratorIdformalParameterVarArgDecllocalModifierListtypeELLIPSISvariableDeclaratorIdELLIPSIS...throwsClauseTHROWSqualifiedIdentListTHROWSthrowsqualifiedIdentListqualifiedIdentifierCOMMAqualifiedIdentifierVOIDvoidinterfaceFieldDeclaratorListinterfaceFieldDeclaratorCOMMAinterfaceFieldDeclaratorinterfaceFieldDeclaratorvariableDeclaratorIdASSIGNvariableInitializerenumTypeDeclarationENUMIDENTimplementsClauseenumBodyENUMenumenumBodyLCURLYenumScopeDeclarationsRCURLYenumScopeDeclarationsenumConstantsCOMMAenumClassScopeDeclarationsenumConstantsenumConstantCOMMAenumConstantenumConstantannotationListIDENTargumentsclassBodyenumClassScopeDeclarationsSEMIclassScopeDeclarationsannotationTypeDeclarationATINTERFACEIDENTannotationBodyannotationBodyLCURLYannotationScopeDeclarationsRCURLYannotationScopeDeclarationsmodifierListtypeIDENTLPARENRPARENannotationDefaultValueSEMIclassFieldDeclaratorListSEMItypeDeclarationannotationDefaultValueDEFAULTannotationElementValueDEFAULTdefaultstatementblockASSERTexpr1expressionCOLONexpr2expressionSEMISEMIIFparenthesizedExpressionifStatstatementELSEelseStatstatementFORLPARENforInitSEMIforConditionSEMIforUpdaterRPARENstatementlocalModifierListtypeIDENTCOLONexpressionRPARENstatementWHILEparenthesizedExpressionstatementDOstatementWHILEparenthesizedExpressionSEMITRYblockcatchesfinallyClausefinallyClauseSWITCHparenthesizedExpressionLCURLYswitchBlockLabelsRCURLYSYNCHRONIZEDparenthesizedExpressionblockRETURNexpressionSEMITHROWexpressionSEMIBREAKIDENTSEMICONTINUEIDENTSEMIIDENTCOLONstatementexpressionSEMISEMIASSERTassertCOLON:IFifELSEelseFORforforInitlocalVariableDeclarationexpressionListforConditionexpressionforUpdaterexpressionListWHILEwhileDOdoTRYtrycatchescatchClausecatchClauseCATCHLPARENformalParameterStandardDeclRPARENblockCATCHcatchfinallyClauseFINALLYblockFINALLYfinallySWITCHswitchswitchBlockLabelsswitchCaseLabelsswitchDefaultLabelswitchCaseLabelsswitchCaseLabelsswitchCaseLabelswitchCaseLabelCASEexpressionCOLONblockStatementCASEcaseswitchDefaultLabelDEFAULTCOLONblockStatementRETURNreturnTHROWthrowBREAKbreakCONTINUEcontinuequalifiedIdentExpressionqualifiedIdentifierarrayDeclaratorDOTCLASSargumentsouterDotDOTCLASSgenericTypeArgumentListSimplifiedSuperSUPERargumentsSUPERinnerDotDOTIDENTargumentsIDENTargumentsTHISSuperSUPERargumentsinnerNewExpressionTHISthisinnerNewExpressionNEWgenericTypeArgumentListSimplifiedIDENTargumentsclassBodyDEC--unaryExpressionNotPlusMinusNOTunaryExpressionLOGICAL_NOTunaryExpressionLPARENtypeRPARENunaryExpressionpostfixedExpressionNOT~LOGICAL_NOT!STAR*DIV/MOD%SHIFT_LEFT<<LESS_OR_EQUAL<=GREATER_OR_EQUAL>=INSTANCEOFinstanceofEQUAL==NOT_EQUAL!=XOR^OR|LOGICAL_AND&&LOGICAL_OR||annotationElementValueArrayInitializerLCURLYannotationElementValueCOMMAannotationElementValueCOMMARCURLYpackageDeclarationPACKAGEqualifiedIdentifierSEMIPACKAGEpackageimportDeclarationIMPORTSTATICqualifiedIdentifierDOTSTARSEMIIMPORTimportDOTSTAR.*typeDeclstypeDeclarationSEMI \ No newline at end of file diff --git a/shared/bgf/java-5-jls-impl.bgf b/shared/bgf/java-5-jls-impl.bgf new file mode 100644 index 00000000..442fd28e --- /dev/null +++ b/shared/bgf/java-5-jls-impl.bgf @@ -0,0 +1,3748 @@ + + + + CompilationUnit + + NormalClassDeclaration + + + + class + + + Identifier + + + + + TypeParameters + + + + + + + + + extends + + + Type + + + + + + + + + + + implements + + + TypeList + + + + + + + ClassBody + + + + + + ExplicitGenericInvocation + + + + NonWildcardTypeArguments + + + ExplicitGenericInvocationSuffix + + + + + + InterfaceDeclaration + + NormalInterfaceDeclaration + + + + InterfaceDeclaration + + AnnotationTypeDeclaration + + + + Statement + + Block + + + + Statement + + + + assert + + + Expression + + + + + + + : + + + Expression + + + + + + + ; + + + + + + Statement + + + + if + + + ParExpression + + + Statement + + + + + + + else + + + Statement + + + + + + + + + + Statement + + + + for + + + ( + + + ForControl + + + ) + + + Statement + + + + + + Statement + + + + while + + + ParExpression + + + Statement + + + + + + Statement + + + + do + + + Statement + + + while + + + ParExpression + + + ; + + + + + + Statement + + + + try + + + Block + + + + + Catches + + + + + + + Catches + + + + + finally + + + Block + + + + + + + + + + Statement + + + + switch + + + ParExpression + + + { + + + SwitchBlockStatementGroups + + + } + + + + + + Statement + + + + synchronized + + + ParExpression + + + Block + + + + + + Statement + + + + return + + + + + Expression + + + + + ; + + + + + + Statement + + + + throw + + + Expression + + + ; + + + + + + Statement + + + + break + + + + + Identifier + + + + + ; + + + + + + Statement + + + + continue + + + + + Identifier + + + + + ; + + + + + + Statement + + ; + + + + Statement + + + + StatementExpression + + + ; + + + + + + Statement + + + + Identifier + + + : + + + Statement + + + + + + Annotations + + + + Annotation + + + + + Annotations + + + + + + + + ElementValue + + ConditionalExpression + + + + ElementValue + + Annotation + + + + ElementValue + + ElementValueArrayInitializer + + + + TypeParameter + + + + Identifier + + + + + + + extends + + + Bound + + + + + + + + + + CatchClause + + + + catch + + + ( + + + FormalParameter + + + ) + + + Block + + + + + + ClassCreatorRest + + + + Arguments + + + + + ClassBody + + + + + + + + ClassBodyDeclaration + + ; + + + + ClassBodyDeclaration + + + + + + static + + + + + Block + + + + + + ClassBodyDeclaration + + + + + + Modifier + + + + + MemberDecl + + + + + + BlockStatement + + LocalVariableDeclarationStatement + + + + BlockStatement + + ClassOrInterfaceDeclaration + + + + BlockStatement + + + + + + + + Identifier + + + : + + + + + + + Statement + + + + + + Annotation + + + + @ + + + QualifiedIdentifier + + + + + + + ( + + + + + + + Identifier + + + = + + + + + + + ElementValue + + + ) + + + + + + + + + + SwitchBlockStatementGroups + + + + SwitchBlockStatementGroup + + + + + + EnumConstant + + + + Annotations + + + Identifier + + + + + Arguments + + + + + + + ClassBody + + + + + + + + QualifiedIdentifier + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + + ConstantDeclaratorsRest + + + + ConstantDeclaratorRest + + + + + + + , + + + ConstantDeclarator + + + + + + + + + + AnnotationTypeDeclaration + + + + @ + + + interface + + + Identifier + + + AnnotationTypeBody + + + + + + NonWildcardTypeArguments + + + + < + + + TypeList + + + > + + + + + + Expressions + + + + + + , + + + StatementExpression + + + + + + + + Expression3 + + + + PrefixOp + + + Expression3 + + + + + + Expression3 + + + + ( + + + + + Expression + + + Type + + + + + ) + + + Expression3 + + + + + + Expression3 + + + + Primary + + + + + Selector + + + + + + + PostfixOp + + + + + + + + BlockStatements + + + + BlockStatement + + + + + + IdentifierSuffix + + + + [ + + + + + + + ] + + + + + + + [ + + + ] + + + + + + + . + + + class + + + + + + + Expression + + + ] + + + + + + + + + + IdentifierSuffix + + Arguments + + + + IdentifierSuffix + + + + . + + + + + class + + + ExplicitGenericInvocation + + + this + + + + + super + + + Arguments + + + + + + + new + + + + + NonWildcardTypeArguments + + + + + InnerCreator + + + + + + + + + + InterfaceMethodDeclaratorRest + + + + FormalParameters + + + + + + + [ + + + ] + + + + + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + ; + + + + + + FormalParameterDeclsRest + + + + VariableDeclaratorId + + + + + + + , + + + FormalParameterDecls + + + + + + + + + + FormalParameterDeclsRest + + + + ... + + + VariableDeclaratorId + + + + + + AssignmentOperator + + = + + + + AssignmentOperator + + += + + + + AssignmentOperator + + -= + + + + AssignmentOperator + + *= + + + + AssignmentOperator + + /= + + + + AssignmentOperator + + &= + + + + AssignmentOperator + + |= + + + + AssignmentOperator + + ^= + + + + AssignmentOperator + + %= + + + + AssignmentOperator + + <<= + + + + AssignmentOperator + + >>= + + + + AssignmentOperator + + >>>= + + + + ParExpression + + + + ( + + + Expression + + + ) + + + + + + AnnotationTypeElementDeclarations + + AnnotationTypeElementDeclaration + + + + AnnotationTypeElementDeclarations + + + + AnnotationTypeElementDeclarations + + + AnnotationTypeElementDeclaration + + + + + + VariableDeclaratorsRest + + + + VariableDeclaratorRest + + + + + + + , + + + VariableDeclarator + + + + + + + + + + ForControl + + ForVarControl + + + + ForControl + + + + ForInit + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + + + + VariableDeclarator + + + + Identifier + + + VariableDeclaratorRest + + + + + + ConstantExpression + + Expression + + + + SwitchLabel + + + + case + + + ConstantExpression + + + : + + + + + + SwitchLabel + + + + case + + + EnumConstantName + + + : + + + + + + SwitchLabel + + + + default + + + : + + + + + + ElementValues + + + + ElementValue + + + + + + + , + + + ElementValues + + + + + + + + + + InterfaceMemberDecl + + InterfaceMethodOrFieldDecl + + + + InterfaceMemberDecl + + InterfaceGenericMethodDecl + + + + InterfaceMemberDecl + + + + void + + + Identifier + + + VoidInterfaceMethodDeclaratorRest + + + + + + InterfaceMemberDecl + + InterfaceDeclaration + + + + InterfaceMemberDecl + + ClassDeclaration + + + + AnnotationConstantRest + + VariableDeclarators + + + + QualifiedIdentifierList + + + + QualifiedIdentifier + + + + + + + , + + + QualifiedIdentifier + + + + + + + + + + GenericMethodOrConstructorRest + + + + + + Type + + + void + + + + + Identifier + + + MethodDeclaratorRest + + + + + + GenericMethodOrConstructorRest + + + + Identifier + + + ConstructorDeclaratorRest + + + + + + ArrayCreatorRest + + + + [ + + + + + + + ] + + + + + + + [ + + + ] + + + + + + + ArrayInitializer + + + + + + + Expression + + + ] + + + + + + + [ + + + Expression + + + ] + + + + + + + + + + + [ + + + ] + + + + + + + + + + + + + + Type + + + + Identifier + + + + + TypeArguments + + + + + + + + + . + + + Identifier + + + + + TypeArguments + + + + + + + + + + + + + [ + + + ] + + + + + + + + + + Type + + BasicType + + + + FormalParameters + + + + ( + + + + + FormalParameterDecls + + + + + ) + + + + + + TypeList + + + + Type + + + + + + + , + + + Type + + + + + + + + + + Selector + + + + . + + + Identifier + + + + + Arguments + + + + + + + + Selector + + + + . + + + ExplicitGenericInvocation + + + + + + Selector + + + + . + + + this + + + + + + Selector + + + + . + + + super + + + SuperSuffix + + + + + + Selector + + + + . + + + new + + + + + NonWildcardTypeArguments + + + + + InnerCreator + + + + + + Selector + + + + Expression + + + + + + VoidInterfaceMethodDeclaratorRest + + + + FormalParameters + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + ; + + + + + + InterfaceBodyDeclaration + + ; + + + + InterfaceBodyDeclaration + + + + + + Modifier + + + + + InterfaceMemberDecl + + + + + + MethodDeclaratorRest + + + + FormalParameters + + + + + + + [ + + + ] + + + + + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + + + MethodBody + + + ; + + + + + + + + EnumConstants + + EnumConstant + + + + EnumConstants + + + + EnumConstants + + + , + + + EnumConstant + + + + + + VariableDeclaratorRest + + + + + + + + [ + + + ] + + + + + + + + + + + = + + + VariableInitializer + + + + + + + + + + MethodOrFieldRest + + VariableDeclaratorRest + + + + MethodOrFieldRest + + MethodDeclaratorRest + + + + Modifier + + Annotation + + + + Modifier + + public + + + + Modifier + + protected + + + + Modifier + + private + + + + Modifier + + static + + + + Modifier + + abstract + + + + Modifier + + final + + + + Modifier + + native + + + + Modifier + + synchronized + + + + Modifier + + transient + + + + Modifier + + volatile + + + + Modifier + + strictfp + + + + Block + + + + { + + + BlockStatements + + + } + + + + + + PostfixOp + + ++ + + + + PostfixOp + + -- + + + + ForInit + + + + StatementExpression + + + Expressions + + + + + + EnumDeclaration + + + + enum + + + Identifier + + + + + + + implements + + + TypeList + + + + + + + EnumBody + + + + + + VariableDeclarators + + + + VariableDeclarator + + + + + + + , + + + VariableDeclarator + + + + + + + + + + Primary + + ParExpression + + + + Primary + + + + NonWildcardTypeArguments + + + + + ExplicitGenericInvocationSuffix + + + + + this + + + Arguments + + + + + + + + + + Primary + + + + this + + + + + Arguments + + + + + + + + Primary + + + + super + + + SuperSuffix + + + + + + Primary + + Literal + + + + Primary + + + + new + + + Creator + + + + + + Primary + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + IdentifierSuffix + + + + + + + + Primary + + + + BasicType + + + + + + + [ + + + ] + + + + + + + . + + + class + + + + + + Primary + + + + void + + + . + + + class + + + + + + Expression2Rest + + + + + + InfixOp + + + Expression3 + + + + + + + + Expression2Rest + + + + instanceof + + + Type + + + + + + VariableInitializer + + ArrayInitializer + + + + VariableInitializer + + Expression + + + + Literal + + IntegerLiteral + + + + Literal + + FloatingPointLiteral + + + + Literal + + CharacterLiteral + + + + Literal + + StringLiteral + + + + Literal + + BooleanLiteral + + + + Literal + + NullLiteral + + + + ExplicitGenericInvocationSuffix + + + + super + + + SuperSuffix + + + + + + ExplicitGenericInvocationSuffix + + + + Identifier + + + Arguments + + + + + + ImportDeclaration + + + + import + + + + + static + + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + + + . + + + * + + + + + + + ; + + + + + + BasicType + + byte + + + + BasicType + + short + + + + BasicType + + char + + + + BasicType + + int + + + + BasicType + + long + + + + BasicType + + float + + + + BasicType + + double + + + + BasicType + + boolean + + + + GenericMethodOrConstructorDecl + + + + TypeParameters + + + GenericMethodOrConstructorRest + + + + + + ConstantDeclarator + + + + Identifier + + + ConstantDeclaratorRest + + + + + + ClassBody + + + + { + + + + + ClassBodyDeclaration + + + + + } + + + + + + MemberDecl + + GenericMethodOrConstructorDecl + + + + MemberDecl + + MethodOrFieldDecl + + + + MemberDecl + + + + void + + + Identifier + + + VoidMethodDeclaratorRest + + + + + + MemberDecl + + + + Identifier + + + ConstructorDeclaratorRest + + + + + + MemberDecl + + InterfaceDeclaration + + + + MemberDecl + + ClassDeclaration + + + + SwitchBlockStatementGroup + + + + SwitchLabel + + + BlockStatements + + + + + + Catches + + + + CatchClause + + + + + CatchClause + + + + + + + + InterfaceMethodOrFieldRest + + + + ConstantDeclaratorsRest + + + ; + + + + + + InterfaceMethodOrFieldRest + + InterfaceMethodDeclaratorRest + + + + Expression1Rest + + + + ? + + + Expression + + + : + + + Expression1 + + + + + + TypeArguments + + + + < + + + TypeArgument + + + + + + + , + + + TypeArgument + + + + + + + > + + + + + + Expression + + + + Expression1 + + + + + + + AssignmentOperator + + + Expression1 + + + + + + + + + + ConditionalExpression + + + + Expression2 + + + Expression1Rest + + + + + + Creator + + + + + + NonWildcardTypeArguments + + + + + CreatedName + + + + + ArrayCreatorRest + + + ClassCreatorRest + + + + + + + + InfixOp + + || + + + + InfixOp + + && + + + + InfixOp + + | + + + + InfixOp + + ^ + + + + InfixOp + + & + + + + InfixOp + + == + + + + InfixOp + + != + + + + InfixOp + + < + + + + InfixOp + + > + + + + InfixOp + + <= + + + + InfixOp + + >= + + + + InfixOp + + << + + + + InfixOp + + >> + + + + InfixOp + + >>> + + + + InfixOp + + + + + + + InfixOp + + - + + + + InfixOp + + * + + + + InfixOp + + / + + + + InfixOp + + % + + + + ClassOrInterfaceDeclaration + + + + + + Modifier + + + + + + + ClassDeclaration + + + InterfaceDeclaration + + + + + + + + ConstructorDeclaratorRest + + + + FormalParameters + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + MethodBody + + + + + + InterfaceMethodOrFieldDecl + + + + Type + + + Identifier + + + InterfaceMethodOrFieldRest + + + + + + ClassDeclaration + + NormalClassDeclaration + + + + ClassDeclaration + + EnumDeclaration + + + + MethodOrFieldDecl + + + + Type + + + Identifier + + + MethodOrFieldRest + + + + + + InnerCreator + + + + Identifier + + + ClassCreatorRest + + + + + + PrefixOp + + ++ + + + + PrefixOp + + -- + + + + PrefixOp + + ! + + + + PrefixOp + + ~ + + + + PrefixOp + + + + + + + PrefixOp + + - + + + + CreatedName + + + + Identifier + + + + + NonWildcardTypeArguments + + + + + + + + + . + + + Identifier + + + + + NonWildcardTypeArguments + + + + + + + + + + + + TypeDeclaration + + ClassOrInterfaceDeclaration + + + + TypeDeclaration + + ; + + + + FormalParameterDecls + + + + + + final + + + + + Annotations + + + + + Type + + + FormalParameterDeclsRest + + + + + + + + ConstantDeclaratorRest + + + + + + + + [ + + + ] + + + + + + + = + + + VariableInitializer + + + + + + StatementExpression + + Expression + + + + Arguments + + + + ( + + + + + + + Expression + + + + + + + , + + + Expression + + + + + + + + + + + ) + + + + + + ElementValueArrayInitializer + + + + { + + + + + ElementValues + + + + + + + , + + + + + } + + + + + + VariableDeclaratorId + + + + Identifier + + + + + + + [ + + + ] + + + + + + + + + + AnnotationMethodRest + + + + ( + + + ) + + + + + + + [ + + + ] + + + + + + + + + DefaultValue + + + + + + + + VoidMethodDeclaratorRest + + + + FormalParameters + + + + + + + throws + + + QualifiedIdentifierList + + + + + + + + + MethodBody + + + ; + + + + + + + + LocalVariableDeclarationStatement + + + + + + final + + + + + Type + + + VariableDeclarators + + + ; + + + + + + Expression1 + + + + Expression2 + + + + + Expression1Rest + + + + + + + + TypeParameters + + + + < + + + TypeParameter + + + + + + + , + + + TypeParameter + + + + + + + > + + + + + + Expression2 + + + + Expression3 + + + + + Expression2Rest + + + + + + + + MethodBody + + Block + + + + ForVarControlRest + + + + VariableDeclaratorsRest + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + + + + ForVarControlRest + + + + : + + + Expression + + + + + + EnumBodyDeclarations + + + + ; + + + + + ClassBodyDeclaration + + + + + + + + DefaultValue + + + + default + + + ElementValue + + + + + + AnnotationMethodOrConstantRest + + + + Identifier + + + AnnotationMethodRest + + + + + + AnnotationMethodOrConstantRest + + AnnotationConstantRest + + + + SuperSuffix + + Arguments + + + + SuperSuffix + + + + . + + + Identifier + + + + + Arguments + + + + + + + + InterfaceGenericMethodDecl + + + + TypeParameters + + + + + Type + + + void + + + + + Identifier + + + InterfaceMethodDeclaratorRest + + + + + + EnumBody + + + + + + + + EnumConstants + + + + + + + , + + + + + + + EnumBodyDeclarations + + + + + + + + + + CompilationUnit + + + + + + + + + + Annotations + + + + + package + + + QualifiedIdentifier + + + ; + + + + + + + + + ImportDeclaration + + + + + + + TypeDeclaration + + + + + + + + InterfaceBody + + + + { + + + + + InterfaceBodyDeclaration + + + + + } + + + + + + EnumConstantName + + Identifier + + + + Bound + + + + Type + + + + + + + & + + + Type + + + + + + + + + + TypeArgument + + Type + + + + TypeArgument + + + + ? + + + + + + + + + extends + + + super + + + + + Type + + + + + + + + + + AnnotationTypeElementRest + + + + Type + + + AnnotationMethodOrConstantRest + + + ; + + + + + + AnnotationTypeElementRest + + ClassDeclaration + + + + AnnotationTypeElementRest + + InterfaceDeclaration + + + + AnnotationTypeElementRest + + EnumDeclaration + + + + AnnotationTypeElementRest + + AnnotationTypeDeclaration + + + + AnnotationTypeElementDeclaration + + + + + + Modifier + + + + + AnnotationTypeElementRest + + + + + + NormalInterfaceDeclaration + + + + interface + + + Identifier + + + + + TypeParameters + + + + + + + + + extends + + + TypeList + + + + + + + InterfaceBody + + + + + + AnnotationTypeBody + + + + { + + + + + AnnotationTypeElementDeclarations + + + + + } + + + + + + ArrayInitializer + + + + { + + + + + + + VariableInitializer + + + + + + + , + + + VariableInitializer + + + + + + + + + , + + + + + + + + + } + + + + + + ForVarControl + + + + + + final + + + + + + + Annotations + + + + + Type + + + Identifier + + + ForVarControlRest + + + + + + ForUpdate + + + + StatementExpression + + + Expressions + + + + + + FormalParameter + + + + + + final + + + + + Type + + + VariableDeclaratorId + + + + + \ No newline at end of file diff --git a/shared/bgf/java-5-jls-read.bgf b/shared/bgf/java-5-jls-read.bgf new file mode 100644 index 00000000..c4a0fed2 --- /dev/null +++ b/shared/bgf/java-5-jls-read.bgf @@ -0,0 +1,5193 @@ + + + + CompilationUnit + + ClassBodyDeclarations + + ClassBodyDeclaration + + + + ClassBodyDeclarations + + + + ClassBodyDeclarations + + + ClassBodyDeclaration + + + + + + NormalClassDeclaration + + + + + + ClassModifiers + + + + + class + + + Identifier + + + + + TypeParameters + + + + + + + Super + + + + + + + Interfaces + + + + + ClassBody + + + + + + PostDecrementExpression + + + + PostfixExpression + + + -- + + + + + + ReferenceTypeList + + ReferenceType + + + + ReferenceTypeList + + + + ReferenceTypeList + + + , + + + ReferenceType + + + + + + PrimitiveType + + NumericType + + + + PrimitiveType + + boolean + + + + InterfaceTypeList + + InterfaceType + + + + InterfaceTypeList + + + + InterfaceTypeList + + + , + + + InterfaceType + + + + + + Statement + + StatementWithoutTrailingSubstatement + + + + Statement + + LabeledStatement + + + + Statement + + IfThenStatement + + + + Statement + + IfThenElseStatement + + + + Statement + + WhileStatement + + + + Statement + + ForStatement + + + + AndExpression + + EqualityExpression + + + + AndExpression + + + + AndExpression + + + & + + + EqualityExpression + + + + + + Annotations + + Annotation + + + + Annotations + + + + Annotations + + + Annotation + + + + + + ConstructorBody + + + + { + + + + + ExplicitConstructorInvocation + + + + + + + BlockStatements + + + + + } + + + + + + TypeParameter + + + + TypeVariable + + + + + TypeBound + + + + + + + + ArgumentList + + Expression + + + + ArgumentList + + + + ArgumentList + + + , + + + Expression + + + + + + MethodName + + Identifier + + + + MethodName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ClassMemberDeclaration + + FieldDeclaration + + + + ClassMemberDeclaration + + MethodDeclaration + + + + ClassMemberDeclaration + + ClassDeclaration + + + + ClassMemberDeclaration + + InterfaceDeclaration + + + + ClassMemberDeclaration + + ; + + + + Assignment + + + + LeftHandSide + + + AssignmentOperator + + + AssignmentExpression + + + + + + Interfaces + + + + implements + + + InterfaceTypeList + + + + + + CatchClause + + + + catch + + + ( + + + FormalParameter + + + ) + + + Block + + + + + + AbstractMethodModifiers + + AbstractMethodModifier + + + + AbstractMethodModifiers + + + + AbstractMethodModifiers + + + AbstractMethodModifier + + + + + + ClassInstanceCreationExpression + + + + new + + + + + TypeArguments + + + + + ClassOrInterfaceType + + + ( + + + + + ArgumentList + + + + + ) + + + + + ClassBody + + + + + + + + ClassInstanceCreationExpression + + + + Primary + + + . + + + new + + + + + TypeArguments + + + + + Identifier + + + + + TypeArguments + + + + + ( + + + + + ArgumentList + + + + + ) + + + + + ClassBody + + + + + + + + TypeName + + Identifier + + + + TypeName + + + + PackageOrTypeName + + + . + + + Identifier + + + + + + InterfaceType + + + + TypeDeclSpecifier + + + + + TypeArguments + + + + + + + + BlockStatement + + LocalVariableDeclarationStatement + + + + BlockStatement + + ClassDeclaration + + + + BlockStatement + + Statement + + + + IfThenStatement + + + + if + + + ( + + + Expression + + + ) + + + Statement + + + + + + Annotation + + NormalAnnotation + + + + Annotation + + MarkerAnnotation + + + + Annotation + + SingleElementAnnotation + + + + SwitchBlockStatementGroups + + SwitchBlockStatementGroup + + + + SwitchBlockStatementGroups + + + + SwitchBlockStatementGroups + + + SwitchBlockStatementGroup + + + + + + EnumConstant + + + + Annotations + + + Identifier + + + + + Arguments + + + + + + + ClassBody + + + + + + + + ClassModifier + + Annotation + + + + ClassModifier + + public + + + + ClassModifier + + protected + + + + ClassModifier + + private + + + + ClassModifier + + abstract + + + + ClassModifier + + static + + + + ClassModifier + + final + + + + ClassModifier + + strictfp + + + + EnumBodyDeclarations + + + + ; + + + + + ClassBodyDeclarations + + + + + + + + SingleTypeImportDeclaration + + + + import + + + TypeName + + + ; + + + + + + AnnotationTypeDeclaration + + + + + + InterfaceModifiers + + + + + @ + + + interface + + + Identifier + + + AnnotationTypeBody + + + + + + ConstantDeclaration + + + + + + ConstantModifiers + + + + + Type + + + VariableDeclarators + + + ; + + + + + + PreIncrementExpression + + + + ++ + + + UnaryExpression + + + + + + ExplicitConstructorInvocation + + + + + + NonWildTypeArguments + + + + + this + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ExplicitConstructorInvocation + + + + + + NonWildTypeArguments + + + + + super + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ExplicitConstructorInvocation + + + + Primary + + + . + + + + + NonWildTypeArguments + + + + + super + + + ( + + + + + ArgumentList + + + + + ) + + + ; + + + + + + ActualTypeArgumentList + + ActualTypeArgument + + + + ActualTypeArgumentList + + + + ActualTypeArgumentList + + + , + + + ActualTypeArgument + + + + + + VariableInitializers + + VariableInitializer + + + + VariableInitializers + + + + VariableInitializers + + + , + + + VariableInitializer + + + + + + DimExpr + + + + [ + + + Expression + + + ] + + + + + + Throws + + + + throws + + + ExceptionTypeList + + + + + + BlockStatements + + BlockStatement + + + + BlockStatements + + + + BlockStatements + + + BlockStatement + + + + + + InterfaceModifiers + + InterfaceModifier + + + + InterfaceModifiers + + + + InterfaceModifiers + + + InterfaceModifier + + + + + + PrimaryNoNewArray + + Literal + + + + PrimaryNoNewArray + + + + Type + + + . + + + class + + + + + + PrimaryNoNewArray + + + + void + + + . + + + class + + + + + + PrimaryNoNewArray + + this + + + + PrimaryNoNewArray + + + + ClassName + + + . + + + this + + + + + + PrimaryNoNewArray + + + + ( + + + Expression + + + ) + + + + + + PrimaryNoNewArray + + ClassInstanceCreationExpression + + + + PrimaryNoNewArray + + FieldAccess + + + + PrimaryNoNewArray + + MethodInvocation + + + + PrimaryNoNewArray + + ArrayAccess + + + + AssignmentOperator + + = + + + + AssignmentOperator + + *= + + + + AssignmentOperator + + /= + + + + AssignmentOperator + + %= + + + + AssignmentOperator + + += + + + + AssignmentOperator + + -= + + + + AssignmentOperator + + <<= + + + + AssignmentOperator + + >>= + + + + AssignmentOperator + + >>>= + + + + AssignmentOperator + + &= + + + + AssignmentOperator + + ^= + + + + AssignmentOperator + + |= + + + + AnnotationTypeElementDeclarations + + AnnotationTypeElementDeclaration + + + + AnnotationTypeElementDeclarations + + + + AnnotationTypeElementDeclarations + + + AnnotationTypeElementDeclaration + + + + + + StatementWithoutTrailingSubstatement + + Block + + + + StatementWithoutTrailingSubstatement + + EmptyStatement + + + + StatementWithoutTrailingSubstatement + + ExpressionStatement + + + + StatementWithoutTrailingSubstatement + + AssertStatement + + + + StatementWithoutTrailingSubstatement + + SwitchStatement + + + + StatementWithoutTrailingSubstatement + + DoStatement + + + + StatementWithoutTrailingSubstatement + + BreakStatement + + + + StatementWithoutTrailingSubstatement + + ContinueStatement + + + + StatementWithoutTrailingSubstatement + + ReturnStatement + + + + StatementWithoutTrailingSubstatement + + SynchronizedStatement + + + + StatementWithoutTrailingSubstatement + + ThrowStatement + + + + StatementWithoutTrailingSubstatement + + TryStatement + + + + AdditionalBound + + + + & + + + InterfaceType + + + + + + FieldDeclaration + + + + + + FieldModifiers + + + + + Type + + + VariableDeclarators + + + ; + + + + + + TypeBound + + + + extends + + + ClassOrInterfaceType + + + + + AdditionalBoundList + + + + + + + + AdditionalBoundList + + + + AdditionalBound + + + AdditionalBoundList + + + + + + AdditionalBoundList + + AdditionalBound + + + + VariableDeclarator + + VariableDeclaratorId + + + + VariableDeclarator + + + + VariableDeclaratorId + + + = + + + VariableInitializer + + + + + + PostfixExpression + + Primary + + + + PostfixExpression + + ExpressionName + + + + PostfixExpression + + PostIncrementExpression + + + + PostfixExpression + + PostDecrementExpression + + + + SwitchLabel + + + + case + + + ConstantExpression + + + : + + + + + + SwitchLabel + + + + case + + + EnumConstantName + + + : + + + + + + SwitchLabel + + + + default + + + : + + + + + + ConstantModifier + + Annotation + + + + ConstantModifier + + public + + + + ConstantModifier + + static + + + + ConstantModifier + + final + + + + FormalParameter + + + + + + VariableModifiers + + + + + Type + + + VariableDeclaratorId + + + + + + PackageName + + Identifier + + + + PackageName + + + + PackageName + + + . + + + Identifier + + + + + + VariableModifiers + + VariableModifier + + + + VariableModifiers + + + + VariableModifiers + + + VariableModifier + + + + + + ConditionalAndExpression + + InclusiveOrExpression + + + + ConditionalAndExpression + + + + ConditionalAndExpression + + + && + + + InclusiveOrExpression + + + + + + MethodModifiers + + MethodModifier + + + + MethodModifiers + + + + MethodModifiers + + + MethodModifier + + + + + + Type + + PrimitiveType + + + + Type + + ReferenceType + + + + EqualityExpression + + RelationalExpression + + + + EqualityExpression + + + + EqualityExpression + + + == + + + RelationalExpression + + + + + + EqualityExpression + + + + EqualityExpression + + + != + + + RelationalExpression + + + + + + InterfaceMemberDeclaration + + ConstantDeclaration + + + + InterfaceMemberDeclaration + + AbstractMethodDeclaration + + + + InterfaceMemberDeclaration + + ClassDeclaration + + + + InterfaceMemberDeclaration + + InterfaceDeclaration + + + + InterfaceMemberDeclaration + + ; + + + + MultiplicativeExpression + + UnaryExpression + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + * + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + / + + + UnaryExpression + + + + + + MultiplicativeExpression + + + + MultiplicativeExpression + + + % + + + UnaryExpression + + + + + + ActualTypeArgument + + ReferenceType + + + + ActualTypeArgument + + Wildcard + + + + ExceptionType + + ClassType + + + + ExceptionType + + TypeVariable + + + + BreakStatement + + + + break + + + + + Identifier + + + + + ; + + + + + + ConstructorModifier + + Annotation + + + + ConstructorModifier + + public + + + + ConstructorModifier + + protected + + + + ConstructorModifier + + private + + + + ElementValuePairs + + ElementValuePair + + + + ElementValuePairs + + + + ElementValuePairs + + + , + + + ElementValuePair + + + + + + SynchronizedStatement + + + + synchronized + + + ( + + + Expression + + + ) + + + Block + + + + + + Literal + + IntegerLiteral + + + + Literal + + FloatingPointLiteral + + + + Literal + + BooleanLiteral + + + + Literal + + CharacterLiteral + + + + Literal + + StringLiteral + + + + Literal + + NullLiteral + + + + ElementValue + + ConditionalExpression + + + + ElementValue + + Annotation + + + + ElementValue + + ElementValueArrayInitializer + + + + Super + + + + extends + + + ClassType + + + + + + ArrayCreationExpression + + + + new + + + PrimitiveType + + + DimExprs + + + + + Dims + + + + + + + + ArrayCreationExpression + + + + new + + + ClassOrInterfaceType + + + DimExprs + + + + + Dims + + + + + + + + ArrayCreationExpression + + + + new + + + PrimitiveType + + + Dims + + + ArrayInitializer + + + + + + ArrayCreationExpression + + + + new + + + ClassOrInterfaceType + + + Dims + + + ArrayInitializer + + + + + + ArrayInitializer + + + + { + + + + + VariableInitializers + + + + + + + , + + + + + } + + + + + + InterfaceModifier + + Annotation + + + + InterfaceModifier + + public + + + + InterfaceModifier + + protected + + + + InterfaceModifier + + private + + + + InterfaceModifier + + abstract + + + + InterfaceModifier + + static + + + + InterfaceModifier + + strictfp + + + + UnaryExpressionNotPlusMinus + + PostfixExpression + + + + UnaryExpressionNotPlusMinus + + + + ~ + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + + + ! + + + UnaryExpression + + + + + + UnaryExpressionNotPlusMinus + + CastExpression + + + + NonWildTypeArguments + + + + < + + + ReferenceTypeList + + + > + + + + + + SwitchBlock + + + + { + + + + + SwitchBlockStatementGroups + + + + + + + SwitchLabels + + + + + } + + + + + + EmptyStatement + + ; + + + + EnumConstants + + EnumConstant + + + + EnumConstants + + + + EnumConstants + + + , + + + EnumConstant + + + + + + LastFormalParameter + + + + + + VariableModifiers + + + + + Type + + + + + ... + + + + + VariableDeclaratorId + + + + + + LastFormalParameter + + FormalParameter + + + + AbstractMethodDeclaration + + + + + + AbstractMethodModifiers + + + + + + + TypeParameters + + + + + ResultType + + + MethodDeclarator + + + + + Throws + + + + + ; + + + + + + IfThenElseStatement + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + Statement + + + + + + EnhancedForStatement + + + + for + + + ( + + + + + VariableModifiers + + + + + Type + + + Identifier + + + : + + + Expression + + + ) + + + Statement + + + + + + ReturnStatement + + + + return + + + + + Expression + + + + + ; + + + + + + Block + + + + { + + + + + BlockStatements + + + + + } + + + + + + ForUpdate + + StatementExpressionList + + + + ForInit + + StatementExpressionList + + + + ForInit + + LocalVariableDeclaration + + + + EnumDeclaration + + + + + + ClassModifiers + + + + + enum + + + Identifier + + + + + Interfaces + + + + + EnumBody + + + + + + VariableDeclarators + + VariableDeclarator + + + + VariableDeclarators + + + + VariableDeclarators + + + , + + + VariableDeclarator + + + + + + ThrowStatement + + + + throw + + + Expression + + + ; + + + + + + ExclusiveOrExpression + + AndExpression + + + + ExclusiveOrExpression + + + + ExclusiveOrExpression + + + ^ + + + AndExpression + + + + + + Primary + + PrimaryNoNewArray + + + + Primary + + ArrayCreationExpression + + + + PackageDeclaration + + + + + + Annotations + + + + + package + + + PackageName + + + ; + + + + + + RelationalExpression + + ShiftExpression + + + + RelationalExpression + + + + RelationalExpression + + + < + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + > + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + <= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + >= + + + ShiftExpression + + + + + + RelationalExpression + + + + RelationalExpression + + + instanceof + + + ReferenceType + + + + + + StatementNoShortIf + + StatementWithoutTrailingSubstatement + + + + StatementNoShortIf + + LabeledStatementNoShortIf + + + + StatementNoShortIf + + IfThenElseStatementNoShortIf + + + + StatementNoShortIf + + WhileStatementNoShortIf + + + + StatementNoShortIf + + ForStatementNoShortIf + + + + WhileStatementNoShortIf + + + + while + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + + + + ExtendsInterfaces + + + + extends + + + InterfaceType + + + + + + ExtendsInterfaces + + + + ExtendsInterfaces + + + , + + + InterfaceType + + + + + + WildcardBounds + + + + extends + + + ReferenceType + + + + + + WildcardBounds + + + + super + + + ReferenceType + + + + + + AbstractMethodModifier + + Annotation + + + + AbstractMethodModifier + + public + + + + AbstractMethodModifier + + abstract + + + + MethodInvocation + + + + MethodName + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + Primary + + + . + + + + + NonWildTypeArguments + + + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + super + + + . + + + + + NonWildTypeArguments + + + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + ClassName + + + . + + + super + + + . + + + + + NonWildTypeArguments + + + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodInvocation + + + + TypeName + + + . + + + NonWildTypeArguments + + + Identifier + + + ( + + + + + ArgumentList + + + + + ) + + + + + + ConstantExpression + + Expression + + + + TypeDeclSpecifier + + TypeName + + + + TypeDeclSpecifier + + + + ClassOrInterfaceType + + + . + + + Identifier + + + + + + ExceptionTypeList + + ExceptionType + + + + ExceptionTypeList + + + + ExceptionTypeList + + + , + + + ExceptionType + + + + + + VariableInitializer + + Expression + + + + VariableInitializer + + ArrayInitializer + + + + StaticInitializer + + + + static + + + Block + + + + + + Finally + + + + finally + + + Block + + + + + + MarkerAnnotation + + + + @ + + + TypeName + + + + + + ConstructorDeclaration + + + + + + ConstructorModifiers + + + + + ConstructorDeclarator + + + + + Throws + + + + + ConstructorBody + + + + + + ElementValuePair + + + + Identifier + + + = + + + ElementValue + + + + + + TypeImportOnDemandDeclaration + + + + import + + + PackageOrTypeName + + + . + + + * + + + ; + + + + + + ArrayAccess + + + + ExpressionName + + + [ + + + Expression + + + ] + + + + + + ArrayAccess + + + + PrimaryNoNewArray + + + [ + + + Expression + + + ] + + + + + + InterfaceMemberDeclarations + + InterfaceMemberDeclaration + + + + InterfaceMemberDeclarations + + + + InterfaceMemberDeclarations + + + InterfaceMemberDeclaration + + + + + + ForStatement + + BasicForStatement + + + + ForStatement + + EnhancedForStatement + + + + PostIncrementExpression + + + + PostfixExpression + + + ++ + + + + + + PackageOrTypeName + + Identifier + + + + PackageOrTypeName + + + + PackageOrTypeName + + + . + + + Identifier + + + + + + AmbiguousName + + Identifier + + + + AmbiguousName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ContinueStatement + + + + continue + + + + + Identifier + + + + + ; + + + + + + ImportDeclaration + + SingleTypeImportDeclaration + + + + ImportDeclaration + + TypeImportOnDemandDeclaration + + + + ImportDeclaration + + SingleStaticImportDeclaration + + + + ImportDeclaration + + StaticImportOnDemandDeclaration + + + + CompilationUnit + + + + + + PackageDeclaration + + + + + + + ImportDeclarations + + + + + + + TypeDeclarations + + + + + + + + ElementValues + + ElementValue + + + + ElementValues + + + + ElementValues + + + , + + + ElementValue + + + + + + SwitchStatement + + + + switch + + + ( + + + Expression + + + ) + + + SwitchBlock + + + + + + Dims + + + + [ + + + ] + + + + + + Dims + + + + Dims + + + [ + + + ] + + + + + + ClassBody + + + + { + + + + + ClassBodyDeclarations + + + + + } + + + + + + AssertStatement + + + + assert + + + Expression + + + ; + + + + + + AssertStatement + + + + assert + + + Expression + + + : + + + Expression + + + ; + + + + + + ClassBodyDeclaration + + ClassMemberDeclaration + + + + ClassBodyDeclaration + + InstanceInitializer + + + + ClassBodyDeclaration + + StaticInitializer + + + + ClassBodyDeclaration + + ConstructorDeclaration + + + + SwitchBlockStatementGroup + + + + SwitchLabels + + + BlockStatements + + + + + + MethodDeclaration + + + + MethodHeader + + + MethodBody + + + + + + PreDecrementExpression + + + + -- + + + UnaryExpression + + + + + + MethodModifier + + Annotation + + + + MethodModifier + + public + + + + MethodModifier + + protected + + + + MethodModifier + + private + + + + MethodModifier + + abstract + + + + MethodModifier + + static + + + + MethodModifier + + final + + + + MethodModifier + + synchronized + + + + MethodModifier + + native + + + + MethodModifier + + strictfp + + + + DoStatement + + + + do + + + Statement + + + while + + + ( + + + Expression + + + ) + + + ; + + + + + + TypeArguments + + + + < + + + ActualTypeArgumentList + + + > + + + + + + ConditionalExpression + + ConditionalOrExpression + + + + ConditionalExpression + + + + ConditionalOrExpression + + + ? + + + Expression + + + : + + + ConditionalExpression + + + + + + ClassOrInterfaceType + + ClassType + + + + ClassOrInterfaceType + + InterfaceType + + + + InstanceInitializer + + Block + + + + TryStatement + + + + try + + + Block + + + Catches + + + + + + TryStatement + + + + try + + + Block + + + + + Catches + + + + + Finally + + + + + + SwitchLabels + + SwitchLabel + + + + SwitchLabels + + + + SwitchLabels + + + SwitchLabel + + + + + + Wildcard + + + + ? + + + + + WildcardBounds + + + + + + + + FormalParameterList + + LastFormalParameter + + + + FormalParameterList + + + + FormalParameters + + + , + + + LastFormalParameter + + + + + + Expression + + AssignmentExpression + + + + StatementExpressionList + + StatementExpression + + + + StatementExpressionList + + + + StatementExpressionList + + + , + + + StatementExpression + + + + + + AdditiveExpression + + MultiplicativeExpression + + + + AdditiveExpression + + + + AdditiveExpression + + + + + + + MultiplicativeExpression + + + + + + AdditiveExpression + + + + AdditiveExpression + + + - + + + MultiplicativeExpression + + + + + + FloatingPointType + + float + + + + FloatingPointType + + double + + + + ExpressionStatement + + + + StatementExpression + + + ; + + + + + + LocalVariableDeclaration + + + + + + VariableModifiers + + + + + Type + + + VariableDeclarators + + + + + + ConstructorDeclarator + + + + + + TypeParameters + + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + InclusiveOrExpression + + ExclusiveOrExpression + + + + InclusiveOrExpression + + + + InclusiveOrExpression + + + | + + + ExclusiveOrExpression + + + + + + ClassType + + + + TypeDeclSpecifier + + + + + TypeArguments + + + + + + + + WhileStatement + + + + while + + + ( + + + Expression + + + ) + + + Statement + + + + + + FormalParameters + + FormalParameter + + + + FormalParameters + + + + FormalParameters + + + , + + + FormalParameter + + + + + + VariableModifier + + final + + + + VariableModifier + + Annotation + + + + ClassDeclaration + + NormalClassDeclaration + + + + ClassDeclaration + + EnumDeclaration + + + + FieldAccess + + + + Primary + + + . + + + Identifier + + + + + + FieldAccess + + + + super + + + . + + + Identifier + + + + + + FieldAccess + + + + ClassName + + + . + + + super + + + . + + + Identifier + + + + + + AssignmentExpression + + ConditionalExpression + + + + AssignmentExpression + + Assignment + + + + BasicForStatement + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + Statement + + + + + + ConditionalOrExpression + + ConditionalAndExpression + + + + ConditionalOrExpression + + + + ConditionalOrExpression + + + || + + + ConditionalAndExpression + + + + + + NormalAnnotation + + + + @ + + + TypeName + + + ( + + + + + ElementValuePairs + + + + + ) + + + + + + ImportDeclarations + + ImportDeclaration + + + + ImportDeclarations + + + + ImportDeclarations + + + ImportDeclaration + + + + + + TypeDeclaration + + ClassDeclaration + + + + TypeDeclaration + + InterfaceDeclaration + + + + TypeDeclaration + + ; + + + + LabeledStatement + + + + Identifier + + + : + + + Statement + + + + + + ExpressionName + + Identifier + + + + ExpressionName + + + + AmbiguousName + + + . + + + Identifier + + + + + + ArrayType + + + + Type + + + [ + + + ] + + + + + + StatementExpression + + Assignment + + + + StatementExpression + + PreIncrementExpression + + + + StatementExpression + + PreDecrementExpression + + + + StatementExpression + + PostIncrementExpression + + + + StatementExpression + + PostDecrementExpression + + + + StatementExpression + + MethodInvocation + + + + StatementExpression + + ClassInstanceCreationExpression + + + + Arguments + + + + ( + + + + + ArgumentList + + + + + ) + + + + + + MethodDeclarator + + + + Identifier + + + ( + + + + + FormalParameterList + + + + + ) + + + + + + MethodDeclarator + + + + MethodDeclarator + + + [ + + + ] + + + + + + VariableDeclaratorId + + Identifier + + + + VariableDeclaratorId + + + + VariableDeclaratorId + + + [ + + + ] + + + + + + IntegralType + + byte + + + + IntegralType + + short + + + + IntegralType + + int + + + + IntegralType + + long + + + + IntegralType + + char + + + + UnaryExpression + + PreIncrementExpression + + + + UnaryExpression + + PreDecrementExpression + + + + UnaryExpression + + + + + + + + UnaryExpression + + + + + + UnaryExpression + + + + - + + + UnaryExpression + + + + + + UnaryExpression + + UnaryExpressionNotPlusMinus + + + + NumericType + + IntegralType + + + + NumericType + + FloatingPointType + + + + AnnotationTypeBody + + + + { + + + + + AnnotationTypeElementDeclarations + + + + + } + + + + + + LeftHandSide + + ExpressionName + + + + LeftHandSide + + FieldAccess + + + + LeftHandSide + + ArrayAccess + + + + IfThenElseStatementNoShortIf + + + + if + + + ( + + + Expression + + + ) + + + StatementNoShortIf + + + else + + + StatementNoShortIf + + + + + + LocalVariableDeclarationStatement + + + + LocalVariableDeclaration + + + ; + + + + + + CastExpression + + + + ( + + + PrimitiveType + + + + + Dims + + + + + ) + + + UnaryExpression + + + + + + CastExpression + + + + ( + + + ReferenceType + + + ) + + + UnaryExpressionNotPlusMinus + + + + + + ShiftExpression + + AdditiveExpression + + + + ShiftExpression + + + + ShiftExpression + + + << + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >> + + + AdditiveExpression + + + + + + ShiftExpression + + + + ShiftExpression + + + >>> + + + AdditiveExpression + + + + + + FieldModifiers + + FieldModifier + + + + FieldModifiers + + + + FieldModifiers + + + FieldModifier + + + + + + MethodBody + + Block + + + + MethodBody + + ; + + + + TypeVariable + + Identifier + + + + DefaultValue + + + + default + + + ElementValue + + + + + + Catches + + CatchClause + + + + Catches + + + + Catches + + + CatchClause + + + + + + ResultType + + Type + + + + ResultType + + void + + + + ConstructorModifiers + + ConstructorModifier + + + + ConstructorModifiers + + + + ConstructorModifiers + + + ConstructorModifier + + + + + + StaticImportOnDemandDeclaration + + + + import + + + static + + + TypeName + + + . + + + * + + + ; + + + + + + EnumBody + + + + + + + + EnumConstants + + + + + + + , + + + + + + + EnumBodyDeclarations + + + + + + + + + + ReferenceType + + ClassOrInterfaceType + + + + ReferenceType + + TypeVariable + + + + ReferenceType + + ArrayType + + + + ClassModifiers + + ClassModifier + + + + ClassModifiers + + + + ClassModifiers + + + ClassModifier + + + + + + ForStatementNoShortIf + + + + for + + + ( + + + + + ForInit + + + + + ; + + + + + Expression + + + + + ; + + + + + ForUpdate + + + + + ) + + + StatementNoShortIf + + + + + + MethodHeader + + + + + + MethodModifiers + + + + + + + TypeParameters + + + + + ResultType + + + MethodDeclarator + + + + + Throws + + + + + + + + LabeledStatementNoShortIf + + + + Identifier + + + : + + + StatementNoShortIf + + + + + + InterfaceBody + + + + { + + + + + InterfaceMemberDeclarations + + + + + } + + + + + + ConstantModifiers + + ConstantModifier + + + + ConstantModifiers + + + + ConstantModifier + + + ConstantModifiers + + + + + + SingleElementAnnotation + + + + @ + + + TypeName + + + ( + + + ElementValue + + + ) + + + + + + EnumConstantName + + Identifier + + + + TypeDeclarations + + TypeDeclaration + + + + TypeDeclarations + + + + TypeDeclarations + + + TypeDeclaration + + + + + + FieldModifier + + Annotation + + + + FieldModifier + + public + + + + FieldModifier + + protected + + + + FieldModifier + + private + + + + FieldModifier + + static + + + + FieldModifier + + final + + + + FieldModifier + + transient + + + + FieldModifier + + volatile + + + + AnnotationTypeElementDeclaration + + + + + + AbstractMethodModifiers + + + + + Type + + + Identifier + + + ( + + + ) + + + + + Dims + + + + + + + DefaultValue + + + + + ; + + + + + + AnnotationTypeElementDeclaration + + ConstantDeclaration + + + + AnnotationTypeElementDeclaration + + ClassDeclaration + + + + AnnotationTypeElementDeclaration + + InterfaceDeclaration + + + + AnnotationTypeElementDeclaration + + EnumDeclaration + + + + AnnotationTypeElementDeclaration + + AnnotationTypeDeclaration + + + + AnnotationTypeElementDeclaration + + ; + + + + DimExprs + + DimExpr + + + + DimExprs + + + + DimExprs + + + DimExpr + + + + + + SingleStaticImportDeclaration + + + + import + + + static + + + TypeName + + + . + + + Identifier + + + ; + + + + + + InterfaceDeclaration + + NormalInterfaceDeclaration + + + + InterfaceDeclaration + + AnnotationTypeDeclaration + + + + NormalInterfaceDeclaration + + + + + + InterfaceModifiers + + + + + interface + + + Identifier + + + + + ExtendsInterfaces + + + + + InterfaceBody + + + + + + ElementValueArrayInitializer + + + + { + + + + + ElementValues + + + + + + + , + + + + + } + + + + + + TypeParameters + + + + < + + + TypeParameterList + + + > + + + + + + TypeParameterList + + + + TypeParameterList + + + , + + + TypeParameter + + + + + + TypeParameterList + + TypeParameter + + + + ClassName + + Identifier + + + + ClassName + + + + AmbiguousName + + + . + + + Identifier + + + + + \ No newline at end of file diff --git a/shared/bgf/java-5-parr.bgf b/shared/bgf/java-5-parr.bgf new file mode 100644 index 00000000..0550412e --- /dev/null +++ b/shared/bgf/java-5-parr.bgf @@ -0,0 +1 @@ +compilationUnitcompilationUnitannotationspackageDeclarationimportDeclarationtypeDeclarationclassOrInterfaceDeclarationtypeDeclarationpackageDeclarationimportDeclarationtypeDeclarationannotationsannotationannotation@annotationName(elementValuePairselementValue)annotationNameIdentifier.IdentifierIdentifierLetterLetterJavaIDDigitLetterabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZJavaIDDigit0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZelementValuePairselementValuePair,elementValuePairelementValuePairIdentifier=elementValueelementValueconditionalExpressionannotationelementValueArrayInitializerconditionalExpressionconditionalOrExpression?expression:expressionconditionalOrExpressionconditionalAndExpression||conditionalAndExpressionconditionalAndExpressioninclusiveOrExpression&&inclusiveOrExpressioninclusiveOrExpressionexclusiveOrExpression|exclusiveOrExpressionexclusiveOrExpressionandExpression^andExpressionandExpressionequalityExpression&equalityExpressionequalityExpressioninstanceOfExpression==!=instanceOfExpressioninstanceOfExpressionrelationalExpressioninstanceoftyperelationalExpressionshiftExpressionrelationalOpshiftExpressionshiftExpressionadditiveExpressionshiftOpadditiveExpressionadditiveExpressionmultiplicativeExpression+-multiplicativeExpressionmultiplicativeExpressionunaryExpression*/%unaryExpressionunaryExpression+unaryExpression-unaryExpression++unaryExpression--unaryExpressionunaryExpressionNotPlusMinusunaryExpressionNotPlusMinus~unaryExpression!unaryExpressioncastExpressionprimaryselector++--castExpression(primitiveType)unaryExpression(typeexpression)unaryExpressionNotPlusMinusprimitiveTypebooleancharbyteshortintlongfloatdoubletypeclassOrInterfaceType[]primitiveType[]classOrInterfaceTypeIdentifiertypeArguments.IdentifiertypeArgumentstypeArguments<typeArgument,typeArgument>typeArgumenttype?extendssupertypeexpressionconditionalExpressionassignmentOperatorexpressionassignmentOperator=+=-=*=/=&=|=^=%=t1<t2<t3=t1>t2>t3>t4=t1>t2>t3=primaryparExpressionthis.IdentifieridentifierSuffixsupersuperSuffixliteralnewcreatorIdentifier.IdentifieridentifierSuffixprimitiveType[].classvoid.classparExpression(expression)identifierSuffix[].class[expression]arguments.class.explicitGenericInvocation.this.superarguments.newinnerCreatorarguments(expressionList)expressionListexpression,expressionexplicitGenericInvocationnonWildcardTypeArgumentsIdentifierargumentsnonWildcardTypeArguments<typeList>typeListtype,typeinnerCreatornonWildcardTypeArgumentsIdentifierclassCreatorRestclassCreatorRestargumentsclassBodyclassBody{classBodyDeclaration}classBodyDeclaration;staticblockmodifiersmemberDeclblock{blockStatement}blockStatementlocalVariableDeclarationStatementclassOrInterfaceDeclarationstatementlocalVariableDeclarationStatementlocalVariableDeclaration;localVariableDeclarationvariableModifierstypevariableDeclaratorsvariableModifiersvariableModifiervariableModifierfinalannotationvariableDeclaratorsvariableDeclarator,variableDeclaratorvariableDeclaratorvariableDeclaratorId=variableInitializervariableDeclaratorIdIdentifier[]variableInitializerarrayInitializerexpressionarrayInitializer{variableInitializer,variableInitializer,}classOrInterfaceDeclarationclassOrInterfaceModifiersclassDeclarationinterfaceDeclarationclassOrInterfaceModifiersclassOrInterfaceModifierclassOrInterfaceModifierannotationpublicprotectedprivateabstractstaticfinalstrictfpclassDeclarationnormalClassDeclarationenumDeclarationnormalClassDeclarationclassIdentifiertypeParametersextendstypeimplementstypeListclassBodytypeParameters<typeParameter,typeParameter>typeParameterIdentifierextendstypeBoundtypeBoundtype&typeenumDeclarationENUMIdentifierimplementstypeListenumBodyENUMenumenumBody{enumConstants,enumBodyDeclarations}enumConstantsenumConstant,enumConstantenumConstantannotationsIdentifierargumentsclassBodyenumBodyDeclarations;classBodyDeclarationinterfaceDeclarationnormalInterfaceDeclarationannotationTypeDeclarationnormalInterfaceDeclarationinterfaceIdentifiertypeParametersextendstypeListinterfaceBodyinterfaceBody{interfaceBodyDeclaration}interfaceBodyDeclarationmodifiersinterfaceMemberDecl;modifiersmodifiermodifierannotationpublicprotectedprivatestaticabstractfinalnativesynchronizedtransientvolatilestrictfpinterfaceMemberDeclinterfaceMethodOrFieldDeclinterfaceGenericMethodDeclvoidIdentifiervoidInterfaceMethodDeclaratorRestinterfaceDeclarationclassDeclarationinterfaceMethodOrFieldDecltypeIdentifierinterfaceMethodOrFieldRestinterfaceMethodOrFieldRestconstantDeclaratorsRest;interfaceMethodDeclaratorRestconstantDeclaratorsRestconstantDeclaratorRest,constantDeclaratorconstantDeclaratorRest[]=variableInitializerconstantDeclaratorIdentifierconstantDeclaratorRestinterfaceMethodDeclaratorRestformalParameters[]throwsqualifiedNameList;formalParameters(formalParameterDecls)formalParameterDeclsvariableModifierstypeformalParameterDeclsRestformalParameterDeclsRestvariableDeclaratorId,formalParameterDecls...variableDeclaratorIdqualifiedNameListqualifiedName,qualifiedNamequalifiedNameIdentifier.IdentifierinterfaceGenericMethodDecltypeParameterstypevoidIdentifierinterfaceMethodDeclaratorRestvoidInterfaceMethodDeclaratorRestformalParametersthrowsqualifiedNameList;annotationTypeDeclaration@interfaceIdentifierannotationTypeBodyannotationTypeBody{annotationTypeElementDeclaration}annotationTypeElementDeclarationmodifiersannotationTypeElementRestannotationTypeElementResttypeannotationMethodOrConstantRest;normalClassDeclaration;normalInterfaceDeclaration;enumDeclaration;annotationTypeDeclaration;annotationMethodOrConstantRestannotationMethodRestannotationConstantRestannotationMethodRestIdentifier()defaultValuedefaultValuedefaultelementValueannotationConstantRestvariableDeclaratorsstatementblockASSERTexpression:expression;ifparExpressionstatementelsestatementfor(forControl)statementwhileparExpressionstatementdostatementwhileparExpression;tryblockcatchesfinallyblockcatchesfinallyblockswitchparExpression{switchBlockStatementGroups}synchronizedparExpressionblockreturnexpression;throwexpression;breakIdentifier;continueIdentifier;;statementExpression;Identifier:statementASSERTassertforControlenhancedForControlforInit;expression;forUpdateenhancedForControlvariableModifierstypeIdentifier:expressionforInitlocalVariableDeclarationexpressionListforUpdateexpressionListcatchescatchClausecatchClausecatchClausecatch(formalParameter)blockformalParametervariableModifierstypevariableDeclaratorIdswitchBlockStatementGroupsswitchBlockStatementGroupswitchBlockStatementGroupswitchLabelblockStatementswitchLabelcaseconstantExpression:caseenumConstantName:default:constantExpressionexpressionenumConstantNameIdentifierstatementExpressionexpressionmemberDeclgenericMethodOrConstructorDeclmemberDeclarationvoidIdentifiervoidMethodDeclaratorRestIdentifierconstructorDeclaratorRestinterfaceDeclarationclassDeclarationgenericMethodOrConstructorDecltypeParametersgenericMethodOrConstructorRestgenericMethodOrConstructorResttypevoidIdentifiermethodDeclaratorRestIdentifierconstructorDeclaratorRestmethodDeclaratorRestformalParameters[]throwsqualifiedNameListmethodBody;methodBodyblockconstructorDeclaratorRestformalParametersthrowsqualifiedNameListconstructorBodyconstructorBody{explicitConstructorInvocationblockStatement}explicitConstructorInvocationnonWildcardTypeArgumentsthissuperarguments;primary.nonWildcardTypeArgumentssuperarguments;memberDeclarationtypemethodDeclarationfieldDeclarationmethodDeclarationIdentifiermethodDeclaratorRestfieldDeclarationvariableDeclarators;voidMethodDeclaratorRestformalParametersthrowsqualifiedNameListmethodBody;superSuffixarguments.IdentifierargumentsliteralintegerLiteralFloatingPointLiteralCharacterLiteralStringLiteralbooleanLiteralnullintegerLiteralHexLiteralOctalLiteralDecimalLiteralHexLiteral0xXHexDigitIntegerTypeSuffixHexDigit0123456789abcdefABCDEFIntegerTypeSuffixlLOctalLiteral001234567IntegerTypeSuffixDecimalLiteral01234567890123456789IntegerTypeSuffixFloatingPointLiteral0123456789.0123456789ExponentFloatTypeSuffix.0123456789ExponentFloatTypeSuffix0123456789ExponentFloatTypeSuffix0123456789FloatTypeSuffixExponenteE+-0123456789FloatTypeSuffixfFdDCharacterLiteral\'EscapeSequencestring\'EscapeSequence\\btnfr\"\'\\UnicodeEscapeOctalEscapeUnicodeEscape\\uHexDigitHexDigitHexDigitHexDigitOctalEscape\\01230123456701234567\\0123456701234567\\01234567StringLiteral"EscapeSequencestring"booleanLiteraltruefalsecreatornonWildcardTypeArgumentscreatedNameclassCreatorRestcreatedNamearrayCreatorRestclassCreatorRestcreatedNameclassOrInterfaceTypeprimitiveTypearrayCreatorRest[][]arrayInitializerexpression][expression][]selector.Identifierarguments.this.supersuperSuffix.newinnerCreator[expression]shiftOpt1<t2<t1>t2>t3>t1>t2>relationalOpt1<t2=t1>t2=<>elementValueArrayInitializer{elementValue,elementValue,}packageDeclarationpackagequalifiedName;importDeclarationimportstaticqualifiedName.*;typeDeclarationclassOrInterfaceDeclaration; \ No newline at end of file diff --git a/shared/bgf/java-5-stahl.bgf b/shared/bgf/java-5-stahl.bgf new file mode 100644 index 00000000..40d25f18 --- /dev/null +++ b/shared/bgf/java-5-stahl.bgf @@ -0,0 +1 @@ +compilationUnitcompilationUnitpackageDefinitionimportDefinitiontypeDefinitionpackageDefinitionannotationsppackageidentifierSEMIannotationsannotationannotationATidentifierannotationInitAT@identifierIDENTDOTIDENTIDENTabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789$DOT.annotationInitlpLPARENannotationMemberInitCOMMAannotationMemberInitannotationMemberValueRPARENLPAREN(annotationMemberInitIDENTASSIGNannotationMemberValueASSIGN=annotationMemberValueannotationconditionalExpressionannotationMemberArrayInitializerconditionalExpressionlogicalOrExpressionQUESTIONassignmentExpressionCOLONconditionalExpressionlogicalOrExpressionlogicalAndExpressionLORlogicalAndExpressionlogicalAndExpressioninclusiveOrExpressionLANDinclusiveOrExpressioninclusiveOrExpressionexclusiveOrExpressionBORexclusiveOrExpressionexclusiveOrExpressionandExpressionBXORandExpressionandExpressionequalityExpressionBANDequalityExpressionequalityExpressionrelationalExpressionNOT_EQUALEQUALrelationalExpressionrelationalExpressionshiftExpressionLTGTLEGEshiftExpressioninstanceoftypeSpecshiftExpressionadditiveExpressionSLSRBSRadditiveExpressionadditiveExpressionmultiplicativeExpressionPLUSMINUSmultiplicativeExpressionmultiplicativeExpressionunaryExpressionSTARDIVMODunaryExpressionunaryExpressionINCunaryExpressionDECunaryExpressionMINUSunaryExpressionPLUSunaryExpressionunaryExpressionNotPlusMinusINC++DEC--MINUS-PLUS+unaryExpressionNotPlusMinusBNOTunaryExpressionLNOTunaryExpressionlpbLPARENbuiltInTypeSpecRPARENunaryExpressionlpLPARENclassTypeSpecRPARENunaryExpressionNotPlusMinuspostfixExpressionBNOT~LNOT!builtInTypeSpecbuiltInTypelbLBRACKRBRACKbuiltInTypevoidbooleanbytecharshortintfloatlongdoubleLBRACK[RBRACK]RPAREN)classTypeSpecclassOrInterfaceTypelbLBRACKRBRACKclassOrInterfaceTypeIDENTtypeArgumentsDOTIDENTtypeArgumentstypeArgumentsltLTtypeArgumentCOMMAtypeArgumenttypeArgumentsEndLT<typeArgumentqQUESTIONextendsreferenceTypeSpecsuperreferenceTypeSpecreferenceTypeSpecQUESTION?referenceTypeSpecclassTypeSpecarrayTypeSpecarrayTypeSpecbuiltInTypelbLBRACKRBRACKCOMMA,typeArgumentsEndGTSRBSRGT>SR>>BSR>>>postfixExpressionprimaryExpressionDOTthisDOTta1typeArgumentsIDENTlpLPARENargListRPARENsuperlp3LPARENargListRPARENDOTta2typeArgumentsIDENTlpsLPARENargListRPARENDOTnewExpressionlbLBRACKexpressionRBRACKinINCdeDECprimaryExpressionidentPrimaryDOTclassconstanttruefalsenullnewExpressionthissuperLPARENassignmentExpressionRPARENbuiltInTypelbtLBRACKRBRACKDOTclassidentPrimaryta1typeArgumentsIDENTDOTta2typeArgumentsIDENTlpLPARENargListRPARENlbcLBRACKRBRACKargListexpressionListexpressionListexpressionCOMMAexpressionexpressionassignmentExpressionassignmentExpressionconditionalExpressionASSIGNPLUS_ASSIGNMINUS_ASSIGNSTAR_ASSIGNDIV_ASSIGNMOD_ASSIGNSR_ASSIGNBSR_ASSIGNSL_ASSIGNBAND_ASSIGNBXOR_ASSIGNBOR_ASSIGNassignmentExpressionPLUS_ASSIGN+=MINUS_ASSIGN-=STAR_ASSIGN*=DIV_ASSIGN/=MOD_ASSIGN%=SR_ASSIGN>>=BSR_ASSIGN>>>=SL_ASSIGN<<=BAND_ASSIGN&=BXOR_ASSIGN^=BOR_ASSIGN|=constantNUM_INTCHAR_LITERALSTRING_LITERALNUM_FLOATNUM_LONGNUM_DOUBLENUM_INT...0123456789EXPONENTf1FLOAT_SUFFIX0xXHEX_DIGIT0123456789012345671234567890123456789lL.0123456789EXPONENTf2FLOAT_SUFFIXEXPONENTf3FLOAT_SUFFIXf4FLOAT_SUFFIXEXPONENTeE+-0123456789FLOAT_SUFFIXfFdDHEX_DIGIT0123456789ABCDEFabcdefCHAR_LITERAL\'ESCstring\'ESC\\nrtbf"\'\\uHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGIT01230123456701234567456701234567STRING_LITERAL"ESCstring"NUM_FLOAT.0123456789EXPONENTfF00123456789.EXPONENTfF1234567890123456789.0123456789EXPONENTfFEXPONENTNUM_LONG1234567890123456789lLNUM_DOUBLE.0123456789EXPONENTdD00123456789.EXPONENTdD1234567890123456789.0123456789EXPONENTdDEXPONENTnewExpressionnewtypeArgumentstypeLPARENargListRPARENclassBlocknewArrayDeclaratorarrayInitializertypeclassOrInterfaceTypebuiltInTypeclassBlockLCURLYclassFieldSEMIRCURLYLCURLY{classFieldmodsmodifiersitinnerTypeDeftptypeParametershctorHeadsconstructorBodymdmemberDefstatics3compoundStatements4compoundStatementmodifiersmodifierannotationmodifierprivatepublicprotectedstatictransientfinalabstractnativethreadsafesynchronizedvolatilestrictfpinnerTypeDefedenumDefinitioncdclassDefinitionidinterfaceDefinitionadannotationTypeDefinitionenumDefinitionENUMIDENTicimplementsClauseebenumBlockENUMenumimplementsClauseiimplementsclassOrInterfaceTypeCOMMAclassOrInterfaceTypeenumBlockLCURLYenumConstCOMMAenumConstCOMMASEMIclassFieldSEMIRCURLYenumConstannotationsIDENTenumConstInitclassBlockenumConstInitlpLPARENargListRPARENSEMI;RCURLY}classDefinitionclassIDENTtptypeParametersscsuperClassClauseicimplementsClausecbclassBlocktypeParametersltLTtypeParameterCOMMAtypeParametertypeArgumentsEndtypeParameterIDENTextendsclassOrInterfaceTypeBANDclassOrInterfaceTypeBAND&superClassClauseextendsclassOrInterfaceTypeinterfaceDefinitioninterfaceIDENTtptypeParametersieinterfaceExtendsibinterfaceBlockinterfaceExtendseextendsclassOrInterfaceTypeCOMMAclassOrInterfaceTypeinterfaceBlockLCURLYinterfaceFieldSEMIRCURLYinterfaceFieldmodsmodifiersitinnerTypeDeftptypeParametersmdmemberDefmemberDefttypeSpecIDENTLPARENparamparameterDeclarationListRPARENrtdeclaratorBracketstcthrowsClauseSEMIs2compoundStatementvvariableDefinitionsSEMItypeSpecclassTypeSpecbuiltInTypeSpecparameterDeclarationListparameterDeclarationCOMMAparameterDeclarationparameterDeclarationpmparameterModifierttypeSpecelELLIPSISidIDENTpddeclaratorBracketsparameterModifierfinalannotationELLIPSIS...declaratorBracketslbLBRACKRBRACKthrowsClausethrowsidentifierCOMMAidentifiercompoundStatementlcLCURLYstatementRCURLYstatementcompoundStatementdeclarationSEMIexpressionSEMImmodifiersenumDefinitionclassDefinitionIDENTcCOLONstatementifLPARENexpressionRPARENstatementelsestatementforLPARENparameterDeclarationCOLONexpressionforInitSEMIforCondSEMIforIterRPARENstatementwhileLPARENexpressionRPARENstatementdostatementwhileLPARENexpressionRPARENSEMIbreakIDENTSEMIcontinueIDENTSEMIreturnexpressionSEMIswitchLPARENexpressionRPARENLCURLYcasesGroupRCURLYtryBlockthrowexpressionSEMIsynchronizedLPARENexpressionRPARENcompoundStatementASSERTexpressionCOLONexpressionSEMIsSEMIdeclarationmmodifiersttypeSpecvvariableDefinitionsvariableDefinitionsvariableDeclaratorCOMMAvariableDeclaratorvariableDeclaratoridIDENTddeclaratorBracketsvvarInitializervarInitializerASSIGNinitializerinitializerexpressionarrayInitializerarrayInitializerlcLCURLYinitializerCOMMAinitializerCOMMARCURLYCOLON:forInitdeclarationexpressionListforCondexpressionforIterexpressionListcasesGroupaCasecaseSListaCasecaseexpressiondefaultCOLONcaseSListstatementtryBlocktrycompoundStatementhandlerfinallyClausehandlercatchLPARENparameterDeclarationRPARENcompoundStatementfinallyClausefinallycompoundStatementASSERTassertannotationTypeDefinitionATinterfaceIDENTabannotationBlockannotationBlockLCURLYannotationFieldSEMIRCURLYannotationFieldmodsmodifiersitinnerTypeDeftstypeSpeciIDENTLPARENRPARENdvdefaultValueSEMIvvariableDefinitionsSEMIdefaultValuedefaultannotationMemberValuectorHeadIDENTLPARENparameterDeclarationListRPARENthrowsClauseconstructorBodylcLCURLYexplicitConstructorInvocationstatementRCURLYexplicitConstructorInvocationtypeArgumentsthislp1LPARENargListRPARENSEMIsuperlp2LPARENargListRPARENSEMInewArrayDeclaratorlbLBRACKexpressionRBRACKSTAR*DIV/MOD%SL<<LE<=GE>=NOT_EQUAL!=EQUAL==BXOR^BOR|LAND&&LOR||annotationMemberArrayInitializerlcLCURLYannotationMemberValueCOMMAannotationMemberValueCOMMARCURLYimportDefinitioniimportstaticidentifierStarSEMIidentifierStarIDENTDOTIDENTDOTSTARtypeDefinitionmmodifiersclassDefinitionenumDefinitioninterfaceDefinitionannotationTypeDefinitionSEMI \ No newline at end of file diff --git a/shared/bgf/java-5-studman.bgf b/shared/bgf/java-5-studman.bgf new file mode 100644 index 00000000..e58146ee --- /dev/null +++ b/shared/bgf/java-5-studman.bgf @@ -0,0 +1 @@ +compilationUnitcompilationUnitpackageDefinitionimportDefinitiontypeDefinitionpackageDefinitionannotationsppackageidentifierSEMIannotationsannotationannotationATiidentifierLPARENargsannotationArgumentsRPARENAT@identifierIDENTDOTIDENTIDENTabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789$DOT.LPAREN(annotationArgumentsannotationMemberValueInitializeranntotationMemberValuePairsannotationMemberValueInitializerconditionalExpressionannotationannotationMemberArrayInitializerconditionalExpressionlogicalOrExpressionQUESTIONassignmentExpressionCOLONconditionalExpressionlogicalOrExpressionlogicalAndExpressionLORlogicalAndExpressionlogicalAndExpressioninclusiveOrExpressionLANDinclusiveOrExpressioninclusiveOrExpressionexclusiveOrExpressionBORexclusiveOrExpressionexclusiveOrExpressionandExpressionBXORandExpressionandExpressionequalityExpressionBANDequalityExpressionequalityExpressionrelationalExpressionNOT_EQUALEQUALrelationalExpressionrelationalExpressionshiftExpressionLTGTLEGEshiftExpressioninstanceoftypeSpecshiftExpressionadditiveExpressionSLSRBSRadditiveExpressionadditiveExpressionmultiplicativeExpressionPLUSMINUSmultiplicativeExpressionmultiplicativeExpressionunaryExpressionSTARDIVMODunaryExpressionunaryExpressionINCunaryExpressionDECunaryExpressionMINUSunaryExpressionPLUSunaryExpressionunaryExpressionNotPlusMinusINC++DEC--MINUS-PLUS+unaryExpressionNotPlusMinusBNOTunaryExpressionLNOTunaryExpressionlpbLPARENbuiltInTypeSpecRPARENunaryExpressionlpLPARENclassTypeSpecRPARENunaryExpressionNotPlusMinuspostfixExpressionBNOT~LNOT!builtInTypeSpecbuiltInTypelbLBRACKRBRACKbuiltInTypevoidbooleanbytecharshortintfloatlongdoubleLBRACK[RBRACK]RPAREN)classTypeSpecclassOrInterfaceTypelbLBRACKRBRACKclassOrInterfaceTypeIDENTtypeArgumentsDOTIDENTtypeArgumentstypeArgumentsLTtypeArgumentCOMMAtypeArgumenttypeArgumentsOrParametersEndLT<typeArgumenttypeArgumentSpecwildcardTypetypeArgumentSpecclassTypeSpecbuiltInTypeArraySpecbuiltInTypeArraySpecbuiltInTypelbLBRACKRBRACKwildcardTypeqQUESTIONtypeArgumentBoundsQUESTION?typeArgumentBoundsextendssuperclassOrInterfaceTypeCOMMA,typeArgumentsOrParametersEndGTSRBSRGT>SR>>BSR>>>postfixExpressionprimaryExpressionDOTtypeArgumentsIDENTlpLPARENargListRPARENsuperlp3LPARENargListRPARENDOTtypeArgumentsIDENTlpsLPARENargListRPARENDOTthisDOTnewExpressionlbLBRACKexpressionRBRACKinINCdeDECprimaryExpressionidentPrimaryDOTclassconstanttruefalsenullnewExpressionthissuperLPARENassignmentExpressionRPARENbuiltInTypelbtLBRACKRBRACKDOTclassidentPrimaryta1typeArgumentsIDENTDOTta2typeArgumentsIDENTlpLPARENargListRPARENlbcLBRACKRBRACKargListexpressionListexpressionListexpressionCOMMAexpressionexpressionassignmentExpressionassignmentExpressionconditionalExpressionASSIGNPLUS_ASSIGNMINUS_ASSIGNSTAR_ASSIGNDIV_ASSIGNMOD_ASSIGNSR_ASSIGNBSR_ASSIGNSL_ASSIGNBAND_ASSIGNBXOR_ASSIGNBOR_ASSIGNassignmentExpressionASSIGN=PLUS_ASSIGN+=MINUS_ASSIGN-=STAR_ASSIGN*=DIV_ASSIGN/=MOD_ASSIGN%=SR_ASSIGN>>=BSR_ASSIGN>>>=SL_ASSIGN<<=BAND_ASSIGN&=BXOR_ASSIGN^=BOR_ASSIGN|=constantNUM_INTCHAR_LITERALSTRING_LITERALNUM_FLOATNUM_LONGNUM_DOUBLENUM_INT.0123456789EXPONENTf1FLOAT_SUFFIX..0xXHEX_DIGIT0123456789012345671234567890123456789lL.0123456789EXPONENTf2FLOAT_SUFFIXEXPONENTf3FLOAT_SUFFIXf4FLOAT_SUFFIXEXPONENTeE+-0123456789FLOAT_SUFFIXfFdDHEX_DIGIT0123456789ABCDEFabcdefCHAR_LITERAL\'ESCstring\'ESC\\nrtbf"\'\\uHEX_DIGITHEX_DIGITHEX_DIGITHEX_DIGIT01230123456701234567456701234567STRING_LITERAL"ESCstring"NUM_FLOAT.0123456789EXPONENTfF00123456789.EXPONENTfF1234567890123456789.0123456789EXPONENTfFEXPONENTNUM_LONG1234567890123456789lLNUM_DOUBLE.0123456789EXPONENTdD00123456789.EXPONENTdD1234567890123456789.0123456789EXPONENTdDEXPONENTnewExpressionnewtypeArgumentstypeLPARENargListRPARENclassBlocknewArrayDeclaratorarrayInitializertypeclassOrInterfaceTypebuiltInTypeclassBlockLCURLYclassFieldSEMIRCURLYLCURLY{classFieldmodsmodifierstdtypeDefinitionInternaltptypeParametershctorHeadsconstructorBodyttypeSpecIDENTLPARENparamparameterDeclarationListRPARENrtdeclaratorBracketstcthrowsClauses2compoundStatementSEMIvvariableDefinitionsSEMIstatics3compoundStatements4compoundStatementmodifiersmodifierannotationmodifierprivatepublicprotectedstatictransientfinalabstractnativethreadsafesynchronizedvolatilestrictfptypeDefinitionInternalclassDefinitioninterfaceDefinitionenumDefinitionannotationDefinitionclassDefinitionclassIDENTtptypeParametersscsuperClassClauseicimplementsClausecbclassBlocktypeParametersLTtypeParameterCOMMAtypeParametertypeArgumentsOrParametersEndtypeParameteridIDENTtypeParameterBoundstypeParameterBoundsextendsclassOrInterfaceTypeBANDclassOrInterfaceTypeBAND&superClassClauseextendscclassOrInterfaceTypeimplementsClauseiimplementsclassOrInterfaceTypeCOMMAclassOrInterfaceTypeinterfaceDefinitioninterfaceIDENTtptypeParametersieinterfaceExtendsibinterfaceBlockinterfaceExtendseextendsclassOrInterfaceTypeCOMMAclassOrInterfaceTypeinterfaceBlockLCURLYinterfaceFieldSEMIRCURLYinterfaceFieldmodsmodifierstdtypeDefinitionInternaltptypeParametersttypeSpecIDENTLPARENparamparameterDeclarationListRPARENrtdeclaratorBracketstcthrowsClauseSEMIvvariableDefinitionsSEMItypeSpecclassTypeSpecbuiltInTypeSpecparameterDeclarationListparameterDeclarationCOMMAparameterDeclarationCOMMAvariableLengthParameterDeclarationvariableLengthParameterDeclarationparameterDeclarationpmparameterModifierttypeSpecidIDENTpddeclaratorBracketsparameterModifierannotationffinalannotationdeclaratorBracketslbLBRACKRBRACKvariableLengthParameterDeclarationpmparameterModifierttypeSpecTRIPLE_DOTidIDENTpddeclaratorBracketsTRIPLE_DOT...throwsClausethrowsidentifierCOMMAidentifierSEMI;variableDefinitionsvariableDeclaratorCOMMAvariableDeclaratorvariableDeclaratoridIDENTddeclaratorBracketsvvarInitializervarInitializerASSIGNinitializerinitializerexpressionarrayInitializerarrayInitializerlcLCURLYinitializerCOMMAinitializerCOMMARCURLYRCURLY}enumDefinitionenumIDENTicimplementsClauseebenumBlockenumBlockLCURLYenumConstantCOMMAenumConstantCOMMASEMIclassFieldSEMIRCURLYenumConstantanannotationsiIDENTLPARENaargListRPARENbenumConstantBlockenumConstantBlockLCURLYenumConstantFieldSEMIRCURLYenumConstantFieldmodsmodifierstdtypeDefinitionInternaltptypeParametersttypeSpecIDENTLPARENparamparameterDeclarationListRPARENrtdeclaratorBracketstcthrowsClauses2compoundStatementSEMIvvariableDefinitionsSEMIs4compoundStatementcompoundStatementlcLCURLYstatementRCURLYstatementcompoundStatementdeclarationSEMIexpressionSEMImmodifiersclassDefinitionIDENTcCOLONstatementifLPARENexpressionRPARENstatementelsestatementforStatementwhileLPARENexpressionRPARENstatementdostatementwhileLPARENexpressionRPARENSEMIbreakIDENTSEMIcontinueIDENTSEMIreturnexpressionSEMIswitchLPARENexpressionRPARENLCURLYcasesGroupRCURLYtryBlockthrowexpressionSEMIsynchronizedLPARENexpressionRPARENcompoundStatementassertexpressionCOLONexpressionSEMIsSEMIdeclarationmmodifiersttypeSpecvvariableDefinitionsCOLON:forStatementfforLPARENtraditionalForClauseforEachClauseRPARENstatementtraditionalForClauseforInitSEMIforCondSEMIforIterforInitdeclarationexpressionListforCondexpressionforIterexpressionListforEachClausepparameterDeclarationCOLONexpressioncasesGroupaCasecaseSListaCasecaseexpressiondefaultCOLONcaseSListstatementtryBlocktrycompoundStatementhandlerfinallyClausehandlercatchLPARENparameterDeclarationRPARENcompoundStatementfinallyClausefinallycompoundStatementannotationDefinitionATinterfaceIDENTabannotationBlockannotationBlockLCURLYannotationFieldSEMIRCURLYannotationFieldmodsmodifierstdtypeDefinitionInternalttypeSpeciIDENTLPARENRPARENrtdeclaratorBracketsdefaultamviannotationMemberValueInitializerSEMIvvariableDefinitionsSEMIctorHeadIDENTLPARENparameterDeclarationListRPARENthrowsClauseconstructorBodylcLCURLYexplicitConstructorInvocationstatementRCURLYexplicitConstructorInvocationtypeArgumentsthislp1LPARENargListRPARENSEMIsuperlp2LPARENargListRPARENSEMInewArrayDeclaratorlbLBRACKexpressionRBRACKSTAR*DIV/MOD%SL<<LE<=GE>=NOT_EQUAL!=EQUAL==BXOR^BOR|LAND&&LOR||annotationMemberArrayInitializerlcLCURLYannotationMemberArrayValueInitializerCOMMAannotationMemberArrayValueInitializerCOMMARCURLYannotationMemberArrayValueInitializerconditionalExpressionannotationanntotationMemberValuePairsannotationMemberValuePairCOMMAannotationMemberValuePairannotationMemberValuePairiIDENTASSIGNvannotationMemberValueInitializerimportDefinitioniimportstaticidentifierStarSEMIidentifierStarIDENTDOTIDENTDOTSTARtypeDefinitionmmodifierstypeDefinitionInternalSEMI \ No newline at end of file diff --git a/shared/bgf/java.j2se-1.2.impl.ext.bgf b/shared/bgf/java.j2se-1.2.impl.ext.bgf deleted file mode 100644 index 97315954..00000000 --- a/shared/bgf/java.j2se-1.2.impl.ext.bgf +++ /dev/null @@ -1,2575 +0,0 @@ - - - - ConstantExpression - - Expression - - - - PrefixOp - - ++ - - - - PrefixOp - - -- - - - - PrefixOp - - ! - - - - PrefixOp - - ~ - - - - PrefixOp - - + - - - - PrefixOp - - - - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - VariableInitializer - - ArrayInitializer - - - - VariableInitializer - - Expression - - - - InterfaceMemberDecl - - InterfaceMethodOrFieldDecl - - - - InterfaceMemberDecl - - - - void - - - Identifier - - - VoidInterfaceMethodDeclaratorRest - - - - - - InterfaceMemberDecl - - ClassOrInterfaceDeclaration - - - - FormalParameter - - - - - - final - - - - - Type - - - VariableDeclaratorId - - - - - - TypeDeclaration - - ClassOrInterfaceDeclaration - - - - TypeDeclaration - - ; - - - - MethodOrFieldDecl - - - - Type - - - Identifier - - - MethodOrFieldRest - - - - - - ConstantDeclaratorRest - - - - BracketsOpt - - - = - - - VariableInitializer - - - - - - StatementExpression - - Expression - - - - InterfaceDeclaration - - - - interface - - - Identifier - - - - - - - extends - - - TypeList - - - - - - - InterfaceBody - - - - - - QualifiedIdentifierList - - - - QualifiedIdentifier - - - - - - - , - - - QualifiedIdentifier - - - - - - - - - - Arguments - - - - ( - - - - - - - Expression - - - - - - - , - - - Expression - - - - - - - - - - - ) - - - - - - Statement - - Block - - - - Statement - - - - if - - - ParExpression - - - Statement - - - - - - - else - - - Statement - - - - - - - - - - Statement - - - - for - - - ( - - - ForInitOpt - - - ; - - - - - Expression - - - - - ; - - - ForUpdateOpt - - - ) - - - Statement - - - - - - Statement - - - - while - - - ParExpression - - - Statement - - - - - - Statement - - - - do - - - Statement - - - while - - - ParExpression - - - ; - - - - - - Statement - - - - try - - - Block - - - - - Catches - - - - - - - Catches - - - - - finally - - - Block - - - - - - - - - - Statement - - - - switch - - - ParExpression - - - { - - - SwitchBlockStatementGroups - - - } - - - - - - Statement - - - - synchronized - - - ParExpression - - - Block - - - - - - Statement - - - - return - - - - - Expression - - - - - ; - - - - - - Statement - - - - throw - - - Expression - - - ; - - - - - - Statement - - - - break - - - - - Identifier - - - - - - - - Statement - - - - continue - - - - - Identifier - - - - - - - - Statement - - ; - - - - Statement - - ExpressionStatement - - - - Statement - - - - Identifier - - - : - - - Statement - - - - - - VariableDeclaratorId - - - - Identifier - - - BracketsOpt - - - - - - ArgumentsOpt - - - - Arguments - - - - - - Type - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - BracketsOpt - - - - - - Type - - BasicType - - - - ArrayCreatorRest - - - - [ - - - - - - - ] - - - BracketsOpt - - - ArrayInitializer - - - - - - - Expression - - - ] - - - - - - - [ - - - Expression - - - ] - - - - - - - BracketsOpt - - - - - - - - - - Modifier - - public - - - - Modifier - - protected - - - - Modifier - - private - - - - Modifier - - static - - - - Modifier - - abstract - - - - Modifier - - final - - - - Modifier - - native - - - - Modifier - - synchronized - - - - Modifier - - transient - - - - Modifier - - volatile - - - - Modifier - - strictfp - - - - InterfaceMethodOrFieldDecl - - - - Type - - - Identifier - - - InterfaceMethodOrFieldRest - - - - - - ImportDeclaration - - - - import - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - - . - - - * - - - - - - - ; - - - - - - CompilationUnit - - - - - - - - package - - - QualifiedIdentifier - - - ; - - - - - - - - - ImportDeclaration - - - - - - - TypeDeclaration - - - - - - - - VoidMethodDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - BasicType - - byte - - - - BasicType - - short - - - - BasicType - - char - - - - BasicType - - int - - - - BasicType - - long - - - - BasicType - - float - - - - BasicType - - double - - - - BasicType - - boolean - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - Selector - - - - . - - - Identifier - - - - - Arguments - - - - - - - - Selector - - - - . - - - this - - - - - - Selector - - - - . - - - super - - - SuperSuffix - - - - - - Selector - - - - . - - - new - - - InnerCreator - - - - - - Selector - - - - [ - - - Expression - - - ] - - - - - - ModifiersOpt - - - - Modifier - - - - - - ClassCreatorRest - - - - Arguments - - - - - ClassBody - - - - - - - - ConstantDeclarator - - - - Identifier - - - ConstantDeclaratorRest - - - - - - ClassBodyDeclaration - - ; - - - - ClassBodyDeclaration - - - - - - static - - - - - Block - - - - - - ClassBodyDeclaration - - - - ModifiersOpt - - - MemberDecl - - - - - - BlockStatements - - - - BlockStatement - - - - - - VoidInterfaceMethodDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - LocalVariableDeclarationStatement - - - - - - final - - - - - Type - - - VariableDeclarators - - - ; - - - - - - Expression1 - - - - Expression2 - - - - - Expression1Rest - - - - - - - - MemberDecl - - MethodOrFieldDecl - - - - MemberDecl - - - - void - - - Identifier - - - MethodDeclaratorRest - - - - - - MemberDecl - - - - Identifier - - - ConstructorDeclaratorRest - - - - - - MemberDecl - - ClassOrInterfaceDeclaration - - - - Expression3 - - - - PrefixOp - - - Expression3 - - - - - - Expression3 - - - - ( - - - - - Expr - - - Type - - - - - ) - - - Expression3 - - - - - - Expression3 - - - - Primary - - - - - Selector - - - - - - - PostfixOp - - - - - - - - Expression2 - - - - Expression3 - - - - - Expression2Rest - - - - - - - - BracketsOpt - - - - - - [ - - - ] - - - - - - - - MethodOrFieldRest - - VariableDeclaratorRest - - - - MethodOrFieldRest - - MethodDeclaratorRest - - - - MoreStatementExpressions - - - - - - , - - - StatementExpression - - - - - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroup - - - - - - ArrayInitializer - - - - { - - - - - - - VariableInitializer - - - - - - - , - - - VariableInitializer - - - - - - - - - , - - - - - - - - - } - - - - - - Catches - - - - CatchClause - - - - - CatchClause - - - - - - - - InterfaceMethodOrFieldRest - - - - ConstantDeclaratorsRest - - - ; - - - - - - InterfaceMethodOrFieldRest - - InterfaceMethodDeclaratorRest - - - - Expression1Rest - - - - - - ? - - - Expression - - - : - - - Expression1 - - - - - - - - Infixop - - || - - - - Infixop - - && - - - - Infixop - - | - - - - Infixop - - ^ - - - - Infixop - - & - - - - Infixop - - == - - - - Infixop - - != - - - - Infixop - - < - - - - Infixop - - > - - - - Infixop - - <= - - - - Infixop - - >= - - - - Infixop - - << - - - - Infixop - - >> - - - - Infixop - - >>> - - - - Infixop - - + - - - - Infixop - - - - - - - Infixop - - * - - - - Infixop - - / - - - - Infixop - - % - - - - MethodDeclaratorRest - - - - FormalParameters - - - BracketsOpt - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - InterfaceBodyDeclaration - - ; - - - - InterfaceBodyDeclaration - - - - ModifiersOpt - - - InterfaceMemberDecl - - - - - - QualifiedIdentifier - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - ConstantDeclaratorsRest - - - - ConstantDeclaratorRest - - - - - - - , - - - ConstantDeclarator - - - - - - - - - - ClassOrInterfaceDeclaration - - - - ModifiersOpt - - - - - ClassDeclaration - - - InterfaceDeclaration - - - - - - - - SuperSuffix - - Arguments - - - - SuperSuffix - - - - . - - - Identifier - - - - - Arguments - - - - - - - - VariableDeclaratorRest - - - - BracketsOpt - - - - - - - = - - - VariableInitializer - - - - - - - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassOrInterfaceDeclaration - - - - BlockStatement - - - - - - - - Identifier - - - : - - - - - - - Statement - - - - - - InterfaceBody - - - - { - - - - - InterfaceBodyDeclaration - - - - - } - - - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - NullLiteral - - - - Identifier - - IDENTIFIER - - - - Expression - - - - Expression1 - - - - - - - AssignmentOperator - - - Expression1 - - - - - - - - - - SwitchBlockStatementGroup - - - - SwitchLabel - - - BlockStatements - - - - - - Block - - - - { - - - BlockStatements - - - } - - - - - - PostfixOp - - ++ - - - - PostfixOp - - -- - - - - InterfaceMethodDeclaratorRest - - - - FormalParameters - - - BracketsOpt - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - IdentifierSuffix - - - - [ - - - - - - - ] - - - BracketsOpt - - - . - - - class - - - - - - - Expression - - - ] - - - - - - - - - - IdentifierSuffix - - Arguments - - - - IdentifierSuffix - - - - . - - - - - class - - - this - - - - - super - - - Arguments - - - - - - - new - - - InnerCreator - - - - - - - - - - ForUpdate - - - - StatementExpression - - - MoreStatementExpressions - - - - - - ForInit - - - - StatementExpression - - - MoreStatementExpressions - - - - - - ForInit - - - - - - final - - - - - Type - - - VariableDeclarators - - - - - - Creator - - - - QualifiedIdentifier - - - - - ArrayCreatorRest - - - ClassCreatorRest - - - - - - - - AssignmentOperator - - = - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - |= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - ParExpression - - - - ( - - - Expression - - - ) - - - - - - VariableDeclarators - - - - VariableDeclarator - - - - - - - , - - - VariableDeclarator - - - - - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclaration - - - - - } - - - - - - Primary - - - - ( - - - Expression - - - ) - - - - - - Primary - - - - this - - - - - Arguments - - - - - - - - Primary - - - - super - - - SuperSuffix - - - - - - Primary - - Literal - - - - Primary - - - - new - - - Creator - - - - - - Primary - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - IdentifierSuffix - - - - - - - - Primary - - - - BasicType - - - BracketsOpt - - - . - - - class - - - - - - Primary - - - - void - - - . - - - class - - - - - - ConstructorDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - MethodBody - - - - - - FormalParameters - - - - ( - - - - - - - FormalParameter - - - - - - - , - - - FormalParameter - - - - - - - - - - - ) - - - - - - TypeList - - - - Type - - - - - - - , - - - Type - - - - - - - - - - MethodBody - - Block - - - - ClassDeclaration - - - - class - - - Identifier - - - - - - - extends - - - Type - - - - - - - - - - - implements - - - TypeList - - - - - - - ClassBody - - - - - - Expression2Rest - - - - - - Infixop - - - Expression3 - - - - - - - - Expression2Rest - - - - Expression3 - - - instanceof - - - Type - - - - - - VariableDeclaratorsRest - - - - VariableDeclaratorRest - - - - - - - , - - - VariableDeclarator - - - - - - - - - - InnerCreator - - - - Identifier - - - ClassCreatorRest - - - - - - VariableDeclarator - - - - Identifier - - - VariableDeclaratorRest - - - - - diff --git a/shared/bgf/java.j2se-1.2.impl.rec.bgf b/shared/bgf/java.j2se-1.2.impl.rec.bgf deleted file mode 100644 index cbb7a881..00000000 --- a/shared/bgf/java.j2se-1.2.impl.rec.bgf +++ /dev/null @@ -1,2529 +0,0 @@ - - - CompilationUnit - - ConstantExpression - - Expression - - - - PrefixOp - - ++ - - - - PrefixOp - - -- - - - - PrefixOp - - ! - - - - PrefixOp - - ~ - - - - PrefixOp - - + - - - - PrefixOp - - - - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - VariableInitializer - - ArrayInitializer - - - - VariableInitializer - - Expression - - - - InterfaceMemberDecl - - InterfaceMethodOrFieldDecl - - - - InterfaceMemberDecl - - - - void - - - Identifier - - - VoidInterfaceMethodDeclaratorRest - - - - - - InterfaceMemberDecl - - ClassOrInterfaceDeclaration - - - - FormalParameter - - - - - - final - - - - - Type - - - VariableDeclaratorId - - - - - - TypeDeclaration - - ClassOrInterfaceDeclaration - - - - TypeDeclaration - - ; - - - - MethodOrFieldDecl - - - - Type - - - Identifier - - - MethodOrFieldRest - - - - - - ConstantDeclaratorRest - - - - BracketsOpt - - - = - - - VariableInitializer - - - - - - StatementExpression - - Expression - - - - InterfaceDeclaration - - - - interface - - - Identifier - - - - - - - extends - - - TypeList - - - - - - - InterfaceBody - - - - - - QualifiedIdentifierList - - - - QualifiedIdentifier - - - - - - - , - - - QualifiedIdentifier - - - - - - - - - - Arguments - - - - ( - - - - - - - Expression - - - - - - - , - - - Expression - - - - - - - - - - - ) - - - - - - Statement - - Block - - - - Statement - - - - if - - - ParExpression - - - Statement - - - - - - - else - - - Statement - - - - - - - - - - Statement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - Statement - - - - while - - - ParExpression - - - Statement - - - - - - Statement - - - - do - - - Statement - - - while - - - ParExpression - - - ; - - - - - - Statement - - - - try - - - Block - - - - - Catches - - - - - - - Catches - - - - - finally - - - Block - - - - - - - - - - Statement - - - - switch - - - ParExpression - - - { - - - SwitchBlockStatementGroups - - - } - - - - - - Statement - - - - synchronized - - - ParExpression - - - Block - - - - - - Statement - - - - return - - - - - Expression - - - - - ; - - - - - - Statement - - - - throw - - - Expression - - - ; - - - - - - Statement - - - - break - - - - - Identifier - - - - - ; - - - - - - Statement - - - - continue - - - - - Identifier - - - - - ; - - - - - - Statement - - ; - - - - Statement - - ExpressionStatement - - - - Statement - - - - Identifier - - - : - - - Statement - - - - - - VariableDeclaratorId - - - - Identifier - - - BracketsOpt - - - - - - Type - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - BracketsOpt - - - - - - Type - - BasicType - - - - ArrayCreatorRest - - - - [ - - - - - - - ] - - - BracketsOpt - - - ArrayInitializer - - - - - - - Expression - - - ] - - - - - - - [ - - - Expression - - - ] - - - - - - - BracketsOpt - - - - - - - - - - Modifier - - public - - - - Modifier - - protected - - - - Modifier - - private - - - - Modifier - - static - - - - Modifier - - abstract - - - - Modifier - - final - - - - Modifier - - native - - - - Modifier - - synchronized - - - - Modifier - - transient - - - - Modifier - - volatile - - - - Modifier - - strictfp - - - - InterfaceMethodOrFieldDecl - - - - Type - - - Identifier - - - InterfaceMethodOrFieldRest - - - - - - ImportDeclaration - - - - import - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - - . - - - * - - - - - - - ; - - - - - - CompilationUnit - - - - - - - - package - - - QualifiedIdentifier - - - ; - - - - - - - - - ImportDeclaration - - - - - - - TypeDeclaration - - - - - - - - BasicType - - byte - - - - BasicType - - short - - - - BasicType - - char - - - - BasicType - - int - - - - BasicType - - long - - - - BasicType - - float - - - - BasicType - - double - - - - BasicType - - boolean - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - Selector - - - - . - - - Identifier - - - - - Arguments - - - - - - - - Selector - - - - . - - - this - - - - - - Selector - - - - . - - - super - - - SuperSuffix - - - - - - Selector - - - - . - - - new - - - InnerCreator - - - - - - Selector - - - - [ - - - Expression - - - ] - - - - - - ModifiersOpt - - - - Modifier - - - - - - ClassCreatorRest - - - - Arguments - - - - - ClassBody - - - - - - - - ConstantDeclarator - - - - Identifier - - - ConstantDeclaratorRest - - - - - - ClassBodyDeclaration - - ; - - - - ClassBodyDeclaration - - - - - - static - - - - - Block - - - - - - ClassBodyDeclaration - - - - ModifiersOpt - - - MemberDecl - - - - - - BlockStatements - - - - BlockStatement - - - - - - VoidInterfaceMethodDeclaratorRest - - - - FormalParameters - - - BracketsOpt - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - LocalVariableDeclarationStatement - - - - - - final - - - - - Type - - - VariableDeclarators - - - ; - - - - - - Expression1 - - - - Expression2 - - - - - Expression1Rest - - - - - - - - MemberDecl - - MethodOrFieldDecl - - - - MemberDecl - - - - void - - - Identifier - - - MethodDeclaratorRest - - - - - - MemberDecl - - - - Identifier - - - ConstructorDeclaratorRest - - - - - - MemberDecl - - ClassOrInterfaceDeclaration - - - - Expression3 - - - - PrefixOp - - - Expression3 - - - - - - Expression3 - - - - ( - - - - - Expression - - - Type - - - - - ) - - - Expression3 - - - - - - Expression3 - - - - Primary - - - - - Selector - - - - - - - PostfixOp - - - - - - - - Expression2 - - - - Expression3 - - - - - Expression2Rest - - - - - - - - BracketsOpt - - - - - - [ - - - ] - - - - - - - - MethodOrFieldRest - - VariableDeclaratorRest - - - - MethodOrFieldRest - - MethodDeclaratorRest - - - - MoreStatementExpressions - - - - - - , - - - StatementExpression - - - - - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroup - - - - - - ArrayInitializer - - - - { - - - - - - - VariableInitializer - - - - - - - , - - - VariableInitializer - - - - - - - - - , - - - - - - - - - } - - - - - - Catches - - - - CatchClause - - - - - CatchClause - - - - - - - - InterfaceMethodOrFieldRest - - - - ConstantDeclaratorsRest - - - ; - - - - - - InterfaceMethodOrFieldRest - - InterfaceMethodDeclaratorRest - - - - Expression1Rest - - - - - - ? - - - Expression - - - : - - - Expression1 - - - - - - - - Infixop - - || - - - - Infixop - - && - - - - Infixop - - | - - - - Infixop - - ^ - - - - Infixop - - & - - - - Infixop - - == - - - - Infixop - - != - - - - Infixop - - < - - - - Infixop - - > - - - - Infixop - - <= - - - - Infixop - - >= - - - - Infixop - - << - - - - Infixop - - >> - - - - Infixop - - >>> - - - - Infixop - - + - - - - Infixop - - - - - - - Infixop - - * - - - - Infixop - - / - - - - Infixop - - % - - - - MethodDeclaratorRest - - - - FormalParameters - - - BracketsOpt - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - InterfaceBodyDeclaration - - ; - - - - InterfaceBodyDeclaration - - - - ModifiersOpt - - - InterfaceMemberDecl - - - - - - QualifiedIdentifier - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - ConstantDeclaratorsRest - - - - ConstantDeclaratorRest - - - - - - - , - - - ConstantDeclarator - - - - - - - - - - ClassOrInterfaceDeclaration - - - - ModifiersOpt - - - - - ClassDeclaration - - - InterfaceDeclaration - - - - - - - - SuperSuffix - - Arguments - - - - SuperSuffix - - - - . - - - Identifier - - - - - Arguments - - - - - - - - VariableDeclaratorRest - - - - BracketsOpt - - - - - - - = - - - VariableInitializer - - - - - - - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassOrInterfaceDeclaration - - - - BlockStatement - - - - - - - - Identifier - - - : - - - - - - - Statement - - - - - - InterfaceBody - - - - { - - - - - InterfaceBodyDeclaration - - - - - } - - - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - NullLiteral - - - - Expression - - - - Expression1 - - - - - - - AssignmentOperator - - - Expression1 - - - - - - - - - - SwitchBlockStatementGroup - - - - SwitchLabel - - - BlockStatements - - - - - - Block - - - - { - - - BlockStatements - - - } - - - - - - PostfixOp - - ++ - - - - PostfixOp - - -- - - - - InterfaceMethodDeclaratorRest - - - - FormalParameters - - - BracketsOpt - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - IdentifierSuffix - - - - [ - - - - - - - ] - - - BracketsOpt - - - . - - - class - - - - - - - Expression - - - ] - - - - - - - - - - IdentifierSuffix - - Arguments - - - - IdentifierSuffix - - - - . - - - - - class - - - this - - - - - super - - - Arguments - - - - - - - new - - - InnerCreator - - - - - - - - - - ForUpdate - - - - StatementExpression - - - MoreStatementExpressions - - - - - - ForInit - - - - StatementExpression - - - MoreStatementExpressions - - - - - - ForInit - - - - - - final - - - - - Type - - - VariableDeclarators - - - - - - Creator - - - - QualifiedIdentifier - - - - - ArrayCreatorRest - - - ClassCreatorRest - - - - - - - - AssignmentOperator - - = - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - |= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - ParExpression - - - - ( - - - Expression - - - ) - - - - - - VariableDeclarators - - - - VariableDeclarator - - - - - - - , - - - VariableDeclarator - - - - - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclaration - - - - - } - - - - - - Primary - - - - ( - - - Expression - - - ) - - - - - - Primary - - - - this - - - - - Arguments - - - - - - - - Primary - - - - super - - - SuperSuffix - - - - - - Primary - - Literal - - - - Primary - - - - new - - - Creator - - - - - - Primary - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - IdentifierSuffix - - - - - - - - Primary - - - - BasicType - - - BracketsOpt - - - . - - - class - - - - - - Primary - - - - void - - - . - - - class - - - - - - ConstructorDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - MethodBody - - - - - - FormalParameters - - - - ( - - - - - - - FormalParameter - - - - - - - , - - - FormalParameter - - - - - - - - - - - ) - - - - - - TypeList - - - - Type - - - - - - - , - - - Type - - - - - - - - - - MethodBody - - Block - - - - ClassDeclaration - - - - class - - - Identifier - - - - - - - extends - - - Type - - - - - - - - - - - implements - - - TypeList - - - - - - - ClassBody - - - - - - Expression2Rest - - - - - - Infixop - - - Expression3 - - - - - - - - Expression2Rest - - - - instanceof - - - Type - - - - - - InnerCreator - - - - Identifier - - - ClassCreatorRest - - - - - - VariableDeclarator - - - - Identifier - - - VariableDeclaratorRest - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - diff --git a/shared/bgf/java.j2se-1.2.read.ext.bgf b/shared/bgf/java.j2se-1.2.read.ext.bgf deleted file mode 100644 index d4493b5d..00000000 --- a/shared/bgf/java.j2se-1.2.read.ext.bgf +++ /dev/null @@ -1,3889 +0,0 @@ - - - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - InterfaceDeclaration - - - - - - InterfaceModifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - ConstructorBody - - - - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - MethodName - - Identifier - - - - MethodName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - ClassMemberDeclaration - - ClassDeclaration - - - - ClassMemberDeclaration - - InterfaceDeclaration - - - - ClassMemberDeclaration - - ; - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - AbstractMethodModifiers - - AbstractMethodModifier - - - - AbstractMethodModifiers - - - - AbstractMethodModifiers - - - AbstractMethodModifier - - - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - TypeName - - Identifier - - - - TypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - InterfaceType - - TypeName - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassDeclaration - - - - BlockStatement - - Statement - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - ClassModifier - - public - - - - ClassModifier - - protected - - - - ClassModifier - - private - - - - ClassModifier - - abstract - - - - ClassModifier - - static - - - - ClassModifier - - final - - - - ClassModifier - - strictfp - - - - SingleTypeImportDeclaration - - - - import - - - TypeName - - - ; - - - - - - ConstantDeclaration - - - - - - ConstantModifiers - - - - - Type - - - VariableDeclarators - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - Primary - - - . - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ClassTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - InterfaceModifiers - - InterfaceModifier - - - - InterfaceModifiers - - - - InterfaceModifiers - - - InterfaceModifier - - - - - - ClassTypeList - - ClassType - - - - ClassTypeList - - - - ClassTypeList - - - , - - - ClassType - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - - - Type - - - . - - - class - - - - - - PrimaryNoNewArray - - - - void - - - . - - - class - - - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ClassName - - - . - - - this - - - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - FieldDeclaration - - - - - - FieldModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - ExpressionName - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - ConstantModifier - - public - - - - ConstantModifier - - static - - - - ConstantModifier - - final - - - - FormalParameter - - - - - - final - - - - - Type - - - VariableDeclaratorId - - - - - - PackageName - - Identifier - - - - PackageName - - - - PackageName - - - . - - - Identifier - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - MethodModifiers - - MethodModifier - - - - MethodModifiers - - - - MethodModifiers - - - MethodModifier - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - InterfaceMemberDeclaration - - ClassDeclaration - - - - InterfaceMemberDeclaration - - InterfaceDeclaration - - - - InterfaceMemberDeclaration - - ; - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - ConstructorModifier - - public - - - - ConstructorModifier - - protected - - - - ConstructorModifier - - private - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - ClassInstanceCreationExpression - - - - new - - - ClassOrInterfaceType - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - ClassInstanceCreationExpression - - - - Primary - - - . - - - new - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - TypeName - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - Dims - - - ArrayInitializer - - - - - - ArrayCreationExpression - - - - new - - - TypeName - - - Dims - - - ArrayInitializer - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - InterfaceModifier - - public - - - - InterfaceModifier - - protected - - - - InterfaceModifier - - private - - - - InterfaceModifier - - abstract - - - - InterfaceModifier - - static - - - - InterfaceModifier - - strictfp - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - SwitchBlock - - - - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - - - - - - EmptyStatement - - ; - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - MethodInvocation - - - - MethodName - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - ClassName - - - . - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - AbstractMethodDeclaration - - - - - - AbstractMethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - ArrayAccess - - - - ExpressionName - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - Block - - - - - - BlockStatements - - - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - package - - - PackageName - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - AbstractMethodModifier - - public - - - - AbstractMethodModifier - - abstract - - - - ConstantExpression - - Expression - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Finally - - - - finally - - - Block - - - - - - ConstructorDeclaration - - - - - - ConstructorModifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - TypeImportOnDemandDeclaration - - - - import - - - PackageOrTypeName - - - . - - - * - - - ; - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - PackageOrTypeName - - Identifier - - - - PackageOrTypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - AmbiguousName - - Identifier - - - - AmbiguousName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - - - ClassBodyDeclarations - - - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - InstanceInitializer - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - MethodModifier - - public - - - - MethodModifier - - protected - - - - MethodModifier - - private - - - - MethodModifier - - abstract - - - - MethodModifier - - static - - - - MethodModifier - - final - - - - MethodModifier - - synchronized - - - - MethodModifier - - native - - - - MethodModifier - - strictfp - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - ClassOrInterfaceType - - ClassType - - - - ClassOrInterfaceType - - InterfaceType - - - - InstanceInitializer - - Block - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - FormalParameterList - - FormalParameter - - - - FormalParameterList - - - - FormalParameterList - - - , - - - FormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - LocalVariableDeclaration - - - - - - final - - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - SimpleTypeName - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - TypeName - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - ClassDeclaration - - - - - - ClassModifiers - - - - - class - - - Identifier - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - CastExpression - - - - ( - - - PrimitiveType - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - ReferenceType - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ExpressionName - - Identifier - - - - ExpressionName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ArrayType - - - - Type - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - MethodDeclarator - - - - Identifer - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - LeftHandSide - - ExpressionName - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - FieldModifiers - - FieldModifier - - - - FieldModifiers - - - - FieldModifiers - - - FieldModifier - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - ResultType - - Type - - - - ResultType - - void - - - - ConstructorModifiers - - ConstructorModifier - - - - ConstructorModifiers - - - - ConstructorModifiers - - - ConstructorModifier - - - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - ArrayType - - - - ClassModifiers - - ClassModifier - - - - ClassModifiers - - - - ClassModifiers - - - ClassModifier - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - MethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - - - InterfaceMemberDeclarations - - - - - - - - ConstantModifiers - - ConstantModifier - - - - ConstantModifiers - - - - ConstantModifiers - - - ConstantModifer - - - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - FieldAccess - - - - ClassName - - - . - - - super - - - . - - - Identifier - - - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - FieldModifier - - public - - - - FieldModifier - - protected - - - - FieldModifier - - private - - - - FieldModifier - - static - - - - FieldModifier - - final - - - - FieldModifier - - transient - - - - FieldModifier - - volatile - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - diff --git a/shared/bgf/java.j2se-1.2.read.rec.bgf b/shared/bgf/java.j2se-1.2.read.rec.bgf deleted file mode 100644 index a5986851..00000000 --- a/shared/bgf/java.j2se-1.2.read.rec.bgf +++ /dev/null @@ -1,3915 +0,0 @@ - - - CompilationUnit - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - InterfaceDeclaration - - - - - - InterfaceModifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - MethodName - - Identifier - - - - MethodName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - ClassMemberDeclaration - - ClassDeclaration - - - - ClassMemberDeclaration - - InterfaceDeclaration - - - - ClassMemberDeclaration - - ; - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - AbstractMethodModifiers - - AbstractMethodModifier - - - - AbstractMethodModifiers - - - - AbstractMethodModifiers - - - AbstractMethodModifier - - - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - TypeName - - Identifier - - - - TypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - InterfaceType - - TypeName - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassDeclaration - - - - BlockStatement - - Statement - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - ClassModifier - - public - - - - ClassModifier - - protected - - - - ClassModifier - - private - - - - ClassModifier - - abstract - - - - ClassModifier - - static - - - - ClassModifier - - final - - - - ClassModifier - - strictfp - - - - SingleTypeImportDeclaration - - - - import - - - TypeName - - - ; - - - - - - ConstantDeclaration - - - - - - ConstantModifiers - - - - - Type - - - VariableDeclarators - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - Primary - - - . - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ClassTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - InterfaceModifiers - - InterfaceModifier - - - - InterfaceModifiers - - - - InterfaceModifiers - - - InterfaceModifier - - - - - - ClassTypeList - - ClassType - - - - ClassTypeList - - - - ClassTypeList - - - , - - - ClassType - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - - - Type - - - . - - - class - - - - - - PrimaryNoNewArray - - - - void - - - . - - - class - - - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ClassName - - - . - - - this - - - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - FieldDeclaration - - - - - - FieldModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - ExpressionName - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - ConstantModifier - - public - - - - ConstantModifier - - static - - - - ConstantModifier - - final - - - - FormalParameter - - - - - - final - - - - - Type - - - VariableDeclaratorId - - - - - - PackageName - - Identifier - - - - PackageName - - - - PackageName - - - . - - - Identifier - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - MethodModifiers - - MethodModifier - - - - MethodModifiers - - - - MethodModifiers - - - MethodModifier - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - InterfaceMemberDeclaration - - ClassDeclaration - - - - InterfaceMemberDeclaration - - InterfaceDeclaration - - - - InterfaceMemberDeclaration - - ; - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - ConstructorModifier - - public - - - - ConstructorModifier - - protected - - - - ConstructorModifier - - private - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - ClassInstanceCreationExpression - - - - new - - - ClassOrInterfaceType - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - ClassInstanceCreationExpression - - - - Primary - - - . - - - new - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - TypeName - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - Dims - - - ArrayInitializer - - - - - - ArrayCreationExpression - - - - new - - - TypeName - - - Dims - - - ArrayInitializer - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - InterfaceModifier - - public - - - - InterfaceModifier - - protected - - - - InterfaceModifier - - private - - - - InterfaceModifier - - abstract - - - - InterfaceModifier - - static - - - - InterfaceModifier - - strictfp - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - EmptyStatement - - ; - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - MethodInvocation - - - - MethodName - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - ClassName - - - . - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - AbstractMethodDeclaration - - - - - - AbstractMethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - ArrayAccess - - - - ExpressionName - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - package - - - PackageName - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - AbstractMethodModifier - - public - - - - AbstractMethodModifier - - abstract - - - - ConstantExpression - - Expression - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Finally - - - - finally - - - Block - - - - - - ConstructorDeclaration - - - - - - ConstructorModifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - TypeImportOnDemandDeclaration - - - - import - - - PackageOrTypeName - - - . - - - * - - - ; - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - PackageOrTypeName - - Identifier - - - - PackageOrTypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - AmbiguousName - - Identifier - - - - AmbiguousName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - InstanceInitializer - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - MethodModifier - - public - - - - MethodModifier - - protected - - - - MethodModifier - - private - - - - MethodModifier - - abstract - - - - MethodModifier - - static - - - - MethodModifier - - final - - - - MethodModifier - - synchronized - - - - MethodModifier - - native - - - - MethodModifier - - strictfp - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - ClassOrInterfaceType - - ClassType - - - - ClassOrInterfaceType - - InterfaceType - - - - InstanceInitializer - - Block - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - FormalParameterList - - FormalParameter - - - - FormalParameterList - - - - FormalParameterList - - - , - - - FormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - LocalVariableDeclaration - - - - - - final - - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - TypeName - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - ClassDeclaration - - - - - - ClassModifiers - - - - - class - - - Identifier - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - ReferenceType - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ExpressionName - - Identifier - - - - ExpressionName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ArrayType - - - - Type - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - MethodDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - LeftHandSide - - ExpressionName - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - FieldModifiers - - FieldModifier - - - - FieldModifiers - - - - FieldModifiers - - - FieldModifier - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - ResultType - - Type - - - - ResultType - - void - - - - ConstructorModifiers - - ConstructorModifier - - - - ConstructorModifiers - - - - ConstructorModifiers - - - ConstructorModifier - - - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - ArrayType - - - - ClassModifiers - - ClassModifier - - - - ClassModifiers - - - - ClassModifiers - - - ClassModifier - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - MethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - ConstantModifiers - - ConstantModifier - - - - ConstantModifiers - - - - ConstantModifiers - - - ConstantModifier - - - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - FieldAccess - - - - ClassName - - - . - - - super - - - . - - - Identifier - - - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - FieldModifier - - public - - - - FieldModifier - - protected - - - - FieldModifier - - private - - - - FieldModifier - - static - - - - FieldModifier - - final - - - - FieldModifier - - transient - - - - FieldModifier - - volatile - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - ClassName - - Identifier - - - - ClassName - - - - AmbiguousName - - - . - - - Identifier - - - - - diff --git a/shared/bgf/java.j2se-5.0.impl.ext.bgf b/shared/bgf/java.j2se-5.0.impl.ext.bgf deleted file mode 100644 index 527e8761..00000000 --- a/shared/bgf/java.j2se-5.0.impl.ext.bgf +++ /dev/null @@ -1,3673 +0,0 @@ - - - - NormalClassDeclaration - - - - class - - - Identifier - - - - - TypeParameters - - - - - - - - - extends - - - Type - - - - - - - - - - - implements - - - TypeList - - - - - - - ClassBody - - - - - - ExplicitGenericInvocation - - - - NonWildcardTypeArguments - - - ExplicitGenericInvocationSuffix - - - - - - InterfaceDeclaration - - NormalInterfaceDeclaration - - - - InterfaceDeclaration - - AnnotationTypeDeclaration - - - - Statement - - Block - - - - Statement - - - - assert - - - Expression - - - - - - - : - - - Expression - - - - - - - ; - - - - - - Statement - - - - if - - - ParExpression - - - Statement - - - - - - - else - - - Statement - - - - - - - - - - Statement - - - - for - - - ( - - - ForControl - - - ) - - - Statement - - - - - - Statement - - - - while - - - ParExpression - - - Statement - - - - - - Statement - - - - do - - - Statement - - - while - - - ParExpression - - - ; - - - - - - Statement - - - - try - - - Block - - - - - Catches - - - - - - - Catches - - - - - finally - - - Block - - - - - - - - - - Statement - - - - switch - - - ParExpression - - - { - - - SwitchBlockStatementGroups - - - } - - - - - - Statement - - - - synchronized - - - ParExpression - - - Block - - - - - - Statement - - - - return - - - - - Expression - - - - - ; - - - - - - Statement - - - - throw - - - Expression - - - ; - - - - - - Statement - - - - break - - - - - Identifier - - - - - - - - Statement - - - - continue - - - - - Identifier - - - - - - - - Statement - - ; - - - - Statement - - - - StatementExpression - - - ; - - - - - - Statement - - - - Identifier - - - : - - - Statement - - - - - - Annotations - - - - Annotation - - - - - Annotations - - - - - - - - ElementValue - - ConditionalExpression - - - - ElementValue - - Annotation - - - - ElementValue - - ElementValueArrayInitializer - - - - TypeParameter - - - - Identifier - - - - - - - extends - - - Bound - - - - - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - ClassCreatorRest - - - - Arguments - - - - - ClassBody - - - - - - - - ClassBodyDeclaration - - ; - - - - ClassBodyDeclaration - - - - - - static - - - - - Block - - - - - - ClassBodyDeclaration - - - - - - Modifier - - - - - MemberDecl - - - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassOrInterfaceDeclaration - - - - BlockStatement - - - - - - - - Identifier - - - : - - - - - - - Statement - - - - - - Annotation - - - - @ - - - TypeName - - - - - - - ( - - - - - - - Identifier - - - = - - - - - - - ElementValue - - - ) - - - - - - - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroup - - - - - - EnumConstant - - - - Annotations - - - Identifier - - - - - Arguments - - - - - - - ClassBody - - - - - - - - QualifiedIdentifier - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - ConstantDeclaratorsRest - - - - ConstantDeclaratorRest - - - - - - - , - - - ConstantDeclarator - - - - - - - - - - AnnotationTypeDeclaration - - - - @ - - - interface - - - Identifier - - - AnnotationTypeBody - - - - - - NonWildcardTypeArguments - - - - < - - - TypeList - - - > - - - - - - MoreStatementExpressions - - - - - - , - - - StatementExpression - - - - - - - - Expression3 - - - - PrefixOp - - - Expression3 - - - - - - Expression3 - - - - ( - - - - - Expression - - - Type - - - - - ) - - - Expression3 - - - - - - Expression3 - - - - Primary - - - - - Selector - - - - - - - PostfixOp - - - - - - - - BlockStatements - - - - BlockStatement - - - - - - IdentifierSuffix - - - - [ - - - - - - - ] - - - - - - - [ - - - ] - - - - - - - . - - - class - - - - - - - Expression - - - ] - - - - - - - - - - IdentifierSuffix - - Arguments - - - - IdentifierSuffix - - - - . - - - - - class - - - ExplicitGenericInvocation - - - this - - - - - super - - - Arguments - - - - - - - new - - - - - NonWildcardTypeArguments - - - - - InnerCreator - - - - - - - - - - InterfaceMethodDeclaratorRest - - - - FormalParameters - - - - - - - [ - - - ] - - - - - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - FormalParameterDeclsRest - - - - VariableDeclaratorId - - - - - - - , - - - FormalParameterDecls - - - - - - - - - - FormalParameterDeclsRest - - - - ... - - - VariableDeclaratorId - - - - - - AssignmentOperator - - = - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - |= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - ParExpression - - - - ( - - - Expression - - - ) - - - - - - AnnotationTypeElementDeclarations - - AnnotationTypeElementDeclaration - - - - AnnotationTypeElementDeclarations - - - - AnnotationTypeElementDeclarations - - - AnnotationTypeElementDeclaration - - - - - - VariableDeclaratorsRest - - - - VariableDeclaratorRest - - - - - - - , - - - VariableDeclarator - - - - - - - - - - ForControl - - ForVarControl - - - - ForControl - - - - ForInit - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - - - - ForControl - - - - - - final - - - - - - - Annotations - - - - - Type - - - Identifier - - - ForVarControlRest - - - - - - VariableDeclarator - - - - Identifier - - - VariableDeclaratorRest - - - - - - ConstantExpression - - Expression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - case - - - EnumConstantName - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - ElementValues - - - - ElementValue - - - - - ElementValues - - - - - - - - InterfaceMemberDecl - - InterfaceMethodOrFieldDecl - - - - InterfaceMemberDecl - - InterfaceGenericMethodDecl - - - - InterfaceMemberDecl - - - - void - - - Identifier - - - VoidInterfaceMethodDeclaratorRest - - - - - - InterfaceMemberDecl - - InterfaceDeclaration - - - - InterfaceMemberDecl - - ClassDeclaration - - - - AnnotationConstantRest - - VariableDeclarators - - - - QualifiedIdentifierList - - - - QualifiedIdentifier - - - - - - - , - - - QualifiedIdentifier - - - - - - - - - - GenericMethodOrConstructorRest - - - - - - Type - - - void - - - - - Identifier - - - MethodDeclaratorRest - - - - - - GenericMethodOrConstructorRest - - - - Identifier - - - ConstructorDeclaratorRest - - - - - - ArrayCreatorRest - - - - [ - - - - - - - ] - - - - - - - [ - - - ] - - - - - - - ArrayInitializer - - - - - - - Expression - - - ] - - - - - - - [ - - - Expression - - - ] - - - - - - - - - - - [ - - - ] - - - - - - - - - - - - - - Type - - - - Identifier - - - - - TypeArguments - - - - - - - - - . - - - Identifier - - - - - TypeArguments - - - - - - - - - - - - - [ - - - ] - - - - - - - - - - Type - - BasicType - - - - FormalParameters - - - - ( - - - - - FormalParameterDecls - - - - - ) - - - - - - TypeList - - - - Type - - - - - - - , - - - Type - - - - - - - - - - Selector - - - - . - - - Identifier - - - - - Arguments - - - - - - - - Selector - - - - . - - - ExplicitGenericInvocation - - - - - - Selector - - - - . - - - this - - - - - - Selector - - - - . - - - super - - - SuperSuffix - - - - - - Selector - - - - . - - - new - - - - - NonWildcardTypeArguments - - - - - InnerCreator - - - - - - Selector - - - - Expression - - - - - - VoidInterfaceMethodDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - InterfaceBodyDeclaration - - ; - - - - InterfaceBodyDeclaration - - - - - - Modifier - - - - - InterfaceMemberDecl - - - - - - MethodDeclaratorRest - - - - FormalParameters - - - - - - - [ - - - ] - - - - - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - ArrayInitializer - - - - - - - - VariableInitializer - - - - - - - , - - - VariableInitializer - - - - - - - - - , - - - - - - - - - - - - EnumConstants - - EnumConstant - - - - EnumConstants - - - - EnumConstants - - - , - - - EnumConstant - - - - - - VariableDeclaratorRest - - - - - - - - [ - - - ] - - - - - - - - - - - = - - - VariableInitializer - - - - - - - - - - MethodOrFieldRest - - VariableDeclaratorRest - - - - MethodOrFieldRest - - MethodDeclaratorRest - - - - Modifier - - Annotation - - - - Modifier - - public - - - - Modifier - - protected - - - - Modifier - - private - - - - Modifier - - static - - - - Modifier - - abstract - - - - Modifier - - final - - - - Modifier - - native - - - - Modifier - - synchronized - - - - Modifier - - transient - - - - Modifier - - volatile - - - - Modifier - - strictfp - - - - Block - - - - BlockStatements - - - - - - PostfixOp - - ++ - - - - PostfixOp - - -- - - - - ForInit - - - - StatementExpression - - - Expressions - - - - - - EnumDeclaration - - - - enum - - - Identifier - - - - - - - implements - - - TypeList - - - - - - - EnumBody - - - - - - VariableDeclarators - - - - VariableDeclarator - - - - - - - , - - - VariableDeclarator - - - - - - - - - - Primary - - ParExpression - - - - Primary - - - - NonWildcardTypeArguments - - - - - ExplicitGenericInvocationSuffix - - - - - this - - - Arguments - - - - - - - - - - Primary - - - - this - - - - - Arguments - - - - - - - - Primary - - - - super - - - SuperSuffix - - - - - - Primary - - Literal - - - - Primary - - - - new - - - Creator - - - - - - Primary - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - IdentifierSuffix - - - - - - - - Primary - - - - BasicType - - - - - - - [ - - - ] - - - - - - - . - - - class - - - - - - Primary - - - - void - - - . - - - class - - - - - - Expression2Rest - - - - - - InfixOp - - - Expression3 - - - - - - - - Expression2Rest - - - - Expression3 - - - instanceof - - - Type - - - - - - VariableInitializer - - ArrayInitializer - - - - VariableInitializer - - Expression - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - NullLiteral - - - - ExplicitGenericInvocationSuffix - - - - super - - - SuperSuffix - - - - - - ExplicitGenericInvocationSuffix - - - - Identifier - - - Arguments - - - - - - Identifier - - IDENTIFIER - - - - ImportDeclaration - - - - import - - - - - static - - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - - . - - - * - - - - - - - ; - - - - - - BasicType - - byte - - - - BasicType - - short - - - - BasicType - - char - - - - BasicType - - int - - - - BasicType - - long - - - - BasicType - - float - - - - BasicType - - double - - - - BasicType - - boolean - - - - GenericMethodOrConstructorDecl - - - - TypeParameters - - - GenericMethodOrConstructorRest - - - - - - ConstantDeclarator - - - - Identifier - - - ConstantDeclaratorRest - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclaration - - - - - } - - - - - - MemberDecl - - GenericMethodOrConstructorDecl - - - - MemberDecl - - MethodOrFieldDecl - - - - MemberDecl - - - - void - - - Identifier - - - VoidMethodDeclaratorRest - - - - - - MemberDecl - - - - Identifier - - - ConstructorDeclaratorRest - - - - - - MemberDecl - - InterfaceDeclaration - - - - MemberDecl - - ClassDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabel - - - BlockStatements - - - - - - Catches - - - - CatchClause - - - - - CatchClause - - - - - - - - InterfaceMethodOrFieldRest - - - - ConstantDeclaratorsRest - - - ; - - - - - - InterfaceMethodOrFieldRest - - InterfaceMethodDeclaratorRest - - - - Expression1Rest - - - - ? - - - Expression - - - : - - - Expression1 - - - - - - TypeArguments - - - - < - - - TypeArgument - - - - - - - , - - - TypeArgument - - - - - - - > - - - - - - Expression - - - - Expression1 - - - - - - - AssignmentOperator - - - Expression1 - - - - - - - - - - ConditionalExpression - - - - Expression2 - - - Expression1Rest - - - - - - Creator - - - - - - NonWildcardTypeArguments - - - - - CreatedName - - - - - ArrayCreatorRest - - - ClassCreatorRest - - - - - - - - InfixOp - - || - - - - InfixOp - - && - - - - InfixOp - - | - - - - InfixOp - - ^ - - - - InfixOp - - & - - - - InfixOp - - == - - - - InfixOp - - != - - - - InfixOp - - < - - - - InfixOp - - > - - - - InfixOp - - <= - - - - InfixOp - - >= - - - - InfixOp - - << - - - - InfixOp - - >> - - - - InfixOp - - >>> - - - - InfixOp - - + - - - - InfixOp - - - - - - - InfixOp - - * - - - - InfixOp - - / - - - - InfixOp - - % - - - - ClassOrInterfaceDeclaration - - - - - - Modifier - - - - - - - ClassDeclaration - - - InterfaceDeclaration - - - - - - - - ConstructorDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - MethodBody - - - - - - InterfaceMethodOrFieldDecl - - - - Type - - - Identifier - - - InterfaceMethodOrFieldRest - - - - - - ClassDeclaration - - NormalClassDeclaration - - - - ClassDeclaration - - EnumDeclaration - - - - MethodOrFieldDecl - - - - Type - - - Identifier - - - MethodOrFieldRest - - - - - - InnerCreator - - - - Identifier - - - ClassCreatorRest - - - - - - PrefixOp - - ++ - - - - PrefixOp - - -- - - - - PrefixOp - - ! - - - - PrefixOp - - ~ - - - - PrefixOp - - + - - - - PrefixOp - - - - - - - CreatedName - - - - Identifier - - - - - NonWildcardTypeArguments - - - - - - - - - . - - - Identifier - - - - - NonWildcardTypeArguments - - - - - - - - - - - - TypeDeclaration - - ClassOrInterfaceDeclaration - - - - TypeDeclaration - - ; - - - - FormalParameterDecls - - - - - - final - - - - - Annotations - - - - - Type - - - FormalParameterDeclsRest - - - - - - - - ConstantDeclaratorRest - - - - - - - - [ - - - ] - - - - - - - = - - - VariableInitializer - - - - - - StatementExpression - - Expression - - - - Arguments - - - - ( - - - - - - - Expression - - - - - - - , - - - Expression - - - - - - - - - - - ) - - - - - - ElementValueArrayInitializer - - - - { - - - - - ElementValues - - - - - - - , - - - - - } - - - - - - VariableDeclaratorId - - - - Identifier - - - - - - - [ - - - ] - - - - - - - - - - AnnotationMethodRest - - - - ( - - - ) - - - - - DefaultValue - - - - - - - - VoidMethodDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - AnnotationTypeBody - - - - - - AnnotationTypeElementDeclarations - - - - - - - - LocalVariableDeclarationStatement - - - - - - final - - - - - Type - - - VariableDeclarators - - - ; - - - - - - Expression1 - - - - Expression2 - - - - - Expression1Rest - - - - - - - - TypeParameters - - - - < - - - TypeParameter - - - - - - - , - - - TypeParameter - - - - - - - > - - - - - - Expression2 - - - - Expression3 - - - - - Expression2Rest - - - - - - - - MethodBody - - Block - - - - ForVarControlRest - - - - VariableDeclaratorsRest - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - - - - ForVarControlRest - - - - : - - - Expression - - - - - - EnumBodyDeclarations - - - - ; - - - - - ClassBodyDeclaration - - - - - - - - DefaultValue - - - - default - - - ElementValue - - - - - - AnnotationMethodOrConstantRest - - AnnotationMethodRest - - - - AnnotationMethodOrConstantRest - - AnnotationConstantRest - - - - SuperSuffix - - Arguments - - - - SuperSuffix - - - - . - - - Identifier - - - - - Arguments - - - - - - - - InterfaceGenericMethodDecl - - - - TypeParameters - - - - - Type - - - void - - - - - Identifier - - - InterfaceMethodDeclaratorRest - - - - - - EnumBody - - - - - - - - EnumConstants - - - - - - - , - - - - - - - EnumBodyDeclarations - - - - - - - - - - CompilationUnit - - - - - - - - - - Annotations - - - - - package - - - QualifiedIdentifier - - - ; - - - - - - - - - ImportDeclaration - - - - - - - TypeDeclaration - - - - - - - - InterfaceBody - - - - { - - - - - InterfaceBodyDeclaration - - - - - } - - - - - - EnumConstantName - - Identifier - - - - Bound - - - - Type - - - - - - - & - - - Type - - - - - - - - - - TypeArgument - - Type - - - - TypeArgument - - - - ? - - - - - - - - - extends - - - super - - - - - Type - - - - - - - - - - AnnotationTypeElementRest - - - - Type - - - Identifier - - - AnnotationMethodOrConstantRest - - - ; - - - - - - AnnotationTypeElementRest - - ClassDeclaration - - - - AnnotationTypeElementRest - - InterfaceDeclaration - - - - AnnotationTypeElementRest - - EnumDeclaration - - - - AnnotationTypeElementRest - - AnnotationTypeDeclaration - - - - AnnotationTypeElementDeclaration - - - - - - Modifier - - - - - AnnotationTypeElementRest - - - - - - NormalInterfaceDeclaration - - - - interface - - - Identifier - - - - - TypeParameters - - - - - - - - - extends - - - TypeList - - - - - - - InterfaceBody - - - - - diff --git a/shared/bgf/java.j2se-5.0.impl.rec.bgf b/shared/bgf/java.j2se-5.0.impl.rec.bgf deleted file mode 100644 index 944b17d5..00000000 --- a/shared/bgf/java.j2se-5.0.impl.rec.bgf +++ /dev/null @@ -1,3747 +0,0 @@ - - - CompilationUnit - - NormalClassDeclaration - - - - class - - - Identifier - - - - - TypeParameters - - - - - - - - - extends - - - Type - - - - - - - - - - - implements - - - TypeList - - - - - - - ClassBody - - - - - - ExplicitGenericInvocation - - - - NonWildcardTypeArguments - - - ExplicitGenericInvocationSuffix - - - - - - InterfaceDeclaration - - NormalInterfaceDeclaration - - - - InterfaceDeclaration - - AnnotationTypeDeclaration - - - - Statement - - Block - - - - Statement - - - - assert - - - Expression - - - - - - - : - - - Expression - - - - - - - ; - - - - - - Statement - - - - if - - - ParExpression - - - Statement - - - - - - - else - - - Statement - - - - - - - - - - Statement - - - - for - - - ( - - - ForControl - - - ) - - - Statement - - - - - - Statement - - - - while - - - ParExpression - - - Statement - - - - - - Statement - - - - do - - - Statement - - - while - - - ParExpression - - - ; - - - - - - Statement - - - - try - - - Block - - - - - Catches - - - - - - - Catches - - - - - finally - - - Block - - - - - - - - - - Statement - - - - switch - - - ParExpression - - - { - - - SwitchBlockStatementGroups - - - } - - - - - - Statement - - - - synchronized - - - ParExpression - - - Block - - - - - - Statement - - - - return - - - - - Expression - - - - - ; - - - - - - Statement - - - - throw - - - Expression - - - ; - - - - - - Statement - - - - break - - - - - Identifier - - - - - ; - - - - - - Statement - - - - continue - - - - - Identifier - - - - - ; - - - - - - Statement - - ; - - - - Statement - - - - StatementExpression - - - ; - - - - - - Statement - - - - Identifier - - - : - - - Statement - - - - - - Annotations - - - - Annotation - - - - - Annotations - - - - - - - - ElementValue - - ConditionalExpression - - - - ElementValue - - Annotation - - - - ElementValue - - ElementValueArrayInitializer - - - - TypeParameter - - - - Identifier - - - - - - - extends - - - Bound - - - - - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - ClassCreatorRest - - - - Arguments - - - - - ClassBody - - - - - - - - ClassBodyDeclaration - - ; - - - - ClassBodyDeclaration - - - - - - static - - - - - Block - - - - - - ClassBodyDeclaration - - - - - - Modifier - - - - - MemberDecl - - - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassOrInterfaceDeclaration - - - - BlockStatement - - - - - - - - Identifier - - - : - - - - - - - Statement - - - - - - Annotation - - - - @ - - - QualifiedIdentifier - - - - - - - ( - - - - - - - Identifier - - - = - - - - - - - ElementValue - - - ) - - - - - - - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroup - - - - - - EnumConstant - - - - Annotations - - - Identifier - - - - - Arguments - - - - - - - ClassBody - - - - - - - - QualifiedIdentifier - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - ConstantDeclaratorsRest - - - - ConstantDeclaratorRest - - - - - - - , - - - ConstantDeclarator - - - - - - - - - - AnnotationTypeDeclaration - - - - @ - - - interface - - - Identifier - - - AnnotationTypeBody - - - - - - NonWildcardTypeArguments - - - - < - - - TypeList - - - > - - - - - - Expressions - - - - - - , - - - StatementExpression - - - - - - - - Expression3 - - - - PrefixOp - - - Expression3 - - - - - - Expression3 - - - - ( - - - - - Expression - - - Type - - - - - ) - - - Expression3 - - - - - - Expression3 - - - - Primary - - - - - Selector - - - - - - - PostfixOp - - - - - - - - BlockStatements - - - - BlockStatement - - - - - - IdentifierSuffix - - - - [ - - - - - - - ] - - - - - - - [ - - - ] - - - - - - - . - - - class - - - - - - - Expression - - - ] - - - - - - - - - - IdentifierSuffix - - Arguments - - - - IdentifierSuffix - - - - . - - - - - class - - - ExplicitGenericInvocation - - - this - - - - - super - - - Arguments - - - - - - - new - - - - - NonWildcardTypeArguments - - - - - InnerCreator - - - - - - - - - - InterfaceMethodDeclaratorRest - - - - FormalParameters - - - - - - - [ - - - ] - - - - - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - FormalParameterDeclsRest - - - - VariableDeclaratorId - - - - - - - , - - - FormalParameterDecls - - - - - - - - - - FormalParameterDeclsRest - - - - ... - - - VariableDeclaratorId - - - - - - AssignmentOperator - - = - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - |= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - ParExpression - - - - ( - - - Expression - - - ) - - - - - - AnnotationTypeElementDeclarations - - AnnotationTypeElementDeclaration - - - - AnnotationTypeElementDeclarations - - - - AnnotationTypeElementDeclarations - - - AnnotationTypeElementDeclaration - - - - - - VariableDeclaratorsRest - - - - VariableDeclaratorRest - - - - - - - , - - - VariableDeclarator - - - - - - - - - - ForControl - - ForVarControl - - - - ForControl - - - - ForInit - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - - - - VariableDeclarator - - - - Identifier - - - VariableDeclaratorRest - - - - - - ConstantExpression - - Expression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - case - - - EnumConstantName - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - ElementValues - - - - ElementValue - - - - - - - , - - - ElementValues - - - - - - - - - - InterfaceMemberDecl - - InterfaceMethodOrFieldDecl - - - - InterfaceMemberDecl - - InterfaceGenericMethodDecl - - - - InterfaceMemberDecl - - - - void - - - Identifier - - - VoidInterfaceMethodDeclaratorRest - - - - - - InterfaceMemberDecl - - InterfaceDeclaration - - - - InterfaceMemberDecl - - ClassDeclaration - - - - AnnotationConstantRest - - VariableDeclarators - - - - QualifiedIdentifierList - - - - QualifiedIdentifier - - - - - - - , - - - QualifiedIdentifier - - - - - - - - - - GenericMethodOrConstructorRest - - - - - - Type - - - void - - - - - Identifier - - - MethodDeclaratorRest - - - - - - GenericMethodOrConstructorRest - - - - Identifier - - - ConstructorDeclaratorRest - - - - - - ArrayCreatorRest - - - - [ - - - - - - - ] - - - - - - - [ - - - ] - - - - - - - ArrayInitializer - - - - - - - Expression - - - ] - - - - - - - [ - - - Expression - - - ] - - - - - - - - - - - [ - - - ] - - - - - - - - - - - - - - Type - - - - Identifier - - - - - TypeArguments - - - - - - - - - . - - - Identifier - - - - - TypeArguments - - - - - - - - - - - - - [ - - - ] - - - - - - - - - - Type - - BasicType - - - - FormalParameters - - - - ( - - - - - FormalParameterDecls - - - - - ) - - - - - - TypeList - - - - Type - - - - - - - , - - - Type - - - - - - - - - - Selector - - - - . - - - Identifier - - - - - Arguments - - - - - - - - Selector - - - - . - - - ExplicitGenericInvocation - - - - - - Selector - - - - . - - - this - - - - - - Selector - - - - . - - - super - - - SuperSuffix - - - - - - Selector - - - - . - - - new - - - - - NonWildcardTypeArguments - - - - - InnerCreator - - - - - - Selector - - - - Expression - - - - - - VoidInterfaceMethodDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - ; - - - - - - InterfaceBodyDeclaration - - ; - - - - InterfaceBodyDeclaration - - - - - - Modifier - - - - - InterfaceMemberDecl - - - - - - MethodDeclaratorRest - - - - FormalParameters - - - - - - - [ - - - ] - - - - - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - EnumConstants - - EnumConstant - - - - EnumConstants - - - - EnumConstants - - - , - - - EnumConstant - - - - - - VariableDeclaratorRest - - - - - - - - [ - - - ] - - - - - - - - - - - = - - - VariableInitializer - - - - - - - - - - MethodOrFieldRest - - VariableDeclaratorRest - - - - MethodOrFieldRest - - MethodDeclaratorRest - - - - Modifier - - Annotation - - - - Modifier - - public - - - - Modifier - - protected - - - - Modifier - - private - - - - Modifier - - static - - - - Modifier - - abstract - - - - Modifier - - final - - - - Modifier - - native - - - - Modifier - - synchronized - - - - Modifier - - transient - - - - Modifier - - volatile - - - - Modifier - - strictfp - - - - Block - - - - { - - - BlockStatements - - - } - - - - - - PostfixOp - - ++ - - - - PostfixOp - - -- - - - - ForInit - - - - StatementExpression - - - Expressions - - - - - - EnumDeclaration - - - - enum - - - Identifier - - - - - - - implements - - - TypeList - - - - - - - EnumBody - - - - - - VariableDeclarators - - - - VariableDeclarator - - - - - - - , - - - VariableDeclarator - - - - - - - - - - Primary - - ParExpression - - - - Primary - - - - NonWildcardTypeArguments - - - - - ExplicitGenericInvocationSuffix - - - - - this - - - Arguments - - - - - - - - - - Primary - - - - this - - - - - Arguments - - - - - - - - Primary - - - - super - - - SuperSuffix - - - - - - Primary - - Literal - - - - Primary - - - - new - - - Creator - - - - - - Primary - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - IdentifierSuffix - - - - - - - - Primary - - - - BasicType - - - - - - - [ - - - ] - - - - - - - . - - - class - - - - - - Primary - - - - void - - - . - - - class - - - - - - Expression2Rest - - - - - - InfixOp - - - Expression3 - - - - - - - - Expression2Rest - - - - instanceof - - - Type - - - - - - VariableInitializer - - ArrayInitializer - - - - VariableInitializer - - Expression - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - NullLiteral - - - - ExplicitGenericInvocationSuffix - - - - super - - - SuperSuffix - - - - - - ExplicitGenericInvocationSuffix - - - - Identifier - - - Arguments - - - - - - ImportDeclaration - - - - import - - - - - static - - - - - Identifier - - - - - - - . - - - Identifier - - - - - - - - - - - . - - - * - - - - - - - ; - - - - - - BasicType - - byte - - - - BasicType - - short - - - - BasicType - - char - - - - BasicType - - int - - - - BasicType - - long - - - - BasicType - - float - - - - BasicType - - double - - - - BasicType - - boolean - - - - GenericMethodOrConstructorDecl - - - - TypeParameters - - - GenericMethodOrConstructorRest - - - - - - ConstantDeclarator - - - - Identifier - - - ConstantDeclaratorRest - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclaration - - - - - } - - - - - - MemberDecl - - GenericMethodOrConstructorDecl - - - - MemberDecl - - MethodOrFieldDecl - - - - MemberDecl - - - - void - - - Identifier - - - VoidMethodDeclaratorRest - - - - - - MemberDecl - - - - Identifier - - - ConstructorDeclaratorRest - - - - - - MemberDecl - - InterfaceDeclaration - - - - MemberDecl - - ClassDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabel - - - BlockStatements - - - - - - Catches - - - - CatchClause - - - - - CatchClause - - - - - - - - InterfaceMethodOrFieldRest - - - - ConstantDeclaratorsRest - - - ; - - - - - - InterfaceMethodOrFieldRest - - InterfaceMethodDeclaratorRest - - - - Expression1Rest - - - - ? - - - Expression - - - : - - - Expression1 - - - - - - TypeArguments - - - - < - - - TypeArgument - - - - - - - , - - - TypeArgument - - - - - - - > - - - - - - Expression - - - - Expression1 - - - - - - - AssignmentOperator - - - Expression1 - - - - - - - - - - ConditionalExpression - - - - Expression2 - - - Expression1Rest - - - - - - Creator - - - - - - NonWildcardTypeArguments - - - - - CreatedName - - - - - ArrayCreatorRest - - - ClassCreatorRest - - - - - - - - InfixOp - - || - - - - InfixOp - - && - - - - InfixOp - - | - - - - InfixOp - - ^ - - - - InfixOp - - & - - - - InfixOp - - == - - - - InfixOp - - != - - - - InfixOp - - < - - - - InfixOp - - > - - - - InfixOp - - <= - - - - InfixOp - - >= - - - - InfixOp - - << - - - - InfixOp - - >> - - - - InfixOp - - >>> - - - - InfixOp - - + - - - - InfixOp - - - - - - - InfixOp - - * - - - - InfixOp - - / - - - - InfixOp - - % - - - - ClassOrInterfaceDeclaration - - - - - - Modifier - - - - - - - ClassDeclaration - - - InterfaceDeclaration - - - - - - - - ConstructorDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - MethodBody - - - - - - InterfaceMethodOrFieldDecl - - - - Type - - - Identifier - - - InterfaceMethodOrFieldRest - - - - - - ClassDeclaration - - NormalClassDeclaration - - - - ClassDeclaration - - EnumDeclaration - - - - MethodOrFieldDecl - - - - Type - - - Identifier - - - MethodOrFieldRest - - - - - - InnerCreator - - - - Identifier - - - ClassCreatorRest - - - - - - PrefixOp - - ++ - - - - PrefixOp - - -- - - - - PrefixOp - - ! - - - - PrefixOp - - ~ - - - - PrefixOp - - + - - - - PrefixOp - - - - - - - CreatedName - - - - Identifier - - - - - NonWildcardTypeArguments - - - - - - - - - . - - - Identifier - - - - - NonWildcardTypeArguments - - - - - - - - - - - - TypeDeclaration - - ClassOrInterfaceDeclaration - - - - TypeDeclaration - - ; - - - - FormalParameterDecls - - - - - - final - - - - - Annotations - - - - - Type - - - FormalParameterDeclsRest - - - - - - - - ConstantDeclaratorRest - - - - - - - - [ - - - ] - - - - - - - = - - - VariableInitializer - - - - - - StatementExpression - - Expression - - - - Arguments - - - - ( - - - - - - - Expression - - - - - - - , - - - Expression - - - - - - - - - - - ) - - - - - - ElementValueArrayInitializer - - - - { - - - - - ElementValues - - - - - - - , - - - - - } - - - - - - VariableDeclaratorId - - - - Identifier - - - - - - - [ - - - ] - - - - - - - - - - AnnotationMethodRest - - - - ( - - - ) - - - - - - - [ - - - ] - - - - - - - - - DefaultValue - - - - - - - - VoidMethodDeclaratorRest - - - - FormalParameters - - - - - - - throws - - - QualifiedIdentifierList - - - - - - - - - MethodBody - - - ; - - - - - - - - LocalVariableDeclarationStatement - - - - - - final - - - - - Type - - - VariableDeclarators - - - ; - - - - - - Expression1 - - - - Expression2 - - - - - Expression1Rest - - - - - - - - TypeParameters - - - - < - - - TypeParameter - - - - - - - , - - - TypeParameter - - - - - - - > - - - - - - Expression2 - - - - Expression3 - - - - - Expression2Rest - - - - - - - - MethodBody - - Block - - - - ForVarControlRest - - - - VariableDeclaratorsRest - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - - - - ForVarControlRest - - - - : - - - Expression - - - - - - EnumBodyDeclarations - - - - ; - - - - - ClassBodyDeclaration - - - - - - - - DefaultValue - - - - default - - - ElementValue - - - - - - AnnotationMethodOrConstantRest - - - - Identifier - - - AnnotationMethodRest - - - - - - AnnotationMethodOrConstantRest - - AnnotationConstantRest - - - - SuperSuffix - - Arguments - - - - SuperSuffix - - - - . - - - Identifier - - - - - Arguments - - - - - - - - InterfaceGenericMethodDecl - - - - TypeParameters - - - - - Type - - - void - - - - - Identifier - - - InterfaceMethodDeclaratorRest - - - - - - EnumBody - - - - - - - - EnumConstants - - - - - - - , - - - - - - - EnumBodyDeclarations - - - - - - - - - - CompilationUnit - - - - - - - - - - Annotations - - - - - package - - - QualifiedIdentifier - - - ; - - - - - - - - - ImportDeclaration - - - - - - - TypeDeclaration - - - - - - - - InterfaceBody - - - - { - - - - - InterfaceBodyDeclaration - - - - - } - - - - - - EnumConstantName - - Identifier - - - - Bound - - - - Type - - - - - - - & - - - Type - - - - - - - - - - TypeArgument - - Type - - - - TypeArgument - - - - ? - - - - - - - - - extends - - - super - - - - - Type - - - - - - - - - - AnnotationTypeElementRest - - - - Type - - - AnnotationMethodOrConstantRest - - - ; - - - - - - AnnotationTypeElementRest - - ClassDeclaration - - - - AnnotationTypeElementRest - - InterfaceDeclaration - - - - AnnotationTypeElementRest - - EnumDeclaration - - - - AnnotationTypeElementRest - - AnnotationTypeDeclaration - - - - AnnotationTypeElementDeclaration - - - - - - Modifier - - - - - AnnotationTypeElementRest - - - - - - NormalInterfaceDeclaration - - - - interface - - - Identifier - - - - - TypeParameters - - - - - - - - - extends - - - TypeList - - - - - - - InterfaceBody - - - - - - AnnotationTypeBody - - - - { - - - - - AnnotationTypeElementDeclarations - - - - - } - - - - - - ArrayInitializer - - - - { - - - - - - - VariableInitializer - - - - - - - , - - - VariableInitializer - - - - - - - - - , - - - - - - - - - } - - - - - - ForVarControl - - - - - - final - - - - - - - Annotations - - - - - Type - - - Identifier - - - ForVarControlRest - - - - - - ForUpdate - - - - StatementExpression - - - Expressions - - - - - - FormalParameter - - - - - - final - - - - - Type - - - VariableDeclaratorId - - - - - diff --git a/shared/bgf/java.j2se-5.0.read.ext.bgf b/shared/bgf/java.j2se-5.0.read.ext.bgf deleted file mode 100644 index 3cf5384b..00000000 --- a/shared/bgf/java.j2se-5.0.read.ext.bgf +++ /dev/null @@ -1,5140 +0,0 @@ - - - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - NormalClassDeclaration - - - - - - ClassModifiers - - - - - class - - - Identifier - - - - - TypeParameters - - - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ReferenceTypeList - - ReferenceType - - - - ReferenceTypeList - - - - ReferenceTypeList - - - , - - - ReferenceType - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - Annotations - - Annotation - - - - Annotations - - - - Annotations - - - Annotation - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - TypeParameter - - - - TypeVariable - - - - - TypeBound - - - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - MethodName - - Identifier - - - - MethodName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - ClassMemberDeclaration - - ClassDeclaration - - - - ClassMemberDeclaration - - InterfaceDeclaration - - - - ClassMemberDeclaration - - ; - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - AbstractMethodModifiers - - AbstractMethodModifier - - - - AbstractMethodModifiers - - - - AbstractMethodModifiers - - - AbstractMethodModifier - - - - - - ClassInstanceCreationExpression - - - - new - - - - - TypeArguments - - - - - ClassOrInterfaceType - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - ClassInstanceCreationExpression - - - - Primary - - - . - - - new - - - - - TypeArguments - - - - - Identifier - - - - - TypeArguments - - - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - TypeName - - Identifier - - - - TypeName - - - - TypeName - - - . - - - Identifier - - - - - - TypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - InterfaceType - - - - TypeDeclSpecifier - - - - - TypeArguments - - - - - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassDeclaration - - - - BlockStatement - - Statement - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - Annotation - - NormalAnnotation - - - - Annotation - - MarkerAnnotation - - - - Annotation - - SingleElementAnnotation - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - EnumConstant - - - - Annotations - - - Identifier - - - - - Arguments - - - - - - - ClassBody - - - - - - - - ClassModifier - - Annotation - - - - ClassModifier - - public - - - - ClassModifier - - protected - - - - ClassModifier - - private - - - - ClassModifier - - abstract - - - - ClassModifier - - static - - - - ClassModifier - - final - - - - ClassModifier - - strictfp - - - - EnumBodyDeclarations - - - - ; - - - - - ClassBodyDeclarations - - - - - - - - SingleTypeImportDeclaration - - - - import - - - TypeName - - - ; - - - - - - AnnotationTypeDeclaration - - - - - - InterfaceModifiers - - - - - @ - - - interface - - - Identifier - - - AnnotationTypeBody - - - - - - ConstantDeclaration - - - - - - ConstantModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - - - NonWildTypeArguments - - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - - - NonWildTypeArguments - - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - Primary - - - . - - - - - NonWildTypeArguments - - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ActualTypeArgumentList - - ActualTypeArgument - - - - ActualTypeArgumentList - - - - ActualTypeArgumentList - - - , - - - ActualTypeArgument - - - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ExceptionTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - InterfaceModifiers - - InterfaceModifier - - - - InterfaceModifiers - - - - InterfaceModifiers - - - InterfaceModifier - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - - - Type - - - . - - - class - - - - - - PrimaryNoNewArray - - - - void - - - . - - - class - - - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ClassName - - - . - - - this - - - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - AnnotationTypeElementDeclarations - - AnnotationTypeElementDeclaration - - - - AnnotationTypeElementDeclarations - - - - AnnotationTypeElementDeclarations - - - AnnotationTypeElementDeclaration - - - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - AssertStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - AdditionalBound - - - - & - - - InterfaceType - - - - - - FieldDeclaration - - - - - - FieldModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - TypeBound - - - - extends - - - ClassOrInterfaceType - - - - - AdditionalBoundList - - - - - - - - AdditionalBoundList - - - - AdditionalBound - - - AdditionalBoundList - - - - - - AdditionalBoundList - - AdditionalBound - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - ExpressionName - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - case - - - EnumConstantName - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - ConstantModifier - - Annotation - - - - ConstantModifier - - public - - - - ConstantModifier - - static - - - - ConstantModifier - - final - - - - FormalParameter - - - - VariableModifiers - - - Type - - - VariableDeclaratorId - - - - - - PackageName - - Identifier - - - - PackageName - - - - PackageName - - - . - - - Identifier - - - - - - VariableModifiers - - VariableModifier - - - - VariableModifiers - - - - VariableModifiers - - - VariableModifier - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - MethodModifiers - - MethodModifier - - - - MethodModifiers - - - - MethodModifiers - - - MethodModifier - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - InterfaceMemberDeclaration - - ClassDeclaration - - - - InterfaceMemberDeclaration - - InterfaceDeclaration - - - - InterfaceMemberDeclaration - - ; - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - ActualTypeArgument - - ReferenceType - - - - ActualTypeArgument - - Wildcard - - - - ExceptionType - - ClassType - - - - ExceptionType - - TypeVariable - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - ConstructorModifier - - Annotation - - - - ConstructorModifier - - public - - - - ConstructorModifier - - protected - - - - ConstructorModifier - - private - - - - ElementValuePairs - - ElementValuePair - - - - ElementValuePairs - - - - ElementValuePairs - - - , - - - ElementValuePair - - - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - ElementValue - - ConditionalExpression - - - - ElementValue - - Annotation - - - - ElementValue - - ElementValueArrayInitializer - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - ClassOrInterfaceType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - Dims - - - ArrayInitializer - - - - - - ArrayCreationExpression - - - - new - - - ClassOrInterfaceType - - - Dims - - - ArrayInitializer - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - InterfaceModifier - - Annotation - - - - InterfaceModifier - - public - - - - InterfaceModifier - - protected - - - - InterfaceModifier - - private - - - - InterfaceModifier - - abstract - - - - InterfaceModifier - - static - - - - InterfaceModifier - - strictfp - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - NonWildTypeArguments - - - - < - - - ReferenceTypeList - - - > - - - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - EmptyStatement - - ; - - - - EnumConstants - - EnumConstant - - - - EnumConstants - - - - EnumConstants - - - , - - - EnumConstant - - - - - - LastFormalParameter - - - - VariableModifiers - - - Type - - - - - ... - - - - - VariableDeclaratorId - - - - - - LastFormalParameter - - FormalParameter - - - - AbstractMethodDeclaration - - - - - - AbstractMethodModifiers - - - - - - - TypeParameters - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - EnhancedForStatement - - - - for - - - ( - - - - - VariableModifiers - - - - - Type - - - Identifier - - - : - - - Expression - - - ) - - - Statement - - - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - EnumDeclaration - - - - - - ClassModifiers - - - - - enum - - - Identifier - - - - - Interfaces - - - - - EnumBody - - - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - - - Annotations - - - - - package - - - PackageName - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - WildcardBounds - - - - extends - - - ReferenceType - - - - - - WildcardBounds - - - - super - - - ReferenceType - - - - - - AbstractMethodModifier - - Annotation - - - - AbstractMethodModifier - - public - - - - AbstractMethodModifier - - abstract - - - - MethodInvocation - - - - MethodName - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - - - NonWildTypeArguments - - - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - - - NonWildTypeArguments - - - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - ClassName - - - . - - - super - - - . - - - - - NonWildTypeArguments - - - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - TypeName - - - . - - - NonWildTypeArguments - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - ConstantExpression - - Expression - - - - TypeDeclSpecifier - - TypeName - - - - TypeDeclSpecifier - - - - ClassOrInterfaceType - - - . - - - Identifier - - - - - - ExceptionTypeList - - ExceptionType - - - - ExceptionTypeList - - - - ExceptionTypeList - - - , - - - ExceptionType - - - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Finally - - - - finally - - - Block - - - - - - MarkerAnnotation - - - - @ - - - TypeName - - - - - - ConstructorDeclaration - - - - - - ConstructorModifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - ElementValuePair - - - - Identifier - - - = - - - ElementValue - - - - - - TypeImportOnDemandDeclaration - - - - import - - - PackageOrTypeName - - - . - - - * - - - ; - - - - - - ArrayAccess - - - - ExpressionName - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - BasicForStatement - - - - ForStatement - - EnhancedForStatement - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - PackageOrTypeName - - Identifier - - - - PackageOrTypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - AmbiguousName - - Identifier - - - - AmbiguousName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - ImportDeclaration - - SingleStaticImportDeclaration - - - - ImportDeclaration - - StaticImportOnDemandDeclaration - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - ElementValues - - ElementValue - - - - ElementValues - - - - ElementValues - - - , - - - ElementValue - - - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - AssertStatement - - - - assert - - - Expression1 - - - ; - - - - - - AssertStatement - - - - assert - - - Expression1 - - - : - - - Expression2 - - - ; - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - InstanceInitializer - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - MethodModifier - - Annotation - - - - MethodModifier - - public - - - - MethodModifier - - protected - - - - MethodModifier - - private - - - - MethodModifier - - abstract - - - - MethodModifier - - static - - - - MethodModifier - - final - - - - MethodModifier - - synchronized - - - - MethodModifier - - native - - - - MethodModifier - - strictfp - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - TypeArguments - - - - < - - - ActualTypeArgumentList - - - > - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - ClassOrInterfaceType - - ClassType - - - - ClassOrInterfaceType - - InterfaceType - - - - InstanceInitializer - - Block - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - Wildcard - - - - ? - - - - - WildcardBounds - - - - - - - - FormalParameterList - - LastFormalParameter - - - - FormalParameterList - - - - FormalParameters - - - , - - - LastFormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - LocalVariableDeclaration - - - - VariableModifiers - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - - - TypeParameters - - - - - SimpleTypeName - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - - - TypeDeclSpecifier - - - - - TypeArguments - - - - - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - FormalParameters - - FormalParameter - - - - FormalParameters - - - - FormalParameters - - - , - - - FormalParameter - - - - - - VariableModifier - - final - - - - VariableModifier - - Annotation - - - - ClassDeclaration - - NormalClassDeclaration - - - - ClassDeclaration - - EnumDeclaration - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - FieldAccess - - - - ClassName - - - . - - - super - - - . - - - Identifier - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - BasicForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - NormalAnnotation - - - - @ - - - TypeName - - - ( - - - - - ElementValuePairs - - - - - ) - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ExpressionName - - Identifier - - - - ExpressionName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ArrayType - - - - Type - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - Arguments - - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - AnnotationTypeBody - - - - { - - - - - AnnotationTypeElementDeclarations - - - - - } - - - - - - LeftHandSide - - ExpressionName - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - ReferenceType - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - FieldModifiers - - FieldModifier - - - - FieldModifiers - - - - FieldModifiers - - - FieldModifier - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - TypeVariable - - Identifier - - - - DefaultValue - - - - default - - - ElementValue - - - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - ResultType - - Type - - - - ResultType - - void - - - - ConstructorModifiers - - ConstructorModifier - - - - ConstructorModifiers - - - - ConstructorModifiers - - - ConstructorModifier - - - - - - StaticImportOnDemandDeclaration - - - - import - - - static - - - TypeName - - - . - - - * - - - ; - - - - - - EnumBody - - - - - - - - EnumConstants - - - - - - - , - - - - - - - EnumBodyDeclarations - - - - - - - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - TypeVariable - - - - ReferenceType - - ArrayType - - - - ClassModifiers - - ClassModifier - - - - ClassModifiers - - - - ClassModifiers - - - ClassModifier - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - MethodModifiers - - - - - - - TypeParameters - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - ConstantModifiers - - ConstantModifier - - - - ConstantModifiers - - - - ConstantModifier - - - ConstantModifers - - - - - - SingleElementAnnotation - - - - @ - - - TypeName - - - ( - - - ElementValue - - - ) - - - - - - EnumConstantName - - Identifier - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - FieldModifier - - Annotation - - - - FieldModifier - - public - - - - FieldModifier - - protected - - - - FieldModifier - - private - - - - FieldModifier - - static - - - - FieldModifier - - final - - - - FieldModifier - - transient - - - - FieldModifier - - volatile - - - - AnnotationTypeElementDeclaration - - - - - - AbstractMethodModifiers - - - - - Type - - - Identifier - - - ( - - - ) - - - - - DefaultValue - - - - - ; - - - - - - AnnotationTypeElementDeclaration - - ConstantDeclaration - - - - AnnotationTypeElementDeclaration - - ClassDeclaration - - - - AnnotationTypeElementDeclaration - - InterfaceDeclaration - - - - AnnotationTypeElementDeclaration - - EnumDeclaration - - - - AnnotationTypeElementDeclaration - - AnnotationTypeDeclaration - - - - AnnotationTypeElementDeclaration - - ; - - - - ElementValueArrayInitializer - - - - - - - - ElementValues - - - - - - - , - - - - - - - - - - NormalInterfaceDeclaration - - - - - - InterfaceModifiers - - - - - interface - - - Identifier - - - - - TypeParameters - - - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - - SingleStaticImportDeclaration - - - - import - - - static - - - TypeName - - - . - - - Identifier - - - ; - - - - - diff --git a/shared/bgf/java.j2se-5.0.read.rec.bgf b/shared/bgf/java.j2se-5.0.read.rec.bgf deleted file mode 100644 index 2a6634c9..00000000 --- a/shared/bgf/java.j2se-5.0.read.rec.bgf +++ /dev/null @@ -1,5192 +0,0 @@ - - - CompilationUnit - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - NormalClassDeclaration - - - - - - ClassModifiers - - - - - class - - - Identifier - - - - - TypeParameters - - - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ReferenceTypeList - - ReferenceType - - - - ReferenceTypeList - - - - ReferenceTypeList - - - , - - - ReferenceType - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - Annotations - - Annotation - - - - Annotations - - - - Annotations - - - Annotation - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - TypeParameter - - - - TypeVariable - - - - - TypeBound - - - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - MethodName - - Identifier - - - - MethodName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - ClassMemberDeclaration - - ClassDeclaration - - - - ClassMemberDeclaration - - InterfaceDeclaration - - - - ClassMemberDeclaration - - ; - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - AbstractMethodModifiers - - AbstractMethodModifier - - - - AbstractMethodModifiers - - - - AbstractMethodModifiers - - - AbstractMethodModifier - - - - - - ClassInstanceCreationExpression - - - - new - - - - - TypeArguments - - - - - ClassOrInterfaceType - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - ClassInstanceCreationExpression - - - - Primary - - - . - - - new - - - - - TypeArguments - - - - - Identifier - - - - - TypeArguments - - - - - ( - - - - - ArgumentList - - - - - ) - - - - - ClassBody - - - - - - - - TypeName - - Identifier - - - - TypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - InterfaceType - - - - TypeDeclSpecifier - - - - - TypeArguments - - - - - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - ClassDeclaration - - - - BlockStatement - - Statement - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - Annotation - - NormalAnnotation - - - - Annotation - - MarkerAnnotation - - - - Annotation - - SingleElementAnnotation - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - EnumConstant - - - - Annotations - - - Identifier - - - - - Arguments - - - - - - - ClassBody - - - - - - - - ClassModifier - - Annotation - - - - ClassModifier - - public - - - - ClassModifier - - protected - - - - ClassModifier - - private - - - - ClassModifier - - abstract - - - - ClassModifier - - static - - - - ClassModifier - - final - - - - ClassModifier - - strictfp - - - - EnumBodyDeclarations - - - - ; - - - - - ClassBodyDeclarations - - - - - - - - SingleTypeImportDeclaration - - - - import - - - TypeName - - - ; - - - - - - AnnotationTypeDeclaration - - - - - - InterfaceModifiers - - - - - @ - - - interface - - - Identifier - - - AnnotationTypeBody - - - - - - ConstantDeclaration - - - - - - ConstantModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - - - NonWildTypeArguments - - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - - - NonWildTypeArguments - - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - Primary - - - . - - - - - NonWildTypeArguments - - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ActualTypeArgumentList - - ActualTypeArgument - - - - ActualTypeArgumentList - - - - ActualTypeArgumentList - - - , - - - ActualTypeArgument - - - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ExceptionTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - InterfaceModifiers - - InterfaceModifier - - - - InterfaceModifiers - - - - InterfaceModifiers - - - InterfaceModifier - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - - - Type - - - . - - - class - - - - - - PrimaryNoNewArray - - - - void - - - . - - - class - - - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ClassName - - - . - - - this - - - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - AnnotationTypeElementDeclarations - - AnnotationTypeElementDeclaration - - - - AnnotationTypeElementDeclarations - - - - AnnotationTypeElementDeclarations - - - AnnotationTypeElementDeclaration - - - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - AssertStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - AdditionalBound - - - - & - - - InterfaceType - - - - - - FieldDeclaration - - - - - - FieldModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - TypeBound - - - - extends - - - ClassOrInterfaceType - - - - - AdditionalBoundList - - - - - - - - AdditionalBoundList - - - - AdditionalBound - - - AdditionalBoundList - - - - - - AdditionalBoundList - - AdditionalBound - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - ExpressionName - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - case - - - EnumConstantName - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - ConstantModifier - - Annotation - - - - ConstantModifier - - public - - - - ConstantModifier - - static - - - - ConstantModifier - - final - - - - FormalParameter - - - - - - VariableModifiers - - - - - Type - - - VariableDeclaratorId - - - - - - PackageName - - Identifier - - - - PackageName - - - - PackageName - - - . - - - Identifier - - - - - - VariableModifiers - - VariableModifier - - - - VariableModifiers - - - - VariableModifiers - - - VariableModifier - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - MethodModifiers - - MethodModifier - - - - MethodModifiers - - - - MethodModifiers - - - MethodModifier - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - InterfaceMemberDeclaration - - ClassDeclaration - - - - InterfaceMemberDeclaration - - InterfaceDeclaration - - - - InterfaceMemberDeclaration - - ; - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - ActualTypeArgument - - ReferenceType - - - - ActualTypeArgument - - Wildcard - - - - ExceptionType - - ClassType - - - - ExceptionType - - TypeVariable - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - ConstructorModifier - - Annotation - - - - ConstructorModifier - - public - - - - ConstructorModifier - - protected - - - - ConstructorModifier - - private - - - - ElementValuePairs - - ElementValuePair - - - - ElementValuePairs - - - - ElementValuePairs - - - , - - - ElementValuePair - - - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - ElementValue - - ConditionalExpression - - - - ElementValue - - Annotation - - - - ElementValue - - ElementValueArrayInitializer - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - ClassOrInterfaceType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - Dims - - - ArrayInitializer - - - - - - ArrayCreationExpression - - - - new - - - ClassOrInterfaceType - - - Dims - - - ArrayInitializer - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - InterfaceModifier - - Annotation - - - - InterfaceModifier - - public - - - - InterfaceModifier - - protected - - - - InterfaceModifier - - private - - - - InterfaceModifier - - abstract - - - - InterfaceModifier - - static - - - - InterfaceModifier - - strictfp - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - NonWildTypeArguments - - - - < - - - ReferenceTypeList - - - > - - - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - EmptyStatement - - ; - - - - EnumConstants - - EnumConstant - - - - EnumConstants - - - - EnumConstants - - - , - - - EnumConstant - - - - - - LastFormalParameter - - - - - - VariableModifiers - - - - - Type - - - - - ... - - - - - VariableDeclaratorId - - - - - - LastFormalParameter - - FormalParameter - - - - AbstractMethodDeclaration - - - - - - AbstractMethodModifiers - - - - - - - TypeParameters - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - EnhancedForStatement - - - - for - - - ( - - - - - VariableModifiers - - - - - Type - - - Identifier - - - : - - - Expression - - - ) - - - Statement - - - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - EnumDeclaration - - - - - - ClassModifiers - - - - - enum - - - Identifier - - - - - Interfaces - - - - - EnumBody - - - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - - - Annotations - - - - - package - - - PackageName - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - WildcardBounds - - - - extends - - - ReferenceType - - - - - - WildcardBounds - - - - super - - - ReferenceType - - - - - - AbstractMethodModifier - - Annotation - - - - AbstractMethodModifier - - public - - - - AbstractMethodModifier - - abstract - - - - MethodInvocation - - - - MethodName - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - - - NonWildTypeArguments - - - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - - - NonWildTypeArguments - - - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - ClassName - - - . - - - super - - - . - - - - - NonWildTypeArguments - - - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - TypeName - - - . - - - NonWildTypeArguments - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - ConstantExpression - - Expression - - - - TypeDeclSpecifier - - TypeName - - - - TypeDeclSpecifier - - - - ClassOrInterfaceType - - - . - - - Identifier - - - - - - ExceptionTypeList - - ExceptionType - - - - ExceptionTypeList - - - - ExceptionTypeList - - - , - - - ExceptionType - - - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Finally - - - - finally - - - Block - - - - - - MarkerAnnotation - - - - @ - - - TypeName - - - - - - ConstructorDeclaration - - - - - - ConstructorModifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - ElementValuePair - - - - Identifier - - - = - - - ElementValue - - - - - - TypeImportOnDemandDeclaration - - - - import - - - PackageOrTypeName - - - . - - - * - - - ; - - - - - - ArrayAccess - - - - ExpressionName - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - BasicForStatement - - - - ForStatement - - EnhancedForStatement - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - PackageOrTypeName - - Identifier - - - - PackageOrTypeName - - - - PackageOrTypeName - - - . - - - Identifier - - - - - - AmbiguousName - - Identifier - - - - AmbiguousName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - ImportDeclaration - - SingleStaticImportDeclaration - - - - ImportDeclaration - - StaticImportOnDemandDeclaration - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - ElementValues - - ElementValue - - - - ElementValues - - - - ElementValues - - - , - - - ElementValue - - - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - AssertStatement - - - - assert - - - Expression - - - ; - - - - - - AssertStatement - - - - assert - - - Expression - - - : - - - Expression - - - ; - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - InstanceInitializer - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - MethodModifier - - Annotation - - - - MethodModifier - - public - - - - MethodModifier - - protected - - - - MethodModifier - - private - - - - MethodModifier - - abstract - - - - MethodModifier - - static - - - - MethodModifier - - final - - - - MethodModifier - - synchronized - - - - MethodModifier - - native - - - - MethodModifier - - strictfp - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - TypeArguments - - - - < - - - ActualTypeArgumentList - - - > - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - ClassOrInterfaceType - - ClassType - - - - ClassOrInterfaceType - - InterfaceType - - - - InstanceInitializer - - Block - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - Wildcard - - - - ? - - - - - WildcardBounds - - - - - - - - FormalParameterList - - LastFormalParameter - - - - FormalParameterList - - - - FormalParameters - - - , - - - LastFormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - LocalVariableDeclaration - - - - - - VariableModifiers - - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - - - TypeParameters - - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - - - TypeDeclSpecifier - - - - - TypeArguments - - - - - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - FormalParameters - - FormalParameter - - - - FormalParameters - - - - FormalParameters - - - , - - - FormalParameter - - - - - - VariableModifier - - final - - - - VariableModifier - - Annotation - - - - ClassDeclaration - - NormalClassDeclaration - - - - ClassDeclaration - - EnumDeclaration - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - FieldAccess - - - - ClassName - - - . - - - super - - - . - - - Identifier - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - BasicForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - NormalAnnotation - - - - @ - - - TypeName - - - ( - - - - - ElementValuePairs - - - - - ) - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ExpressionName - - Identifier - - - - ExpressionName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ArrayType - - - - Type - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - Arguments - - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - AnnotationTypeBody - - - - { - - - - - AnnotationTypeElementDeclarations - - - - - } - - - - - - LeftHandSide - - ExpressionName - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - ReferenceType - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - FieldModifiers - - FieldModifier - - - - FieldModifiers - - - - FieldModifiers - - - FieldModifier - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - TypeVariable - - Identifier - - - - DefaultValue - - - - default - - - ElementValue - - - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - ResultType - - Type - - - - ResultType - - void - - - - ConstructorModifiers - - ConstructorModifier - - - - ConstructorModifiers - - - - ConstructorModifiers - - - ConstructorModifier - - - - - - StaticImportOnDemandDeclaration - - - - import - - - static - - - TypeName - - - . - - - * - - - ; - - - - - - EnumBody - - - - - - - - EnumConstants - - - - - - - , - - - - - - - EnumBodyDeclarations - - - - - - - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - TypeVariable - - - - ReferenceType - - ArrayType - - - - ClassModifiers - - ClassModifier - - - - ClassModifiers - - - - ClassModifiers - - - ClassModifier - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - MethodModifiers - - - - - - - TypeParameters - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - ConstantModifiers - - ConstantModifier - - - - ConstantModifiers - - - - ConstantModifier - - - ConstantModifiers - - - - - - SingleElementAnnotation - - - - @ - - - TypeName - - - ( - - - ElementValue - - - ) - - - - - - EnumConstantName - - Identifier - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - FieldModifier - - Annotation - - - - FieldModifier - - public - - - - FieldModifier - - protected - - - - FieldModifier - - private - - - - FieldModifier - - static - - - - FieldModifier - - final - - - - FieldModifier - - transient - - - - FieldModifier - - volatile - - - - AnnotationTypeElementDeclaration - - - - - - AbstractMethodModifiers - - - - - Type - - - Identifier - - - ( - - - ) - - - - - Dims - - - - - - - DefaultValue - - - - - ; - - - - - - AnnotationTypeElementDeclaration - - ConstantDeclaration - - - - AnnotationTypeElementDeclaration - - ClassDeclaration - - - - AnnotationTypeElementDeclaration - - InterfaceDeclaration - - - - AnnotationTypeElementDeclaration - - EnumDeclaration - - - - AnnotationTypeElementDeclaration - - AnnotationTypeDeclaration - - - - AnnotationTypeElementDeclaration - - ; - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - - SingleStaticImportDeclaration - - - - import - - - static - - - TypeName - - - . - - - Identifier - - - ; - - - - - - InterfaceDeclaration - - NormalInterfaceDeclaration - - - - InterfaceDeclaration - - AnnotationTypeDeclaration - - - - NormalInterfaceDeclaration - - - - - - InterfaceModifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - ElementValueArrayInitializer - - - - { - - - - - ElementValues - - - - - - - , - - - - - } - - - - - - TypeParameters - - - - < - - - TypeParameterList - - - > - - - - - - TypeParameterList - - - - TypeParameterList - - - , - - - TypeParameter - - - - - - TypeParameterList - - TypeParameter - - - - ClassName - - Identifier - - - - ClassName - - - - AmbiguousName - - - . - - - Identifier - - - - - diff --git a/shared/bgf/java.jdk-1.impl.ext.bgf b/shared/bgf/java.jdk-1.impl.ext.bgf deleted file mode 100644 index 84dc0504..00000000 --- a/shared/bgf/java.jdk-1.impl.ext.bgf +++ /dev/null @@ -1,3267 +0,0 @@ - - - - Goal - - CompilationUnit - - - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - InterfaceDeclaration - - - - - - Modifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - InterfaceType - - ClassOrInterfaceType - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - Statement - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - SingleTypeImportDeclaration - - - - import - - - Name - - - ; - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ClassTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - ConstantDeclaration - - FieldDeclaration - - - - ClassTypeList - - ClassType - - - - ClassTypeList - - - - ClassTypeList - - - , - - - ClassType - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - Finally - - - - finally - - - Block - - - - - - EmptyStatement - - ; - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - Name - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - FormalParameter - - - - Type - - - VariableDeclaratorId - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - ClassInstanceCreationExpression - - - - new - - - ClassType - - - ( - - - - - ArgumentList - - - - - ) - - - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - ClassOrInterfaceType - - - DimExprs - - - - - Dims - - - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - FieldDeclaration - - - - - - Modifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - MethodInvocation - - - - Name - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - AbstractMethodDeclaration - - - - MethodHeader - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - ArrayAccess - - - - Name - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - Modifier - - public - - - - Modifier - - protected - - - - Modifier - - private - - - - Modifier - - static - - - - Modifier - - abstract - - - - Modifier - - final - - - - Modifier - - native - - - - Modifier - - synchronized - - - - Modifier - - transient - - - - Modifier - - volatile - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - package - - - Name - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - ConstantExpression - - Expression - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - ConstructorDeclaration - - - - - - Modifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - TypeImportOnDemandDeclaration - - - - import - - - Name - - - . - - - * - - - ; - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - Modifiers - - Modifier - - - - Modifiers - - - - Modifiers - - - Modifier - - - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - ClassOrInterfaceType - - Name - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - FormalParameterList - - FormalParameter - - - - FormalParameterList - - - - FormalParameterList - - - , - - - FormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - LocalVariableDeclaration - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - SimpleName - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - ClassOrInterfaceType - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - ClassDeclaration - - - - - - Modifiers - - - - - class - - - Identifier - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - Expression - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - CastExpression - - - - ( - - - Name - - - Dims - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ArrayType - - - - PrimitiveType - - - [ - - - ] - - - - - - ArrayType - - - - Name - - - [ - - - ] - - - - - - ArrayType - - - - ArrayType - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - MethodDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - QualifiedName - - - - Name - - - . - - - Identifier - - - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - LeftHandSide - - Name - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - Name - - SimpleName - - - - Name - - QualifiedName - - - - SimpleName - - Identifier - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - ArrayType - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - Modifiers - - - - - Type - - - MethodDeclarator - - - - - Throws - - - - - - - - MethodHeader - - - - - - Modifiers - - - - - void - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - diff --git a/shared/bgf/java.jdk-1.impl.rec.bgf b/shared/bgf/java.jdk-1.impl.rec.bgf deleted file mode 100644 index 00b6d68b..00000000 --- a/shared/bgf/java.jdk-1.impl.rec.bgf +++ /dev/null @@ -1,3262 +0,0 @@ - - - CompilationUnit - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - InterfaceDeclaration - - - - - - Modifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - InterfaceType - - ClassOrInterfaceType - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - Statement - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - SingleTypeImportDeclaration - - - - import - - - Name - - - ; - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ClassTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - ConstantDeclaration - - FieldDeclaration - - - - ClassTypeList - - ClassType - - - - ClassTypeList - - - - ClassTypeList - - - , - - - ClassType - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - Finally - - - - finally - - - Block - - - - - - EmptyStatement - - ; - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - Name - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - FormalParameter - - - - Type - - - VariableDeclaratorId - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - ClassInstanceCreationExpression - - - - new - - - ClassType - - - ( - - - - - ArgumentList - - - - - ) - - - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - ClassOrInterfaceType - - - DimExprs - - - - - Dims - - - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - FieldDeclaration - - - - - - Modifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - MethodInvocation - - - - Name - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - AbstractMethodDeclaration - - - - MethodHeader - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - ArrayAccess - - - - Name - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - Modifier - - public - - - - Modifier - - protected - - - - Modifier - - private - - - - Modifier - - static - - - - Modifier - - abstract - - - - Modifier - - final - - - - Modifier - - native - - - - Modifier - - synchronized - - - - Modifier - - transient - - - - Modifier - - volatile - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - package - - - Name - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - ConstantExpression - - Expression - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - ConstructorDeclaration - - - - - - Modifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - TypeImportOnDemandDeclaration - - - - import - - - Name - - - . - - - * - - - ; - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - Modifiers - - Modifier - - - - Modifiers - - - - Modifiers - - - Modifier - - - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - ClassOrInterfaceType - - Name - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - FormalParameterList - - FormalParameter - - - - FormalParameterList - - - - FormalParameterList - - - , - - - FormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - LocalVariableDeclaration - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - SimpleName - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - ClassOrInterfaceType - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - ClassDeclaration - - - - - - Modifiers - - - - - class - - - Identifier - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - Expression - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - CastExpression - - - - ( - - - Name - - - Dims - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ArrayType - - - - PrimitiveType - - - [ - - - ] - - - - - - ArrayType - - - - Name - - - [ - - - ] - - - - - - ArrayType - - - - ArrayType - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - MethodDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - QualifiedName - - - - Name - - - . - - - Identifier - - - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - LeftHandSide - - Name - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - Name - - SimpleName - - - - Name - - QualifiedName - - - - SimpleName - - Identifier - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - ArrayType - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - Modifiers - - - - - Type - - - MethodDeclarator - - - - - Throws - - - - - - - - MethodHeader - - - - - - Modifiers - - - - - void - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - diff --git a/shared/bgf/java.jdk-1.read.ext.bgf b/shared/bgf/java.jdk-1.read.ext.bgf deleted file mode 100644 index 827788fb..00000000 --- a/shared/bgf/java.jdk-1.read.ext.bgf +++ /dev/null @@ -1,3523 +0,0 @@ - - - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - InterfaceDeclaration - - - - - - InterfaceModifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - MethodName - - Identifier - - - - MethodName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - AbstractMethodModifiers - - AbstractMethodModifier - - - - AbstractMethodModifiers - - - - AbstractMethodModifiers - - - AbstractMethodModifier - - - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - TypeName - - Identifier - - - - TypeName - - - - PackageName - - - . - - - Identifier - - - - - - InterfaceType - - TypeName - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - Statement - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - ClassModifier - - public - - - - ClassModifier - - abstract - - - - ClassModifier - - final - - - - SingleTypeImportDeclaration - - - - import - - - TypeName - - - ; - - - - - - InterfaceModifiers - - InterfaceModifier - - - - InterfaceModifiers - - - - InterfaceModifiers - - - InterfaceModifier - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ClassTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - ConstantDeclaration - - - - ConstantModifiers - - - Type - - - VariableDeclarator - - - - - - ClassTypeList - - ClassType - - - - ClassTypeList - - - - ClassTypeList - - - , - - - ClassType - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - EmptyStatement - - ; - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - ExpressionName - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - FormalParameter - - - - Type - - - VariableDeclaratorId - - - - - - PackageName - - Identifier - - - - PackageName - - - - PackageName - - - . - - - Identifier - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - MethodModifiers - - MethodModifier - - - - MethodModifiers - - - - MethodModifiers - - - MethodModifier - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - ConstructorModifier - - public - - - - ConstructorModifier - - protected - - - - ConstructorModifier - - private - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - ClassInstanceCreationExpression - - - - new - - - ClassType - - - ( - - - - - ArgumentList - - - - - ) - - - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - TypeName - - - DimExprs - - - - - Dims - - - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - InterfaceModifier - - public - - - - InterfaceModifier - - abstract - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - FieldDeclaration - - - - - - FieldModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - MethodInvocation - - - - MethodName - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - AbstractMethodDeclaration - - - - - - AbstractMethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - ArrayAccess - - - - ExpressionName - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - package - - - PackageName - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - AbstractMethodModifier - - public - - - - AbstractMethodModifier - - abstract - - - - ConstantExpression - - Expression - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Finally - - - - finally - - - Block - - - - - - ConstructorDeclaration - - - - - - ConstructorModifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - TypeImportOnDemandDeclaration - - - - import - - - PackageName - - - . - - - * - - - ; - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - AmbiguousName - - Identifier - - - - AmbiguousName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - MethodModifier - - public - - - - MethodModifier - - protected - - - - MethodModifier - - private - - - - MethodModifier - - abstract - - - - MethodModifier - - static - - - - MethodModifier - - final - - - - MethodModifier - - synchronized - - - - MethodModifier - - native - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - ClassOrInterfaceType - - ClassType - - - - ClassOrInterfaceType - - InterfaceType - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - FormalParameterList - - FormalParameter - - - - FormalParameterList - - - - FormalParameterList - - - , - - - FormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - LocalVariableDeclaration - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - SimpleTypeName - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - TypeName - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - ClassDeclaration - - - - - - ClassModifiers - - - - - class - - - Identifier - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - ReferenceType - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ExpressionName - - Identifier - - - - ExpressionName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ArrayType - - - - Type - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - MethodDeclarator - - - - Identifer - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - LeftHandSide - - ExpressionName - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - FieldModifiers - - FieldModifier - - - - FieldModifiers - - - - FieldModifiers - - - FieldModifier - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - ResultType - - Type - - - - ResultType - - void - - - - ConstructorModifiers - - ConstructorModifier - - - - ConstructorModifiers - - - - ConstructorModifiers - - - ConstructorModifier - - - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - ArrayType - - - - ClassModifiers - - ClassModifier - - - - ClassModifiers - - - - ClassModifiers - - - ClassModifier - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - MethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - ConstantModifiers - - public - - - - ConstantModifiers - - static - - - - ConstantModifiers - - final - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - FieldModifier - - public - - - - FieldModifier - - protected - - - - FieldModifier - - private - - - - FieldModifier - - final - - - - FieldModifier - - static - - - - FieldModifier - - transient - - - - FieldModifier - - volatile - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - diff --git a/shared/bgf/java.jdk-1.read.rec.bgf b/shared/bgf/java.jdk-1.read.rec.bgf deleted file mode 100644 index 625b6dd7..00000000 --- a/shared/bgf/java.jdk-1.read.rec.bgf +++ /dev/null @@ -1,3528 +0,0 @@ - - - CompilationUnit - - ClassBodyDeclarations - - ClassBodyDeclaration - - - - ClassBodyDeclarations - - - - ClassBodyDeclarations - - - ClassBodyDeclaration - - - - - - PostDecrementExpression - - - - PostfixExpression - - - -- - - - - - - ExpressionStatement - - - - StatementExpression - - - ; - - - - - - PrimitiveType - - NumericType - - - - PrimitiveType - - boolean - - - - InterfaceTypeList - - InterfaceType - - - - InterfaceTypeList - - - - InterfaceTypeList - - - , - - - InterfaceType - - - - - - InterfaceDeclaration - - - - - - InterfaceModifiers - - - - - interface - - - Identifier - - - - - ExtendsInterfaces - - - - - InterfaceBody - - - - - - Statement - - StatementWithoutTrailingSubstatement - - - - Statement - - LabeledStatement - - - - Statement - - IfThenStatement - - - - Statement - - IfThenElseStatement - - - - Statement - - WhileStatement - - - - Statement - - ForStatement - - - - AndExpression - - EqualityExpression - - - - AndExpression - - - - AndExpression - - - & - - - EqualityExpression - - - - - - ConstructorBody - - - - { - - - - - ExplicitConstructorInvocation - - - - - - - BlockStatements - - - - - } - - - - - - ArgumentList - - Expression - - - - ArgumentList - - - - ArgumentList - - - , - - - Expression - - - - - - MethodName - - Identifier - - - - MethodName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ClassMemberDeclaration - - FieldDeclaration - - - - ClassMemberDeclaration - - MethodDeclaration - - - - Assignment - - - - LeftHandSide - - - AssignmentOperator - - - AssignmentExpression - - - - - - Interfaces - - - - implements - - - InterfaceTypeList - - - - - - CatchClause - - - - catch - - - ( - - - FormalParameter - - - ) - - - Block - - - - - - AbstractMethodModifiers - - AbstractMethodModifier - - - - AbstractMethodModifiers - - - - AbstractMethodModifiers - - - AbstractMethodModifier - - - - - - PostIncrementExpression - - - - PostfixExpression - - - ++ - - - - - - TypeName - - Identifier - - - - TypeName - - - - PackageName - - - . - - - Identifier - - - - - - InterfaceType - - TypeName - - - - BlockStatement - - LocalVariableDeclarationStatement - - - - BlockStatement - - Statement - - - - IfThenStatement - - - - if - - - ( - - - Expression - - - ) - - - Statement - - - - - - SwitchBlockStatementGroups - - SwitchBlockStatementGroup - - - - SwitchBlockStatementGroups - - - - SwitchBlockStatementGroups - - - SwitchBlockStatementGroup - - - - - - ClassModifier - - public - - - - ClassModifier - - abstract - - - - ClassModifier - - final - - - - SingleTypeImportDeclaration - - - - import - - - TypeName - - - ; - - - - - - InterfaceModifiers - - InterfaceModifier - - - - InterfaceModifiers - - - - InterfaceModifiers - - - InterfaceModifier - - - - - - PreIncrementExpression - - - - ++ - - - UnaryExpression - - - - - - ExplicitConstructorInvocation - - - - this - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - ExplicitConstructorInvocation - - - - super - - - ( - - - - - ArgumentList - - - - - ) - - - ; - - - - - - UnaryExpression - - PreIncrementExpression - - - - UnaryExpression - - PreDecrementExpression - - - - UnaryExpression - - - - + - - - UnaryExpression - - - - - - UnaryExpression - - - - - - - - UnaryExpression - - - - - - UnaryExpression - - UnaryExpressionNotPlusMinus - - - - VariableInitializers - - VariableInitializer - - - - VariableInitializers - - - - VariableInitializers - - - , - - - VariableInitializer - - - - - - DimExpr - - - - [ - - - Expression - - - ] - - - - - - Throws - - - - throws - - - ClassTypeList - - - - - - BlockStatements - - BlockStatement - - - - BlockStatements - - - - BlockStatements - - - BlockStatement - - - - - - ConstantDeclaration - - - - - - ConstantModifiers - - - - - Type - - - VariableDeclarator - - - - - - ClassTypeList - - ClassType - - - - ClassTypeList - - - - ClassTypeList - - - , - - - ClassType - - - - - - PrimaryNoNewArray - - Literal - - - - PrimaryNoNewArray - - this - - - - PrimaryNoNewArray - - - - ( - - - Expression - - - ) - - - - - - PrimaryNoNewArray - - ClassInstanceCreationExpression - - - - PrimaryNoNewArray - - FieldAccess - - - - PrimaryNoNewArray - - MethodInvocation - - - - PrimaryNoNewArray - - ArrayAccess - - - - AssignmentOperator - - = - - - - AssignmentOperator - - *= - - - - AssignmentOperator - - /= - - - - AssignmentOperator - - %= - - - - AssignmentOperator - - += - - - - AssignmentOperator - - -= - - - - AssignmentOperator - - <<= - - - - AssignmentOperator - - >>= - - - - AssignmentOperator - - >>>= - - - - AssignmentOperator - - &= - - - - AssignmentOperator - - ^= - - - - AssignmentOperator - - |= - - - - Literal - - IntegerLiteral - - - - Literal - - FloatingPointLiteral - - - - Literal - - BooleanLiteral - - - - Literal - - CharacterLiteral - - - - Literal - - StringLiteral - - - - Literal - - NullLiteral - - - - EmptyStatement - - ; - - - - ReturnStatement - - - - return - - - - - Expression - - - - - ; - - - - - - VariableDeclarator - - VariableDeclaratorId - - - - VariableDeclarator - - - - VariableDeclaratorId - - - = - - - VariableInitializer - - - - - - PostfixExpression - - Primary - - - - PostfixExpression - - ExpressionName - - - - PostfixExpression - - PostIncrementExpression - - - - PostfixExpression - - PostDecrementExpression - - - - SwitchLabel - - - - case - - - ConstantExpression - - - : - - - - - - SwitchLabel - - - - default - - - : - - - - - - AssignmentExpression - - ConditionalExpression - - - - AssignmentExpression - - Assignment - - - - FormalParameter - - - - Type - - - VariableDeclaratorId - - - - - - PackageName - - Identifier - - - - PackageName - - - - PackageName - - - . - - - Identifier - - - - - - ConditionalAndExpression - - InclusiveOrExpression - - - - ConditionalAndExpression - - - - ConditionalAndExpression - - - && - - - InclusiveOrExpression - - - - - - MethodModifiers - - MethodModifier - - - - MethodModifiers - - - - MethodModifiers - - - MethodModifier - - - - - - Type - - PrimitiveType - - - - Type - - ReferenceType - - - - EqualityExpression - - RelationalExpression - - - - EqualityExpression - - - - EqualityExpression - - - == - - - RelationalExpression - - - - - - EqualityExpression - - - - EqualityExpression - - - != - - - RelationalExpression - - - - - - InterfaceMemberDeclaration - - ConstantDeclaration - - - - InterfaceMemberDeclaration - - AbstractMethodDeclaration - - - - MultiplicativeExpression - - UnaryExpression - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - * - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - / - - - UnaryExpression - - - - - - MultiplicativeExpression - - - - MultiplicativeExpression - - - % - - - UnaryExpression - - - - - - BreakStatement - - - - break - - - - - Identifier - - - - - ; - - - - - - ConstructorModifier - - public - - - - ConstructorModifier - - protected - - - - ConstructorModifier - - private - - - - SynchronizedStatement - - - - synchronized - - - ( - - - Expression - - - ) - - - Block - - - - - - ClassInstanceCreationExpression - - - - new - - - ClassType - - - ( - - - - - ArgumentList - - - - - ) - - - - - - Super - - - - extends - - - ClassType - - - - - - ArrayCreationExpression - - - - new - - - PrimitiveType - - - DimExprs - - - - - Dims - - - - - - - - ArrayCreationExpression - - - - new - - - TypeName - - - DimExprs - - - - - Dims - - - - - - - - ArrayInitializer - - - - { - - - - - VariableInitializers - - - - - - - , - - - - - } - - - - - - InterfaceModifier - - public - - - - InterfaceModifier - - abstract - - - - UnaryExpressionNotPlusMinus - - PostfixExpression - - - - UnaryExpressionNotPlusMinus - - - - ~ - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - - - ! - - - UnaryExpression - - - - - - UnaryExpressionNotPlusMinus - - CastExpression - - - - SwitchBlock - - - - { - - - - - SwitchBlockStatementGroups - - - - - - - SwitchLabels - - - - - } - - - - - - FieldDeclaration - - - - - - FieldModifiers - - - - - Type - - - VariableDeclarators - - - ; - - - - - - StatementNoShortIf - - StatementWithoutTrailingSubstatement - - - - StatementNoShortIf - - LabeledStatementNoShortIf - - - - StatementNoShortIf - - IfThenElseStatementNoShortIf - - - - StatementNoShortIf - - WhileStatementNoShortIf - - - - StatementNoShortIf - - ForStatementNoShortIf - - - - MethodInvocation - - - - MethodName - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - Primary - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - MethodInvocation - - - - super - - - . - - - Identifier - - - ( - - - - - ArgumentList - - - - - ) - - - - - - AbstractMethodDeclaration - - - - - - AbstractMethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - ; - - - - - - IfThenElseStatement - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - Statement - - - - - - ArrayAccess - - - - ExpressionName - - - [ - - - Expression - - - ] - - - - - - ArrayAccess - - - - PrimaryNoNewArray - - - [ - - - Expression - - - ] - - - - - - Block - - - - { - - - - - BlockStatements - - - - - } - - - - - - ForUpdate - - StatementExpressionList - - - - ForInit - - StatementExpressionList - - - - ForInit - - LocalVariableDeclaration - - - - VariableDeclarators - - VariableDeclarator - - - - VariableDeclarators - - - - VariableDeclarators - - - , - - - VariableDeclarator - - - - - - ThrowStatement - - - - throw - - - Expression - - - ; - - - - - - ExclusiveOrExpression - - AndExpression - - - - ExclusiveOrExpression - - - - ExclusiveOrExpression - - - ^ - - - AndExpression - - - - - - Primary - - PrimaryNoNewArray - - - - Primary - - ArrayCreationExpression - - - - PackageDeclaration - - - - package - - - PackageName - - - ; - - - - - - RelationalExpression - - ShiftExpression - - - - RelationalExpression - - - - RelationalExpression - - - < - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - > - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - <= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - >= - - - ShiftExpression - - - - - - RelationalExpression - - - - RelationalExpression - - - instanceof - - - ReferenceType - - - - - - WhileStatementNoShortIf - - - - while - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - - - - ExtendsInterfaces - - - - extends - - - InterfaceType - - - - - - ExtendsInterfaces - - - - ExtendsInterfaces - - - , - - - InterfaceType - - - - - - AbstractMethodModifier - - public - - - - AbstractMethodModifier - - abstract - - - - ConstantExpression - - Expression - - - - VariableInitializer - - Expression - - - - VariableInitializer - - ArrayInitializer - - - - StaticInitializer - - - - static - - - Block - - - - - - Finally - - - - finally - - - Block - - - - - - ConstructorDeclaration - - - - - - ConstructorModifiers - - - - - ConstructorDeclarator - - - - - Throws - - - - - ConstructorBody - - - - - - TypeImportOnDemandDeclaration - - - - import - - - PackageName - - - . - - - * - - - ; - - - - - - PreDecrementExpression - - - - -- - - - UnaryExpression - - - - - - InterfaceMemberDeclarations - - InterfaceMemberDeclaration - - - - InterfaceMemberDeclarations - - - - InterfaceMemberDeclarations - - - InterfaceMemberDeclaration - - - - - - ForStatement - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - Statement - - - - - - AmbiguousName - - Identifier - - - - AmbiguousName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ContinueStatement - - - - continue - - - - - Identifier - - - - - ; - - - - - - ImportDeclaration - - SingleTypeImportDeclaration - - - - ImportDeclaration - - TypeImportOnDemandDeclaration - - - - CompilationUnit - - - - - - PackageDeclaration - - - - - - - ImportDeclarations - - - - - - - TypeDeclarations - - - - - - - - SwitchStatement - - - - switch - - - ( - - - Expression - - - ) - - - SwitchBlock - - - - - - Dims - - - - [ - - - ] - - - - - - Dims - - - - Dims - - - [ - - - ] - - - - - - ClassBody - - - - { - - - - - ClassBodyDeclarations - - - - - } - - - - - - ConditionalOrExpression - - ConditionalAndExpression - - - - ConditionalOrExpression - - - - ConditionalOrExpression - - - || - - - ConditionalAndExpression - - - - - - ClassBodyDeclaration - - ClassMemberDeclaration - - - - ClassBodyDeclaration - - StaticInitializer - - - - ClassBodyDeclaration - - ConstructorDeclaration - - - - SwitchBlockStatementGroup - - - - SwitchLabels - - - BlockStatements - - - - - - MethodDeclaration - - - - MethodHeader - - - MethodBody - - - - - - MethodModifier - - public - - - - MethodModifier - - protected - - - - MethodModifier - - private - - - - MethodModifier - - abstract - - - - MethodModifier - - static - - - - MethodModifier - - final - - - - MethodModifier - - synchronized - - - - MethodModifier - - native - - - - DoStatement - - - - do - - - Statement - - - while - - - ( - - - Expression - - - ) - - - ; - - - - - - ConditionalExpression - - ConditionalOrExpression - - - - ConditionalExpression - - - - ConditionalOrExpression - - - ? - - - Expression - - - : - - - ConditionalExpression - - - - - - ClassOrInterfaceType - - ClassType - - - - ClassOrInterfaceType - - InterfaceType - - - - TryStatement - - - - try - - - Block - - - Catches - - - - - - TryStatement - - - - try - - - Block - - - - - Catches - - - - - Finally - - - - - - SwitchLabels - - SwitchLabel - - - - SwitchLabels - - - - SwitchLabels - - - SwitchLabel - - - - - - FormalParameterList - - FormalParameter - - - - FormalParameterList - - - - FormalParameterList - - - , - - - FormalParameter - - - - - - Expression - - AssignmentExpression - - - - StatementExpressionList - - StatementExpression - - - - StatementExpressionList - - - - StatementExpressionList - - - , - - - StatementExpression - - - - - - AdditiveExpression - - MultiplicativeExpression - - - - AdditiveExpression - - - - AdditiveExpression - - - + - - - MultiplicativeExpression - - - - - - AdditiveExpression - - - - AdditiveExpression - - - - - - - MultiplicativeExpression - - - - - - FloatingPointType - - float - - - - FloatingPointType - - double - - - - LocalVariableDeclaration - - - - Type - - - VariableDeclarators - - - - - - ConstructorDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - InclusiveOrExpression - - ExclusiveOrExpression - - - - InclusiveOrExpression - - - - InclusiveOrExpression - - - | - - - ExclusiveOrExpression - - - - - - ClassType - - TypeName - - - - WhileStatement - - - - while - - - ( - - - Expression - - - ) - - - Statement - - - - - - ClassDeclaration - - - - - - ClassModifiers - - - - - class - - - Identifier - - - - - Super - - - - - - - Interfaces - - - - - ClassBody - - - - - - CastExpression - - - - ( - - - PrimitiveType - - - - - Dims - - - - - ) - - - UnaryExpression - - - - - - CastExpression - - - - ( - - - ReferenceType - - - ) - - - UnaryExpressionNotPlusMinus - - - - - - ImportDeclarations - - ImportDeclaration - - - - ImportDeclarations - - - - ImportDeclarations - - - ImportDeclaration - - - - - - TypeDeclaration - - ClassDeclaration - - - - TypeDeclaration - - InterfaceDeclaration - - - - TypeDeclaration - - ; - - - - LabeledStatement - - - - Identifier - - - : - - - Statement - - - - - - ExpressionName - - Identifier - - - - ExpressionName - - - - AmbiguousName - - - . - - - Identifier - - - - - - ArrayType - - - - Type - - - [ - - - ] - - - - - - StatementExpression - - Assignment - - - - StatementExpression - - PreIncrementExpression - - - - StatementExpression - - PreDecrementExpression - - - - StatementExpression - - PostIncrementExpression - - - - StatementExpression - - PostDecrementExpression - - - - StatementExpression - - MethodInvocation - - - - StatementExpression - - ClassInstanceCreationExpression - - - - MethodDeclarator - - - - Identifier - - - ( - - - - - FormalParameterList - - - - - ) - - - - - - MethodDeclarator - - - - MethodDeclarator - - - [ - - - ] - - - - - - VariableDeclaratorId - - Identifier - - - - VariableDeclaratorId - - - - VariableDeclaratorId - - - [ - - - ] - - - - - - IntegralType - - byte - - - - IntegralType - - short - - - - IntegralType - - int - - - - IntegralType - - long - - - - IntegralType - - char - - - - NumericType - - IntegralType - - - - NumericType - - FloatingPointType - - - - LeftHandSide - - ExpressionName - - - - LeftHandSide - - FieldAccess - - - - LeftHandSide - - ArrayAccess - - - - IfThenElseStatementNoShortIf - - - - if - - - ( - - - Expression - - - ) - - - StatementNoShortIf - - - else - - - StatementNoShortIf - - - - - - LocalVariableDeclarationStatement - - - - LocalVariableDeclaration - - - ; - - - - - - ShiftExpression - - AdditiveExpression - - - - ShiftExpression - - - - ShiftExpression - - - << - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >> - - - AdditiveExpression - - - - - - ShiftExpression - - - - ShiftExpression - - - >>> - - - AdditiveExpression - - - - - - FieldModifiers - - FieldModifier - - - - FieldModifiers - - - - FieldModifiers - - - FieldModifier - - - - - - MethodBody - - Block - - - - MethodBody - - ; - - - - Catches - - CatchClause - - - - Catches - - - - Catches - - - CatchClause - - - - - - ResultType - - Type - - - - ResultType - - void - - - - ConstructorModifiers - - ConstructorModifier - - - - ConstructorModifiers - - - - ConstructorModifiers - - - ConstructorModifier - - - - - - ReferenceType - - ClassOrInterfaceType - - - - ReferenceType - - ArrayType - - - - ClassModifiers - - ClassModifier - - - - ClassModifiers - - - - ClassModifiers - - - ClassModifier - - - - - - ForStatementNoShortIf - - - - for - - - ( - - - - - ForInit - - - - - ; - - - - - Expression - - - - - ; - - - - - ForUpdate - - - - - ) - - - StatementNoShortIf - - - - - - MethodHeader - - - - - - MethodModifiers - - - - - ResultType - - - MethodDeclarator - - - - - Throws - - - - - - - - LabeledStatementNoShortIf - - - - Identifier - - - : - - - StatementNoShortIf - - - - - - InterfaceBody - - - - { - - - - - InterfaceMemberDeclarations - - - - - } - - - - - - ConstantModifiers - - ConstantModifier - - - - ConstantModifiers - - - - ConstantModifiers - - - ConstantModifier - - - - - - ConstantModifier - - public - - - - ConstantModifier - - static - - - - ConstantModifier - - final - - - - FieldAccess - - - - Primary - - - . - - - Identifier - - - - - - FieldAccess - - - - super - - - . - - - Identifier - - - - - - TypeDeclarations - - TypeDeclaration - - - - TypeDeclarations - - - - TypeDeclarations - - - TypeDeclaration - - - - - - FieldModifier - - public - - - - FieldModifier - - protected - - - - FieldModifier - - private - - - - FieldModifier - - final - - - - FieldModifier - - static - - - - FieldModifier - - transient - - - - FieldModifier - - volatile - - - - StatementWithoutTrailingSubstatement - - Block - - - - StatementWithoutTrailingSubstatement - - EmptyStatement - - - - StatementWithoutTrailingSubstatement - - ExpressionStatement - - - - StatementWithoutTrailingSubstatement - - SwitchStatement - - - - StatementWithoutTrailingSubstatement - - DoStatement - - - - StatementWithoutTrailingSubstatement - - BreakStatement - - - - StatementWithoutTrailingSubstatement - - ContinueStatement - - - - StatementWithoutTrailingSubstatement - - ReturnStatement - - - - StatementWithoutTrailingSubstatement - - SynchronizedStatement - - - - StatementWithoutTrailingSubstatement - - ThrowStatement - - - - StatementWithoutTrailingSubstatement - - TryStatement - - - - DimExprs - - DimExpr - - - - DimExprs - - - - DimExprs - - - DimExpr - - - - - diff --git a/shared/bgf/mediawiki-bnf.bgf b/shared/bgf/mediawiki-bnf.bgf new file mode 100644 index 00000000..e5be0baf --- /dev/null +++ b/shared/bgf/mediawiki-bnf.bgf @@ -0,0 +1 @@ +wiki-pagewiki-pageredirectarticlearticleredirectredirect-tagcharactersinternal-link-startarticle-linkinternal-link-endpipeEOLredirect-tag#redirectcharacterscharactercharacterwhitespace-charnon-whitespace-charhtml-entitywhitespace-charspace-tabnewlinespace-tabspaceTABspace TAB\tnewlineCRLFLFCRCRLFCR\rLF\nnon-whitespace-charletterdecimal-digitsymbolletterucase-letterlcase-letterucase-letterABCDEFGHIJKLMNOPQRSTUVWXYZlcase-letterabcdefghijklmnopqrstuvwxyzdecimal-digit0123456789symbolhtml-unsafe-symbolunderscore.,html-unsafe-symbolunescaped-ampersandunescaped-less-thanunescaped-greater-thanunescaped-ampersand&unescaped-less-than<unescaped-greater-than>underscore_html-entity&html-entity-name;&#decimal-number;&#xhex-number;html-entity-namewgHtmlEntitiesdecimal-numberdecimal-digithex-numberhex-digithex-digitdecimal-digitABCDEFabcdefinternal-link-start[[article-linkinterwiki-prefix:namespace-prefixarticle-titlearticle-linkinterwiki-prefix:namespace-prefixarticle-title/article-title../article-titleinterwiki-prefixinterwiki:interwikiWikipedianamespace-prefixnamespace:namespacestringarticle-titlepagesub-pagearticle-titletitle-legal-char%pagepage-first-charpage-charpage-first-charcanonical-page-first-charlcase-lettercanonical-page-first-charucase-letterdecimal-digitunderscorepage-charcanonical-page-charspacecanonical-page-charletterdecimal-digitunderscoresub-pagesub-page-separatorpage-charsub-page-separator/title-legal-charspace%!"$&'()*,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghijklmnopqrstuvwxyz~ƒˆŠŒŽ˜šœžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ+internal-link-end]]pipe|EOLnewlineEOFarticlespecial-block-and-moreparagraph-and-morespecial-block-and-morespecial-blockEOFnewlinespecial-block-and-morenewlineparagraph-and-morespecial-blockhorizontal-ruleheadinglist-itemtablespace-blockhorizontal-rule----dashesinline-textnewlinedashes-inline-textinline-elementinline-textinline-elementcategory-linklinkmagic-linkimage-inlinegallery-blockmedia-inlinetext-with-formattingcategory-linkinternal-link-startcategory-namespace:article-titlepipesort-keyinternal-link-endcategory-namespaceCategorysort-keyany-textany-textunicode-characterunicode-characterany-supported-unicode-characterWhitespacesany-supported-unicode-characterWhitespacesnewlineTABspacelinkinternal-linkexternal-linkinternal-linkinternal-link-startarticle-link#section-idpipelink-descriptioninternal-link-endextra-descriptionsection-idtitle-legal-char%#link-descriptionarticle-titleextra-descriptionletterexternal-linkexternal-link-starturlwhitespacelink-descriptionexternal-link-endurlexternal-link-start[urlprotocolurl-pathprotocolhttp://https://ftp://ftps://mailto:url-pathurl-charurl-pathurl-charLEGAL_URL_ENTITYwhitespacewhitespace-charwhitespaceEOFexternal-link-end]magic-linkisbnrfc-numberpmid-numberisbnISBNspacesisbn-numberspacesspaceisbn-number9789space-decimal-digitspace-9decimal-digitXxrfc-numberRFCspacesdigitsdigitsdecimal-digitpmid-numberPMIDspacesdigitsimage-inline[[Image:page-name.image-extensionpipeimage-option]]page-nametitle-characterspacetitle-charactertitle-characterunicode-characterbad-title-charactersbad-title-characters[]{}<>_|#image-extensionjpgjpegpngsvggifbmpimage-optionimage-mode-parameterimage-size-parameterimage-align-parameterimage-valign-parametercaptionimage-other-parameterimage-mode-parameterimage-mode-manual-thumbimage-mode-auto-thumbimage-mode-frameimage-mode-framelessimage-mode-manual-thumbthumbnail=image-namethumb=image-nameimage-namepage-name.image-extensionimage-mode-auto-thumbthumbnailthumbimage-mode-frameframedenframedframeimage-mode-framelessframelessimage-size-parameterdigitspximage-align-parameterimage-align-leftimage-align-centerimage-align-rightimage-align-noneimage-align-leftleftimage-align-centercentercentreimage-align-rightrightimage-align-nonenoneimage-valign-parameterimage-valign-baselineimage-valign-subimage-valign-superimage-valign-topimage-valign-text-topimage-valign-middleimage-valign-bottomimage-valign-text-bottomimage-valign-baselinebaselineimage-valign-subsubimage-valign-supersupersupimage-valign-toptopimage-valign-text-toptext-topimage-valign-middlemiddleimage-valign-bottombottomimage-valign-text-bottomtext-bottomcaptioninline-textimage-other-parameterimage-param-pageimage-param-uprightimage-param-borderimage-param-pagepage=$1page $1image-param-uprightupright=digitsimage-param-borderbordergallery-block<gallery>newlinegallery-imagenewlinegallery-imagenewline</gallery>gallery-imageimage-name|captionmedia-inline[[Media:page-name.media-extension]]media-extensionoggwavtext-with-formattingformattinginline-htmlnoparse-blockbehaviour-switchhtml-entityhtml-unsafe-symboltextrandom-characterformattingbold-italic-togglebold-toggleitalic-togglebold-italic-toggle'''''bold-toggle'''italic-toggle''noparse-blocknowiki-blockhtml-blockmath-blockpre-blockhtml-commentnowiki-blocknowiki-opening-tagwhitespacenowiki-bodywhitespacenowiki-closing-tagnowiki-opening-tag<nowikiwhitespacecharacters>nowiki-bodycharactersnowiki-closing-tag</nowikiwhitespace>html-blockhtml-opening-tagwhitespacehtml-bodywhitespacehtml-closing-taghtml-opening-tag<htmlwhitespacecharacters>html-bodycharactershtml-closing-tag</htmlwhitespace>pre-blockpre-opening-tagwhitespacepre-bodywhitespacepre-closing-tagpre-opening-tag<prewhitespacecharacters>pre-bodycharacterspre-closing-tag</prewhitespace>html-comment<!--characters-->behaviour-switchbehaviourswitch-tocbehaviourswitch-forcetocbehaviourswitch-notocbehaviourswitch-noeditsectionbehaviourswitch-nogallerybehaviourswitch-toc__TOC__behaviourswitch-forcetoc__FORCETOC__behaviourswitch-notoc__NOTOC__behaviourswitch-noeditsection__NOEDITSECTION__behaviourswitch-nogallery__NOGALLERY__textlinenewlinelinetextharmless-characterlineplain-textspacesplain-textplain-textunicode-wiki<nowiki>|[]<>{}</nowiki>unicode-wikispace*#:;unicode-wikispace=spaceunicode-wikiunicode-wiki' 'unicode-wikiunicode-wikiunicode-characterwiki-markup-characterswiki-markup-characters|[]*#:;<>='{}harmless-characterABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789random-characterheadinglevel-6-headinglevel-5-headinglevel-4-headinglevel-3-headinglevel-2-headinglevel-1-headinglevel-6-heading======inline-text======space-tabsnewlinespace-tabsspace-tablevel-5-heading=====inline-text=====space-tabsnewlinelevel-4-heading====inline-text====space-tabsnewlinelevel-3-heading===inline-text===space-tabsnewlinelevel-2-heading==inline-text==space-tabsnewlinelevel-1-heading=inline-text=space-tabsnewlinelist-itemindent-itemenumerated-itembullet-itemindent-item:list-itemitem-bodyitem-bodydefined-termwhitespaceinline-textdefined-term;textdefinitiondefinition:inline-textenumerated-item#list-itemitem-bodybullet-item*list-itemitem-bodytable{|spacetable-parametersnewlinetable-first-row|}table-parametersCSShtml-table-attributestable-first-rowtable-column-linenewlinetable-column-multilinetable-rowtable-column-line|inline-text|table-column-linetable-column-multiline|table-cell-parameters|any-textnewlinetable-column-multilinetable-cell-parametersCSShtml-cell-attributestable-row|-CSSnewlinetable-columntable-rowtable-columntable-column-linetable-column-multilinespace-blockspaceinline-textnewlinespace-block-2space-block-2spaceinline-textnewlineparagraph-and-moreparagraphEOFnewlinespecial-block-and-morenewlineparagraph-and-moreparagraphnewlinelines-of-textlines-of-textlines-of-textline-of-textlines-of-textline-of-textinline-textnewline \ No newline at end of file diff --git a/shared/bgf/mediawiki-ebnf.bgf b/shared/bgf/mediawiki-ebnf.bgf new file mode 100644 index 00000000..6ff5ba95 --- /dev/null +++ b/shared/bgf/mediawiki-ebnf.bgf @@ -0,0 +1,1737 @@ + + + + + digit + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 0 + + + + + + URL + + + + + + ASCII_letter + + + + + :// + + + + + URL_char + + + + + + + + ASCII_letter + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + + URL_char + + + + ASCII_letter + + + digit + + + - + + + _ + + + . + + + ~ + + + ! + + + * + + + ' + + + ( + + + ) + + + ; + + + : + + + @ + + + & + + + = + + + + + + + $ + + + , + + + / + + + ? + + + % + + + # + + + [ + + + ] + + + + + + text + + + + Unicode_char + + + + + + full_pagename + + + + + + + + + + namespace + + + : + + + + + : + + + + + + + pagename + + + + + + namespace + + + + Unicode_char + + + + + Unicode_char + + + + + + + + pagename + + + + Unicode_char + + + + + Unicode_char + + + + + + + + start_link + + [[ + + + + end_link + + ]] + + + + internal_link + + + + start_link + + + full_pagename + + + + + + + | + + + label + + + + + + + end_link + + + label_extension + + + + + + external_link + + + + URL + + + + + start_link + + + URL + + + + + + + whitespace + + + label + + + + + + + end_link + + + label_extension + + + + + + + + redirect + + + + #REDIRECT + + + internal_link + + + + + + header_link + + + + /* + + + text + + + */ + + + + + + ISBN_link + + + + digit + + + + + + + - + + + + + + + + + + digit + + + digit + + + digit + + + + + + + - + + + + + + + + + + digit + + + digit + + + digit + + + digit + + + digit + + + + + + + + + - + + + + + + + + + + digit + + + X + + + x + + + + + + + + + + + + header_end + + + + + + whitespace + + + + + line_break + + + + + + header6 + + + + line_break + + + ====== + + + + + whitespace + + + + + text + + + + + whitespace + + + + + ====== + + + header_end + + + + + + header5 + + + + line_break + + + ===== + + + + + whitespace + + + + + text + + + + + whitespace + + + + + ===== + + + header_end + + + + + + header4 + + + + line_break + + + ==== + + + + + whitespace + + + + + text + + + + + whitespace + + + + + ==== + + + header_end + + + + + + header3 + + + + line_break + + + === + + + + + whitespace + + + + + text + + + + + whitespace + + + + + === + + + header_end + + + + + + header2 + + + + line_break + + + == + + + + + whitespace + + + + + text + + + + + whitespace + + + + + == + + + header_end + + + + + + header1 + + + + line_break + + + = + + + + + whitespace + + + + + text + + + + + whitespace + + + + + = + + + header_end + + + + + + comment + + + + <!-- + + + + + Text + + + + + --> + + + + + + Commentary + + + + <comment + + + + + Text + + + + + > + + + + + Text + + + + + </comment> + + + + + + horizontal_rule + + + + ---- + + + + + - + + + + + + + + bold_italic_text + + + + ''''' + + + text + + + ''''' + + + + + + bold_text + + + + ''' + + + text + + + ''' + + + + + + italic_text + + + + '' + + + text + + + '' + + + + + + code_line + + + + line_break + + + + + + text + + + + + + nowiki + + + + <nowiki> + + + text + + + </nowiki> + + + + + + unordered_list + + + + * + + + text + + + + + + continue_unordered_list + + + + + + unordered_list + + + continue_unordered_list + + + : + + + * + + + # + + + + + line_break + + + unordered_list + + + + + + ordered_list + + + + # + + + text + + + + + + continue_ordered_list + + + + + + ordered_list + + + continue_ordered_list + + + : + + + * + + + # + + + + + line_break + + + ordered_list + + + + + + definition_list + + + + + + text + + + + + : + + + text + + + + + + continue_definition_list + + + + + + definition_list + + + continue_definition_list + + + : + + + * + + + # + + + + + line_break + + + definition_list + + + + + + user_signature + + ~~~ + + + + user_signature_with_date + + ~~~~ + + + + current_date + + ~~~~~ + + + + include + + + + template + + + tplarg + + + + + + template + + + + {{ + + + title + + + + + + + | + + + part + + + + + + + }} + + + + + + tplarg + + + + {{{ + + + title + + + + + + + | + + + part + + + + + + + }}} + + + + + + part + + + + + + + + name + + + = + + + + + + + value + + + + + + title + + balanced_text + + + + name + + balanced_text + + + + value + + balanced_text + + + + balanced_text + + + + text_without_consecutive_equal_braces + + + + + + + include + + + text_without_consecutive_equal_braces + + + + + + + + + + place_TOC + + + + + + + + whitespace + + + line_break + + + + + + + __TOC__ + + + + + + + whitespace + + + line_break + + + + + + + + + + force_TOC + + + + + + + + whitespace + + + line_break + + + + + + + __FORCETOC__ + + + + + + + whitespace + + + line_break + + + + + + + + + + disable_TOC + + + + + + + + whitespace + + + line_break + + + + + + + __NOTOC__ + + + + + + + whitespace + + + line_break + + + + + + + + + + disable_section_edit + + + + + + + + whitespace + + + line_break + + + + + + + __NOEDITSECTION__ + + + + + + + whitespace + + + line_break + + + + + + + + + + table_start + + + + {| + + + + + + + style + + + whitespace + + + + + + + line_break + + + + + + table_end + + |} + + + + table_header + + + + |+ + + + text + + + line_break + + + + + + table_header_cell + + + + + + line_break + + + ! + + + + + + + style + + + whitespace + + + + + + + text + + + + + + + table_cell + + + + + !! + + + || + + + + + + + + + style + + + whitespace + + + + + + + text + + + + + + + + table_cell + + + + + + line_break + + + | + + + + + + + style + + + whitespace + + + + + + + text + + + + + + + table_cell + + + || + + + + + + + style + + + whitespace + + + + + + + text + + + + + + + + table_row + + + + line_break + + + |- + + + + + - + + + + + + + + + style + + + whitespace + + + + + + + line_break + + + + + + table_body + + + + + + table_header_cell + + + table_cell + + + + + + + + + table_row + + + + + table_header_cell + + + table_cell + + + + + + + + + + + + table + + + + table_start + + + + + table_header + + + + + + + table_row + + + + + table_body + + + table_end + + + + + + Unicode_char + + + + + + header + + + + header1 + + + header2 + + + header3 + + + header4 + + + header5 + + + header6 + + + + + \ No newline at end of file diff --git a/shared/bgf/modula-sdf.bgf b/shared/bgf/modula-sdf.bgf new file mode 100644 index 00000000..564ae9c8 --- /dev/null +++ b/shared/bgf/modula-sdf.bgf @@ -0,0 +1,2756 @@ + + + + Compilation + + Compilation + + + + + + UNSAFE + + + + + + + Interface + + + Module + + + GenInf + + + GenMod + + + + + + + + Interface + + + + + + INTERFACE + + + Id + + + ; + + + + + Import + + + + + + + Decl + + + + + END + + + Id + + + . + + + + + + + INTERFACE + + + Id + + + = + + + Id + + + GenActls + + + END + + + Id + + + . + + + + + + + + Id + + + + NOT + + + ROOT + + + + + + Import + + + + AsImport + + + FromImport + + + + + + AsImport + + + + IMPORT + + + ImportItem + + + + + + + , + + + ImportItem + + + + + + + ; + + + + + + ImportItem + + + + Id + + + + + Id + + + AS + + + Id + + + + + + + + FromImport + + + + FROM + + + Id + + + IMPORT + + + IdList + + + ; + + + + + + IdList + + + + Id + + + + + + + , + + + Id + + + + + + + + + + Decl + + + + + + CONST + + + + + + + ConstDecl + + + ; + + + + + + + + + + + TYPE + + + + + + + TypeDecl + + + ; + + + + + + + + + + + EXCEPTION + + + + + + + ExceptionDecl + + + ; + + + + + + + + + + + VAR + + + + + + + VariableDecl + + + ; + + + + + + + + + + + ProcedureHead + + + + + + + = + + + Block + + + Id + + + + + + + ; + + + + + + + REVEAL + + + + + + + QualId + + + + + = + + + <: + + + + + Type + + + ; + + + + + + + + + + + + ConstDecl + + + + Id + + + + + + + : + + + Type + + + + + + + = + + + Expr + + + + + + Type + + + + TypeLiteral + + + QualId + + + + + + TypeLiteral + + + + ArrayType + + + PackedType + + + EnumType + + + ObjectType + + + ProcedureType + + + RecordType + + + RefType + + + SetType + + + SubrangeType + + + + + ( + + + Type + + + ) + + + + + TypeName + + + + + + ArrayType + + + + ARRAY + + + + + + + Type + + + + + + + , + + + Type + + + + + + + + + + + OF + + + Type + + + + + + PackedType + + + + BITS + + + Expr + + + FOR + + + Type + + + + + + Expr + + + + + + Expr + + + OR + + + Expr + + + + + + + Expr + + + AND + + + Expr + + + + + + + NOT + + + Expr + + + + + + + Expr + + + Relop + + + Expr + + + + + + + Expr + + + Addop + + + Expr + + + + + + + Expr + + + Mulop + + + Expr + + + + + + + + + + + Expr + + + + + + + - + + + Expr + + + + + + + Expr + + + Selector + + + + + Id + + + Literal + + + Constructor + + + + + ( + + + Expr + + + ) + + + + + + + + Relop + + + + = + + + # + + + < + + + <= + + + > + + + >= + + + IN + + + + + + Addop + + + + + + + + - + + + & + + + + + + Mulop + + + + * + + + / + + + DIV + + + MOD + + + + + + Selector + + + + ^ + + + + + . + + + Id + + + + + + + [ + + + Expr + + + + + + + , + + + Expr + + + + + + + ] + + + + + + + ( + + + + + + + Actual + + + + + + + , + + + Actual + + + + + + + + + + + ) + + + + + + + + Actual + + + + TypeLiteral + + + + + + + + + Id + + + := + + + + + + + Expr + + + + + + + + Constructor + + + + Type + + + { + + + + + AnyCons + + + + + } + + + + + + AnyCons + + + + Elt + + + + + + + , + + + Elt + + + + + + + + + + + , + + + .. + + + + + + + + + + Elt + + + + + + Expr + + + .. + + + Expr + + + + + Expr + + + + + Id + + + := + + + Expr + + + + + + + + EnumType + + + + { + + + + + IdList + + + + + } + + + + + + ObjectType + + + + + + Ancestor + + + + + + + Brand + + + + + OBJECT + + + Fields + + + + + + + METHODS + + + Methods + + + + + + + + + + + OVERRIDES + + + Overrides + + + + + + + END + + + + + + Ancestor + + + + TypeName + + + ObjectType + + + QualId + + + + + + TypeName + + + + ROOT + + + + + UNTRACED + + + ROOT + + + + + + + + QualId + + + + Id + + + + + + + . + + + Id + + + + + + + + + + Brand + + + + BRANDED + + + + + TextLiteral + + + + + + + + Fields + + + + + + Field + + + + + + + ; + + + Field + + + + + + + + + ; + + + + + + + + + + Field + + + + + + IdList + + + : + + + Type + + + := + + + Expr + + + + + + + IdList + + + : + + + Type + + + + + + + IdList + + + := + + + Expr + + + + + + + + Methods + + + + + + Method + + + + + + + ; + + + Method + + + + + + + + + ; + + + + + + + + + + Method + + + + Id + + + Signature + + + + + + + := + + + Expr + + + + + + + + + + Signature + + + + ( + + + Formals + + + ) + + + + + + + : + + + Type + + + + + + + + + + + RAISES + + + Raises + + + + + + + + + + Formals + + + + + + Formal + + + + + + + ; + + + Formal + + + + + + + + + ; + + + + + + + + + + Formal + + + + + + + + Mode + + + + + IdList + + + : + + + Type + + + := + + + Expr + + + + + + + + + Mode + + + + + IdList + + + : + + + Type + + + + + + + + + Mode + + + + + IdList + + + := + + + Expr + + + + + + + + Mode + + + + VALUE + + + VAR + + + READONLY + + + + + + Raises + + + + + + { + + + + + + + QualId + + + + + + + , + + + QualId + + + + + + + + + + + } + + + + + ANY + + + + + + Overrides + + + + + + Override + + + + + + + ; + + + Override + + + + + + + + + ; + + + + + + + + + + Override + + + + Id + + + := + + + Expr + + + + + + ProcedureType + + + + PROCEDURE + + + Signature + + + + + + RecordType + + + + RECORD + + + Fields + + + END + + + + + + RefType + + + + + + UNTRACED + + + + + + + Brand + + + + + REF + + + Type + + + + + + SetType + + + + SET + + + OF + + + Type + + + + + + SubrangeType + + + + [ + + + Expr + + + .. + + + Expr + + + ] + + + + + + TypeDecl + + + + Id + + + + + = + + + <: + + + + + Type + + + + + + ExceptionDecl + + + + Id + + + + + + + ( + + + Type + + + ) + + + + + + + + + + VariableDecl + + + + + + IdList + + + : + + + Type + + + := + + + Expr + + + + + + + IdList + + + : + + + Type + + + + + + + IdList + + + := + + + Expr + + + + + + + + ProcedureHead + + + + PROCEDURE + + + Id + + + Signature + + + + + + Block + + + + + + Decl + + + + + BEGIN + + + Stmts + + + END + + + + + + Stmts + + + + + + Stmt + + + + + + + ; + + + Stmt + + + + + + + + + ; + + + + + + + + + + Stmt + + + + AssignStmt + + + Block + + + CallStmt + + + CaseStmt + + + ExitStmt + + + EvalStmt + + + ForStmt + + + IfStmt + + + LockStmt + + + LoopStmt + + + RaiseStmt + + + RepeatStmt + + + ReturnStmt + + + TryFinStmt + + + TryXptStmt + + + TCaseStmt + + + WhileStmt + + + WithStmt + + + + + + AssignStmt + + + + Expr + + + := + + + Expr + + + + + + CallStmt + + + + Expr + + + ( + + + + + + + Actual + + + + + + + , + + + Actual + + + + + + + + + + + ) + + + + + + CaseStmt + + + + CASE + + + Expr + + + OF + + + + + | + + + + + Case + + + + + + + | + + + Case + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + Case + + + + Label + + + + + + + , + + + Label + + + + + + + => + + + Stmts + + + + + + Label + + + + Expr + + + + + + + .. + + + Expr + + + + + + + + + + ExitStmt + + EXIT + + + + EvalStmt + + + + EVAL + + + Expr + + + + + + ForStmt + + + + FOR + + + Id + + + := + + + Expr + + + TO + + + Expr + + + + + + + BY + + + Expr + + + + + + + DO + + + Stmts + + + END + + + + + + IfStmt + + + + IF + + + Expr + + + THEN + + + Stmts + + + + + + + ELSIF + + + Expr + + + THEN + + + Stmts + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + LockStmt + + + + LOCK + + + Expr + + + DO + + + Stmts + + + END + + + + + + LoopStmt + + + + LOOP + + + Stmts + + + END + + + + + + RaiseStmt + + + + RAISE + + + QualId + + + + + + + ( + + + Expr + + + ) + + + + + + + + + + RepeatStmt + + + + REPEAT + + + Stmts + + + UNTIL + + + Expr + + + + + + ReturnStmt + + + + RETURN + + + + + Expr + + + + + + + + TryFinStmt + + + + TRY + + + Stmts + + + FINALLY + + + Stmts + + + END + + + + + + TryXptStmt + + + + TRY + + + Stmts + + + EXCEPT + + + + + | + + + + + Handler + + + + + + + | + + + Handler + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + Handler + + + + QualId + + + + + + + , + + + QualId + + + + + + + + + + + ( + + + Id + + + ) + + + + + + + => + + + Stmts + + + + + + TCaseStmt + + + + TYPECASE + + + Expr + + + OF + + + + + | + + + + + TCase + + + + + + + | + + + TCase + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + TCase + + + + Type + + + + + + + , + + + Type + + + + + + + + + + + ( + + + Id + + + ) + + + + + + + => + + + Stmts + + + + + + WhileStmt + + + + WHILE + + + Expr + + + DO + + + Stmts + + + END + + + + + + WithStmt + + + + WITH + + + Binding + + + + + + + , + + + Binding + + + + + + + DO + + + Stmts + + + END + + + + + + Binding + + + + Id + + + = + + + Expr + + + + + + GenActls + + + + ( + + + + + IdList + + + + + ) + + + + + + Module + + + + + + MODULE + + + Id + + + + + + + EXPORTS + + + IdList + + + + + + + ; + + + + + Import + + + + + Block + + + Id + + + . + + + + + + + MODULE + + + Id + + + + + + + EXPORTS + + + IdList + + + + + + + = + + + Id + + + GenActls + + + END + + + Id + + + . + + + + + + + + GenInf + + + + GENERIC + + + INTERFACE + + + Id + + + GenFmls + + + ; + + + + + Import + + + + + + + Decl + + + + + END + + + Id + + + . + + + + + + GenFmls + + + + ( + + + + + IdList + + + + + ) + + + + + + GenMod + + + + GENERIC + + + MODULE + + + Id + + + GenFmls + + + ; + + + + + Import + + + + + Block + + + Id + + + . + + + + + \ No newline at end of file diff --git a/shared/bgf/modula-src-052.bgf b/shared/bgf/modula-src-052.bgf new file mode 100644 index 00000000..08230840 --- /dev/null +++ b/shared/bgf/modula-src-052.bgf @@ -0,0 +1,3588 @@ + + + + + Compilation + + + + + + UNSAFE + + + + + + + Interface + + + Module + + + + + + + + Interface + + + + INTERFACE + + + Ident + + + ; + + + + + Import + + + + + + + Declaration + + + + + END + + + Ident + + + . + + + + + + Module + + + + MODULE + + + Ident + + + + + + + EXPORTS + + + IDList + + + + + + + ; + + + + + Import + + + + + Block + + + Ident + + + . + + + + + + Import + + + + + + + + FROM + + + Ident + + + + + + + IMPORT + + + IDList + + + ; + + + + + + Block + + + + + + Declaration + + + + + BEGIN + + + Stmts + + + END + + + + + + Declaration + + + + + + CONST + + + + + + + ConstDecl + + + ; + + + + + + + + + + + TYPE + + + + + + + TypeDecl + + + ; + + + + + + + + + + + EXCEPTION + + + + + + + ExceptionDecl + + + ; + + + + + + + + + + + VAR + + + + + + + VariableDecl + + + ; + + + + + + + + + + + ProcedureHead + + + + + + + = + + + Block + + + Ident + + + + + + + ; + + + + + + + REVEAL + + + + + + + TypeID + + + + + = + + + <: + + + + + Type + + + ; + + + + + + + + + + + + ConstDecl + + + + Ident + + + + + + + : + + + Type + + + + + + + = + + + ConstExpr + + + + + + TypeDecl + + + + Ident + + + + + = + + + <: + + + + + Type + + + + + + ExceptionDecl + + + + Ident + + + + + + + ( + + + Type + + + ) + + + + + + + + + + VariableDecl + + + + IDList + + + : + + + Type + + + & + + + := + + + Expr + + + + + + ProcedureHead + + + + PROCEDURE + + + Ident + + + Signature + + + + + + Signature + + + + ( + + + Formals + + + ) + + + + + + + : + + + Type + + + + + + + + + + + RAISES + + + Raises + + + + + + + + + + Formals + + + + + + Formal + + + + + + + ; + + + Formal + + + + + + + + + ; + + + + + + + + + + Formal + + + + + + + + VALUE + + + VAR + + + READONLY + + + + + + + IDList + + + : + + + Type + + + & + + + := + + + ConstExpr + + + + + + Raises + + + + { + + + + + + + ExceptionID + + + + + + + , + + + ExceptionID + + + + + + + + + + + } + + + + + + Stmts + + + + + + Stmt + + + + + + + ; + + + Stmt + + + + + + + + + ; + + + + + + + + + + Stmt + + + + AssignStmt + + + Block + + + CallStmt + + + CaseStmt + + + ExitStmt + + + EvalStmt + + + ForStmt + + + IfStmt + + + LockStmt + + + LoopStmt + + + RaiseStmt + + + RepeatStmt + + + ReturnStmt + + + TryFinStmt + + + TryXptStmt + + + TCaseStmt + + + WhileStmt + + + WithStmt + + + + + + AssignStmt + + + + Expr + + + := + + + Expr + + + + + + CallStmt + + + + Expr + + + ( + + + + + + + Actual + + + + + + + , + + + Actual + + + + + + + + + + + ) + + + + + + CaseStmt + + + + CASE + + + Expr + + + OF + + + + + Case + + + + + + + + + | + + + Case + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + ExitStmt + + EXIT + + + + EvalStmt + + + + EVAL + + + Expr + + + + + + ForStmt + + + + FOR + + + Ident + + + := + + + Expt + + + TO + + + Expr + + + + + + + BY + + + Expr + + + + + + + DO + + + Stmts + + + END + + + + + + IfStmt + + + + IF + + + Expr + + + THEN + + + Stmts + + + + + + + ELSIF + + + Expt + + + THEN + + + Stmts + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + LockStmt + + + + LOCK + + + Expr + + + DO + + + Stmts + + + END + + + + + + LoopStmt + + + + LOOP + + + Stmts + + + END + + + + + + RaiseStmt + + + + RAISE + + + ExceptionID + + + + + + + ( + + + Expr + + + ) + + + + + + + + + + Repeatstmt + + + + REPEAT + + + Stmts + + + UNTIL + + + Expr + + + + + + ReturnStmt + + + + RETURN + + + + + Expr + + + + + + + + TCaseStmt + + + + TYPECASE + + + Expr + + + OF + + + + + Tcase + + + + + + + + + | + + + Tcase + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + TryXptStmt + + + + TRY + + + Stmts + + + EXCEPT + + + + + Handler + + + + + + + + + | + + + Handler + + + + + + + + + + + ELSE + + + Stmts + + + + + + + END + + + + + + TryFinStmt + + + + TRY + + + Stmts + + + FINALLY + + + Stmts + + + END + + + + + + WhileStmt + + + + WHILE + + + Expt + + + DO + + + Stmts + + + END + + + + + + WithStmt + + + + WITH + + + Binding + + + + + + + , + + + Binding + + + + + + + DO + + + Stmts + + + END + + + + + + Case + + + + Labels + + + + + + + , + + + Labels + + + + + + + => + + + Stmts + + + + + + Labels + + + + ConstExpr + + + + + + + .. + + + ConstExpr + + + + + + + + + + Handler + + + + ExceptionID + + + + + + + , + + + ExceptionID + + + + + + + + + + + ( + + + Ident + + + ) + + + + + + + => + + + Stmts + + + + + + Tcase + + + + Type + + + + + + + , + + + Type + + + + + + + + + + + ( + + + Ident + + + ) + + + + + + + => + + + Stmts + + + + + + Binding + + + + Ident + + + = + + + Expr + + + + + + Actual + + + + + + + + + + Ident + + + := + + + + + + + Expr + + + + + Type + + + + + + Type + + + + TypeName + + + ArrayType + + + PackedType + + + EnumType + + + ObjectType + + + ProcedureType + + + RecordType + + + RefType + + + SetType + + + SubrangeType + + + + + ( + + + Type + + + ) + + + + + + + + ArrayType + + + + ARRAY + + + + + + + Type + + + + + + + , + + + Type + + + + + + + + + + + OF + + + Type + + + + + + PackedType + + + + BITS + + + ConstExpr + + + FOR + + + Type + + + + + + EnumType + + + + { + + + + + IDList + + + + + } + + + + + + ObjectType + + + + + + Ancestor + + + + + + + Brand + + + + + OBJECT + + + Fields + + + + + + + METHODS + + + Methods + + + + + + + END + + + + + + ProcedureType + + + + PROCEDURE + + + Signature + + + + + + RecordType + + + + RECORD + + + Fields + + + END + + + + + + RefType + + + + + + UNTRACED + + + + + + + Brand + + + + + REF + + + Type + + + + + + SetType + + + + SET + + + OF + + + Type + + + + + + SubrangeType + + + + [ + + + ConstExpr + + + .. + + + ConstExpr + + + ] + + + + + + Ancestor + + + + TypeName + + + ObjectType + + + UNTRACED + + + + + + Brand + + + + BRANDED + + + + + TextLiteral + + + + + + + + Fields + + + + + + Field + + + + + + + ; + + + Field + + + + + + + + + ; + + + + + + + + + + Field + + + + IDList + + + : + + + Type + + + & + + + := + + + ConstExpr + + + + + + Methods + + + + + + Method + + + + + + + ; + + + Method + + + + + + + + + ; + + + + + + + + + + Method + + + + Ident + + + Signature + + + & + + + := + + + ProcedureID + + + + + + ConstExpr + + Expr + + + + Expr + + + + E1 + + + + + + + OR + + + E1 + + + + + + + + + + E1 + + + + E2 + + + + + + + AND + + + E2 + + + + + + + + + + E2 + + + + + + NOT + + + + + E3 + + + + + + E3 + + + + E4 + + + + + + + Relop + + + E4 + + + + + + + + + + E4 + + + + E5 + + + + + + + Addop + + + E5 + + + + + + + + + + E5 + + + + E6 + + + + + + + Mulop + + + E6 + + + + + + + + + + E6 + + + + + + + + + + + + - + + + + + + + E7 + + + + + + E7 + + + + E8 + + + + + Selector + + + + + + + + E8 + + + + Ident + + + Number + + + CharLiteral + + + TextLiteral + + + Constructor + + + + + ( + + + Expr + + + ) + + + + + + + + Relop + + + + = + + + # + + + < + + + <= + + + > + + + >= + + + IN + + + + + + Addop + + + + + + + + - + + + & + + + + + + Mulop + + + + * + + + / + + + DIV + + + MOD + + + + + + Selector + + + + ^ + + + + + . + + + Ident + + + + + + + [ + + + Expr + + + + + + + , + + + Expr + + + + + + + ] + + + + + + + ( + + + + + + + Actual + + + + + + + , + + + Actual + + + + + + + + + + + ) + + + + + + + + Constructor + + + + Type + + + { + + + + + + + SetCons + + + RecordCons + + + ArrayCons + + + + + + + } + + + + + + SetCons + + + + SetElt + + + + + + + . + + + SetElt + + + + + + + + + + SetElt + + + + Expr + + + + + + + .. + + + Expr + + + + + + + + + + RecordCons + + + + RecordElt + + + + + + + , + + + RecordElt + + + + + + + + + + RecordElt + + + + + + + + Ident + + + := + + + + + + + Expr + + + + + + ArrayCons + + + + Expr + + + + + + + , + + + Expr + + + + + + + + + + + , + + + .. + + + + + + + + + + TypeName + + + + + + Ident + + + + + + + . + + + Ident + + + + + + + + + ROOT + + + + + UNTRACED + + + ROOT + + + + + + + + ExceptionID + + + + Ident + + + + + + + . + + + Ident + + + + + + + + + + ProcedureID + + + + Ident + + + + + + + . + + + Ident + + + + + + + + + + IDList + + + + Ident + + + + + + + , + + + Ident + + + + + + + + + + Literal + + + + Number + + + CharLiteral + + + TextLiteral + + + + + + Ident + + + + Letter + + + + + + + Letter + + + Digit + + + _ + + + + + + + + + + Operator + + + + + + + + - + + + * + + + / + + + . + + + ^ + + + + + : + + + = + + + + + = + + + $ + + + < + + + + + < + + + = + + + + + + + > + + + = + + + + + > + + + & + + + + + < + + + : + + + + + + + = + + + > + + + + + , + + + ; + + + | + + + : + + + + + . + + + . + + + + + ( + + + ) + + + { + + + } + + + [ + + + ] + + + + + + CharLiteral + + + + + + + + + PrintingChar + + + Escape + + + + + + + + + + + TextLiteral + + + + " + + + + + + + PrintingChar + + + Escape + + + + + + + " + + + + + + Escape + + + + + + \ + + + n + + + + + + + \ + + + t + + + + + + + \ + + + r + + + + + + + \ + + + f + + + + + + + \ + + + \ + + + + + + + \ + + + + + + + + + + \ + + + " + + + + + + + \ + + + OctalDigit + + + OctalDigit + + + OctalDigit + + + + + + + + Number + + + + + + Digit + + + + + + + + + Digit + + + + + _ + + + + + HexDigit + + + + + + + + + + + Digit + + + + + . + + + + + Digit + + + + + + + Exponent + + + + + + + + + + Exponent + + + + + + E + + + e + + + D + + + d + + + + + + + + + + + + + - + + + + + + + + + Digit + + + + + + + + PrintingChar + + + + Letter + + + Digit + + + UtherChar + + + + + + HexDigit + + + + Digit + + + A + + + B + + + C + + + D + + + E + + + F + + + a + + + b + + + c + + + d + + + e + + + f + + + + + + Digit + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + OctalDigit + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + Letter + + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + + + + OtherChar + + + + + + + ! + + + # + + + $ + + + % + + + & + + + ( + + + ) + + + * + + + + + + + , + + + - + + + . + + + / + + + : + + + ; + + + < + + + = + + + > + + + ? + + + @ + + + [ + + + ] + + + ^ + + + _ + + + + + + { + + + | + + + } + + + ~ + + + ExtendedChar + + + + + + ExtendedChar + + + +   + + + ¡ + + + ¢ + + + £ + + + ¤ + + + ¥ + + + ¦ + + + § + + + ¨ + + + © + + + ª + + + « + + + ¬ + + + ­ + + + ® + + + ¯ + + + ° + + + ± + + + ² + + + ³ + + + ´ + + + µ + + + + + + · + + + ¸ + + + ¹ + + + º + + + » + + + ¼ + + + ½ + + + ¾ + + + ¿ + + + À + + + Á + + +  + + + à + + + Ä + + + Å + + + Æ + + + Ç + + + È + + + É + + + Ê + + + Ë + + + Ì + + + Í + + + Î + + + Ï + + + Ð + + + Ñ + + + Ò + + + Ó + + + Ô + + + Õ + + + Ö + + + × + + + Ø + + + Ù + + + Ú + + + Û + + + Ü + + + Ý + + + Þ + + + ß + + + à + + + á + + + â + + + ã + + + ä + + + å + + + æ + + + ç + + + è + + + é + + + ê + + + ë + + + ì + + + í + + + î + + + ï + + + ð + + + ñ + + + ò + + + ó + + + ô + + + õ + + + ö + + + ÷ + + + ø + + + ù + + + ú + + + û + + + ü + + + ý + + + þ + + + ÿ + + + + + \ No newline at end of file diff --git a/shared/bgf/w3c-xpath1.bgf b/shared/bgf/w3c-xpath1.bgf new file mode 100644 index 00000000..5f48da00 --- /dev/null +++ b/shared/bgf/w3c-xpath1.bgf @@ -0,0 +1,1002 @@ + + + + + + LocationPath + + + + RelativeLocationPath + + + AbsoluteLocationPath + + + + + + + AbsoluteLocationPath + + + + + + / + + + + + RelativeLocationPath + + + + + + + AbbreviatedAbsoluteLocationPath + + + + + + + RelativeLocationPath + + + + Step + + + + + RelativeLocationPath + + + / + + + Step + + + + + AbbreviatedRelativeLocationPath + + + + + + + Step + + + + + + AxisSpecifier + + + NodeTest + + + + + Predicate + + + + + + + AbbreviatedStep + + + + + + + AxisSpecifier + + + + + + AxisName + + + :: + + + + + AbbreviatedAxisSpecifier + + + + + + + AxisName + + + + ancestor + + + ancestor-or-self + + + attribute + + + child + + + descendant + + + descendant-or-self + + + following + + + following-sibling + + + namespace + + + parent + + + preceding + + + preceding-sibling + + + self + + + + + + + NodeTest + + + + NameTest + + + + + NodeType + + + ( + + + ) + + + + + + + processing-instruction + + + ( + + + Literal + + + ) + + + + + + + + + Predicate + + + + [ + + + PredicateExpr + + + ] + + + + + + + PredicateExpr + + Expr + + + + + AbbreviatedAbsoluteLocationPath + + + + // + + + RelativeLocationPath + + + + + + + AbbreviatedRelativeLocationPath + + + + RelativeLocationPath + + + // + + + Step + + + + + + + AbbreviatedStep + + + + . + + + .. + + + + + + + AbbreviatedAxisSpecifier + + + + @ + + + + + + + Expr + + OrExpr + + + + + PrimaryExpr + + + + VariableReference + + + + + ( + + + Expr + + + ) + + + + + Literal + + + Number + + + FunctionCall + + + + + + + FunctionCall + + + + FunctionName + + + ( + + + + + + + Argument + + + + + + + , + + + Argument + + + + + + + + + + + ) + + + + + + + Argument + + Expr + + + + + UnionExpr + + + + PathExpr + + + + + UnionExpr + + + | + + + PathExpr + + + + + + + + + PathExpr + + + + LocationPath + + + FilterExpr + + + + + FilterExpr + + + / + + + RelativeLocationPath + + + + + + + FilterExpr + + + // + + + RelativeLocationPath + + + + + + + + + FilterExpr + + + + PrimaryExpr + + + + + FilterExpr + + + Predicate + + + + + + + + + OrExpr + + + + AndExpr + + + + + OrExpr + + + or + + + AndExpr + + + + + + + + + AndExpr + + + + EqualityExpr + + + + + AndExpr + + + and + + + EqualityExpr + + + + + + + + + EqualityExpr + + + + RelationalExpr + + + + + EqualityExpr + + + = + + + RelationalExpr + + + + + + + EqualityExpr + + + != + + + RelationalExpr + + + + + + + + + RelationalExpr + + + + AdditiveExpr + + + + + RelationalExpr + + + < + + + AdditiveExpr + + + + + + + RelationalExpr + + + > + + + AdditiveExpr + + + + + + + RelationalExpr + + + <= + + + AdditiveExpr + + + + + + + RelationalExpr + + + >= + + + AdditiveExpr + + + + + + + + + AdditiveExpr + + + + MultiplicativeExpr + + + + + AdditiveExpr + + + + + + + MultiplicativeExpr + + + + + + + AdditiveExpr + + + - + + + MultiplicativeExpr + + + + + + + + + MultiplicativeExpr + + + + UnaryExpr + + + + + MultiplicativeExpr + + + MultiplyOperator + + + UnaryExpr + + + + + + + MultiplicativeExpr + + + div + + + UnaryExpr + + + + + + + MultiplicativeExpr + + + mod + + + UnaryExpr + + + + + + + + + UnaryExpr + + + + UnionExpr + + + + + - + + + UnaryExpr + + + + + + + + + ExprToken + + + + ( + + + ) + + + [ + + + ] + + + . + + + .. + + + @ + + + , + + + :: + + + NameTest + + + NodeType + + + Operator + + + FunctionName + + + AxisName + + + Literal + + + Number + + + VariableReference + + + + + + + Number + + + + + + Digits + + + + + + + . + + + + + Digits + + + + + + + + + + + + + . + + + Digits + + + + + + + + + Operator + + + + OperatorName + + + MultiplyOperator + + + / + + + // + + + | + + + + + + + - + + + = + + + != + + + < + + + <= + + + > + + + >= + + + + + + + OperatorName + + + + and + + + or + + + mod + + + div + + + + + + + MultiplyOperator + + * + + + + + VariableReference + + + + $ + + + QName + + + + + + + NameTest + + + + * + + + + + NCName + + + : + + + * + + + + + QName + + + + + + + NodeType + + + + comment + + + text + + + processing-instruction + + + node + + + + + + + ExprWhitespace + + S + + + + + Digits + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + \ No newline at end of file