abstract_literal |
::= |
<decimal_literal> |
|
| |
<based_literal> |
access_type_definition |
::= |
<ACCESS> subtype_indication |
actual_designator |
::= |
expression |
|
| |
signal_name |
|
| |
variable_name |
|
| |
file_name |
|
| |
<OPEN> |
|
| |
terminal_name |
|
| |
quantity_name |
actual_parameter_part |
::= |
parameter_association_list |
actual_part |
::= |
( function_name "(" actual_designator ")" | type_mark "(" actual_designator ")" | actual_designator ) |
adding_operator |
::= |
<ADD> |
|
| |
<SUB> |
|
| |
<CONCAT> |
aggregate |
::= |
"(" element_association ( "," element_association )* ")" |
alias_declaration |
::= |
<ALIAS> alias_designator ( ":" subtype_indication )? <IS> name signature ";" |
alias_designator |
::= |
( identifier | <character_literal> | operator_symbol ) |
allocator |
::= |
<NEW> ( qualified_expression | subtype_indication ) |
architecture_body |
::= |
<ARCHITECTURE> identifier <OF> entity_name <IS> architecture_declarative_part <BEGIN> architecture_statement_part <END> ( <ARCHITECTURE> )? ( architecture_simple_name )? ";" |
architecture_declarative_part |
::= |
( block_declarative_item )* |
architecture_statement_part |
::= |
( architecture_statement )* |
architecture_statement |
::= |
( block_statement | process_statement | concurrent_procedure_call_statement | concurrent_assertion_statement | concurrent_signal_assignment_statement | component_instantiation_statement | generate_statement | concurrent_break_statement | simultaneous_statement ) |
array_nature_definition |
::= |
unconstrained_nature_definition |
|
| |
constrained_nature_definition |
unconstrained_nature_definition |
::= |
<ARRAY> "(" index_subtype_definition ( "," index_subtype_definition )* ")" <OF> subnature_indication |
constrained_nature_definition |
::= |
<ARRAY> index_constraint <OF> subnature_indication |
array_type_definition |
::= |
unconstrained_array_definition |
|
| |
constrained_array_definition |
assertion |
::= |
<ASSERT> condition ( <REPORT> expression )? ( <SEVERITY> expression )? |
assertion_statement |
::= |
( label ":" )? assertion ";" |
association_element |
::= |
( formal_part "=>" )? actual_part |
association_list |
::= |
association_element ( "," association_element )* |
attribute_declaration |
::= |
<ATTRIBUTE> identifier ":" type_mark ";" |
attribute_designator |
::= |
attribute_simple_name |
attribute_name |
::= |
prefix signature "\'" attribute_designator ( "(" expression ( "," expression )* ")" )? |
attribute_specification |
::= |
<ATTRIBUTE> attribute_designator <OF> entity_specification <IS> expression ";" |
base_unit_declaration |
::= |
identifier ";" |
binding_indication |
::= |
( <USE> entity_aspect )? ( generic_map_aspect )? ( port_map_aspect )? |
block_configuration |
::= |
<FOR> block_specification ( use_clause )* ( configuration_item )* <END> <FOR> ";" |
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_declaration | nature_declaration | subnature_declaration | quantity_declaration | terminal_declaration ) |
block_declarative_part |
::= |
( block_declarative_item )* |
block_header |
::= |
( generic_clause ( generic_map_aspect ";" )? )? ( port_clause ( port_map_aspect ";" )? )? |
block_specification |
::= |
( architecture_name | block_statement_label | generate_statement_label ( "(" index_specification ")" )? ) |
block_statement |
::= |
block_label ":" <BLOCK> ( "(" guard_expression ")" )? ( <IS> )? block_header block_declarative_part <BEGIN> block_statement_part <END> <BLOCK> ( block_label )? ";" |
block_statement_part |
::= |
( architecture_statement )* |
break_statement |
::= |
( label ":" )? <BREAK> ( break_list )? ( <WHEN> condition )? ";" |
break_list |
::= |
break_element ( "," break_element )* |
break_element |
::= |
( selector_clause )? quantity_name "=>" expression |
selector_clause |
::= |
<FOR> quantity_name <USE> |
case_statement |
::= |
( case_label ":" )? <CASE> expression <IS> case_statement_alternative ( case_statement_alternative )* <END> <CASE> ( case_label )? ";" |
case_statement_alternative |
::= |
<WHEN> choices "=>" sequence_of_statements |
choice |
::= |
( simple_expression | discrete_range | element_simple_name | <OTHERS> ) |
choices |
::= |
choice ( "|" choice )* |
component_configuration |
::= |
<FOR> component_specification ( binding_indication ";" )? ( block_configuration )? <END> <FOR> ";" |
component_declaration |
::= |
<COMPONENT> identifier ( <IS> )? ( local_generic_clause )? ( local_port_clause )? <END> <COMPONENT> ( component_simple_name )? ";" |
component_instantiation_statement |
::= |
instantiation_label ":" instantiated_unit ( generic_map_aspect )? ( port_map_aspect )? ";" |
composite_nature_definition |
::= |
array_nature_definition |
|
| |
record_nature_definition |
component_specification |
::= |
instantiation_list ":" component_name |
composite_type_definition |
::= |
( array_type_definition | record_type_definition ) |
concurrent_assertion_statement |
::= |
( label ":" )? ( <POSTPONED> )? assertion ";" |
concurrent_procedure_call_statement |
::= |
( label ":" )? ( <POSTPONED> )? procedure_call ";" |
concurrent_signal_assignment_statement |
::= |
( label ":" )? ( <POSTPONED> )? ( conditional_signal_assignment | selected_signal_assignment ) |
condition |
::= |
boolean_expression |
condition_clause |
::= |
<UNTIL> condition |
conditional_signal_assignment |
::= |
target "<=" options_ conditional_waveforms ";" |
conditional_waveforms |
::= |
waveform ( <WHEN> condition <ELSE> waveform )* ( <WHEN> condition )? |
configuration_declaration |
::= |
<CONFIGURATION> identifier <OF> entity_name <IS> configuration_declarative_part block_configuration <END> ( <CONFIGURATION> )? ( configuration_simple_name )? ";" |
configuration_declarative_item |
::= |
( use_clause | attribute_specification | group_declaration ) |
configuration_declarative_part |
::= |
( configuration_declarative_item )* |
configuration_item |
::= |
block_configuration |
|
| |
component_configuration |
configuration_specification |
::= |
<FOR> component_specification binding_indication ";" |
constant_declaration |
::= |
<CONSTANT> identifier_list ":" subtype_indication ( ":=" expression )? ";" |
constrained_array_definition |
::= |
<ARRAY> index_constraint <OF> element_subtype_indication |
constraint |
::= |
range_constraint |
|
| |
index_constraint |
context_clause |
::= |
( context_item )* |
context_item |
::= |
library_clause |
|
| |
use_clause |
terminal_declaration |
::= |
<TERMINAL> identifier_list ":" subnature_indication ";" |
terminal_aspect |
::= |
plus_terminal_name ( <TO> minus_terminal_name )? |
delay_mechanism |
::= |
( <TRANSPORT> | ( <REJECT> time_expression )? <INERTIAL> ) |
design_file |
::= |
( design_unit )+ <EOF> |
design_unit |
::= |
context_clause library_unit |
designator |
::= |
identifier |
|
| |
operator_symbol |
direction |
::= |
( <TO> | <DOWNTO> ) |
disconnection_specification |
::= |
<DISCONNECT> guarded_signal_specification <AFTER> time_expression ";" |
discrete_range |
::= |
range |
|
| |
discrete_subtype_indication |
|
| |
range |
element_association |
::= |
( choices "=>" )? expression |
element_declaration |
::= |
identifier_list ":" element_subtype_definition ";" |
element_subtype_definition |
::= |
subtype_indication |
entity_aspect |
::= |
( <ENTITY> entity_name ( "(" architecture_identifier ")" )? | <CONFIGURATION> configuration_name | <OPEN> ) |
entity_class |
::= |
<ENTITY> |
|
| |
<ARCHITECTURE> |
|
| |
<CONFIGURATION> |
|
| |
<PROCEDURE> |
|
| |
<FUNCTION> |
|
| |
<PACKAGE> |
|
| |
<TYPE> |
|
| |
<SUBTYPE> |
|
| |
<CONSTANT> |
|
| |
<SIGNAL> |
|
| |
<VARIABLE> |
|
| |
<COMPONENT> |
|
| |
<LABEL> |
|
| |
<LITERAL> |
|
| |
<UNITS> |
|
| |
<GROUP> |
|
| |
<FILE> |
|
| |
<SUBNATURE> |
|
| |
<NATURE> |
|
| |
<TERMINAL> |
entity_class_entry |
::= |
entity_class ( "<>" )? |
entity_class_entry_list |
::= |
entity_class_entry ( "," entity_class_entry )* |
entity_declaration |
::= |
<ENTITY> identifier <IS> entity_header entity_declarative_part ( <BEGIN> entity_statement_part )? <END> ( <ENTITY> )? ( entity_simple_name )? ";" |
entity_declarative_item |
::= |
( subprogram_declaration | subprogram_body | type_declaration | subtype_declaration | constant_declaration | signal_declaration | shared_variable_declaration | file_declaration | alias_declaration | attribute_declaration | attribute_specification | disconnection_specification | use_clause | group_template_declaration | group_declaration | nature_declaration | subnature_declaration | terminal_declaration ) |
nature_declaration |
::= |
<NATURE> identifier <IS> nature_definition ";" |
nature_definition |
::= |
scalar_nature_definition |
|
| |
composite_nature_definition |
subnature_declaration |
::= |
<SUBNATURE> identifier <IS> subnature_indication ";" |
subnature_indication |
::= |
nature_mark ( index_constraint )? ( <TOLERANCE> string_expression <ACROSS> string_expression <THROUGH> )? |
nature_mark |
::= |
nature_name |
|
| |
subnature_name |
entity_declarative_part |
::= |
( entity_declarative_item )* |
entity_designator |
::= |
entity_tag signature |
entity_header |
::= |
( formal_generic_clause )? ( formal_port_clause )? |
entity_name_list |
::= |
( entity_designator ( "," entity_designator )* | <OTHERS> | <ALL> ) |
entity_specification |
::= |
entity_name_list ":" entity_class |
entity_statement |
::= |
concurrent_assertion_statement |
|
| |
passive_process_statement |
|
| |
passive_concurrent_procedure_call_statement |
entity_statement_part |
::= |
( entity_statement )* |
entity_tag |
::= |
( simple_name | <character_literal> | operator_symbol ) |
enumeration_literal |
::= |
( <character_literal> | identifier ) |
enumeration_type_definition |
::= |
"(" enumeration_literal ( "," enumeration_literal )* ")" |
exit_statement |
::= |
( label ":" )? <EXIT> ( loop_label )? ( <WHEN> condition )? ";" |
expression |
::= |
relation ( logical_operator relation )* |
factor |
::= |
<ABS> primary |
|
| |
<NOT> primary |
|
| |
primary ( <EXP> primary )? |
file_declaration |
::= |
<FILE> identifier_list ":" subtype_indication ( file_open_information )? ";" |
file_logical_name |
::= |
string_expression |
file_open_information |
::= |
( <OPEN> file_open_kind_expression )? <IS> file_logical_name |
file_type_definition |
::= |
<FILE> <OF> type_mark |
floating_type_definition |
::= |
range_constraint |
formal_designator |
::= |
generic_name |
|
| |
port_name |
|
| |
parameter_name |
formal_parameter_list |
::= |
parameter_interface_list |
formal_part |
::= |
function_name "(" formal_designator ")" |
|
| |
type_mark "(" formal_designator ")" |
|
| |
formal_designator |
full_type_declaration |
::= |
<TYPE> identifier <IS> type_definition ";" |
function_call |
::= |
function_name ( "(" actual_parameter_part ")" )? |
generate_statement |
::= |
generate_label ":" generation_scheme <GENERATE> ( ( block_declarative_item )* <BEGIN> )? ( architecture_statement )* <END> <GENERATE> ( generate_label )? ";" |
concurrent_break_statement |
::= |
( label ":" )? <BREAK> ( break_list )? ( sensitivity_clause )? ( <WHEN> condition )? ";" |
generation_scheme |
::= |
( <FOR> generate_parameter_specification | <IF> condition ) |
generic_clause |
::= |
<GENERIC> "(" generic_list ")" ";" |
generic_list |
::= |
generic_interface_list |
generic_map_aspect |
::= |
<GENERIC> <MAP> "(" generic_association_list ")" |
group_constituent |
::= |
( name | <character_literal> ) |
group_constituent_list |
::= |
group_constituent ( "," group_constituent )* |
group_template_declaration |
::= |
<GROUP> identifier <IS> "(" entity_class_entry_list ")" ";" |
group_declaration |
::= |
<GROUP> identifier ":" group_template_name "(" group_constituent_list ")" ";" |
guarded_signal_specification |
::= |
guarded_signal_list ":" type_mark |
identifier |
::= |
( <basic_identifier> | <extended_identifier> ) |
identifier_list |
::= |
identifier ( "," identifier )* |
if_statement |
::= |
( if_label ":" )? <IF> condition <THEN> sequence_of_statements ( <ELSIF> condition <THEN> sequence_of_statements )* ( <ELSE> sequence_of_statements )? <END> <IF> ( if_label )? ";" |
incomplete_type_declaration |
::= |
<TYPE> identifier ";" |
index_constraint |
::= |
"(" discrete_range ( "," discrete_range )* ")" |
index_specification |
::= |
( discrete_range | static_expression ) |
index_subtype_definition |
::= |
type_mark <RANGE> "<>" |
indexed_name |
::= |
prefix "(" expression ( "," expression )* ")" |
instantiated_unit |
::= |
( ( <COMPONENT> )? component_name | <ENTITY> entity_name ( "(" architecture_identifier ")" )? | <CONFIGURATION> configuration_name ) |
instantiation_list |
::= |
( instantiation_label ( "," instantiation_label )* | <OTHERS> | <ALL> ) |
integer_type_definition |
::= |
range_constraint |
interface_constant_declaration |
::= |
( <CONSTANT> )? identifier_list ":" ( <IN> )? subtype_indication ( ":=" static_expression )? |
interface_declaration |
::= |
interface_constant_declaration |
|
| |
interface_signal_declaration |
|
| |
interface_variable_declaration |
|
| |
interface_file_declaration |
|
| |
interface_terminal_declaration |
|
| |
interface_quantity_declaration |
interface_terminal_declaration |
::= |
<TERMINAL> identifier_list ":" subnature_indication |
interface_quantity_declaration |
::= |
<QUANTITY> identifier_list ":" ( <IN> | <OUT> )? subtype_indication ( ":=" static_expression )? |
interface_element |
::= |
interface_declaration |
interface_file_declaration |
::= |
<FILE> identifier_list ":" subtype_indication |
interface_list |
::= |
interface_element ( ";" interface_element )* |
interface_signal_declaration |
::= |
( <SIGNAL> )? identifier_list ":" ( mode )? subtype_indication ( <BUS> )? ( ":=" static_expression )? |
interface_variable_declaration |
::= |
( <VARIABLE> )? identifier_list ":" ( mode )? subtype_indication ( ":=" static_expression )? |
iteration_scheme |
::= |
( <WHILE> condition | <FOR> loop_parameter_specification ) |
label |
::= |
identifier |
library_clause |
::= |
<LIBRARY> logical_name_list ";" |
library_unit |
::= |
primary_unit |
|
| |
secondary_unit |
literal |
::= |
( numeric_literal | enumeration_literal | <string_literal> | <bit_string_literal> | <NULL> ) |
logical_name |
::= |
identifier |
logical_name_list |
::= |
logical_name ( "," logical_name )* |
logical_operator |
::= |
<AND> |
|
| |
<OR> |
|
| |
<NAND> |
|
| |
<NOR> |
|
| |
<XOR> |
|
| |
<XNOR> |
loop_statement |
::= |
( loop_label ":" )? ( iteration_scheme )? <LOOP> sequence_of_statements <END> <LOOP> ( loop_label )? ";" |
miscellaneous_operator |
::= |
<EXP> |
|
| |
<ABS> |
|
| |
<NOT> |
mode |
::= |
( <IN> | <OUT> | <INOUT> | <BUFFER> | <LINKAGE> ) |
multiplying_operator |
::= |
"*" |
|
| |
"/" |
|
| |
<MOD> |
|
| |
<REM> |
name |
::= |
( simple_name | operator_symbol ) ( name_extension )? |
name_extension |
::= |
( signature "\'" attribute_designator ( "(" expression ")" )? | "." suffix | "(" discrete_range ")" | "(" expression ( "," expression )* ")" ) ( name_extension )? |
nature_element_declaration |
::= |
identifier_list ":" element_subnature_definition |
element_subnature_definition |
::= |
subnature_indication |
next_statement |
::= |
( label ":" )? <NEXT> ( loop_label )? ( <WHEN> condition )? ";" |
null_statement |
::= |
( label ":" )? <NULL> ";" |
numeric_literal |
::= |
physical_literal |
|
| |
abstract_literal |
object_declaration |
::= |
( constant_declaration | signal_declaration | variable_declaration | file_declaration | terminal_declaration | quantity_declaration ) |
operator_symbol |
::= |
<string_literal> |
options_ |
::= |
( <GUARDED> )? ( delay_mechanism )? |
package_body |
::= |
<PACKAGE> <BODY> package_simple_name <IS> package_body_declarative_part <END> ( <PACKAGE> <BODY> )? ( package_simple_name )? ";" |
package_body_declarative_item |
::= |
( subprogram_declaration | subprogram_body | type_declaration | subtype_declaration | constant_declaration | shared_variable_declaration | file_declaration | alias_declaration | use_clause | group_template_declaration | group_declaration ) |
package_body_declarative_part |
::= |
( package_body_declarative_item )* |
package_declaration |
::= |
<PACKAGE> identifier <IS> package_declarative_part <END> ( <PACKAGE> )? ( package_simple_name )? ";" |
package_declarative_item |
::= |
( subprogram_declaration | type_declaration | subtype_declaration | constant_declaration | signal_declaration | shared_variable_declaration | file_declaration | alias_declaration | component_declaration | attribute_declaration | attribute_specification | disconnection_specification | use_clause | group_template_declaration | group_declaration | nature_declaration | subnature_declaration | terminal_declaration ) |
package_declarative_part |
::= |
( package_declarative_item )* |
parameter_specification |
::= |
identifier <IN> discrete_range |
physical_literal |
::= |
( abstract_literal )? unit_name |
physical_type_definition |
::= |
range_constraint <UNITS> base_unit_declaration ( secondary_unit_declaration )* <END> <UNITS> ( physical_type_simple_name )? |
port_clause |
::= |
<PORT> "(" port_list ")" ";" |
port_list |
::= |
port_interface_list |
port_map_aspect |
::= |
<PORT> <MAP> "(" port_association_list ")" |
prefix |
::= |
( function_call | name ) |
primary |
::= |
qualified_expression |
|
| |
function_call |
|
| |
name |
|
| |
literal |
|
| |
aggregate |
|
| |
"(" expression ")" |
|
| |
type_conversion |
|
| |
allocator |
primary_unit |
::= |
entity_declaration |
|
| |
configuration_declaration |
|
| |
package_declaration |
procedure_call |
::= |
procedure_name ( "(" actual_parameter_part ")" )? |
procedure_call_statement |
::= |
( label ":" )? procedure_call ";" |
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 |
process_declarative_part |
::= |
( process_declarative_item )* |
process_statement |
::= |
( process_label ":" )? ( <POSTPONED> )? <PROCESS> ( "(" sensitivity_list ")" )? ( <IS> )? process_declarative_part <BEGIN> process_statement_part <END> ( <POSTPONED> )? <PROCESS> ( process_label )? ";" |
process_statement_part |
::= |
( sequential_statement )* |
qualified_expression |
::= |
type_mark "\'" ( aggregate | "(" expression ")" ) |
range |
::= |
( simple_expression direction simple_expression | range_attribute_name ) |
range_constraint |
::= |
<RANGE> range |
record_nature_definition |
::= |
<RECORD> ( nature_element_declaration )+ <END> <RECORD> ( record_nature_simple_name )? |
record_type_definition |
::= |
<RECORD> ( element_declaration )+ <END> <RECORD> ( record_type_simple_name )? |
relation |
::= |
shift_expression ( relational_operator shift_expression )? |
relational_operator |
::= |
<EQ> |
|
| |
<NEQ> |
|
| |
<LO> |
|
| |
<LE> |
|
| |
<GT> |
|
| |
<GE> |
report_statement |
::= |
( label ":" )? <REPORT> expression ( <SEVERITY> expression )? ";" |
return_statement |
::= |
( label ":" )? <RETURN> ( expression )? ";" |
scalar_nature_definition |
::= |
type_mark <ACROSS> type_mark <THROUGH> |
scalar_type_definition |
::= |
physical_type_definition |
|
| |
enumeration_type_definition |
|
| |
range_constraint |
secondary_unit |
::= |
architecture_body |
|
| |
package_body |
secondary_unit_declaration |
::= |
identifier "=" physical_literal ";" |
selected_name |
::= |
( simple_name | operator_symbol ) ( name_extension )? |
selected_signal_assignment |
::= |
<WITH> expression <SELECT> target "<=" options_ selected_waveforms ";" |
selected_waveforms |
::= |
waveform <WHEN> choices ( "," waveform <WHEN> choices )* |
sensitivity_clause |
::= |
<ON> sensitivity_list |
sensitivity_list |
::= |
signal_name ( "," signal_name )* |
sequence_of_statements |
::= |
( sequential_statement )* |
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 | break_statement ) |
shift_expression |
::= |
simple_expression ( shift_operator simple_expression )? |
shift_operator |
::= |
<SLL> |
|
| |
<SRL> |
|
| |
<SLA> |
|
| |
<SRA> |
|
| |
<ROL> |
|
| |
<ROR> |
sign |
::= |
( "+" | "-" ) |
signal_assignment_statement |
::= |
( label ":" )? target "<=" ( delay_mechanism )? waveform ";" |
signal_declaration |
::= |
<SIGNAL> identifier_list ":" subtype_indication ( signal_kind )? ( ":=" expression )? ";" |
signal_kind |
::= |
( <REGISTER> | <BUS> ) |
signal_list |
::= |
( signal_name ( "," signal_name )* | <OTHERS> | <ALL> ) |
signature |
::= |
( type_mark ( "," type_mark )* )? ( <RETURN> type_mark )? |
simple_expression |
::= |
( sign )? term ( adding_operator term )* |
simple_name |
::= |
identifier |
slice_name |
::= |
prefix "(" discrete_range ")" |
subprogram_body |
::= |
subprogram_specification <IS> subprogram_declarative_part <BEGIN> subprogram_statement_part <END> ( subprogram_kind )? ( designator )? ";" |
subprogram_declaration |
::= |
subprogram_specification ";" |
subprogram_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 |
subprogram_declarative_part |
::= |
( subprogram_declarative_item )* |
subprogram_kind |
::= |
<PROCEDURE> |
|
| |
<FUNCTION> |
subprogram_specification |
::= |
( <PROCEDURE> designator ( "(" formal_parameter_list ")" )? | ( <PURE> | <IMPURE> )? <FUNCTION> designator ( "(" formal_parameter_list ")" )? <RETURN> type_mark ) |
subprogram_statement_part |
::= |
( sequential_statement )* |
subtype_declaration |
::= |
<SUBTYPE> identifier <IS> subtype_indication ";" |
subtype_indication |
::= |
( resolution_function_name type_mark constraint ( tolerance_aspect )? | type_mark constraint ( tolerance_aspect )? | resolution_function_name type_mark ( tolerance_aspect )? | type_mark ( tolerance_aspect )? ) |
tolerance_aspect |
::= |
<TOLERANCE> string_expression |
quantity_declaration |
::= |
free_quantity_declaration |
|
| |
branch_quantity_declaration |
|
| |
source_quantity_declaration |
free_quantity_declaration |
::= |
<QUANTITY> identifier_list ":" subtype_indication ( ":=" expression )? ";" |
branch_quantity_declaration |
::= |
<QUANTITY> ( across_aspect )? ( through_aspect )? terminal_aspect ";" |
source_quantity_declaration |
::= |
<QUANTITY> identifier_list ":" subtype_indication source_aspect ";" |
across_aspect |
::= |
identifier_list ( tolerance_aspect )? ( ":=" expression )? <ACROSS> |
through_aspect |
::= |
identifier_list ( tolerance_aspect )? ( ":=" expression )? <THROUGH> |
source_aspect |
::= |
( <SPECTRUM> magnitude_simple_expression "," phase_simple_expression | <NOISE> magnitude_simple_expression ) |
suffix |
::= |
simple_name |
|
| |
<character_literal> |
|
| |
operator_symbol |
|
| |
<ALL> |
target |
::= |
name |
|
| |
aggregate |
term |
::= |
factor ( multiplying_operator factor )* |
timeout_clause |
::= |
<FOR> time_or_real_expression |
type_conversion |
::= |
type_mark "(" expression ")" |
type_declaration |
::= |
full_type_declaration |
|
| |
incomplete_type_declaration |
type_definition |
::= |
scalar_type_definition |
|
| |
composite_type_definition |
|
| |
access_type_definition |
|
| |
file_type_definition |
type_mark |
::= |
type_name |
|
| |
subtype_name |
unconstrained_array_definition |
::= |
<ARRAY> "(" index_subtype_definition ( "," index_subtype_definition )* ")" <OF> element_subtype_indication |
use_clause |
::= |
<USE> selected_name ( "," selected_name )* ";" |
variable_assignment_statement |
::= |
( label ":" )? target ":=" expression ";" |
variable_declaration |
::= |
( <SHARED> )? <VARIABLE> identifier_list ":" subtype_indication ( ":=" expression )? ";" |
wait_statement |
::= |
( ":" label ":" )? <WAIT> ( sensitivity_clause )? ( condition_clause )? ( timeout_clause )? ";" |
waveform |
::= |
( waveform_element ( "," waveform_element )* | <UNAFFECTED> ) |
waveform_element |
::= |
( <NULL> ( <AFTER> time_expression )? | value_expression ( <AFTER> time_expression )? ) |
simultaneous_statement_part |
::= |
( simultaneous_statement )* |
simultaneous_statement |
::= |
simple_simultaneous_statement |
|
| |
simultaneous_if_statement |
|
| |
simultaneous_case_statement |
|
| |
simultaneous_procedural_statement |
|
| |
simultaneous_null_statement |
simple_simultaneous_statement |
::= |
( label ":" )? ( <PURE> | <IMPURE> )? simple_expression "==" simple_expression ( tolerance_aspect )? ";" |
simultaneous_if_statement |
::= |
( if_label ":" )? <IF> condition <USE> simultaneous_statement_part ( <ELSIF> condition <USE> simultaneous_statement_part )* ( <ELSE> simultaneous_statement_part )? <END> <USE> ( if_label )? ";" |
simultaneous_case_statement |
::= |
( case_label ":" )? <CASE> expression <USE> ( simultaneous_alternative )* <END> <CASE> ( case_label )? ";" |
simultaneous_alternative |
::= |
<WHEN> choices <USE> simultaneous_statement_part |
simultaneous_procedural_statement |
::= |
( procedural_label ":" )? ( <PURE> | <IMPURE> )? <PROCEDURAL> ( <IS> )? procedural_declarative_part <BEGIN> procedural_statement_part <END> <PROCEDURAL> ( procedural_label )? ";" |
procedural_label |
::= |
label |
procedural_declarative_part |
::= |
( procedural_declarative_item )* |
procedural_declarative_item |
::= |
subprogram_declaration |
|
| |
subprogram_body |
|
| |
type_declaration |
|
| |
subtype_declaration |
|
| |
constant_declaration |
|
| |
variable_declaration |
|
| |
alias_declaration |
|
| |
attribute_declaration |
|
| |
attribute_specification |
|
| |
use_clause |
|
| |
group_template_declaration |
|
| |
group_declaration |
procedural_statement_part |
::= |
( sequential_statement )* |
simultaneous_null_statement |
::= |
( label ":" )? <NULL> ";" |
block_label |
::= |
label |
block_statement_label |
::= |
label |
case_label |
::= |
label |
generate_label |
::= |
label |
generate_statement_label |
::= |
label |
if_label |
::= |
label |
instantiation_label |
::= |
label |
loop_label |
::= |
label |
process_label |
::= |
label |
architecture_simple_name |
::= |
simple_name |
attribute_simple_name |
::= |
simple_name |
|
| |
<RANGE> |
component_simple_name |
::= |
simple_name |
configuration_simple_name |
::= |
simple_name |
element_simple_name |
::= |
simple_name |
entity_simple_name |
::= |
simple_name |
package_simple_name |
::= |
simple_name |
architecture_name |
::= |
name |
entity_name |
::= |
name |
file_name |
::= |
name |
function_name |
::= |
name |
configuration_name |
::= |
name |
component_name |
::= |
name |
generic_name |
::= |
name |
group_template_name |
::= |
name |
parameter_name |
::= |
name |
physical_type_simple_name |
::= |
simple_name |
port_name |
::= |
name |
procedure_name |
::= |
name |
range_attribute_name |
::= |
name |
signal_name |
::= |
name |
type_name |
::= |
name |
record_nature_simple_name |
::= |
simple_name |
record_type_simple_name |
::= |
simple_name |
resolution_function_name |
::= |
name |
subtype_name |
::= |
name |
unit_name |
::= |
name |
variable_name |
::= |
name |
architecture_identifier |
::= |
identifier |
static_expression |
::= |
expression |
boolean_expression |
::= |
expression |
file_open_kind_expression |
::= |
expression |
guard_expression |
::= |
expression |
time_expression |
::= |
expression |
time_or_real_expression |
::= |
expression |
value_expression |
::= |
expression |
string_expression |
::= |
expression |
guarded_signal_list |
::= |
signal_list |
parameter_association_list |
::= |
association_list |
port_association_list |
::= |
association_list |
generic_association_list |
::= |
association_list |
generic_interface_list |
::= |
interface_list |
parameter_interface_list |
::= |
interface_list |
port_interface_list |
::= |
interface_list |
formal_port_clause |
::= |
port_clause |
local_port_clause |
::= |
port_clause |
formal_generic_clause |
::= |
generic_clause |
local_generic_clause |
::= |
generic_clause |
element_subtype_indication |
::= |
subtype_indication |
discrete_subtype_indication |
::= |
subtype_indication |
loop_parameter_specification |
::= |
parameter_specification |
generate_parameter_specification |
::= |
parameter_specification |
passive_concurrent_procedure_call_statement |
::= |
concurrent_procedure_call_statement |
passive_process_statement |
::= |
process_statement |
magnitude_simple_expression |
::= |
simple_expression |
phase_simple_expression |
::= |
simple_expression |
nature_name |
::= |
name |
subnature_name |
::= |
name |
terminal_name |
::= |
name |
quantity_name |
::= |
name |
plus_terminal_name |
::= |
name |
minus_terminal_name |
::= |
name |
shared_variable_declaration |
::= |
( <SHARED> )? <VARIABLE> identifier_list ":" subtype_indication ( ":=" expression )? ";" |
error_skipto |
::= |
java code |