EBNF Syntax: VHDL'93

Syntax Productions
Variants
Terminals
Literals
Production Cross Reference
Lookahead-1 Parser First Token
Lookahead-1 Parser Ambiguities

Syntax Productions

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

Start Symbol (vhdl)

Name Production
abstract_literal
access_type_definition 'access' subtype_indication
actual_designator
actual_parameter_part association_list
actual_part
adding_operator
  • '+'
  • '-'
  • '&'
aggregate '(' element_association { ',' element_association } ')'
alias_declaration 'alias' alias_designator [ ':' subtype_indication ] 'is' name [ signature ] ';'
alias_designator
allocator
architecture_body 'architecture' identifier 'of' name 'is' architecture_declarative_part 'begin' architecture_statement_part 'end' [ 'architecture' ] [ simple_name ] ';'
architecture_declarative_part { block_declarative_item }
architecture_statement_part { concurrent_statement }
array_type_definition
assertion 'assert' condition [ 'report' expression ] [ 'severity' expression ]
assertion_statement [ label ':' ] assertion ';'
association_element [ formal_part '=>' ](#6) actual_part(#6)
association_list association_element { ',' association_element }
attribute_declaration 'attribute' identifier ':' type_mark ';'
attribute_designator simple_name
attribute_name prefix [ signature ] "'" attribute_designator [ '(' expression ')' ]
attribute_specification 'attribute' attribute_designator 'of' entity_specification 'is' expression ';'
base integer
base_specifier
  • 'b'
  • 'o'
  • 'x'
based_integer extended_digit { [ UNDERLINE ] extended_digit }
based_literal base '#' based_integer [ '.' based_integer ] '#' [ exponent ]
basic_character (not used)
basic_graphic_character
  • UPPER_CASE_CHARACTER
  • DIGIT
  • SPECIAL_CHARACTER
  • SPACE_CHARACTER
basic_identifier letter { [ UNDERLINE ] letter_or_digit }
binding_indication 'use' entity_aspect [ generic_map_aspect ] [ port_map_aspect ]
bit_string_literal base_specifier '"' [ bit_value ] '"'
bit_value extended_digit { [ UNDERLINE ] extended_digit }
block_configuration 'for' block_specification { use_clause } { configuration_item } 'end' 'for' ';'
block_declarative_item
block_declarative_part { block_declarative_item }
block_header [ generic_clause [ generic_map_aspect ';' ] ] [ port_clause [ port_map_aspect ';' ] ]
block_specification
block_statement label ':' 'block' [ '(' expression ')' ] [ 'is' ] block_header block_declarative_part 'begin' block_statement_part 'end' 'block' [ label ] ';'
block_statement_part { concurrent_statement }
case_statement [ label ':' ] 'case' expression 'is' case_statement_alternative { ',' case_statement_alternative } 'end' 'case' [ label ] ';'
case_statement_alternative 'when' choices '=>' sequence_of_statements
character_literal "'" graphic_character "'"
choice
choices choice { '|' choice }
component_configuration 'for' component_specification [ binding_indication ';' ] [ block_configuration ] 'end' 'for' ';'
component_declaration 'component' identifier [ 'is' ] [ generic_clause ] [ port_clause ] 'end' 'component' [ simple_name ] ';'
component_instantiation_statement label ':' instantiated_unit [ generic_map_aspect ] [ port_map_aspect ] ';'
component_specification instantiation_list ':' name
composite_type_definition
concurrent_assertion_statement [ label ':' ] [ 'postponed' ] assertion
concurrent_procedure_call_statement [ label ':' ](#13) [ 'postponed' ] procedure_call(#13)
concurrent_signal_assignment_statement
concurrent_statement
condition expression
condition_clause 'until' condition
conditional_signal_assignment target '<=' options conditional_waveforms ';'
conditional_waveforms { waveform 'when' condition 'else' }(#19) waveform(#19) [ 'when' condition ]
configuration_declaration 'configuration' identifier 'of' name 'is' configuration_declarative_part block_configuration 'end' [ 'configuration' ] [ simple_name ] ';'
configuration_declarative_item
configuration_declarative_part { configuration_declarative_item }
configuration_item
configuration_specification 'for' component_specification binding_indication ';'
constant_declaration 'constant' identifier_list ':' subtype_indication [ ':=' expression ] ';'
constrained_array_definition 'array' index_constraint 'of' subtype_indication
constraint
context_clause { context_item }
context_item
decimal_literal integer [ '.' integer ] [ exponent ]
declaration (not used)
delay_mechanism
design_file design_unit { design_unit }
design_unit context_clause library_unit
designator
direction
  • 'to'
  • 'downto'
disconnection_specification 'disconnect' guarded_signal_specification 'after' expression ';'
discrete_range
element_association [ choices '=>' ](#24) expression(#24)
element_declaration identifier_list ':' element_subtype_definition ';'
element_subtype_definition subtype_indication
entity_aspect
entity_class
  • 'entity'
  • 'architecture'
  • 'configuration'
  • 'procedure'
  • 'function'
  • 'package'
  • 'type'
  • 'subtype'
  • 'constant'
  • 'signal'
  • 'variable'
  • 'component'
  • 'label'
  • 'literal'
  • 'units'
  • 'group'
  • 'file'
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' ] [ simple_name ] ';'
entity_declarative_item
entity_declarative_part { entity_declarative_item }
entity_designator entity_tag [ signature ]
entity_header [ generic_clause ] [ port_clause ]
entity_name_list
entity_specification entity_name_list ':' entity_class
entity_statement
entity_statement_part { entity_statement }
entity_tag
enumeration_literal
enumeration_type_definition '(' enumeration_literal { ',' enumeration_literal } ')'
exit_statement [ label ':' ] 'exit' [ label ] [ 'when' condition ] ';'
exponent
expression
extended_digit
extended_identifier '\' graphic_character { graphic_character } '\'
factor
file_declaration 'file' identifier ':' subtype_indication [ file_open_information ] ';'
file_logical_name expression
file_open_information [ 'open' expression ] 'is' file_logical_name
file_type_definition 'file' 'of' type_mark
floating_type_definition range_constraint
formal_designator name
formal_parameter_list interface_list
formal_part
full_type_declaration 'type' identifier 'is' type_definition ';'
function_call name [ '(' actual_parameter_part ')' ]
generate_statement label ':' generation_scheme 'generate' [ { block_declarative_item } 'begin' ] { concurrent_statement } 'end' 'generate' [ label ] ';'
generation_scheme
generic_clause 'generic' '(' generic_list ')' ';'
generic_list interface_list
generic_map_aspect 'generic' 'map' '(' association_list ')'
graphic_character
group_constituent
group_constituent_list group_constituent { ',' group_constituent }
group_declaration 'group' identifier ':' name '(' group_constituent_list ')' ';'
group_template_declaration 'group' identifier 'is' '(' entity_class_entry_list ')' ';'
guarded_signal_specification signal_list ':' type_mark
identifier
identifier_list identifier { ',' identifier }
if_statement [ label ':' ] 'if' condition 'then' sequence_of_statements { 'elsif' condition 'then' sequence_of_statements } [ 'else' sequence_of_statements ] 'end' 'if' [ label ] ';'
incomplete_type_declaration 'type' identifier ';'
index_constraint '(' discrete_range { ',' discrete_range } ')'
index_specification
index_subtype_definition type_mark 'range' '<>'
indexed_name prefix '(' expression { ',' expression } ')'
instantiated_unit
instantiation_list
integer DIGIT { [ UNDERLINE ] DIGIT }
integer_type_definition range_constraint
interface_constant_declaration [ 'constant' ] identifier_list ':' [ 'in' ] subtype_indication [ ':=' expression ]
interface_declaration
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' ] [ ':=' expression ]
interface_variable_declaration [ 'variable' ] identifier_list ':' [ mode ] subtype_indication [ ':=' expression ]
iteration_scheme
label identifier
letter
  • LOWER_CASE_LETTER
  • UPPER_CASE_LETTER
letter_or_digit
library_clause 'library' logical_name_list ';'
library_unit
literal
logical_name identifier
logical_name_list logical_name { ',' logical_name }
logical_operator (not used)
  • 'and'
  • 'or'
  • 'nand'
  • 'nor'
  • 'xor'
  • 'xnor'
loop_statement [ label ':' ] [ iteration_scheme ] 'loop' sequence_of_statements 'end' 'loop' [ label ] ';'
miscellaneous_operator (not used)
  • '**'
  • 'abs'
  • 'not'
mode
  • 'in'
  • 'out'
  • 'inout'
  • 'buffer'
  • 'linkage'
multiplying_operator
  • '*'
  • '/'
  • 'mod'
  • 'rem'
name
next_statement [ label ':' ] 'next' [ label ] [ 'when' condition ] ';'
null_statement [ label ':' ] 'null' ';'
numeric_literal
object_declaration
operator_symbol string_literal
options [ 'guarded' ] [ delay_mechanism ]
package_body 'package' 'body' simple_name 'is' package_body_declarative_part 'end' [ 'packabge' 'body' ] [ simple_name ] ';'
package_body_declarative_item
package_body_declarative_part { package_body_declarative_item }
package_declaration 'package' identifier 'is' package_declarative_part 'end' [ 'package' ] [ simple_name ] ';'
package_declarative_item
package_declarative_part { package_declarative_item }
parameter_specification identifier 'in' discrete_range
physical_literal [ abstract_literal ] name
physical_type_definition range_constraint 'units' primary_unit_declaration { secondary_unit_declaration } 'end' 'units' [ simple_name ]
port_clause 'port' '(' port_list ')' ';'
port_list interface_list
port_map_aspect 'port' 'map' '(' association_list ')'
prefix
primary
primary_unit
primary_unit_declaration identifier
procedure_call name [ '(' actual_parameter_part ')' ]
procedure_call_statement [ label ':' ](#47) procedure_call(#47) ';'
process_declarative_item
process_declarative_part { process_declarative_item }
process_statement [ label ':' ] [ 'postponed' ] 'process' [ '(' sensitivity_list ')' ] [ 'is' ] process_declarative_part 'begin' process_statement_part 'end' [ 'postponed' ] 'process' [ label ] ';'
process_statement_part { sequential_statement }
qualified_expression
range
range_constraint 'range' range
record_type_definition 'record' element_declaration { element_declaration } 'end' 'record'
relation simple_expression [ relational_operator simple_expression ]
relational_operator
  • '='
  • '/='
  • '<'
  • '<='
  • '>'
  • '>='
report_statement [ label ':' ] 'report' expression [ 'severity' expression ] ';'
return_statement [ label ':' ] 'return' [ expression ] ';'
scalar_type_definition
secondary_unit
secondary_unit_declaration identifier '=' physical_literal ';'
selected_name prefix '.' suffix
selected_signal_assignment 'with' expression 'select' target '<=' options selected_waveforms ';'
selected_waveforms { waveform 'when' choices ',' }(#54) waveform(#54) 'when' choices
sensitivity_clause 'on' sensitivity_list
sensitivity_list name { ',' name }
sequence_of_statements { sequential_statement }
sequential_statement
shift_expression (not used) simple_expression [ shift_operator simple_expression ]
shift_operator
  • 'sll'
  • 'srl'
  • 'sla'
  • 'sra'
  • 'rol'
  • 'ror'
sign
  • '+'
  • '-'
signal_assignment_statement [ label ':' ](#58) target(#58) '<=' [ delay_mechanism ] waveform ';'
signal_declaration 'signal' identifier_list ':' subtype_indication [ signal_kind ] [ ':=' expression ] ';'
signal_kind
  • 'register'
  • 'bus'
signal_list
signature '[' [ type_mark { ',' type_mark } ] [ 'return' type_mark ] ']'
simple_expression [ sign ] term { adding_operator term }
simple_name identifier
slice_name prefix '(' discrete_range ')'
string_literal '"' { graphic_character } '"'
subprogram_body subprogram_specification 'is' subprogram_declarative_part 'begin' subprogram_statement_part 'end' [ subprogram_kind ] [ designator ] ';'
subprogram_declaration subprogram_specification ';'
subprogram_declarative_item
subprogram_declarative_part { subprogram_declarative_item }
subprogram_kind
  • 'procedure'
  • 'function'
subprogram_specification
subprogram_statement_part { sequential_statement }
subtype_declaration 'subtype' identifier 'is' subtype_indication ';'
subtype_indication [ name ](#62) type_mark(#62) [ constraint ]
suffix
target
term factor { multiplying_operator factor }
timeout_clause 'for' expression
type_conversion type_mark '(' expression ')'
type_declaration
type_definition
type_mark name
unconstrained_array_definition 'array' '(' index_subtype_definition { ',' index_subtype_definition } ')' 'of' subtype_indication
use_clause 'use' selected_name { ',' selected_name }
variable_assignment_statement [ label ':' ](#64) target(#64) ':=' expression ';'
variable_declaration [ 'shared' ] 'variable' identifier_list ':' subtype_indication [ ':=' expression ] ';'
vhdl design_file
wait_statement [ label ':' ] 'wait' [ sensitivity_clause ] [ condition_clause ] [ timeout_clause ] ';'
waveform
waveform_element


Variants

none

Terminals

Terminal Used in
DIGIT basic_graphic_character / extended_digit / integer / letter_or_digit
FORMAT_EFFECTOR basic_character
LOWER_CASE_LETTER graphic_character / letter
OTHER_SPECIAL_CHARACTER graphic_character
SPACE_CHARACTER basic_graphic_character
SPECIAL_CHARACTER basic_graphic_character
UNDERLINE based_integer / basic_identifier / bit_value / integer
UPPER_CASE_CHARACTER basic_graphic_character
UPPER_CASE_LETTER letter

Literals

Literal Used in
" bit_string_literal / string_literal
# based_literal
& adding_operator
' attribute_name / character_literal / qualified_expression
( actual_part / aggregate / attribute_name / block_specification / block_statement / entity_aspect / enumeration_type_definition / formal_part / function_call / generic_clause / generic_map_aspect / group_declaration / group_template_declaration / index_constraint / indexed_name / instantiated_unit / port_clause / port_map_aspect / primary / procedure_call / process_statement / qualified_expression / slice_name / subprogram_specification / type_conversion / unconstrained_array_definition
) actual_part / aggregate / attribute_name / block_specification / block_statement / entity_aspect / enumeration_type_definition / formal_part / function_call / generic_clause / generic_map_aspect / group_declaration / group_template_declaration / index_constraint / indexed_name / instantiated_unit / port_clause / port_map_aspect / primary / procedure_call / process_statement / qualified_expression / slice_name / subprogram_specification / type_conversion / unconstrained_array_definition
* multiplying_operator
** factor / miscellaneous_operator
+ adding_operator / exponent / sign
, aggregate / association_list / case_statement / entity_class_entry_list / entity_name_list / enumeration_type_definition / group_constituent_list / identifier_list / index_constraint / indexed_name / instantiation_list / logical_name_list / selected_waveforms / sensitivity_list / signal_list / signature / unconstrained_array_definition / use_clause / waveform
- adding_operator / exponent / sign
. based_literal / decimal_literal / selected_name
/ multiplying_operator
/= relational_operator
: alias_declaration / assertion_statement / attribute_declaration / block_statement / case_statement / component_instantiation_statement / component_specification / concurrent_assertion_statement / concurrent_procedure_call_statement / concurrent_signal_assignment_statement / constant_declaration / element_declaration / entity_specification / exit_statement / file_declaration / generate_statement / group_declaration / guarded_signal_specification / if_statement / interface_constant_declaration / interface_file_declaration / interface_signal_declaration / interface_variable_declaration / loop_statement / next_statement / null_statement / procedure_call_statement / process_statement / report_statement / return_statement / signal_assignment_statement / signal_declaration / variable_assignment_statement / variable_declaration / wait_statement
:= constant_declaration / interface_constant_declaration / interface_signal_declaration / interface_variable_declaration / signal_declaration / variable_assignment_statement / variable_declaration
; alias_declaration / architecture_body / assertion_statement / attribute_declaration / attribute_specification / block_configuration / block_header / block_statement / case_statement / component_configuration / component_declaration / component_instantiation_statement / conditional_signal_assignment / configuration_declaration / configuration_specification / constant_declaration / disconnection_specification / element_declaration / entity_declaration / exit_statement / file_declaration / full_type_declaration / generate_statement / generic_clause / group_declaration / group_template_declaration / if_statement / incomplete_type_declaration / interface_list / library_clause / loop_statement / next_statement / null_statement / package_body / package_declaration / port_clause / procedure_call_statement / process_statement / report_statement / return_statement / secondary_unit_declaration / selected_signal_assignment / signal_assignment_statement / signal_declaration / subprogram_body / subprogram_declaration / subtype_declaration / variable_assignment_statement / variable_declaration / wait_statement
< relational_operator
<= conditional_signal_assignment / relational_operator / selected_signal_assignment / signal_assignment_statement
<> entity_class_entry / index_subtype_definition
= relational_operator / secondary_unit_declaration
=> association_element / case_statement_alternative / element_association
> relational_operator
>= relational_operator
[ signature
\ extended_identifier
] signature
| choices
abs factor / miscellaneous_operator
access access_type_definition
after disconnection_specification / waveform_element
alias alias_declaration
all entity_name_list / instantiation_list / signal_list / suffix
and expression / logical_operator
architecture architecture_body / entity_class
array constrained_array_definition / unconstrained_array_definition
assert assertion
attribute attribute_declaration / attribute_specification
b base_specifier
begin architecture_body / block_statement / entity_declaration / generate_statement / process_statement / subprogram_body
block block_statement
body package_body
buffer mode
bus interface_signal_declaration / signal_kind
case case_statement
component component_declaration / entity_class / instantiated_unit
configuration configuration_declaration / entity_aspect / entity_class / instantiated_unit
constant constant_declaration / entity_class / interface_constant_declaration
disconnect disconnection_specification
downto direction
e exponent
else conditional_waveforms / if_statement
elsif if_statement
end architecture_body / block_configuration / block_statement / case_statement / component_configuration / component_declaration / configuration_declaration / entity_declaration / generate_statement / if_statement / loop_statement / package_body / package_declaration / physical_type_definition / process_statement / record_type_definition / subprogram_body
entity entity_aspect / entity_class / entity_declaration / instantiated_unit
exit exit_statement
file entity_class / file_declaration / file_type_definition / interface_file_declaration
for block_configuration / component_configuration / configuration_specification / generation_scheme / iteration_scheme / timeout_clause
function entity_class / subprogram_kind / subprogram_specification
generate generate_statement
generic generic_clause / generic_map_aspect
group entity_class / group_declaration / group_template_declaration
guarded options
if generation_scheme / if_statement
impure subprogram_specification
in interface_constant_declaration / mode / parameter_specification
inertial delay_mechanism
inout mode
is alias_declaration / architecture_body / attribute_specification / block_statement / case_statement / component_declaration / configuration_declaration / entity_declaration / file_open_information / full_type_declaration / group_template_declaration / package_body / package_declaration / process_statement / subprogram_body / subtype_declaration
label entity_class
library library_clause
linkage mode
literal entity_class
loop loop_statement
map generic_map_aspect / port_map_aspect
mod multiplying_operator
nand expression / logical_operator
new allocator
next next_statement
nor expression / logical_operator
not factor / miscellaneous_operator
null literal / null_statement / waveform_element
o base_specifier
of architecture_body / attribute_specification / configuration_declaration / constrained_array_definition / file_type_definition / unconstrained_array_definition
on sensitivity_clause
open actual_designator / entity_aspect / file_open_information
or expression / logical_operator
others choice / entity_name_list / instantiation_list / signal_list
out mode
packabge package_body
package entity_class / package_body / package_declaration
port port_clause / port_map_aspect
postponed concurrent_assertion_statement / concurrent_procedure_call_statement / concurrent_signal_assignment_statement / process_statement
procedure entity_class / subprogram_kind / subprogram_specification
process process_statement
pure subprogram_specification
range index_subtype_definition / range_constraint
record record_type_definition
register signal_kind
reject delay_mechanism
rem multiplying_operator
report assertion / report_statement
return return_statement / signature / subprogram_specification
rol shift_operator
ror shift_operator
select selected_signal_assignment
severity assertion / report_statement
shared variable_declaration
signal entity_class / interface_signal_declaration / signal_declaration
sla shift_operator
sll shift_operator
sra shift_operator
srl shift_operator
subtype entity_class / subtype_declaration
then if_statement
to direction
transport delay_mechanism
type entity_class / full_type_declaration / incomplete_type_declaration
unaffected waveform
units entity_class / physical_type_definition
until condition_clause
use binding_indication / use_clause
variable entity_class / interface_variable_declaration / variable_declaration
wait wait_statement
when case_statement_alternative / conditional_waveforms / exit_statement / next_statement / selected_waveforms
while iteration_scheme
with selected_signal_assignment
x base_specifier
xnor expression / logical_operator
xor expression / logical_operator

Production Cross Reference

Production Used in
abstract_literalnumeric_literal / physical_literal
access_type_definitiontype_definition
actual_designatoractual_part
actual_parameter_partfunction_call / procedure_call
actual_partassociation_element
adding_operatorsimple_expression
aggregateprimary / qualified_expression / target
alias_declarationblock_declarative_item / declaration / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
alias_designatoralias_declaration
allocatorprimary
architecture_bodysecondary_unit
architecture_declarative_partarchitecture_body
architecture_statement_partarchitecture_body
array_type_definitioncomposite_type_definition
assertionassertion_statement / concurrent_assertion_statement
assertion_statementsequential_statement
association_elementassociation_list
association_listactual_parameter_part / generic_map_aspect / port_map_aspect
attribute_declarationblock_declarative_item / declaration / entity_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
attribute_designatorattribute_name / attribute_specification
attribute_namename / range
attribute_specificationblock_declarative_item / configuration_declarative_item / entity_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
basebased_literal
base_specifierbit_string_literal
based_integerbased_literal
based_literalabstract_literal
basic_graphic_characterbasic_character / graphic_character
basic_identifieridentifier
binding_indicationcomponent_configuration / configuration_specification
bit_string_literalliteral
bit_valuebit_string_literal
block_configurationcomponent_configuration / configuration_declaration / configuration_item
block_declarative_itemarchitecture_declarative_part / block_declarative_part / generate_statement
block_declarative_partblock_statement
block_headerblock_statement
block_specificationblock_configuration
block_statementconcurrent_statement
block_statement_partblock_statement
case_statementsequential_statement
case_statement_alternativecase_statement
character_literalalias_designator / entity_tag / enumeration_literal / group_constituent / suffix
choicechoices
choicescase_statement_alternative / element_association / selected_waveforms
component_configurationconfiguration_item
component_declarationblock_declarative_item / declaration / package_declarative_item
component_instantiation_statementconcurrent_statement
component_specificationcomponent_configuration / configuration_specification
composite_type_definitiontype_definition
concurrent_assertion_statementconcurrent_statement / entity_statement
concurrent_procedure_call_statementconcurrent_statement / entity_statement
concurrent_signal_assignment_statementconcurrent_statement
concurrent_statementarchitecture_statement_part / block_statement_part / generate_statement
conditionassertion / condition_clause / conditional_waveforms / exit_statement / generation_scheme / if_statement / iteration_scheme / next_statement
condition_clausewait_statement
conditional_signal_assignmentconcurrent_signal_assignment_statement
conditional_waveformsconditional_signal_assignment
configuration_declarationdeclaration / primary_unit
configuration_declarative_itemconfiguration_declarative_part
configuration_declarative_partconfiguration_declaration
configuration_itemblock_configuration
configuration_specificationblock_declarative_item
constant_declarationblock_declarative_item / entity_declarative_item / object_declaration / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
constrained_array_definitionarray_type_definition
constraintsubtype_indication
context_clausedesign_unit
context_itemcontext_clause
decimal_literalabstract_literal
delay_mechanismoptions / signal_assignment_statement
design_filevhdl
design_unitdesign_file
designatorsubprogram_body / subprogram_specification
directionrange
disconnection_specificationblock_declarative_item / entity_declarative_item / package_declarative_item
discrete_rangechoice / index_constraint / index_specification / parameter_specification / slice_name
element_associationaggregate
element_declarationrecord_type_definition
element_subtype_definitionelement_declaration
entity_aspectbinding_indication
entity_classentity_class_entry / entity_specification
entity_class_entryentity_class_entry_list
entity_class_entry_listgroup_template_declaration
entity_declarationdeclaration / primary_unit
entity_declarative_itementity_declarative_part
entity_declarative_partentity_declaration
entity_designatorentity_name_list
entity_headerentity_declaration
entity_name_listentity_specification
entity_specificationattribute_specification
entity_statemententity_statement_part
entity_statement_partentity_declaration
entity_tagentity_designator
enumeration_literalenumeration_type_definition / literal
enumeration_type_definitionscalar_type_definition
exit_statementsequential_statement
exponentbased_literal / decimal_literal
expressionactual_designator / assertion / attribute_name / attribute_specification / block_statement / case_statement / condition / constant_declaration / delay_mechanism / disconnection_specification / element_association / file_logical_name / file_open_information / index_specification / indexed_name / interface_constant_declaration / interface_signal_declaration / interface_variable_declaration / primary / qualified_expression / report_statement / return_statement / selected_signal_assignment / signal_declaration / timeout_clause / type_conversion / variable_assignment_statement / variable_declaration / waveform_element
extended_digitbased_integer / bit_value
extended_identifieridentifier
factorterm
file_declarationblock_declarative_item / entity_declarative_item / object_declaration / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
file_logical_namefile_open_information
file_open_informationfile_declaration
file_type_definitiontype_definition
floating_type_definitionscalar_type_definition
formal_designatorformal_part
formal_parameter_listsubprogram_specification
formal_partassociation_element
full_type_declarationtype_declaration
function_callprefix / primary
generate_statementconcurrent_statement
generation_schemegenerate_statement
generic_clauseblock_header / component_declaration / entity_header
generic_listgeneric_clause
generic_map_aspectbinding_indication / block_header / component_instantiation_statement
graphic_charactercharacter_literal / extended_identifier / string_literal
group_constituentgroup_constituent_list
group_constituent_listgroup_declaration
group_declarationblock_declarative_item / configuration_declarative_item / declaration / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
group_template_declarationblock_declarative_item / declaration / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
guarded_signal_specificationdisconnection_specification
identifieralias_designator / architecture_body / attribute_declaration / component_declaration / configuration_declaration / designator / entity_aspect / entity_declaration / enumeration_literal / file_declaration / full_type_declaration / group_declaration / group_template_declaration / identifier_list / incomplete_type_declaration / instantiated_unit / label / logical_name / package_declaration / parameter_specification / primary_unit_declaration / secondary_unit_declaration / simple_name / subtype_declaration
identifier_listconstant_declaration / element_declaration / interface_constant_declaration / interface_file_declaration / interface_signal_declaration / interface_variable_declaration / signal_declaration / variable_declaration
if_statementsequential_statement
incomplete_type_declarationtype_declaration
index_constraintconstrained_array_definition / constraint
index_specificationblock_specification
index_subtype_definitionunconstrained_array_definition
indexed_namename
instantiated_unitcomponent_instantiation_statement
instantiation_listcomponent_specification
integerbase / decimal_literal / exponent
integer_type_definitionscalar_type_definition
interface_constant_declarationinterface_declaration
interface_declarationdeclaration / interface_element
interface_elementinterface_list
interface_file_declarationinterface_declaration
interface_listformal_parameter_list / generic_list / port_list
interface_signal_declarationinterface_declaration
interface_variable_declarationinterface_declaration
iteration_schemeloop_statement
labelassertion_statement / block_specification / block_statement / case_statement / component_instantiation_statement / concurrent_assertion_statement / concurrent_procedure_call_statement / concurrent_signal_assignment_statement / exit_statement / generate_statement / if_statement / instantiation_list / loop_statement / next_statement / null_statement / procedure_call_statement / process_statement / report_statement / return_statement / signal_assignment_statement / variable_assignment_statement / wait_statement
letterbasic_identifier / extended_digit / letter_or_digit
letter_or_digitbasic_identifier
library_clausecontext_item
library_unitdesign_unit
literalprimary
logical_namelogical_name_list
logical_name_listlibrary_clause
loop_statementsequential_statement
modeinterface_signal_declaration / interface_variable_declaration
multiplying_operatorterm
nameactual_designator / actual_part / alias_declaration / architecture_body / block_specification / component_specification / configuration_declaration / entity_aspect / formal_designator / formal_part / function_call / group_constituent / group_declaration / instantiated_unit / physical_literal / prefix / primary / procedure_call / sensitivity_list / signal_list / subtype_indication / target / type_mark
next_statementsequential_statement
null_statementsequential_statement
numeric_literalliteral
object_declarationdeclaration
operator_symbolalias_designator / designator / entity_tag / name / suffix
optionsconditional_signal_assignment / selected_signal_assignment
package_bodysecondary_unit
package_body_declarative_itempackage_body_declarative_part
package_body_declarative_partpackage_body
package_declarationdeclaration / primary_unit
package_declarative_itempackage_declarative_part
package_declarative_partpackage_declaration
parameter_specificationgeneration_scheme / iteration_scheme
physical_literalnumeric_literal / secondary_unit_declaration
physical_type_definitionscalar_type_definition
port_clauseblock_header / component_declaration / entity_header
port_listport_clause
port_map_aspectbinding_indication / block_header / component_instantiation_statement
prefixattribute_name / indexed_name / selected_name / slice_name
primaryfactor
primary_unitlibrary_unit
primary_unit_declarationphysical_type_definition
procedure_callconcurrent_procedure_call_statement / procedure_call_statement
procedure_call_statementsequential_statement
process_declarative_itemprocess_declarative_part
process_declarative_partprocess_statement
process_statementconcurrent_statement / entity_statement
process_statement_partprocess_statement
qualified_expressionallocator / primary
rangediscrete_range / range_constraint
range_constraintconstraint / floating_type_definition / integer_type_definition / physical_type_definition
record_type_definitioncomposite_type_definition
relationexpression
relational_operatorrelation
report_statementsequential_statement
return_statementsequential_statement
scalar_type_definitiontype_definition
secondary_unitlibrary_unit
secondary_unit_declarationphysical_type_definition
selected_namename / use_clause
selected_signal_assignmentconcurrent_signal_assignment_statement
selected_waveformsselected_signal_assignment
sensitivity_clausewait_statement
sensitivity_listprocess_statement / sensitivity_clause
sequence_of_statementscase_statement_alternative / if_statement / loop_statement
sequential_statementprocess_statement_part / sequence_of_statements / subprogram_statement_part
shift_operatorshift_expression
signsimple_expression
signal_assignment_statementsequential_statement
signal_declarationblock_declarative_item / entity_declarative_item / object_declaration / package_declarative_item
signal_kindsignal_declaration
signal_listguarded_signal_specification
signaturealias_declaration / attribute_name / entity_designator
simple_expressionchoice / range / relation / shift_expression
simple_namearchitecture_body / attribute_designator / choice / component_declaration / configuration_declaration / entity_declaration / entity_tag / name / package_body / package_declaration / physical_type_definition / suffix
slice_namename
string_literalliteral / operator_symbol
subprogram_bodyblock_declarative_item / entity_declarative_item / package_body_declarative_item / process_declarative_item / subprogram_declarative_item
subprogram_declarationblock_declarative_item / declaration / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
subprogram_declarative_itemsubprogram_declarative_part
subprogram_declarative_partsubprogram_body
subprogram_kindsubprogram_body
subprogram_specificationsubprogram_body / subprogram_declaration
subprogram_statement_partsubprogram_body
subtype_declarationblock_declarative_item / declaration / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
subtype_indicationaccess_type_definition / alias_declaration / allocator / constant_declaration / constrained_array_definition / discrete_range / element_subtype_definition / file_declaration / interface_constant_declaration / interface_file_declaration / interface_signal_declaration / interface_variable_declaration / signal_declaration / subtype_declaration / unconstrained_array_definition / variable_declaration
suffixselected_name
targetconditional_signal_assignment / selected_signal_assignment / signal_assignment_statement / variable_assignment_statement
termsimple_expression
timeout_clausewait_statement
type_conversionprimary
type_declarationblock_declarative_item / declaration / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
type_definitionfull_type_declaration
type_markactual_part / attribute_declaration / file_type_definition / formal_part / guarded_signal_specification / index_subtype_definition / qualified_expression / signature / subprogram_specification / subtype_indication / type_conversion
unconstrained_array_definitionarray_type_definition
use_clauseblock_configuration / block_declarative_item / configuration_declarative_item / context_item / entity_declarative_item / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
variable_assignment_statementsequential_statement
variable_declarationblock_declarative_item / entity_declarative_item / object_declaration / package_body_declarative_item / package_declarative_item / process_declarative_item / subprogram_declarative_item
vhdl
wait_statementsequential_statement
waveformconditional_waveforms / selected_waveforms / signal_assignment_statement
waveform_elementwaveform
basic_characterNot used in any production
declarationNot used in any production
logical_operatorNot used in any production
miscellaneous_operatorNot used in any production
shift_expressionNot used in any production

Lookahead-1 Parser First Token

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

Start symbol = vhdl

Name First Tokens
abstract_literal DIGIT
access_type_definition 'access'
actual_designator "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'open'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
actual_parameter_part "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'open'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
actual_part "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'open'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
adding_operator '&'
'+'
'-'
aggregate '('
alias_declaration 'alias'
alias_designator "'"
'"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
allocator 'new'
architecture_body 'architecture'
architecture_declarative_part ø
'alias'
'attribute'
'component'
'constant'
'disconnect'
'file'
'for'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
architecture_statement_part ø
'"'
'('
'\'
'assert'
'postponed'
'process'
'with'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
array_type_definition 'array'
assertion 'assert'
assertion_statement '\'
'assert'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
association_element "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'open'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
association_list "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'open'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
attribute_declaration 'attribute'
attribute_designator '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
attribute_name '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
attribute_specification 'attribute'
base DIGIT
base_specifier 'b'
'o'
'x'
based_integer DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
based_literal DIGIT
basic_character DIGIT
FORMAT_EFFECTOR
SPACE_CHARACTER
SPECIAL_CHARACTER
UPPER_CASE_CHARACTER
basic_graphic_character DIGIT
SPACE_CHARACTER
SPECIAL_CHARACTER
UPPER_CASE_CHARACTER
basic_identifier LOWER_CASE_LETTER
UPPER_CASE_LETTER
binding_indication 'use'
bit_string_literal 'b'
'o'
'x'
bit_value DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
block_configuration 'for'
block_declarative_item 'alias'
'attribute'
'component'
'constant'
'disconnect'
'file'
'for'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
block_declarative_part ø
'alias'
'attribute'
'component'
'constant'
'disconnect'
'file'
'for'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
block_header ø
'generic'
'port'
block_specification '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
block_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
block_statement_part ø
'"'
'('
'\'
'assert'
'postponed'
'process'
'with'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
case_statement '\'
'case'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
case_statement_alternative 'when'
character_literal "'"
choice "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'others'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
choices "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'others'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
component_configuration 'for'
component_declaration 'component'
component_instantiation_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
component_specification '\'
'all'
'others'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
composite_type_definition 'array'
'record'
concurrent_assertion_statement '\'
'assert'
'postponed'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
concurrent_procedure_call_statement '"'
'\'
'postponed'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
concurrent_signal_assignment_statement '"'
'('
'\'
'postponed'
'with'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
concurrent_statement '"'
'('
'\'
'assert'
'postponed'
'process'
'with'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
condition "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
condition_clause 'until'
conditional_signal_assignment '"'
'('
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
conditional_waveforms "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'unaffected'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
configuration_declaration 'configuration'
configuration_declarative_item 'attribute'
'group'
'use'
configuration_declarative_part ø
'attribute'
'group'
'use'
configuration_item 'for'
configuration_specification 'for'
constant_declaration 'constant'
constrained_array_definition 'array'
constraint '('
'range'
context_clause ø
'library'
'use'
context_item 'library'
'use'
decimal_literal DIGIT
declaration '\'
'alias'
'attribute'
'component'
'configuration'
'constant'
'entity'
'file'
'function'
'group'
'impure'
'package'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
delay_mechanism 'inertial'
'reject'
'transport'
design_file 'architecture'
'configuration'
'entity'
'library'
'package'
'use'
design_unit 'architecture'
'configuration'
'entity'
'library'
'package'
'use'
designator '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
direction 'downto'
'to'
disconnection_specification 'disconnect'
discrete_range "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
element_association "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'others'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
element_declaration '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
element_subtype_definition '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
entity_aspect 'configuration'
'entity'
'open'
entity_class 'architecture'
'component'
'configuration'
'constant'
'entity'
'file'
'function'
'group'
'label'
'literal'
'package'
'procedure'
'signal'
'subtype'
'type'
'units'
'variable'
entity_class_entry 'architecture'
'component'
'configuration'
'constant'
'entity'
'file'
'function'
'group'
'label'
'literal'
'package'
'procedure'
'signal'
'subtype'
'type'
'units'
'variable'
entity_class_entry_list 'architecture'
'component'
'configuration'
'constant'
'entity'
'file'
'function'
'group'
'label'
'literal'
'package'
'procedure'
'signal'
'subtype'
'type'
'units'
'variable'
entity_declaration 'entity'
entity_declarative_item 'alias'
'attribute'
'constant'
'disconnect'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
entity_declarative_part ø
'alias'
'attribute'
'constant'
'disconnect'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
entity_designator "'"
'"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
entity_header ø
'generic'
'port'
entity_name_list "'"
'"'
'\'
'all'
'others'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
entity_specification "'"
'"'
'\'
'all'
'others'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
entity_statement '"'
'\'
'assert'
'postponed'
'process'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
entity_statement_part ø
'"'
'\'
'assert'
'postponed'
'process'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
entity_tag "'"
'"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
enumeration_literal "'"
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
enumeration_type_definition '('
exit_statement '\'
'exit'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
exponent 'e'
expression "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
extended_digit DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
extended_identifier '\'
factor "'"
'"'
'('
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
file_declaration 'file'
file_logical_name "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
file_open_information 'is'
'open'
file_type_definition 'file'
floating_type_definition 'range'
formal_designator '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
formal_parameter_list '\'
'constant'
'file'
'signal'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
formal_part '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
full_type_declaration 'type'
function_call '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
generate_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
generation_scheme 'for'
'if'
generic_clause 'generic'
generic_list '\'
'constant'
'file'
'signal'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
generic_map_aspect 'generic'
graphic_character DIGIT
LOWER_CASE_LETTER
OTHER_SPECIAL_CHARACTER
SPACE_CHARACTER
SPECIAL_CHARACTER
UPPER_CASE_CHARACTER
group_constituent "'"
'"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
group_constituent_list "'"
'"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
group_declaration 'group'
group_template_declaration 'group'
guarded_signal_specification '"'
'\'
'all'
'others'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
identifier '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
identifier_list '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
if_statement '\'
'if'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
incomplete_type_declaration 'type'
index_constraint '('
index_specification "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
index_subtype_definition '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
indexed_name '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
instantiated_unit '"'
'\'
'component'
'configuration'
'entity'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
instantiation_list '\'
'all'
'others'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
integer DIGIT
integer_type_definition 'range'
interface_constant_declaration '\'
'constant'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
interface_declaration '\'
'constant'
'file'
'signal'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
interface_element '\'
'constant'
'file'
'signal'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
interface_file_declaration 'file'
interface_list '\'
'constant'
'file'
'signal'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
interface_signal_declaration '\'
'signal'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
interface_variable_declaration '\'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
iteration_scheme 'for'
'while'
label '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
letter LOWER_CASE_LETTER
UPPER_CASE_LETTER
letter_or_digit DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
library_clause 'library'
library_unit 'architecture'
'configuration'
'entity'
'package'
literal "'"
'"'
'\'
'b'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
logical_name '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
logical_name_list '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
logical_operator 'and'
'nand'
'nor'
'or'
'xnor'
'xor'
loop_statement '\'
'for'
'loop'
'while'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
miscellaneous_operator '**'
'abs'
'not'
mode 'buffer'
'in'
'inout'
'linkage'
'out'
multiplying_operator '*'
'/'
'mod'
'rem'
name '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
next_statement '\'
'next'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
null_statement '\'
'null'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
numeric_literal '"'
'\'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
object_declaration 'constant'
'file'
'shared'
'signal'
'variable'
operator_symbol '"'
options ø
'guarded'
'inertial'
'reject'
'transport'
package_body 'package'
package_body_declarative_item 'alias'
'constant'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'subtype'
'type'
'use'
'variable'
package_body_declarative_part ø
'alias'
'constant'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'subtype'
'type'
'use'
'variable'
package_declaration 'package'
package_declarative_item 'alias'
'attribute'
'component'
'constant'
'disconnect'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
package_declarative_part ø
'alias'
'attribute'
'component'
'constant'
'disconnect'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'signal'
'subtype'
'type'
'use'
'variable'
parameter_specification '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
physical_literal '"'
'\'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
physical_type_definition 'range'
port_clause 'port'
port_list '\'
'constant'
'file'
'signal'
'variable'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
port_map_aspect 'port'
prefix '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
primary "'"
'"'
'('
'\'
'b'
'new'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
primary_unit 'configuration'
'entity'
'package'
primary_unit_declaration '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
procedure_call '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
procedure_call_statement '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
process_declarative_item 'alias'
'attribute'
'constant'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'subtype'
'type'
'use'
'variable'
process_declarative_part ø
'alias'
'attribute'
'constant'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'subtype'
'type'
'use'
'variable'
process_statement '\'
'postponed'
'process'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
process_statement_part ø
'"'
'('
'\'
'assert'
'case'
'exit'
'for'
'if'
'loop'
'next'
'null'
'report'
'return'
'wait'
'while'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
qualified_expression '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
range "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
range_constraint 'range'
record_type_definition 'record'
relation "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
relational_operator '/='
'<'
'<='
'='
'>'
'>='
report_statement '\'
'report'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
return_statement '\'
'return'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
scalar_type_definition '('
'range'
secondary_unit 'architecture'
'package'
secondary_unit_declaration '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
selected_name '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
selected_signal_assignment 'with'
selected_waveforms "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'unaffected'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
sensitivity_clause 'on'
sensitivity_list '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
sequence_of_statements ø
'"'
'('
'\'
'assert'
'case'
'exit'
'for'
'if'
'loop'
'next'
'null'
'report'
'return'
'wait'
'while'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
sequential_statement '"'
'('
'\'
'assert'
'case'
'exit'
'for'
'if'
'loop'
'next'
'null'
'report'
'return'
'wait'
'while'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
shift_expression "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
shift_operator 'rol'
'ror'
'sla'
'sll'
'sra'
'srl'
sign '+'
'-'
signal_assignment_statement '"'
'('
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
signal_declaration 'signal'
signal_kind 'bus'
'register'
signal_list '"'
'\'
'all'
'others'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
signature '['
simple_expression "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
simple_name '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
slice_name '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
string_literal '"'
subprogram_body 'function'
'impure'
'procedure'
'pure'
subprogram_declaration 'function'
'impure'
'procedure'
'pure'
subprogram_declarative_item 'alias'
'attribute'
'constant'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'subtype'
'type'
'use'
'variable'
subprogram_declarative_part ø
'alias'
'attribute'
'constant'
'file'
'function'
'group'
'impure'
'procedure'
'pure'
'shared'
'subtype'
'type'
'use'
'variable'
subprogram_kind 'function'
'procedure'
subprogram_specification 'function'
'impure'
'procedure'
'pure'
subprogram_statement_part ø
'"'
'('
'\'
'assert'
'case'
'exit'
'for'
'if'
'loop'
'next'
'null'
'report'
'return'
'wait'
'while'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
subtype_declaration 'subtype'
subtype_indication '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
suffix "'"
'"'
'\'
'all'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
target '"'
'('
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
term "'"
'"'
'('
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
timeout_clause 'for'
type_conversion '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
type_declaration 'type'
type_definition '('
'access'
'array'
'file'
'range'
'record'
type_mark '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
unconstrained_array_definition 'array'
use_clause 'use'
variable_assignment_statement '"'
'('
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
variable_declaration 'shared'
'variable'
vhdl 'architecture'
'configuration'
'entity'
'library'
'package'
'use'
wait_statement '\'
'wait'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
waveform "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'unaffected'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
waveform_element "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER


Lookahead-1 Parser Ambiguities

Ref Production Ambiguous
Literals/Terminals
Can't decide between the following
#1 abstract_literal DIGIT
#2 actual_designator '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#3 actual_part '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#4 allocator 'new'
#5 array_type_definition 'array'
#6 association_element '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#7 block_declarative_item 'function'
'impure'
'procedure'
'pure'
#8 block_declarative_item 'attribute'
#9 block_declarative_item 'group'
#10 block_specification '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#11 choice "'"
'"'
'('
'+'
'-'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
#12 choice '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#13 concurrent_procedure_call_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#14 concurrent_signal_assignment_statement '\'
'postponed'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#15 concurrent_signal_assignment_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#16 concurrent_statement 'postponed'
#17 concurrent_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#18 concurrent_statement '"'
#19 conditional_waveforms "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'unaffected'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#20 configuration_item 'for'
#21 declaration 'constant'
'file'
'signal'
'variable'
#22 declaration 'group'
#23 discrete_range '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#24 element_association "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#25 entity_declarative_item 'function'
'impure'
'procedure'
'pure'
#26 entity_declarative_item 'attribute'
#27 entity_declarative_item 'group'
#28 entity_statement '\'
'postponed'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#29 exponent 'e'
#30 expression "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#31 formal_part '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#32 index_specification "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#33 interface_declaration '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#34 library_unit 'package'
#35 literal '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#36 literal '"'
#37 name '"'
#38 name '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#39 numeric_literal DIGIT
#40 package_body_declarative_item 'function'
'impure'
'procedure'
'pure'
#41 package_body_declarative_item 'group'
#42 package_declarative_item 'attribute'
#43 package_declarative_item 'group'
#44 prefix '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#45 primary '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#46 primary '('
#47 procedure_call_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#48 process_declarative_item 'function'
'impure'
'procedure'
'pure'
#49 process_declarative_item 'attribute'
#50 process_declarative_item 'group'
#51 qualified_expression '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#52 range '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#53 scalar_type_definition 'range'
#54 selected_waveforms "'"
'"'
'('
'+'
'-'
'\'
'abs'
'b'
'new'
'not'
'null'
'o'
'unaffected'
'x'
DIGIT
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#55 sequential_statement '"'
#56 sequential_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#57 sequential_statement '('
#58 signal_assignment_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#59 subprogram_declarative_item 'function'
'impure'
'procedure'
'pure'
#60 subprogram_declarative_item 'attribute'
#61 subprogram_declarative_item 'group'
#62 subtype_indication '"'
'\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#63 type_declaration 'type'
#64 variable_assignment_statement '\'
LOWER_CASE_LETTER
UPPER_CASE_LETTER
#65 waveform_element 'null'

Created with ebnf2annot.pl (andreas.gieriet@externsoft.ch)