📄 parser.pm
字号:
| group_declaration ########################################################################################################subprogram_declaration : subprogram_specification ';' subprogram_specification : procedure_specification | function_specification procedure_specification : reserved_word_procedure identifier_or_operator_symbol parameter_interface_list(?) identifier_or_operator_symbol : identifier | operator_symbolfunction_specification : pure_or_impure(?) reserved_word_function identifier_or_operator_symbol parameter_interface_list(?) reserved_word_return type_mark | <error>##### parameter interface list# used to declare io for functions or procedure declarations####parameter_interface_list : '(' interface_list ')' | <error>pure_or_impure : reserved_word_pure | reserved_word_impuresubprogram_body : subprogram_specification reserved_word_is subprogram_declarative_part(?) reserved_word_begin sequential_statement(s?) reserved_word_end reserved_word_function_or_procedure(?) identifier_or_operator_symbol(?) ';' | <error>reserved_word_function_or_procedure : reserved_word_function | reserved_word_proceduresubprogram_declarative_part : subprogram_declaration | subprogram_body | type_declaration | subtype_declaration | file_declaration | alias_declaration | attribute_declaration | attribute_specification | use_clause | group_template_declaration | group_declaration type_declaration : reserved_word_type identifier is_type_definition(?) ';' is_type_definition : reserved_word_is type_definitiontype_definition : enumeration_type_definition | integer_type_definition | floating_type_definition | physical_type_definition | array_type_definition | record_type_definition | access_type_definition | file_type_definition constant_declaration : reserved_word_constant identifier_comma_identifier ':' subtype_indication default_value(?) ';' signal_declaration : reserved_word_signal identifier_comma_identifier ':' subtype_indication reserved_word_register_or_bus(?) default_value(?) ';' reserved_word_register_or_bus : reserved_word_register | reserved_word_busshared_variable_declaration : reserved_word_shared variable_declarationvariable_declaration : reserved_word_variable identifier_comma_identifier ':' subtype_indication default_value(?) ';'file_declaration : reserved_word_file identifier_comma_identifier ':' subtype_indication open_file_expression_is_string_expression_option(?) ';' open_file_expression_is_string_expression_option : open_file_expression_option(?) reserved_word_is string_expression open_file_expression_option : reserved_word_open file_open_kind_expression alias_declaration : reserved_word_alias identifier_or_character_literal_or_operator_symbol colon_subtype_indication(?) reserved_word_is name signature(?) ';'identifier_or_character_literal_or_operator_symbol : identifier | character_literal | operator_symbolcolon_subtype_indication : ':' subtype_indicationcomponent_declaration : reserved_word_component component_name reserved_word_is(?) generic_declaration_section(?) port_declaration_section(?) reserved_word_end reserved_word_component component_name(?) ';' | <error>attribute_declaration : reserved_word_attribute identifier ':' type_mark ';'attribute_specification : reserved_word_attribute identifier reserved_word_of entity_name_list ':' entity_class reserved_word_is expression_rule ';'entity_name_list : ( reserved_word_others | reserved_word_all | id_char_op_comma_id_char_op )id_char_op_comma_id_char_op : id_or_char_or_op_with_optional_signature comma_id_or_char_or_op_with_optional_signature(s?)comma_id_or_char_or_op_with_optional_signature : ',' id_or_char_or_op_with_optional_signatureid_or_char_or_op_with_optional_signature : identifier_or_character_literal_or_operator_symbol signature(?)entity_class : ( reserved_word_entity | reserved_word_architecture | reserved_word_configuration | reserved_word_procedure | reserved_word_function | reserved_word_package | reserved_word_type | reserved_word_subtype | reserved_word_constant | reserved_word_signal | reserved_word_variable | reserved_word_component | reserved_word_label | reserved_word_literal | reserved_word_units | reserved_word_group | reserved_word_file )configuration_specification : reserved_word_for component_specification binding_indication ';'component_specification : reserved_word_others_all_or_one_or_more_instantiation_labels ':' component_namereserved_word_others_all_or_one_or_more_instantiation_labels : reserved_word_others | reserved_word_all | instantiation_label_comma_instantiation_labelinstantiation_label_comma_instantiation_label : instantiation_label comma_instantiation_label(s?)comma_instantiation_label : ',' instantiation_labelbinding_indication : use_entity_or_configuration_or_open(?) generic_map_section(?) port_map_section(?) ';'use_entity_or_configuration_or_open : reserved_word_use ( reserved_word_entity_and_entity_name_arch_name_in_parens | reserved_word_configuration_and_configuration_name | reserved_word_open )disconnection_specification : reserved_word_disconnect ( reserved_word_others | reserved_word_all | signal_name_comma_signal_name ) ':' type_mark reserved_word_after time_expression ';'group_template_declaration : reserved_word_group identifier reserved_word_is list_of_entity_class_with_optional_box_in_parens ';'list_of_entity_class_with_optional_box_in_parens : '(' entity_class_box_comma_entity_class_box ')'entity_class_box_comma_entity_class_box : entity_class_with_optional_box_operator comma_entity_class_with_optional_box_operator(s?)comma_entity_class_with_optional_box_operator : ',' entity_class_with_optional_box_operatorentity_class_with_optional_box_operator : entity_class box_operator(?)box_operator : '<>'group_declaration : reserved_word_group identifier ':' group_template_name '(' name_char_literal_comma_name_char_literal ')' ';'name_char_literal_comma_name_char_literal : name_or_char_literal comma_name_char_literal(s?)comma_name_char_literal : ',' name_or_char_literalname_or_char_literal : ( name | character_literal )use_clause : reserved_word_use selected_name_comma_selected_name ';'selected_name_comma_selected_name : selected_name comma_selected_name(s?)comma_selected_name : ',' selected_name########################################################################################################enumeration_type_definition : '(' id_or_char_comma_id_or_char ')'id_or_char_comma_id_or_char : identifier_or_character_literal comma_id_or_char(s?)comma_id_or_char : ',' identifier_or_character_literalidentifier_or_character_literal : identifier | character_literalsimple_expression_to_downto_simple_expression : simple_expression reserved_word_to_or_downto simple_expression reserved_word_to_or_downto : reserved_word_to | reserved_word_downtorange_attribute_name_or_simple_expression_to_downto_simple_expression : range_attribute_name | simple_expression_to_downto_simple_expressioninteger_type_definition : reserved_word_range range_attribute_name_or_simple_expression_to_downto_simple_expression floating_type_definition : reserved_word_range range_attribute_name_or_simple_expression_to_downto_simple_expression physical_type_definition : reserved_word_range range_attribute_name_or_simple_expression_to_downto_simple_expression reserved_word_units identifier ';' identifier_is_physical_literal(?) reserved_word_end reserved_word_units identifier(?)identifier_is_physical_literal : identifier '=' physical_literalarray_type_definition : reserved_word_array '(' array_type_mark_definition_or_array_discrete_range_definition ')' reserved_word_of element_subtype_indicationarray_type_mark_definition_or_array_discrete_range_definition : type_mark_range_box_comma_type_mark_range_box | array_discrete_range_definitiontype_mark_range_box_comma_type_mark_range_box : type_mark_range_box comma_type_mark_range_box(s?)comma_type_mark_range_box : ',' type_mark_range_box type_mark_range_box : type_mark reserved_word_range box_operatorarray_discrete_range_definition : discrete_range_comma_discrete_rangediscrete_range_comma_discrete_range : discrete_range comma_discrete_range(s?)comma_discrete_range : ',' discrete_rangerecord_type_definition : reserved_word_record record_element_definition(s) reserved_word_end reserved_word_record identifier(?)record_element_definition : identifier_comma_identifier ':' subtype_indication ';'access_type_definition : reserved_word_access subtype_indicationfile_type_definition : reserved_word_file reserved_word_of type_marksubtype_declaration : reserved_word_subtype identifier reserved_word_is subtype_indication ';'subtype_indication : # resolution_function_name type_mark range_or_simple_or_discrete(?) | <error>range_or_simple_or_discrete : reserved_word_range_range_attribute_name_or_simple_downto_expression | discrete_range_in_parensdiscrete_range_in_parens : '(' discrete_range ')'reserved_word_range_range_attribute_name_or_simple_downto_expression : reserved_word_range range_attribute_name_or_simple_expression_to_downto_simple_expression discrete_range : range_attribute_name | simple_expression_to_downto_simple_expression | discrete_subtype_indicationdiscrete_subtype_indication : subtype_indicationtype_mark : type_name########################################################################################################concurrent_statement : component_instantiation_statement | block_statement | process_statement | concurrent_procedure_call_statement | concurrent_assertion_statement | concurrent_signal_assignment_statement | generate_statement block_statement : block_label ':' reserved_word_block guard_expression_in_parens(?) reserved_word_is(?) generic_declaration_section(?) generic_map_section(?) port_declaration_section(?) port_map_section(?) block_declarative_item(s?) reserved_word_begin concurrent_statement(s?) reserved_word_end reserved_word_block block_label(?) ';'guard_expression_in_parens : '(' guard_expression ')'block_declarative_item : subprogram_declaration | subprogram_body | type_declaration | subtype_declaration | constant_declaration | signal_declaration | shared_variable_declaration | file_declaration | alias_declaration | component_declaration | attribute_declaration | attribute_specification | configuration_specification | disconnection_specification | use_clause | group_template_declaration | group_declarationprocess_statement : label_followed_by_colon(?) reserved_word_postponed(?) reserved_word_process sensitivity_list(?) reserved_word_is(?) process_declarative_item(s?) reserved_word_begin sequential_statement(s?) reserved_word_end reserved_word_postponed(?) reserved_word_process process_label(?) ';' | <error>label_followed_by_colon : label ':'sensitivity_list : '(' signal_name_comma_signal_name ')'process_declarative_item : subprogram_declaration | subprogram_body | type_declaration | subtype_declaration | constant_declaration | variable_declaration | file_declaration | alias_declaration | attribute_declaration | attribute_specification | use_clause | group_template_declaration | group_declaration concurrent_procedure_call_statement : label_followed_by_colon(?) reserved_word_postponed(?) procedure_name subprogram_parameter_section(?) ';'concurrent_assertion_statement : label_followed_by_colon(?) reserved_word_postponed(?) reserved_word_assert boolean_expression reserved_word_report_and_expression_rule(?) reserved_word_severity_and_expression_rule(?) ';'reserved_word_report_and_expression_rule : reserved_word_report expression_rulereserved_word_severity_and_expression_rule : reserved_word_severity expression_ruleconcurrent_signal_assignment_statement : label_followed_by_colon(?) reserved_word_postponed(?) selected_or_conditional_signal_assignmentselected_or_conditional_signal_assignment : selected_signal_assignment | conditional_signal_assignmentselected_signal_assignment : reserved_word_with
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -