--------------------------------------------------------------------------------
0 |
--------------------------------------------------------------------------------
1 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
2 | architecture RTL of FIFO is
<class 'vsg.token.architecture_body.architecture_keyword'>
<class 'vsg.token.architecture_body.identifier'>
<class 'vsg.token.architecture_body.of_keyword'>
<class 'vsg.token.architecture_body.entity_name'>
<class 'vsg.token.architecture_body.is_keyword'>
--------------------------------------------------------------------------------
3 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
4 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
5 |   subtype DIGITS is INTEGER range 0 to 9;
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.ieee.std_logic_1164.types.integer'>
<class 'vsg.token.range_constraint.range_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.direction.to'>
<class 'vsg.parser.todo'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
6 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
7 |   subtype BIT_NEW is RESOLVE_VALUE BIT;
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.resolution_indication.resolution_function_name'>
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
8 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
9 |   -- EXAMPLE 1 : a resolved subtype
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
10 |   subtype MY_STD_LOGIC is Resolved Std_ulogic;
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.resolution_indication.resolution_function_name'>
<class 'vsg.token.ieee.std_logic_1164.types.std_ulogic'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
11 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
12 |   -- EXAMPLE 2: an integer subtype
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
13 |   subtype MyBit is STD_LOGIC range '0' to '1';
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.ieee.std_logic_1164.types.std_logic'>
<class 'vsg.token.range_constraint.range_keyword'>
<class 'vsg.parser.character_literal'>
<class 'vsg.token.direction.to'>
<class 'vsg.parser.character_literal'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
14 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
15 |   -- EXAMPLE 3 : an array subtype
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
16 |   subtype ShortVector is STD_LOGIC_VECTOR(1 downto 0);
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.ieee.std_logic_1164.types.std_logic_vector'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.parser.todo'>
<class 'vsg.token.direction.downto'>
<class 'vsg.parser.todo'>
<class 'vsg.token.index_constraint.close_parenthesis'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
17 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
18 |   subtype new_std_logic is (resolved) std_ulogic;
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.resolution_indication.open_parenthesis'>
<class 'vsg.parser.todo'>
<class 'vsg.token.resolution_indication.close_parenthesis'>
<class 'vsg.token.ieee.std_logic_1164.types.std_ulogic'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
19 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
20 |   -- Example 4 : subtype in subtype declaration
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
21 |   subtype identifier is type_mark(type_mark(blah));
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.parser.todo'>
<class 'vsg.token.index_constraint.close_parenthesis'>
<class 'vsg.token.index_constraint.close_parenthesis'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
22 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
23 |   subtype identifier is type_mark(type_mark
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.token.type_mark.name'>
--------------------------------------------------------------------------------
24 |     (
<class 'vsg.token.index_constraint.open_parenthesis'>
--------------------------------------------------------------------------------
25 |      blah
<class 'vsg.parser.todo'>
--------------------------------------------------------------------------------
26 |     )
<class 'vsg.token.index_constraint.close_parenthesis'>
--------------------------------------------------------------------------------
27 |   );
<class 'vsg.token.index_constraint.close_parenthesis'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
28 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
29 |   subtype t_data_axi_stream_m2s is t_axi_stream_m2s(
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
--------------------------------------------------------------------------------
30 |       st_keep(T_AXI_RANGE)
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.parser.todo'>
<class 'vsg.token.index_constraint.close_parenthesis'>
--------------------------------------------------------------------------------
31 |   );
<class 'vsg.token.index_constraint.close_parenthesis'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
32 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
33 |   subtype t_data_axi_stream_m2s is t_axi_stream_m2s(
<class 'vsg.token.subtype_declaration.subtype_keyword'>
<class 'vsg.token.subtype_declaration.identifier'>
<class 'vsg.token.subtype_declaration.is_keyword'>
<class 'vsg.token.type_mark.name'>
<class 'vsg.token.record_constraint.open_parenthesis'>
--------------------------------------------------------------------------------
34 |       st_strb2(0 downto 0),
<class 'vsg.token.record_element_constraint.record_element_simple_name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.parser.todo'>
<class 'vsg.token.direction.downto'>
<class 'vsg.parser.todo'>
<class 'vsg.token.index_constraint.close_parenthesis'>
<class 'vsg.token.record_constraint.comma'>
--------------------------------------------------------------------------------
35 |       st_keep(T_AXI_RANGE)
<class 'vsg.token.record_element_constraint.record_element_simple_name'>
<class 'vsg.token.index_constraint.open_parenthesis'>
<class 'vsg.parser.todo'>
<class 'vsg.token.index_constraint.close_parenthesis'>
--------------------------------------------------------------------------------
36 |   );
<class 'vsg.token.record_constraint.close_parenthesis'>
<class 'vsg.token.subtype_declaration.semicolon'>
--------------------------------------------------------------------------------
37 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
38 | begin
<class 'vsg.token.architecture_body.begin_keyword'>
--------------------------------------------------------------------------------
39 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
40 | end architecture RTL;
<class 'vsg.token.architecture_body.end_keyword'>
<class 'vsg.token.architecture_body.end_architecture_keyword'>
<class 'vsg.token.architecture_body.architecture_simple_name'>
<class 'vsg.token.architecture_body.semicolon'>
