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

📄 parser.pm

📁 這是一個VHDL的parser目前版本為0.12
💻 PM
📖 第 1 页 / 共 4 页
字号:
		expression_rule 	reserved_word_select		name_or_aggregate 	'<='	reserved_word_guarded(?) 	delay_mechanism(?)		waveform_when_choices_comma_waveform_when_choices	';'waveform_when_choices_comma_waveform_when_choices :	waveform_when_choices	comma_waveform_when_choices(s?)comma_waveform_when_choices :	','	waveform_when_choiceswaveform_when_choices :	waveform_rule reserved_word_when choices_pipe_choices conditional_signal_assignment :	name_or_aggregate 	'<=' 	reserved_word_guarded(?) 	delay_mechanism(?)		waveform_rule 		when_boolean_expression_else_waveform_rule(s?)	';' name_or_aggregate : 	name | aggregatewhen_boolean_expression_else_waveform_rule :	reserved_word_when 		boolean_expression 	reserved_word_else		waveform_rulecomponent_instantiation_statement :	instantiation_label 	':'	entity_configuration_component	generic_map_section(?)	port_map_section(?)	';'	| <error>	entity_configuration_component :	reserved_word_entity_and_entity_name_arch_name_in_parens |	reserved_word_configuration_and_configuration_name |	reserved_word_component_and_component_name reserved_word_entity_and_entity_name_arch_name_in_parens :	reserved_word_entity 		entity_name 		architecture_identifier_in_parens(?)  reserved_word_configuration_and_configuration_name :	reserved_word_configuration 		configuration_name reserved_word_component_and_component_name :	reserved_word_component(?) 		component_name  architecture_identifier_in_parens :	 '(' architecture_identifier ')'  generate_statement :	generate_label ':'		for_identifier_in_range_or_if_boolean_expression	reserved_word_generate		generate_block_declarative_item_and_begin(?)		concurrent_statement(s?)	reserved_word_end 	reserved_word_generate 	generate_label(?) 	';'for_identifier_in_range_or_if_boolean_expression :	for_identifier_in_range | if_boolean_expressionfor_identifier_in_range :	reserved_word_for 		identifier 	reserved_word_in 		discrete_rangeif_boolean_expression :	reserved_word_if 		boolean_expressiongenerate_block_declarative_item_and_begin :	block_declarative_item(s?)	reserved_word_begin########################################################################################################sequential_statement :	  wait_statement 	| assertion_statement	| report_statement 	| signal_assignment_statement 	| variable_assignment_statement 	| procedure_call_statement 	| if_statement 	| case_statement 	| loop_statement 	| next_statement 	| exit_statement 	| return_statement 	| null_statement	| <error>wait_statement :	label_followed_by_colon(?)	reserved_word_wait		on_list_of_signal(?)	reserved_word_until_and_boolean_expression(?)	reserved_word_for_and_time_expression(?)	';'reserved_word_until_and_boolean_expression :	reserved_word_until 		boolean_expressionreserved_word_for_and_time_expression :	reserved_word_for 		time_expressionon_list_of_signal : 	reserved_word_on 		signal_name_comma_signal_nameassertion_statement :	label_followed_by_colon(?)	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_rulereport_statement :	label_followed_by_colon(?)	reserved_word_report_and_expression_rule 	reserved_word_severity_and_expression_rule(?)	';'signal_assignment_statement :	label_followed_by_colon(?)	name_or_aggregate 	'<='	delay_mechanism(?)	waveform_rule	';'delay_mechanism :	reserved_word_transport | inertial_with_optional_reject_timeinertial_with_optional_reject_time :	reserved_word_reject_and_time_expression(?) 	reserved_word_inertialreserved_word_reject_and_time_expression :	reserved_word_reject 		time_expressionwaveform_rule :	  reserved_word_unaffected 	| waveform_item_comma_waveform_itemwaveform_item_comma_waveform_item :	waveform_item	comma_waveform_item(s?)comma_waveform_item :	','	waveform_itemwaveform_item :	  null_with_optional_after_time_expression 	| value_expression_with_optional_time_expressionnull_with_optional_after_time_expression :	reserved_word_null 	reserved_word_after_and_time_expression(?) value_expression_with_optional_time_expression :	value_expression 	reserved_word_after_and_time_expression(?)reserved_word_after_and_time_expression :	reserved_word_after 	time_expression variable_assignment_statement :	label_followed_by_colon(?)		name_or_aggregate 	':=' 		expression_rule 	';'procedure_call_statement :	label_followed_by_colon(?)		procedure_name 		subprogram_parameter_section(?) 	';'	| <error>if_statement :	label_followed_by_colon(?)	reserved_word_if 		boolean_expression 	reserved_word_then		sequential_statement(s)	optional_elsif_section(s?)	optional_else_section(?)	reserved_word_end 	reserved_word_if 	if_label(?) 	';'	| <error>optional_elsif_section :	reserved_word_elsif 		boolean_expression 	reserved_word_then		sequential_statement(s)optional_else_section :	reserved_word_else 		sequential_statement(s)case_statement :	label_followed_by_colon(?)	reserved_word_case expression_rule reserved_word_is		when_choices_sequential_statement(s)	reserved_word_end reserved_word_case case_label(?) ';'when_choices_sequential_statement :	reserved_word_when 		choices_pipe_choices 	'=>' 		sequential_statement(s)loop_statement :	label_followed_by_colon(?)	while_boolean_or_for_identifier_in_discrete_range	reserved_word_loop		sequential_statement(s)	reserved_word_end reserved_word_loop loop_label(?) ';'while_boolean_or_for_identifier_in_discrete_range :	  reserved_word_while_and_boolean_expression	| reserved_word_for_identifier_in_discrete_rangereserved_word_while_and_boolean_expression :	reserved_word_while 		boolean_expressionreserved_word_for_identifier_in_discrete_range :	reserved_word_for 		identifier 	reserved_word_in 		discrete_rangenext_statement :	label_followed_by_colon(?) 	reserved_word_next 	loop_label(?) 	reserved_word_when_and_boolean_expression(?) 	';'exit_statement :	label_followed_by_colon(?) 	reserved_word_exit 	loop_label(?) 	reserved_word_when_and_boolean_expression(?) 	';'reserved_word_when_and_boolean_expression :	reserved_word_when 		boolean_expressionreturn_statement :	label_followed_by_colon(?) 	reserved_word_return 	expression_rule(?) 	';'null_statement :	label_followed_by_colon(?) 	reserved_word_null 	';'##################################################### E.7 Interfaces and Associations####################################################interface_list :	interface_item_semicolon_interface_iteminterface_item_semicolon_interface_item :	interface_item	semicolon_interface_item(s?)semicolon_interface_item :	';'	interface_iteminterface_item :	  constant_interface 	| signal_interface 	| variable_interface 	| file_interfaceconstant_interface :	reserved_word_constant(?) 		identifier_comma_identifier 	':' 	reserved_word_in(?) 		subtype_indication 		default_value(?) 	| <error>signal_interface :	reserved_word_signal(?) 		identifier_comma_identifier 	':' 		mode(?) 		subtype_indication 	reserved_word_bus(?) 		default_value(?) 	| <error>variable_interface :	reserved_word_variable(?) 		identifier_comma_identifier 	':' 		mode(?) 		subtype_indication 		default_value(?) 	| <error>file_interface :	reserved_word_file 		identifier_comma_identifier 	':'		subtype_indication 	| <error>mode : 	  reserved_word_inout 	| reserved_word_out 	| reserved_word_in 	| reserved_word_buffer 	| reserved_word_linkage association_list :	actual_formal_comma_actual_formal	| <error>actual_formal_comma_actual_formal :	actual_part_with_optional_formal_part	comma_actual_part_with_optional_formal_part(s?)	| <error>comma_actual_part_with_optional_formal_part :	','	actual_part_with_optional_formal_part	| <error>actual_part_with_optional_formal_part :	formal_part_and_arrow(?) 		actual_part	| <error>formal_part_and_arrow :	formal_part '=>'	| <error>formal_part :	  generic_name 	| port_name 	| parameter_name 	| function_name generic_port_parameter_selection 	| type_mark generic_port_parameter_selection 	| <error>generic_port_parameter_selection :	'(' generic_name_port_name_parameter_name ')'	| <error>generic_name_port_name_parameter_name :	generic_name | port_name | parameter_name	| <error>actual_part :	  expression_rule 	| variable_name 	| reserved_word_open 	| function_name_signal_name_or_variable_name_selection 	| type_mark_signal_name_or_variable_name_selection	| <error>function_name_signal_name_or_variable_name_selection :	function_name	signal_name_or_variable_name_in_parenstype_mark_signal_name_or_variable_name_selection :	type_mark	signal_name_or_variable_name_in_parenssignal_name_or_variable_name_in_parens :	'(' signal_name_or_variable_name ')'signal_name_or_variable_name :	signal_name | variable_name##################################################### E.8 Expressions####################################################boolean_expression :	expression_rulestatic_expression :	expression_ruleexpression_rule : 	relation 	logic_relation(s?)logic_relation : 	logic_relation_operator	relationlogic_relation_operator : 	  reserved_word_nand 	| reserved_word_xnor 	| reserved_word_and 	| reserved_word_nor 	| reserved_word_xor 	| reserved_word_or relation :	shift_expression 	relation_shift_expression(?)relation_shift_expression :	relation_operator 	shift_expression relation_operator : 	  '/=' 	| '<=' 	| '>='	| '=' 	| '>' 	| '<' shift_expression :	simple_expression 	shift_simple_expression(?)shift_simple_expression :	 shift_operator	 simple_expression shift_operator : 	  reserved_word_sll 	| reserved_word_srl 	| reserved_word_sla 	| reserved_word_sra 	| reserved_word_rol	| reserved_word_ror simple_expression :	sign(?) term optional_term(s?) sign :	'+' | '-' optional_term :	add_or_concat_operator term add_or_concat_operator :	  '+' 	| '-' 	| '&'term :	factor	optional_factor(s?) optional_factor :	multiply_operator factor multiply_operator :	  '*' 	| '/' 	| reserved_word_mod 	| reserved_word_remfactor :	  reserved_word_abs_and_primary 	| reserved_word_not_and_primary	| primary_exp_primary reserved_word_abs_and_primary :	reserved_word_abs primaryreserved_word_not_and_primary :	reserved_word_not primaryprimary_exp_primary :	primary exponent_primary(?) exponent_primary :	'**' primary # notes:## the rules for "primary" is not mutually exclusive:# there are rules that apply such that a given input text# could be one of two different possible interpretations.## there is no way to distinguish between the two possibilities# by simply looking at the token being examined.## 1)## aggregate : '(' optional_choice_arrow(?) expression_rule [ ',' repeat ] ')'# expression in paren : '(' expression_rule ')' ## therefore an aggregate with one entry and no choice arrow is# indistinguishable from an expression in paren.### 2)##  function_call       # token ( param=>(?) value [,repeat])(?)#  literal->identifier # token## therefore a function call with no input parameters is# indistinguishable from a literal identifier.primary : 	  new_qualified_expression  # 'new' token ' ( yada )	| new_subtype_indication    # 'new' token	| qualified_expression   # token ' ( yada )	| function_call 	 # token ( param=>(?) value [,repeat])(?)	| literal	| aggregate	# '(' choice=>(?) expression [,repeat] ')'	| expression_rule_in_parens 	| name new_qualified_expression :	reserved_word_new 	qualified_expressionnew_subtype_indication :	reserved_word_new 	subtype_indicationqualified_expression :	  type_mark_tick_aggregate   	| type_mark_tick_expression  type_mark_tick_expression :	type_mark "'" '(' expression_rule ')'type_mark_tick_aggregate :	type_mark "'" aggregate

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -