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

📄 parser.pm

📁 這是一個VHDL的parser目前版本為0.12
💻 PM
📖 第 1 页 / 共 4 页
字号:
	| 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 + -