--------------------------------------------------------------------------------
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 | begin
<class 'vsg.token.architecture_body.begin_keyword'>
--------------------------------------------------------------------------------
5 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
6 |   LABEL0 : if a = 1 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
7 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
8 |   end generate LABEL0;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
9 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
10 |   -- Simple test case
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
11 |   LABEL1 : if LABEL1A : a = 1 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.token.if_generate_statement.alternative_label_name'>
<class 'vsg.token.if_generate_statement.alternative_label_colon'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
12 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
13 |   elsif LABEL1B : a = 0 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.token.if_generate_statement.alternative_label_name'>
<class 'vsg.token.if_generate_statement.alternative_label_colon'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
14 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
15 |   elsif LABEL1C : a = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.token.if_generate_statement.alternative_label_name'>
<class 'vsg.token.if_generate_statement.alternative_label_colon'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
16 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
17 |   else LABEL1D : generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.alternative_label_name'>
<class 'vsg.token.if_generate_statement.alternative_label_colon'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
18 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
19 |   end generate LABEL1;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
20 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
21 |   -- Test nesting
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
22 |   LABEL2A: if a = 1 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
23 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
24 |     LABEL3A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
25 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
26 |     elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
27 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
28 |     else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
29 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
30 |     end generate LABEL3A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
31 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
32 |   elsif b = 0 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
33 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
34 |   elsif c = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
35 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
36 |   else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
37 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
38 |   end generate LABEL2A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
39 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
40 |   -- Test multiple layers of nesting
<class 'vsg.parser.comment'>
--------------------------------------------------------------------------------
41 |   LABEL2A: if a = 1 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
42 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
43 |       LABEL3A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
44 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
45 |           LABEL4A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
46 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
47 |           elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
48 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
49 |           else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
50 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
51 |           end generate LABEL4A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
52 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
53 |       elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
54 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
55 |       else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
56 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
57 |       end generate LABEL3A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
58 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
59 |   elsif b = 0 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
60 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
61 |       LABEL3A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
62 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
63 |           LABEL4A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
64 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
65 |           elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
66 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
67 |           else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
68 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
69 |           end generate LABEL4A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
70 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
71 |       elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
72 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
73 |       else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
74 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
75 |       end generate LABEL3A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
76 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
77 |   elsif c = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
78 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
79 |       LABEL3A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
80 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
81 |           LABEL4A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
82 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
83 |           elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
84 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
85 |           else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
86 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
87 |           end generate LABEL4A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
88 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
89 |       elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
90 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
91 |       else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
92 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
93 |       end generate LABEL3A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
94 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
95 |   else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
96 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
97 |       LABEL3A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
98 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
99 |           LABEL4A : if x = 0 generate
<class 'vsg.token.if_generate_statement.generate_label'>
<class 'vsg.token.if_generate_statement.label_colon'>
<class 'vsg.token.if_generate_statement.if_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
100 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
101 |           elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
102 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
103 |           else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
104 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
105 |           end generate LABEL4A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
106 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
107 |       elsif y = 1 generate
<class 'vsg.token.if_generate_statement.elsif_keyword'>
<class 'vsg.parser.todo'>
<class 'vsg.token.relational_operator.equal'>
<class 'vsg.parser.todo'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
108 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
109 |       else generate
<class 'vsg.token.if_generate_statement.else_keyword'>
<class 'vsg.token.if_generate_statement.generate_keyword'>
--------------------------------------------------------------------------------
110 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
111 |       end generate LABEL3A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
112 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
113 |   end generate LABEL2A;
<class 'vsg.token.if_generate_statement.end_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_keyword'>
<class 'vsg.token.if_generate_statement.end_generate_label'>
<class 'vsg.token.if_generate_statement.semicolon'>
--------------------------------------------------------------------------------
114 |
<class 'vsg.parser.blank_line'>
--------------------------------------------------------------------------------
115 | 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'>
