diff options
Diffstat (limited to 'vhdlparser/VhdlParser.cc')
-rw-r--r-- | vhdlparser/VhdlParser.cc | 8243 |
1 files changed, 5451 insertions, 2792 deletions
diff --git a/vhdlparser/VhdlParser.cc b/vhdlparser/VhdlParser.cc index 16753ea..030313f 100644 --- a/vhdlparser/VhdlParser.cc +++ b/vhdlparser/VhdlParser.cc @@ -4,23 +4,63 @@ namespace vhdl { namespace parser { unsigned int jj_la1_0[] = { -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x90404000,0x20080000,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x90004000,0x400000,0x0,0x90404000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x40000000,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x40020000,0x40020001,0x0,0x0,0x0,0x40000000,0xd0020000,0x0,0x0,0x800000,0x0,0x0,0x80004000,0x400000,0x0,0x0,0x80404000,0x0,0x0,0x0,0x0,0x8000,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x0,0x10800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x10000000,0x0,0x50000000,0x8000,0x80000000,0x0,0x80000000,0x80000000,0x4000000,0x8000000,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x800,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x80004000,0x0,0x80004000,0x0,0x0,0x0,0x0,0x0,0x0,0x90004000,0x400000,0x0,0x0,0x90404000,0x0,0x0,0x0,0x40000000,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x0,0x0,0x20000,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,0x0,0x8000,0x0,0x0,0x41000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x2000,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x90c04000,0x20080000,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x90404000,0x80000,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80004000,0x10000000,0x400000,0x0,0x90404000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40020000,0x40020001,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x40000000,0xd0020000,0x0,0x0,0x800000,0x0,0x0,0x80000000,0x4000,0x400000,0x0,0x0,0x80404000,0x0,0x0,0x0,0x0,0x8000,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10800,0x0,0x80000000,0x10000,0x0,0x10800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x90c04000,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x41000,0x0,0x0,0x10800,0x10000000,0x0,0x50000000,0x8000,0x80000000,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x4000000,0x8000000,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x800,0x4000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x80000000,0x4000,0x0,0x80004000,0x0,0x0,0x0,0x0,0x0,0x90004000,0x400000,0x0,0x0,0x90404000,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x0,0x0,0x0,0x21080000,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x400000,0x404000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x21080000,0x80c04000,0x80404000,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x8000,0x4000000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x21080000,0x0,0x0,0x0,0x8000,0x0,0x0,0x41000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x2000,0x0,}; unsigned int jj_la1_1[] = { -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x125808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x1000,0x104800,0x1008,0x20000,0x125808,0x10000,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x1000,0x1000000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x1000,0x0,0x4000000,0x1,0x0,0x400000,0x4000101,0x4000101,0x0,0x10,0x0,0x100,0x12024900,0x0,0x0,0x0,0x100,0x0,0x104800,0x8,0x20000,0x0,0x124808,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x200000,0x0,0x0,0x0,0x81000,0x0,0x0,0x0,0x0,0x0,0x40,0x20,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x800,0x0,0x0,0x0,0x8a00000,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x8a00000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x40000,0x400000,0x0,0x0,0x104800,0x20000,0x124800,0x10000,0x10000,0x0,0x0,0x10000,0x10000,0x104800,0x8,0x20000,0x0,0x124808,0x0,0x0,0x0,0x100,0x1,0x0,0x104800,0x0,0x20000,0x124800,0x0,0x0,0x0,0x1000000,0x0,0x0,0x20081200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x104000,0x1000000,0x1104800,0x0,0x20000,0x1124800,0x4000,0x0,0x100000,0x100000,0x0,0x104000,0x20081200,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x1104800,0x0,0x20000,0x1124800,0x0,0x104000,0x104000,0x0,0x4000001,0x1,0x0,0x4000001,0x10000,0x10000,0x10000,0x0,0x0,0x125808,0x0,0x20,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x20,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x200000,0x0,0x0,0x0,0x200000,0x0,0x20,0x104000,0x100000,0x100000,0x0,0x1000000,0x0,0x0,0x104000,}; +0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x125808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x1000,0x104800,0x0,0x1008,0x20000,0x125808,0x10000,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x1000,0x1000000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x400000,0x40000,0x400000,0x0,0x40000,0x400000,0x0,0x0,0x400000,0x20,0x0,0x200000,0x200000,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x1000,0x0,0x4000001,0x0,0x1,0x0,0x0,0x400000,0x4000101,0x4000101,0x0,0x10,0x0,0x0,0x8a00000,0x0,0x0,0x100,0x12024900,0x0,0x0,0x0,0x100,0x0,0x104000,0x800,0x8,0x20000,0x0,0x124808,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x200000,0x200000,0x0,0x0,0x10000,0x10000,0x125808,0x0,0x20,0x40,0x0,0x81000,0x0,0x0,0x0,0x0,0x0,0x40,0x20,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x800,0x800,0x0,0x200000,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x104000,0x100000,0x100000,0x0,0x1000000,0x0,0x0,0x0,0x104000,0x100000,0x100000,0x10000,0x0,0x0,0x0,0x0,0x0,0x8a00000,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x8a00000,0x8a00000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x40000,0x400000,0x0,0x0,0x104000,0x800,0x20000,0x124800,0x10000,0x10000,0x0,0x0,0x104000,0x800,0x8,0x20000,0x0,0x124808,0x10000,0x0,0x0,0x0,0x100,0x1,0x0,0x0,0x0,0x10000,0x0,0x0,0x1104000,0x800,0x0,0x20000,0x1124800,0x0,0x0,0x0,0x1000000,0x0,0x0,0x20081200,0x0,0x1104000,0x800,0x0,0x20000,0x1124800,0x0,0x10000,0x10000,0x4000,0x104000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x200000,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x20081200,0x1124800,0x1124800,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x8a00000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x104000,0x1000000,0x1104800,0x0,0x20000,0x1124800,0x4000,0x0,0x100000,0x100000,0x10000,0x0,0x0,0x104000,0x20081200,0x0,0x10000,0x0,0x0,0x0,0x0,0x800,0x0,0x10000,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x104000,}; unsigned int jj_la1_2[] = { -0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x110000,0x28000,0x0,0x20000000,0x0,0x0,0x0,0x200000,0x200000,0x0,0x0,0x0,0x4000,0x0,0x0,0x110000,0x0,0x0,0x110000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x28000,0x0,0x0,0x0,0x0,0x400,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x4000,0x400000,0x8000,0x8000,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x1000,0x1000,0x0,0x0,0x0,0x100,0x11000,0x0,0x0,0x0,0x0,0x0,0x110000,0x0,0x0,0x1000,0x111000,0x0,0x0,0x4000,0x0,0x400,0x8000,0x28000,0x0,0x0,0x0,0x0,0x0,0x0,0x209,0x209,0x0,0x23b,0x100,0x100,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23b,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x1000,0x20,0x0,0x0,0x0,0x10,0x800,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000,0x0,0x110000,0x0,0x110000,0x0,0x0,0x1000,0x0,0x0,0x0,0x110000,0x0,0x0,0x1000,0x111000,0x0,0x0,0x0,0x0,0x1000,0x0,0x110000,0x0,0x0,0x110000,0x0,0x8000,0x0,0x0,0x8000,0x0,0x20000024,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23b,0x0,0x200000,0x1000,0x0,0x0,0x0,0x20,0xc0000000,0xc0000000,0x0,0x1000000,0x0,0x800000,0x0,0x800000,0x0,0x400,0x0,0x0,0x0,0x0,0x10000,0x0,0x110000,0x0,0x110000,0x0,0x0,0x110000,0x10000,0x0,0x100000,0x100000,0x0,0x110000,0x20000024,0x0,0x0,0x0,0x0,0x600000,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x23b,0x0,0x0,0x110000,0x0,0x0,0x110000,0x0,0x110000,0x110000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x110000,0x28000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x800,0x23b,0x0,0x0,0x0,0x0,0x1000000,0x0,0x800,0x0,0x0,0x0,0x800,0x0,0x0,0x110000,0x100000,0x100000,0x0,0x0,0x2000,0x0,0x138000,}; +0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x221000,0x48000,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x400000,0x400000,0x0,0x0,0x0,0x4000,0x0,0x0,0x220000,0x1000,0x0,0x0,0x221000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x48000,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x0,0x4000,0x800000,0x8000,0x8000,0x8000,0x0,0x0,0x2000000,0x0,0x2000000,0x0,0x0,0x2000000,0x0,0x0,0x2000000,0x0,0x0,0x800,0x800,0x23b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x2000000,0x1000,0x1000,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x100,0x21000,0x0,0x0,0x0,0x0,0x0,0x220000,0x0,0x0,0x0,0x1000,0x221000,0x0,0x0,0x4000,0x0,0x400,0x8000,0x48000,0x0,0x0,0x0,0x0,0x0,0x0,0x209,0x23b,0x0,0x0,0x209,0x0,0x23b,0x100,0x100,0x800,0x800,0x0,0x0,0x0,0x0,0x221000,0x48000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x400000,0x0,0x0,0x23b,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x2000,0x0,0x0,0x0,0x220000,0x200000,0x200000,0x0,0x0,0x2000,0x0,0x0,0x220000,0x200000,0x200000,0x0,0x2000,0x2000,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x1000,0x20,0x0,0x0,0x0,0x10,0x800,0x800,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x1000,0x0,0x220000,0x1000,0x0,0x221000,0x0,0x0,0x1000,0x0,0x220000,0x0,0x0,0x0,0x1000,0x221000,0x0,0x0,0x0,0x0,0x0,0x1000,0x2000,0x2000,0x0,0x0,0x2000,0x2000,0x220000,0x1000,0x0,0x0,0x221000,0x0,0x8000,0x0,0x0,0x8000,0x0,0x40000024,0x0,0x220000,0x1000,0x0,0x0,0x221000,0x0,0x0,0x0,0x10000,0x230000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x1000,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x800,0x800,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000024,0x221000,0x221000,0x80000000,0x80000000,0x0,0x2000000,0x0,0x1000000,0x0,0x1000000,0x0,0x400,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x220000,0x0,0x220000,0x0,0x0,0x220000,0x20000,0x0,0x200000,0x200000,0x0,0x2000,0x2000,0x220000,0x40000024,0x0,0x0,0x0,0x0,0x0,0x0,0xc00002,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x23b,0x0,0x268000,}; unsigned int jj_la1_3[] = { -0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x188830,0x8000000,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x80000,0x0,0x108830,0x80000,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x2000000,0x0,0x0,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x2000000,0x0,0x0,0x80000,0x80000,0x0,0x0,0x80000,0x0,0x0,0x4000,0x80000,0x80000,0x0,0x2000,0x0,0x0,0x128810,0x0,0x0,0x0,0x0,0x0,0x108830,0x80000,0x0,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x30000000,0x30000000,0x0,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0x0,0x0,0x108030,0x0,0x100030,0x100030,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x108030,0x0,0x4000,0x0,0x0,0x188820,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0x108830,0x80000,0x0,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0xd000001,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x30000000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c0,0x3c0,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0xd000001,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x8000000,0x20,0x0,0x0,0x0,0x40000,0x0,0x0,0x30010000,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x80000,0x80000,0x0,0x80000,0x0,0x0,0x80000,0x0,0x0,0x0,0x2000000,0x0,0x188830,0x8000000,0x0,0x0,0x100010,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x2000000,0x0,0x30000000,0x8000000,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x711060,0x20000000,0x0,0x0,0x0,0x10000,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x0,0x100000,0x0,0x611060,0x0,0x100000,0x0,0x711060,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x8000000,0x0,0x0,0x0,0x8000000,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x8000,0x0,0x0,0x8000,0x0,0x0,0x8000,0x0,0x8000000,0x0,0x0,0xc0000000,0x8000000,0x0,0x8000000,0x8000000,0x8000000,0x0,0x0,0x100000,0x100000,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x8000,0x100000,0x100000,0x0,0x4000,0x0,0x0,0x400000,0x400000,0x0,0x0,0x251020,0x0,0x0,0x0,0x0,0x0,0x11020,0x600040,0x100000,0x0,0x0,0x711060,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0xc0000000,0xc0020000,0x0,0x200020,0xc0000000,0x0,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x711060,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x40000,0x0,0x10000,0x0,0xc0000000,0x0,0x0,0x0,0x0,0x210060,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x410000,0x200060,0x200060,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x400000,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x210060,0x0,0x8000,0x0,0x0,0x211040,0x500000,0x0,0x711040,0x0,0x0,0x0,0x0,0x11000,0x600060,0x100000,0x0,0x0,0x711060,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x211040,0x100000,0x0,0x311040,0x0,0x0,0x0,0x0,0x0,0x0,0x34000002,0x0,0x0,0x211040,0x100000,0x0,0x311040,0x0,0x0,0x0,0x100000,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x2,0x0,0x8000000,0x0,0x40000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34000002,0x311040,0x311040,0x781,0x781,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x211040,0x100000,0x0,0x311040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34000002,0x0,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x20000000,0x40,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0xc0020000,0x0,0x0,}; unsigned int jj_la1_4[] = { -0x0,0x0,0x0,0x20000,0x30,0x40,0x100,0x0,0x0,0x0,0x0,0x40000,0x0,0x40001,0x0,0x0,0x0,0x0,0x40,0x0,0x40000,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x40001,0x8000000,0x0,0x0,0x0,0x0,0x10000000,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x20000,0x40,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40000,0x40000,0x40000,0x40000,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x4,0x140001,0x0,0x0,0x0,0x40000,0x1,0x0,0x0,0x40000,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x140031,0x0,0x1,0x0,0x40000,0x0,0x200,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x40000008,0x40000,0x40,0x1,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x40001,0x1,0x40000,0x40000,0x7e0fc00,0x7e0fc00,0x0,0x0,0x0,0x140031,0x0,0x0,0x0,0x40,0x40,0x40000,0x0,0x0,0x0,0x30,0x0,0x40001,0x0,0x80,0x0,0x40,0x40000,0x40,0x40000,0x0,0x30,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x40001,0x40000,0x0,0x40001,0x0,0x1,0x0,0x40,0x40,0x40001,0x0,0x80,0x0,0x0,0x0,0x0,0x40,0x140031,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40001,0x0,0x0,0x0,0xa0000000,0x20000000,0x0,0x1,0x40001,0x0,0x0,0x0,0x0,0x140031,0x0,0x8000000,0x40000,0x8000000,0x0,0x8000000,0x0,0x240,0x240,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x1,0x0,}; +0x0,0x0,0x0,0x0,0x0,0x100000,0xc1,0x100,0x400,0x0,0x0,0x0,0x0,0x200000,0x0,0x200004,0x4,0x4,0x4,0x200004,0x100,0x0,0x0,0x0,0x0,0x100,0x0,0x200000,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x4,0x0,0x0,0x200004,0x40000000,0x0,0x40000000,0x0,0x0,0x0,0x0,0x80000000,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200004,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x200004,0x0,0x0,0x0,0x0,0x0,0xa000c4,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x100000,0x100,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x200000,0x200000,0x200000,0x200000,0x0,0x100,0x0,0x0,0x0,0x0,0xa000c4,0x0,0x0,0x0,0x10,0xa00004,0x0,0x0,0x0,0x0,0x200000,0x4,0x0,0x0,0x0,0x200004,0x0,0x0,0x0,0x0,0x200000,0x100,0x0,0x100,0x0,0x0,0x0,0x0,0x200004,0x100004,0x0,0x200000,0x100,0xa000c4,0x0,0x4,0x200000,0x200000,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x4,0x0,0x0,0x200,0x0,0x0,0x0,0x100000,0x0,0x0,0x4,0x300000,0x0,0x0,0x0,0x0,0x0,0x4,0x200004,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x200004,0x0,0x0,0x0,0x20,0x200000,0x100,0x4,0x2,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x200000,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x200004,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x200000,0x200000,0x100,0x100,0x100,0x0,0x3f07e000,0x0,0x3f07e000,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x40000000,0x200000,0x40000000,0x0,0x40000000,0x0,0x0,0x900,0x900,0x100,0x100,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200004,0x0,0x0,0x0,0x0,0xc0,0x0,0x200004,0x0,0x200,0x0,0x100,0x200000,0x0,0x0,0x200,0x100,0x200000,0x0,0xc0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x4,0x0,0x200004,0x0,0x0,0x4,0x0,0x200004,0x0,0x4,0x0,0x0,0x100,0x100,0x200004,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x100,0xa000c4,0x0,0x0,}; unsigned int jj_la1_5[] = { -0x1420,0x0,0x180,0x0,0x0,0x0,0x0,0x2,0x3c0,0x0,0x0,0x1c0,0x0,0x200001c0,0x0,0x0,0x0,0x180,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x200001c0,0x0,0x180,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x20000000,0x20000000,0x2,0x0,0x0,0x0,0x3c0,0x1c0,0x1c0,0x3c0,0x380,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x0,0x0,0x1e0,0x0,0x180,0x0,0x3c0,0x0,0x180,0x0,0x180,0x0,0x0,0x180,0x0,0x1017e0,0x0,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x180,0x0,0x180,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x180,0x180,0x0,0x180,0x1420,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x180,0x1c0,0x0,0x1c0,0x1c0,0x0,0x0,0x180,0x0,0x180,0x1017e0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x180,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x1c0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x1c0,0x240,0x1c0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x180,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x200001c0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1c0,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x180,}; +0x1,0xa100,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0x10,0x1e00,0x0,0x0,0xe00,0x0,0xe00,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0xc00,0x0,0xc00,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00,0xe00,0x0,0x0,0x0,0xc00,0xc00,0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x80bf00,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xc00,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x1e00,0xe00,0xe00,0x1e00,0x1c00,0x0,0xc00,0xc00,0x0,0x0,0x80bf00,0xd,0x0,0x0,0x0,0x80bf00,0x0,0x0,0x0,0x0,0xf00,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0xc00,0x0,0x1e00,0x0,0xc00,0x0,0xc00,0x0,0x0,0xc00,0xe00,0x0,0x0,0xe00,0x0,0x80bf00,0x0,0x0,0xe00,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0xc00,0x0,0xc00,0x0,0x0,0xe00,0xc00,0xc00,0x0,0x2,0xe00,0x0,0x0,0x10,0x0,0xc00,0xc00,0x0,0xc00,0xa100,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0xc00,0xe00,0xc00,0x0,0x0,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0xc00,0xe00,0xe00,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0xc00,0x0,0xc00,0xc00,0xc00,0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0xc00,0xc00,0x0,0x0,0xc00,0xc00,0x0,0x0,0xc00,0xc00,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x10,0x0,0x0,0x1200,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0x80bf00,0x0,0xc00,}; + unsigned int jj_la1_6[] = { +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; /** Constructor with user supplied TokenManager. */ +QCString VhdlParser::absolute_pathname() {QCString s,s1; + if (jj_2_1(2147483647)) { + if (!hasError) { + jj_consume_token(DOT_T); + } + if (!hasError) { + s = pathname_element_list(); + } + if (!hasError) { + s1 = identifier(); + } + if (!hasError) { +return "."+s+s1; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOT_T:{ + if (!hasError) { + jj_consume_token(DOT_T); + } + if (!hasError) { + s = identifier(); + } + if (!hasError) { +return "."+s; + } + break; + } + default: + jj_la1[0] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + QCString VhdlParser::abstract_literal() {Token *tok; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case DECIMAL_LITERAL:{ @@ -51,7 +91,7 @@ return QCString(tok->image); break; } default: - jj_la1[0] = jj_gen; + jj_la1[1] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -71,7 +111,19 @@ assert(false); } -QCString VhdlParser::actual_designator() {QCString str;Token *t=0; +QCString VhdlParser::access_incomplete_type_definition() {Token *tok=0;QCString str,str1; + if (!hasError) { + tok = jj_consume_token(ACCESS_T); + } + if (!hasError) { + str1 = incomplete_subtype_indication(); + } +str=tok->image; return str+" "+str1; +assert(false); +} + + +QCString VhdlParser::actual_designator() {QCString str,s;Token *t=0; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case OPEN_T:{ if (!hasError) { @@ -83,12 +135,35 @@ return QCString(t->image); break; } default: - jj_la1[1] = jj_gen; - if (jj_2_1(2147483647)) { + jj_la1[3] = jj_gen; + if (jj_2_2(2147483647)) { + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T:{ + if (!hasError) { + t = jj_consume_token(INERTIAL_T); + } + if (!hasError) { +s=QCString(t->image)+" "; + } + break; + } + default: + jj_la1[2] = jj_gen; + ; + } + } if (!hasError) { str = expression(); } if (!hasError) { +return s+str; + } + } else if (jj_2_3(5)) { + if (!hasError) { + str = subtype_indication(); + } + if (!hasError) { return str; } } else { @@ -104,7 +179,7 @@ return str; break; } default: - jj_la1[2] = jj_gen; + jj_la1[4] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -124,7 +199,7 @@ assert(false); QCString VhdlParser::actual_part() {QCString s,s1; - if (jj_2_2(2147483647)) { + if (jj_2_4(2147483647)) { if (!hasError) { s = actual_designator(); } @@ -143,8 +218,8 @@ return "<>"; break; } default: - jj_la1[3] = jj_gen; - if (jj_2_3(2147483647)) { + jj_la1[5] = jj_gen; + if (jj_2_5(2147483647)) { if (!hasError) { s = name(); } @@ -200,7 +275,7 @@ return "&"; break; } default: - jj_la1[4] = jj_gen; + jj_la1[6] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -223,7 +298,7 @@ QCString VhdlParser::aggregate() {QCString s,s1,s2; break; } default: - jj_la1[5] = jj_gen; + jj_la1[7] = jj_gen; goto end_label_1; } if (!hasError) { @@ -271,7 +346,7 @@ s+=s1; break; } default: - jj_la1[6] = jj_gen; + jj_la1[8] = jj_gen; ; } } @@ -299,14 +374,14 @@ s+=s1; break; } default: - jj_la1[7] = jj_gen; + jj_la1[9] = jj_gen; ; } } if (!hasError) { jj_consume_token(SEMI_T); } -outlineParser()->addVhdlType(s2.data(),outlineParser()->getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data(),Public); +outlineParser()->addVhdlType(s2.data(),outlineParser()->getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data(),Protection::Public); return s2+" "+s+";"; assert(false); @@ -344,7 +419,7 @@ return s; break; } default: - jj_la1[8] = jj_gen; + jj_la1[10] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -353,7 +428,7 @@ assert(false); void VhdlParser::allocator() { - if (jj_2_4(3)) { + if (jj_2_6(3)) { if (!hasError) { jj_consume_token(NEW_T); } @@ -372,7 +447,7 @@ void VhdlParser::allocator() { break; } default: - jj_la1[9] = jj_gen; + jj_la1[11] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -401,7 +476,7 @@ QCString t=s1+"::"+s; m_sharedState->genLabels.resize(0); outlineParser()->pushLabel(m_sharedState->genLabels,s1); m_sharedState->lastCompound=m_sharedState->current; - outlineParser()->addVhdlType(t.data(),outlineParser()->getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private); + outlineParser()->addVhdlType(t.data(),outlineParser()->getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Protection::Private); } if (!hasError) { try { @@ -430,7 +505,7 @@ outlineParser()->error_skipto(BEGIN_T); break; } default: - jj_la1[10] = jj_gen; + jj_la1[12] = jj_gen; ; } } @@ -446,7 +521,7 @@ outlineParser()->error_skipto(BEGIN_T); break; } default: - jj_la1[11] = jj_gen; + jj_la1[13] = jj_gen; ; } } @@ -457,6 +532,19 @@ m_sharedState->lastEntity=0;m_sharedState->lastCompound=0; m_sharedState->genLab } +void VhdlParser::anonymous_type_indication() { + if (!hasError) { + jj_consume_token(TYPE_T); + } + if (!hasError) { + jj_consume_token(IS_T); + } + if (!hasError) { + incomplete_type_definition(); + } +} + + void VhdlParser::architecture_declarative_part() { if (!hasError) { while (!hasError) { @@ -471,6 +559,7 @@ void VhdlParser::architecture_declarative_part() { case FUNCTION_T: case GROUP_T: case IMPURE_T: + case PACKAGE_T: case PROCEDURE_T: case PURE_T: case SIGNAL_T: @@ -478,12 +567,13 @@ void VhdlParser::architecture_declarative_part() { case SUBTYPE_T: case TYPE_T: case USE_T: - case VARIABLE_T:{ + case VARIABLE_T: + case VIEW_T:{ ; break; } default: - jj_la1[12] = jj_gen; + jj_la1[14] = jj_gen; goto end_label_2; } if (!hasError) { @@ -500,7 +590,6 @@ void VhdlParser::architecture_statement_part() { while (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ASSERT_T: - case CASE_T: case POSTPONED_T: case PROCESS_T: case WITH_T: @@ -514,7 +603,7 @@ void VhdlParser::architecture_statement_part() { break; } default: - jj_la1[13] = jj_gen; + jj_la1[15] = jj_gen; goto end_label_3; } if (!hasError) { @@ -526,8 +615,180 @@ void VhdlParser::architecture_statement_part() { } +void VhdlParser::array_constraint() { + if (jj_2_7(2)) { + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + jj_consume_token(OPEN_T); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + array_element_constraint(); + } + break; + } + default: + jj_la1[16] = jj_gen; + ; + } + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + index_constraint(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + array_element_constraint(); + } + break; + } + default: + jj_la1[17] = jj_gen; + ; + } + } + break; + } + default: + jj_la1[18] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +} + + +void VhdlParser::array_element_constraint() { + if (!hasError) { + element_constraint(); + } +} + + +void VhdlParser::array_element_resolution() { + if (!hasError) { + resolution_indication(); + } +} + + +void VhdlParser::array_incomplete_type_definition() { + if (!hasError) { + jj_consume_token(ARRAY_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + array_index_incomplete_type_list(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { + jj_consume_token(OF_T); + } + if (!hasError) { + incomplete_subtype_indication(); + } +} + + +void VhdlParser::array_index_incomplete_type() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + index_constraint(); + } + break; + } + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + index_subtype_definition(); + } + break; + } + case TYPE_T:{ + if (!hasError) { + anonymous_type_indication(); + } + break; + } + default: + jj_la1[19] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +} + + +void VhdlParser::array_index_incomplete_type_list() { + if (!hasError) { + array_index_incomplete_type(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[20] = jj_gen; + goto end_label_4; + } + if (!hasError) { + jj_consume_token(COMMA_T); + } + if (!hasError) { + array_index_incomplete_type(); + } + } + end_label_4: ; + } +} + + +QCString VhdlParser::array_mode_view_indication() {QCString s; + if (!hasError) { + jj_consume_token(VIEW_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { + jj_consume_token(OF_T); + } + if (!hasError) { + subtype_indication(); + } +return ""; +assert(false); +} + + QCString VhdlParser::array_type_definition() {QCString s; - if (jj_2_5(2147483647)) { + if (jj_2_8(2147483647)) { if (!hasError) { s = constraint_array_definition(); } @@ -546,7 +807,7 @@ return s; break; } default: - jj_la1[14] = jj_gen; + jj_la1[21] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -574,7 +835,7 @@ QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[15] = jj_gen; + jj_la1[22] = jj_gen; ; } } @@ -590,7 +851,7 @@ QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[16] = jj_gen; + jj_la1[23] = jj_gen; ; } } @@ -616,7 +877,7 @@ QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0; break; } default: - jj_la1[17] = jj_gen; + jj_la1[24] = jj_gen; ; } } @@ -634,7 +895,7 @@ assert(false); QCString VhdlParser::association_element() {QCString s,s1; if (!hasError) { - if (jj_2_6(2147483647)) { + if (jj_2_9(2147483647)) { if (!hasError) { s = formal_part(); } @@ -665,8 +926,8 @@ QCString VhdlParser::association_list() {QCString s,s1; break; } default: - jj_la1[18] = jj_gen; - goto end_label_4; + jj_la1[25] = jj_gen; + goto end_label_5; } if (!hasError) { jj_consume_token(COMMA_T); @@ -678,7 +939,7 @@ QCString VhdlParser::association_list() {QCString s,s1; s+=","+s1; } } - end_label_4: ; + end_label_5: ; } return s; assert(false); @@ -701,7 +962,7 @@ QCString VhdlParser::attribute_declaration() {QCString s,s1; if (!hasError) { jj_consume_token(SEMI_T); } -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public); +outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Protection::Public); return " attribute "+s+":"+s1+";"; assert(false); } @@ -729,7 +990,7 @@ return QCString(tok->image); break; } default: - jj_la1[19] = jj_gen; + jj_la1[26] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -762,7 +1023,7 @@ QCString VhdlParser::attribute_name() {QCString s,s1; break; } default: - jj_la1[20] = jj_gen; + jj_la1[27] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -788,7 +1049,7 @@ s+=s1; break; } default: - jj_la1[21] = jj_gen; + jj_la1[28] = jj_gen; ; } } @@ -814,13 +1075,13 @@ QCString VhdlParser::attribute_specification() {QCString s,s1,s2; jj_consume_token(IS_T); } if (!hasError) { - s2 = expression(); + s2 = conditional_expression(); } if (!hasError) { jj_consume_token(SEMI_T); } QCString t= s1+" is "+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Protection::Public); return " attribute "+s+" of "+s1+ " is "+s2+";"; assert(false); } @@ -893,7 +1154,7 @@ void VhdlParser::binding_indication() { break; } default: - jj_la1[22] = jj_gen; + jj_la1[29] = jj_gen; ; } } @@ -906,7 +1167,7 @@ void VhdlParser::binding_indication() { break; } default: - jj_la1[23] = jj_gen; + jj_la1[30] = jj_gen; ; } } @@ -919,7 +1180,7 @@ void VhdlParser::binding_indication() { break; } default: - jj_la1[24] = jj_gen; + jj_la1[31] = jj_gen; ; } } @@ -959,14 +1220,14 @@ void VhdlParser::block_configuration() { break; } default: - jj_la1[25] = jj_gen; - goto end_label_5; + jj_la1[32] = jj_gen; + goto end_label_6; } if (!hasError) { use_clause(); } } - end_label_5: ; + end_label_6: ; } if (!hasError) { while (!hasError) { @@ -976,14 +1237,14 @@ void VhdlParser::block_configuration() { break; } default: - jj_la1[26] = jj_gen; - goto end_label_6; + jj_la1[33] = jj_gen; + goto end_label_7; } if (!hasError) { configuration_item(); } } - end_label_6: ; + end_label_7: ; } if (!hasError) { jj_consume_token(END_T); @@ -1020,6 +1281,12 @@ void VhdlParser::block_declarative_item() { } break; } + case VIEW_T:{ + if (!hasError) { + mode_view_declaration(); + } + break; + } case CONSTANT_T:{ if (!hasError) { constant_declaration(); @@ -1051,62 +1318,82 @@ void VhdlParser::block_declarative_item() { } break; } - case COMPONENT_T:{ - if (!hasError) { - component_declaration(); - } - break; - } default: - jj_la1[27] = jj_gen; - if (jj_2_7(2147483647)) { + jj_la1[34] = jj_gen; + if (jj_2_10(2)) { if (!hasError) { - attribute_declaration(); + package_body(); + } + } else if (jj_2_11(2147483647)) { + if (!hasError) { + package_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case FOR_T:{ - if (!hasError) { - configuration_specification(); - } - break; - } - case DISCONNECT_T:{ + case PACKAGE_T:{ if (!hasError) { - disconnection_specification(); + package_instantiation_declaration(); } break; } - case USE_T:{ + case COMPONENT_T:{ if (!hasError) { - use_clause(); + component_declaration(); } break; } default: - jj_la1[28] = jj_gen; - if (jj_2_8(3)) { + jj_la1[35] = jj_gen; + if (jj_2_12(2147483647)) { if (!hasError) { - group_template_declaration(); + attribute_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ + case ATTRIBUTE_T:{ if (!hasError) { - group_declaration(); + attribute_specification(); + } + break; + } + case FOR_T:{ + if (!hasError) { + configuration_specification(); + } + break; + } + case DISCONNECT_T:{ + if (!hasError) { + disconnection_specification(); + } + break; + } + case USE_T:{ + if (!hasError) { + use_clause(); } break; } default: - jj_la1[29] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + jj_la1[36] = jj_gen; + if (jj_2_13(3)) { + if (!hasError) { + group_template_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{ + if (!hasError) { + group_declaration(); + } + break; + } + default: + jj_la1[37] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } } } } @@ -1129,6 +1416,7 @@ void VhdlParser::block_declarative_part() { case FUNCTION_T: case GROUP_T: case IMPURE_T: + case PACKAGE_T: case PROCEDURE_T: case PURE_T: case SIGNAL_T: @@ -1136,26 +1424,27 @@ void VhdlParser::block_declarative_part() { case SUBTYPE_T: case TYPE_T: case USE_T: - case VARIABLE_T:{ + case VARIABLE_T: + case VIEW_T:{ ; break; } default: - jj_la1[30] = jj_gen; - goto end_label_7; + jj_la1[38] = jj_gen; + goto end_label_8; } if (!hasError) { block_declarative_item(); } } - end_label_7: ; + end_label_8: ; } } void VhdlParser::block_header() { if (!hasError) { - if (jj_2_9(2147483647)) { + if (jj_2_14(2147483647)) { if (!hasError) { generic_clause(); } @@ -1171,7 +1460,7 @@ void VhdlParser::block_header() { break; } default: - jj_la1[31] = jj_gen; + jj_la1[39] = jj_gen; ; } } @@ -1197,14 +1486,14 @@ void VhdlParser::block_header() { break; } default: - jj_la1[32] = jj_gen; + jj_la1[40] = jj_gen; ; } } break; } default: - jj_la1[33] = jj_gen; + jj_la1[41] = jj_gen; ; } } @@ -1230,7 +1519,7 @@ void VhdlParser::block_specification() { break; } default: - jj_la1[34] = jj_gen; + jj_la1[42] = jj_gen; ; } } @@ -1265,7 +1554,7 @@ outlineParser()->pushLabel(m_sharedState->genLabels,s); break; } default: - jj_la1[35] = jj_gen; + jj_la1[43] = jj_gen; ; } } @@ -1278,7 +1567,7 @@ outlineParser()->pushLabel(m_sharedState->genLabels,s); break; } default: - jj_la1[36] = jj_gen; + jj_la1[44] = jj_gen; ; } } @@ -1310,7 +1599,7 @@ outlineParser()->pushLabel(m_sharedState->genLabels,s); break; } default: - jj_la1[37] = jj_gen; + jj_la1[45] = jj_gen; ; } } @@ -1326,7 +1615,6 @@ void VhdlParser::block_statement_part() { while (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ASSERT_T: - case CASE_T: case POSTPONED_T: case PROCESS_T: case WITH_T: @@ -1340,53 +1628,48 @@ void VhdlParser::block_statement_part() { break; } default: - jj_la1[38] = jj_gen; - goto end_label_8; + jj_la1[46] = jj_gen; + goto end_label_9; } if (!hasError) { concurrent_statement(); } } - end_label_8: ; + end_label_9: ; } } void VhdlParser::case_statement() {QCString s; if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ + if (jj_2_15(2)) { if (!hasError) { identifier(); } if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[39] = jj_gen; - ; - } + jj_consume_token(COLON_T); } + } else { + ; + } + } + if (!hasError) { + jj_consume_token(CASE_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{ if (!hasError) { - jj_consume_token(COLON_T); + jj_consume_token(Q_T); } break; } default: - jj_la1[40] = jj_gen; + jj_la1[47] = jj_gen; ; } } if (!hasError) { - jj_consume_token(CASE_T); - } - if (!hasError) { s = expression(); } if (!hasError) { @@ -1407,14 +1690,14 @@ QCString ca="case "+s; break; } default: - jj_la1[41] = jj_gen; - goto end_label_9; + jj_la1[48] = jj_gen; + goto end_label_10; } if (!hasError) { case_statement_alternative(); } } - end_label_9: ; + end_label_10: ; } if (!hasError) { jj_consume_token(END_T); @@ -1424,6 +1707,19 @@ QCString ca="case "+s; } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{ + if (!hasError) { + jj_consume_token(Q_T); + } + break; + } + default: + jj_la1[49] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case BASIC_IDENTIFIER: case EXTENDED_CHARACTER:{ if (!hasError) { @@ -1432,7 +1728,7 @@ QCString ca="case "+s; break; } default: - jj_la1[42] = jj_gen; + jj_la1[50] = jj_gen; ; } } @@ -1444,6 +1740,102 @@ FlowChart::moveToPrevLevel(); } +void VhdlParser::case_scheme() { + if (!hasError) { + jj_consume_token(CASE_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(GENERATE_T); + } + if (!hasError) { + when_stats(); + } + if (!hasError) { + if (jj_2_16(3)) { + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + identifier(); + } + break; + } + default: + jj_la1[51] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } + } else { + ; + } + } + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + jj_consume_token(GENERATE_T); + } + if (!hasError) { + generate_statement_body(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + +void VhdlParser::when_stats() { + if (!hasError) { + while (!hasError) { + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + if (jj_2_17(2)) { + if (!hasError) { + label(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + } else { + ; + } + } + if (!hasError) { + choices(); + } + if (!hasError) { + jj_consume_token(ARROW_T); + } + if (!hasError) { + generate_statement_body(); + } + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + ; + break; + } + default: + jj_la1[52] = jj_gen; + goto end_label_11; + } + } + end_label_11: ; + } +} + + void VhdlParser::case_statement_alternative() {QCString s; if (!hasError) { jj_consume_token(WHEN_T); @@ -1460,7 +1852,7 @@ QCString t("when "); FlowChart::addFlowChart(FlowChart::WHEN_NO,s,t); } if (!hasError) { - sequence_of_statement(); + sequential_statement_body(); } FlowChart::moveToPrevLevel(); } @@ -1476,21 +1868,21 @@ assert(false); QCString VhdlParser::choice() {QCString s; - if (jj_2_10(2147483647)) { + if (jj_2_18(2147483647)) { if (!hasError) { s = range(); } if (!hasError) { return s; } - } else if (jj_2_11(2147483647)) { + } else if (jj_2_19(2147483647)) { if (!hasError) { s = simple_expression(); } if (!hasError) { return s; } - } else if (jj_2_12(2147483647)) { + } else if (jj_2_20(2147483647)) { if (!hasError) { s = discrete_range(); } @@ -1519,7 +1911,7 @@ return " others "; break; } default: - jj_la1[43] = jj_gen; + jj_la1[53] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -1540,8 +1932,8 @@ QCString VhdlParser::choices() {QCString s,s1; break; } default: - jj_la1[44] = jj_gen; - goto end_label_10; + jj_la1[54] = jj_gen; + goto end_label_12; } if (!hasError) { jj_consume_token(BAR_T); @@ -1553,7 +1945,7 @@ QCString VhdlParser::choices() {QCString s,s1; s+="|";s+=s1; } } - end_label_10: ; + end_label_12: ; } return s; assert(false); @@ -1582,7 +1974,7 @@ void VhdlParser::component_configuration() { break; } default: - jj_la1[45] = jj_gen; + jj_la1[55] = jj_gen; ; } } @@ -1595,7 +1987,7 @@ void VhdlParser::component_configuration() { break; } default: - jj_la1[46] = jj_gen; + jj_la1[56] = jj_gen; ; } } @@ -1627,7 +2019,7 @@ void VhdlParser::component_declaration() {QCString s; break; } default: - jj_la1[47] = jj_gen; + jj_la1[57] = jj_gen; ; } } @@ -1643,7 +2035,7 @@ m_sharedState->currP=VhdlDocGen::COMPONENT; break; } default: - jj_la1[48] = jj_gen; + jj_la1[58] = jj_gen; ; } } @@ -1656,19 +2048,29 @@ m_sharedState->currP=VhdlDocGen::COMPONENT; break; } default: - jj_la1[49] = jj_gen; + jj_la1[59] = jj_gen; ; } } if (!hasError) { -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Public); +outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Protection::Public); m_sharedState->currP=0; } if (!hasError) { jj_consume_token(END_T); } if (!hasError) { - jj_consume_token(COMPONENT_T); + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMPONENT_T:{ + if (!hasError) { + jj_consume_token(COMPONENT_T); + } + break; + } + default: + jj_la1[60] = jj_gen; + ; + } } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -1680,7 +2082,7 @@ outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(COMPONENT_T),Entr break; } default: - jj_la1[50] = jj_gen; + jj_la1[61] = jj_gen; ; } } @@ -1710,7 +2112,7 @@ QCString s3; outlineParser()->addCompInst(s.lower().data(),s1.lower().data(),s3.data(),outlineParser()->getLine()); } if (!hasError) { - if (jj_2_13(2147483647)) { + if (jj_2_21(2147483647)) { if (!hasError) { generic_map_aspect(); } @@ -1727,7 +2129,7 @@ QCString s3; break; } default: - jj_la1[51] = jj_gen; + jj_la1[62] = jj_gen; ; } } @@ -1771,7 +2173,7 @@ return s+"#"; break; } default: - jj_la1[52] = jj_gen; + jj_la1[63] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -1781,7 +2183,7 @@ assert(false); void VhdlParser::concurrent_assertion_statement() { if (!hasError) { - if (jj_2_14(2)) { + if (jj_2_22(2)) { if (!hasError) { identifier(); } @@ -1801,7 +2203,7 @@ void VhdlParser::concurrent_assertion_statement() { break; } default: - jj_la1[53] = jj_gen; + jj_la1[64] = jj_gen; ; } } @@ -1816,7 +2218,7 @@ void VhdlParser::concurrent_assertion_statement() { void VhdlParser::concurrent_procedure_call_statement() { if (!hasError) { - if (jj_2_15(2)) { + if (jj_2_23(2)) { if (!hasError) { identifier(); } @@ -1836,7 +2238,7 @@ void VhdlParser::concurrent_procedure_call_statement() { break; } default: - jj_la1[54] = jj_gen; + jj_la1[65] = jj_gen; ; } } @@ -1851,7 +2253,7 @@ void VhdlParser::concurrent_procedure_call_statement() { void VhdlParser::concurrent_signal_assignment_statement() { if (!hasError) { - if (jj_2_16(2)) { + if (jj_2_24(2)) { if (!hasError) { identifier(); } @@ -1871,25 +2273,33 @@ void VhdlParser::concurrent_signal_assignment_statement() { break; } default: - jj_la1[55] = jj_gen; + jj_la1[66] = jj_gen; ; } } if (!hasError) { - if (jj_2_17(2147483647)) { + if (jj_2_25(2147483647)) { + if (!hasError) { + concurrent_conditional_signal_assignment(); + } + } else if (jj_2_26(2147483647)) { if (!hasError) { - conditional_signal_assignment(); + concurrent_selected_signal_assignment(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WITH_T:{ + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ if (!hasError) { - selected_signal_assignment(); + concurrent_simple_signal_assignment(); } break; } default: - jj_la1[56] = jj_gen; + jj_la1[67] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -1898,59 +2308,240 @@ void VhdlParser::concurrent_signal_assignment_statement() { } +void VhdlParser::concurrent_conditional_signal_assignment() { + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GUARDED_T:{ + if (!hasError) { + jj_consume_token(GUARDED_T); + } + break; + } + default: + jj_la1[68] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{ + if (!hasError) { + delay_mechanism(); + } + break; + } + default: + jj_la1[69] = jj_gen; + ; + } + } + if (!hasError) { + conditional_waveforms(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + +void VhdlParser::concurrent_simple_signal_assignment() { + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GUARDED_T:{ + if (!hasError) { + jj_consume_token(GUARDED_T); + } + break; + } + default: + jj_la1[70] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{ + if (!hasError) { + delay_mechanism(); + } + break; + } + default: + jj_la1[71] = jj_gen; + ; + } + } + if (!hasError) { + waveform(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + +void VhdlParser::concurrent_selected_signal_assignment() { + if (!hasError) { + jj_consume_token(WITH_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(SELECT_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{ + if (!hasError) { + jj_consume_token(Q_T); + } + break; + } + default: + jj_la1[72] = jj_gen; + ; + } + } + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GUARDED_T:{ + if (!hasError) { + jj_consume_token(GUARDED_T); + } + break; + } + default: + jj_la1[73] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{ + if (!hasError) { + delay_mechanism(); + } + break; + } + default: + jj_la1[74] = jj_gen; + ; + } + } + if (!hasError) { + selected_waveforms(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + +void VhdlParser::concurrent_signal_association_statement() { + if (!hasError) { + if (jj_2_27(2)) { + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + } else { + ; + } + } + if (!hasError) { + concurrent_simple_signal_association(); + } +} + + +void VhdlParser::concurrent_simple_signal_association() { + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(LGT_T); + } + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + void VhdlParser::concurrent_statement() { - if (jj_2_18(2147483647)) { + if (jj_2_28(2147483647)) { if (!hasError) { block_statement(); } - } else if (jj_2_19(2147483647)) { + } else if (jj_2_29(2147483647)) { if (!hasError) { process_statement(); } - } else if (jj_2_20(3)) { + } else if (jj_2_30(3)) { if (!hasError) { generate_statement(); } + } else if (jj_2_31(2147483647)) { + if (!hasError) { + concurrent_assertion_statement(); + } + } else if (jj_2_32(2147483647)) { + if (!hasError) { + concurrent_signal_assignment_statement(); + } + } else if (jj_2_33(2147483647)) { + if (!hasError) { + concurrent_signal_association_statement(); + } + } else if (jj_2_34(2147483647)) { + if (!hasError) { + component_instantiation_statement(); + } + } else if (jj_2_35(2147483647)) { + if (!hasError) { + concurrent_procedure_call_statement(); + } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CASE_T:{ + case VHDL2008TOOLDIR:{ if (!hasError) { - case_scheme(); + jj_consume_token(VHDL2008TOOLDIR); } break; } default: - jj_la1[57] = jj_gen; - if (jj_2_21(2147483647)) { - if (!hasError) { - concurrent_assertion_statement(); - } - } else if (jj_2_22(2147483647)) { - if (!hasError) { - concurrent_signal_assignment_statement(); - } - } else if (jj_2_23(2147483647)) { - if (!hasError) { - component_instantiation_statement(); - } - } else if (jj_2_24(2147483647)) { - if (!hasError) { - concurrent_procedure_call_statement(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VHDL2008TOOLDIR:{ - if (!hasError) { - jj_consume_token(VHDL2008TOOLDIR); - } - break; - } - default: - jj_la1[58] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } + jj_la1[75] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } } @@ -1965,6 +2556,15 @@ assert(false); } +QCString VhdlParser::condition_operator() {QCString s; + if (!hasError) { + jj_consume_token(QQ_T); + } +return "??"; +assert(false); +} + + QCString VhdlParser::condition_clause() {QCString s; if (!hasError) { jj_consume_token(UNTIL_T); @@ -1977,6 +2577,319 @@ assert(false); } +void VhdlParser::conditional_signal_assignment_wave() { + if (jj_2_36(2147483647)) { + if (!hasError) { + conditional_force_assignment(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + conditional_waveform_assignment(); + } + break; + } + default: + jj_la1[76] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +} + + +void VhdlParser::conditional_waveform_assignment() { + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{ + if (!hasError) { + delay_mechanism(); + } + break; + } + default: + jj_la1[77] = jj_gen; + ; + } + } + if (!hasError) { + waveform_element(); + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSE_T:{ + if (!hasError) { + else_wave_list(); + } + break; + } + default: + jj_la1[78] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + +void VhdlParser::else_wave_list() { + if (!hasError) { + jj_consume_token(ELSE_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + expression(); + } + break; + } + default: + jj_la1[79] = jj_gen; + ; + } + } +} + + +void VhdlParser::conditional_force_assignment() { + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + jj_consume_token(FORCE_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T: + case OUT_T:{ + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T:{ + if (!hasError) { + jj_consume_token(IN_T); + } + break; + } + case OUT_T:{ + if (!hasError) { + jj_consume_token(OUT_T); + } + break; + } + default: + jj_la1[80] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + break; + } + default: + jj_la1[81] = jj_gen; + ; + } + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ABS_T: + case AND_T: + case NAND_T: + case NEW_T: + case NOR_T: + case NOT_T: + case NULL_T: + case OR_T: + case XOR_T: + case XNOR_T: + case LPAREN_T: + case PLUS_T: + case MINUS_T: + case SLSL_T: + case QQ_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{ + if (!hasError) { + expression(); + } + if (!hasError) { + else_stat(); + } + break; + } + default: + jj_la1[82] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + +void VhdlParser::else_stat() { + if (!hasError) { + while (!hasError) { + if (!hasError) { + jj_consume_token(ELSE_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + expression(); + } + break; + } + default: + jj_la1[83] = jj_gen; + ; + } + } + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSE_T:{ + ; + break; + } + default: + jj_la1[84] = jj_gen; + goto end_label_13; + } + } + end_label_13: ; + } +} + + +QCString VhdlParser::conditional_expression() {QCString s; + if (!hasError) { + s = expression(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + ; + break; + } + default: + jj_la1[85] = jj_gen; + goto end_label_14; + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + condition(); + } + if (!hasError) { + jj_consume_token(ELSE_T); + } + if (!hasError) { + expression(); + } + } + end_label_14: ; + } +return s; +assert(false); +} + + +QCString VhdlParser::conditional_or_unaffected_expression() {QCString s; + if (!hasError) { + s = expression_or_unaffected(); + } + if (!hasError) { + while (!hasError) { + if (jj_2_37(2147483647)) { + ; + } else { + goto end_label_15; + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + condition(); + } + if (!hasError) { + jj_consume_token(ELSE_T); + } + if (!hasError) { + expression_or_unaffected(); + } + } + end_label_15: ; + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + condition(); + } + break; + } + default: + jj_la1[86] = jj_gen; + ; + } + } +return s; +assert(false); +} + + void VhdlParser::conditional_signal_assignment() { if (!hasError) { target(); @@ -2002,10 +2915,10 @@ void VhdlParser::conditional_waveforms() { } if (!hasError) { while (!hasError) { - if (jj_2_25(2147483647)) { + if (jj_2_38(2147483647)) { ; } else { - goto end_label_11; + goto end_label_16; } if (!hasError) { jj_consume_token(WHEN_T); @@ -2020,7 +2933,7 @@ void VhdlParser::conditional_waveforms() { waveform(); } } - end_label_11: ; + end_label_16: ; } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -2034,7 +2947,7 @@ void VhdlParser::conditional_waveforms() { break; } default: - jj_la1[59] = jj_gen; + jj_la1[87] = jj_gen; ; } } @@ -2059,7 +2972,7 @@ void VhdlParser::configuration_declaration() {QCString s,s1; } if (!hasError) { m_sharedState->confName=s+"::"+s1; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Protection::Public); } if (!hasError) { configuration_declarative_part(); @@ -2079,7 +2992,7 @@ m_sharedState->confName=s+"::"+s1; break; } default: - jj_la1[60] = jj_gen; + jj_la1[88] = jj_gen; ; } } @@ -2095,7 +3008,7 @@ m_sharedState->confName=s+"::"+s1; break; } default: - jj_la1[61] = jj_gen; + jj_la1[89] = jj_gen; ; } } @@ -2127,7 +3040,7 @@ void VhdlParser::configuration_declarative_item() { break; } default: - jj_la1[62] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2145,20 +3058,20 @@ void VhdlParser::configuration_declarative_part() { break; } default: - jj_la1[63] = jj_gen; - goto end_label_12; + jj_la1[91] = jj_gen; + goto end_label_17; } if (!hasError) { configuration_declarative_item(); } } - end_label_12: ; + end_label_17: ; } } void VhdlParser::configuration_item() { - if (jj_2_26(2147483647)) { + if (jj_2_39(2147483647)) { if (!hasError) { component_configuration(); } @@ -2171,7 +3084,7 @@ void VhdlParser::configuration_item() { break; } default: - jj_la1[64] = jj_gen; + jj_la1[92] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2215,12 +3128,12 @@ QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0; t = jj_consume_token(VARASSIGN_T); } if (!hasError) { - s2 = expression(); + s2 = conditional_expression(); } break; } default: - jj_la1[65] = jj_gen; + jj_la1[93] = jj_gen; ; } } @@ -2230,7 +3143,7 @@ QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0; if(t) s2.prepend(":="); QCString it=s1+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Protection::Public); it.prepend("constant "); return it; assert(false); @@ -2258,29 +3171,29 @@ assert(false); void VhdlParser::context_clause() { if (!hasError) { while (!hasError) { - if (jj_2_27(3)) { - ; - } else { - goto end_label_13; - } if (!hasError) { context_item(); } + if (jj_2_40(3)) { + ; + } else { + goto end_label_18; + } } - end_label_13: ; + end_label_18: ; } } QCString VhdlParser::constraint() {QCString s; - if (jj_2_28(2147483647)) { + if (jj_2_41(2147483647)) { if (!hasError) { s = range_constraint(); } if (!hasError) { return s; } - } else if (jj_2_29(2147483647)) { + } else if (jj_2_42(2147483647)) { if (!hasError) { s = index_constraint(); } @@ -2309,27 +3222,109 @@ void VhdlParser::context_item() { } break; } + case CONTEXT_T:{ + if (!hasError) { + context_ref(); + } + break; + } default: - jj_la1[66] = jj_gen; - if (jj_2_30(2147483647)) { - if (!hasError) { - context_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONTEXT_T:{ - if (!hasError) { - context_ref(); - } - break; - } - default: - jj_la1[67] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + jj_la1[94] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +} + + +QCString VhdlParser::context_ref() {QCString s, s1; + if (!hasError) { + jj_consume_token(CONTEXT_T); + } + if (!hasError) { + s = identifier(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOT_T:{ + ; + break; } + default: + jj_la1[95] = jj_gen; + goto end_label_19; + } + if (!hasError) { + jj_consume_token(DOT_T); + } + if (!hasError) { + s1 = identifier(); + } + if (!hasError) { +s+=".";s+=s1; } } + end_label_19: ; + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +return "context "+s ; +assert(false); +} + + +void VhdlParser::context_declaration() {QCString s,s1; + if (!hasError) { + jj_consume_token(CONTEXT_T); + } + if (!hasError) { + s = identifier(); + } + if (!hasError) { + jj_consume_token(IS_T); + } + if (!hasError) { +m_sharedState->parse_sec=CONTEXT_SEC; + } + if (!hasError) { + context_clause(); + } + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONTEXT_T:{ + if (!hasError) { + jj_consume_token(CONTEXT_T); + } + break; + } + default: + jj_la1[96] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + identifier(); + } + break; + } + default: + jj_la1[97] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +m_sharedState->parse_sec=0; + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Protection::Public); } @@ -2370,7 +3365,7 @@ s.prepend(" reject "); break; } default: - jj_la1[68] = jj_gen; + jj_la1[98] = jj_gen; ; } } @@ -2383,7 +3378,7 @@ return s+" inertial "; break; } default: - jj_la1[69] = jj_gen; + jj_la1[99] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2417,11 +3412,11 @@ void VhdlParser::design_file() { break; } default: - jj_la1[70] = jj_gen; - goto end_label_14; + jj_la1[100] = jj_gen; + goto end_label_20; } } - end_label_14: ; + end_label_20: ; } if (!hasError) { @@ -2435,7 +3430,7 @@ void VhdlParser::design_file() { break; } default: - jj_la1[71] = jj_gen; + jj_la1[101] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2444,7 +3439,13 @@ void VhdlParser::design_file() { void VhdlParser::design_unit() { if (!hasError) { - context_clause(); + if (jj_2_43(3)) { + if (!hasError) { + context_clause(); + } + } else { + ; + } } if (!hasError) { library_unit(); @@ -2474,7 +3475,7 @@ return s; break; } default: - jj_la1[72] = jj_gen; + jj_la1[102] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2503,7 +3504,7 @@ return QCString(tok->image); break; } default: - jj_la1[73] = jj_gen; + jj_la1[103] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2511,6 +3512,21 @@ assert(false); } +QCString VhdlParser::discrete_incomplete_type_definition() {Token *tok=0; + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + jj_consume_token(BOX_T); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } +return "(<>)"; +assert(false); +} + + void VhdlParser::disconnection_specification() { if (!hasError) { jj_consume_token(DISCONNECT_T); @@ -2544,14 +3560,14 @@ void VhdlParser::guarded_signal_specificatio() { QCString VhdlParser::discrete_range() {QCString s; - if (jj_2_31(2147483647)) { + if (jj_2_44(2147483647)) { if (!hasError) { s = range(); } if (!hasError) { return s; } - } else if (jj_2_32(2147483647)) { + } else if (jj_2_45(2147483647)) { if (!hasError) { s = subtype_indication(); } @@ -2566,9 +3582,27 @@ assert(false); } +QCString VhdlParser::element_array_mode_view_indication() {QCString s; + if (!hasError) { + jj_consume_token(VIEW_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + s = identifier(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } +return "view("+s+")"; +assert(false); +} + + QCString VhdlParser::element_association() {QCString s,s1; if (!hasError) { - if (jj_2_33(2147483647)) { + if (jj_2_46(2147483647)) { if (!hasError) { s = choices(); } @@ -2589,6 +3623,35 @@ assert(false); } +QCString VhdlParser::element_constraint() {QCString s,s1; + if (jj_2_47(5)) { + if (!hasError) { + record_constraint(); + } + if (!hasError) { +return " "; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + array_constraint(); + } + if (!hasError) { +return " "; + } + break; + } + default: + jj_la1[104] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + QCString VhdlParser::element_declaration() {QCString rec_name,s1,s2; if (!hasError) { rec_name = identifier_list(); @@ -2612,7 +3675,7 @@ auto ql = split(rec_name.str(),","); Entry::VARIABLE_SEC, VhdlDocGen::RECORD,0, s1.data(), - Public); + Protection::Public); } s2=rec_name+":"+s1; return s2; @@ -2620,6 +3683,104 @@ assert(false); } +QCString VhdlParser::element_resolution() {QCString s,s1; + if (jj_2_48(2147483647)) { + if (!hasError) { + array_element_resolution(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + record_resolution(); + } + break; + } + default: + jj_la1[105] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + +QCString VhdlParser::element_mode_indication() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUFFER_T: + case IN_T: + case INOUT_T: + case LINKAGE_T: + case OUT_T:{ + if (!hasError) { + s = mode(); + } + if (!hasError) { +return s; + } + break; + } + case VIEW_T:{ + if (!hasError) { + s = element_mode_view_indication(); + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[106] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::element_mode_view_indication() {QCString s; + if (jj_2_49(2)) { + if (!hasError) { + s = element_record_mode_view_indication(); + } + if (!hasError) { +return s; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VIEW_T:{ + if (!hasError) { + s = element_array_mode_view_indication(); + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[107] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + +QCString VhdlParser::element_record_mode_view_indication() {QCString s; + if (!hasError) { + jj_consume_token(VIEW_T); + } + if (!hasError) { + s = identifier(); + } +return "view "+s; +assert(false); +} + + QCString VhdlParser::entity_aspect() {Token *tok=0;QCString s,s1; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ENTITY_T:{ @@ -2647,7 +3808,7 @@ s+="("+s1+")"; break; } default: - jj_la1[74] = jj_gen; + jj_la1[108] = jj_gen; ; } } @@ -2678,7 +3839,7 @@ return QCString(tok->image); break; } default: - jj_la1[75] = jj_gen; + jj_la1[109] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2842,7 +4003,7 @@ return "file"; break; } default: - jj_la1[76] = jj_gen; + jj_la1[110] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -2866,7 +4027,7 @@ s+="<>"; break; } default: - jj_la1[77] = jj_gen; + jj_la1[111] = jj_gen; ; } } @@ -2892,8 +4053,8 @@ s+=s1; break; } default: - jj_la1[78] = jj_gen; - goto end_label_15; + jj_la1[112] = jj_gen; + goto end_label_21; } if (!hasError) { jj_consume_token(COMMA_T); @@ -2905,7 +4066,7 @@ s+=s1; s2+=",";s2+=s; } } - end_label_15: ; + end_label_21: ; } return s1+s2; assert(false); @@ -2925,7 +4086,7 @@ void VhdlParser::entity_declaration() {QCString s; if (!hasError) { m_sharedState->lastEntity=m_sharedState->current; m_sharedState->lastCompound=0; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Protection::Public); } if (!hasError) { entity_header(); @@ -2945,7 +4106,7 @@ m_sharedState->lastEntity=m_sharedState->current; break; } default: - jj_la1[79] = jj_gen; + jj_la1[113] = jj_gen; ; } } @@ -2961,7 +4122,7 @@ m_sharedState->lastEntity=m_sharedState->current; break; } default: - jj_la1[80] = jj_gen; + jj_la1[114] = jj_gen; ; } } @@ -2977,7 +4138,7 @@ m_sharedState->lastEntity=m_sharedState->current; break; } default: - jj_la1[81] = jj_gen; + jj_la1[115] = jj_gen; ; } } @@ -3023,89 +4184,113 @@ void VhdlParser::entity_declarative_item() { } break; } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } default: - jj_la1[82] = jj_gen; - if (jj_2_34(2147483647)) { + jj_la1[116] = jj_gen; + if (jj_2_50(5)) { + if (!hasError) { + package_instantiation_declaration(); + } + } else if (jj_2_51(3)) { if (!hasError) { - attribute_declaration(); + package_body(); + } + } else if (jj_2_52(3)) { + if (!hasError) { + package_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ + case SHARED_T: + case VARIABLE_T:{ if (!hasError) { - attribute_specification(); + variable_declaration(); } break; } - case DISCONNECT_T:{ + case FILE_T:{ if (!hasError) { - disconnection_specification(); + file_declaration(); } break; } - case USE_T:{ + case ALIAS_T:{ if (!hasError) { - use_clause(); + alias_declaration(); + } + break; + } + case VIEW_T:{ + if (!hasError) { + mode_view_declaration(); } break; } default: - jj_la1[83] = jj_gen; - if (jj_2_35(3)) { + jj_la1[117] = jj_gen; + if (jj_2_53(2147483647)) { if (!hasError) { - group_template_declaration(); + attribute_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ + case ATTRIBUTE_T:{ if (!hasError) { - group_declaration(); + attribute_specification(); + } + break; + } + case DISCONNECT_T:{ + if (!hasError) { + disconnection_specification(); + } + break; + } + case USE_T:{ + if (!hasError) { + use_clause(); } break; } default: - jj_la1[84] = jj_gen; - if (jj_2_36(5)) { + jj_la1[118] = jj_gen; + if (jj_2_54(3)) { if (!hasError) { - package_instantiation_declaration(); + group_template_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ - if (!hasError) { - package_declaration(); - } - break; - } - case VHDL2008TOOLDIR:{ + case GROUP_T:{ if (!hasError) { - jj_consume_token(VHDL2008TOOLDIR); + group_declaration(); } break; } default: - jj_la1[85] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + jj_la1[119] = jj_gen; + if (jj_2_55(5)) { + if (!hasError) { + package_instantiation_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{ + if (!hasError) { + package_declaration(); + } + break; + } + case VHDL2008TOOLDIR:{ + if (!hasError) { + jj_consume_token(VHDL2008TOOLDIR); + } + break; + } + default: + jj_la1[120] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } } } } @@ -3137,19 +4322,20 @@ void VhdlParser::entity_declarative_part() { case TYPE_T: case USE_T: case VARIABLE_T: + case VIEW_T: case VHDL2008TOOLDIR:{ ; break; } default: - jj_la1[86] = jj_gen; - goto end_label_16; + jj_la1[121] = jj_gen; + goto end_label_22; } if (!hasError) { entity_declarative_item(); } } - end_label_16: ; + end_label_22: ; } } @@ -3167,7 +4353,7 @@ QCString VhdlParser::entity_designator() {QCString s,s1; break; } default: - jj_la1[87] = jj_gen; + jj_la1[122] = jj_gen; ; } } @@ -3189,7 +4375,7 @@ m_sharedState->currP=VhdlDocGen::GENERIC;m_sharedState->parse_sec=GEN_SEC; break; } default: - jj_la1[88] = jj_gen; + jj_la1[123] = jj_gen; ; } } @@ -3205,7 +4391,7 @@ m_sharedState->currP=VhdlDocGen::PORT; break; } default: - jj_la1[89] = jj_gen; + jj_la1[124] = jj_gen; ; } } @@ -3232,8 +4418,8 @@ QCString VhdlParser::entity_name_list() {QCString s,s1,s2; break; } default: - jj_la1[90] = jj_gen; - goto end_label_17; + jj_la1[125] = jj_gen; + goto end_label_23; } if (!hasError) { jj_consume_token(COMMA_T); @@ -3245,7 +4431,7 @@ QCString VhdlParser::entity_name_list() {QCString s,s1,s2; s2+=s; } } - end_label_17: ; + end_label_23: ; } if (!hasError) { return s2; @@ -3271,7 +4457,7 @@ return "all"; break; } default: - jj_la1[91] = jj_gen; + jj_la1[126] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3295,11 +4481,11 @@ assert(false); void VhdlParser::entity_statement() { - if (jj_2_37(2147483647)) { + if (jj_2_56(2147483647)) { if (!hasError) { concurrent_assertion_statement(); } - } else if (jj_2_38(2147483647)) { + } else if (jj_2_57(2147483647)) { if (!hasError) { process_statement(); } @@ -3316,7 +4502,7 @@ void VhdlParser::entity_statement() { break; } default: - jj_la1[92] = jj_gen; + jj_la1[127] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3339,14 +4525,14 @@ void VhdlParser::entity_statement_part() { break; } default: - jj_la1[93] = jj_gen; - goto end_label_18; + jj_la1[128] = jj_gen; + goto end_label_24; } if (!hasError) { entity_statement(); } } - end_label_18: ; + end_label_24: ; } } @@ -3375,7 +4561,7 @@ return s; break; } default: - jj_la1[94] = jj_gen; + jj_la1[129] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3405,7 +4591,7 @@ return s; break; } default: - jj_la1[95] = jj_gen; + jj_la1[130] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3428,8 +4614,8 @@ QCString VhdlParser::enumeration_type_definition() {QCString s,s1; break; } default: - jj_la1[96] = jj_gen; - goto end_label_19; + jj_la1[131] = jj_gen; + goto end_label_25; } if (!hasError) { jj_consume_token(COMMA_T); @@ -3441,7 +4627,7 @@ QCString VhdlParser::enumeration_type_definition() {QCString s,s1; s+=",";s+=s1; } } - end_label_19: ; + end_label_25: ; } if (!hasError) { jj_consume_token(RPAREN_T); @@ -3465,7 +4651,7 @@ QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[97] = jj_gen; + jj_la1[132] = jj_gen; ; } } @@ -3482,7 +4668,7 @@ QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[98] = jj_gen; + jj_la1[133] = jj_gen; ; } } @@ -3498,7 +4684,7 @@ QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[99] = jj_gen; + jj_la1[134] = jj_gen; ; } } @@ -3517,7 +4703,7 @@ assert(false); QCString VhdlParser::expression() {QCString s,s1,s2; if (!hasError) { - s = relation(); + /* LOOKAHEAD(5) */ s = relation(); } if (!hasError) { while (!hasError) { @@ -3532,8 +4718,8 @@ QCString VhdlParser::expression() {QCString s,s1,s2; break; } default: - jj_la1[100] = jj_gen; - goto end_label_20; + jj_la1[135] = jj_gen; + goto end_label_26; } if (!hasError) { s1 = logop(); @@ -3545,13 +4731,166 @@ QCString VhdlParser::expression() {QCString s,s1,s2; s+=s1;s+=s2; } } - end_label_20: ; + end_label_26: ; } return s; assert(false); } +QCString VhdlParser::expression_or_unaffected() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ABS_T: + case AND_T: + case NAND_T: + case NEW_T: + case NOR_T: + case NOT_T: + case NULL_T: + case OR_T: + case XOR_T: + case XNOR_T: + case LPAREN_T: + case PLUS_T: + case MINUS_T: + case SLSL_T: + case QQ_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{ + if (!hasError) { + s = expression(); + } + if (!hasError) { +return s; + } + break; + } + case UNAFFECTED_T:{ + if (!hasError) { + jj_consume_token(UNAFFECTED_T); + } + if (!hasError) { +return "unaffected"; + } + break; + } + default: + jj_la1[136] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::external_pathname() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOT_T:{ + if (!hasError) { + s = absolute_pathname(); + } + if (!hasError) { +return s; + } + break; + } + case NEG_T:{ + if (!hasError) { + s = relative_pathname(); + } + if (!hasError) { +return s; + } + break; + } + case AT_T:{ + if (!hasError) { + s = package_path_name(); + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[137] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::external_name() {QCString s,s1,s2; + if (!hasError) { + jj_consume_token(SLSL_T); + } + if (!hasError) { + s = sig_stat(); + } + if (!hasError) { + s1 = external_pathname(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + if (!hasError) { + s2 = subtype_indication(); + } + if (!hasError) { + jj_consume_token(RSRS_T); + } +QCString t="<<"+s; + QCString t1=s1+":"+s2+">>"; + return s+s1; +assert(false); +} + + +QCString VhdlParser::sig_stat() {Token *t; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONSTANT_T:{ + if (!hasError) { + t = jj_consume_token(CONSTANT_T); + } + if (!hasError) { +return QCString(t->image); + } + break; + } + case SIGNAL_T:{ + if (!hasError) { + t = jj_consume_token(SIGNAL_T); + } + if (!hasError) { +return QCString(t->image); + } + break; + } + case VARIABLE_T:{ + if (!hasError) { + t = jj_consume_token(VARIABLE_T); + } + if (!hasError) { +return QCString(t->image); + } + break; + } + default: + jj_la1[138] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + QCString VhdlParser::logop() { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case AND_T:{ @@ -3609,7 +4948,7 @@ return "or" ; break; } default: - jj_la1[101] = jj_gen; + jj_la1[139] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3658,7 +4997,7 @@ s+="**";s+=s1; break; } default: - jj_la1[102] = jj_gen; + jj_la1[140] = jj_gen; ; } } @@ -3721,7 +5060,7 @@ return s; break; } default: - jj_la1[103] = jj_gen; + jj_la1[141] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3752,7 +5091,7 @@ QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3; break; } default: - jj_la1[104] = jj_gen; + jj_la1[142] = jj_gen; ; } } @@ -3760,7 +5099,7 @@ QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3; jj_consume_token(SEMI_T); } QCString t1=s2+" "+s3; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Protection::Public); return " file "+s+":"+s2+" "+s3+";"; assert(false); } @@ -3788,7 +5127,7 @@ QCString VhdlParser::file_open_information() {QCString s,s1,s2; break; } default: - jj_la1[105] = jj_gen; + jj_la1[143] = jj_gen; ; } } @@ -3799,13 +5138,28 @@ QCString VhdlParser::file_open_information() {QCString s,s1,s2; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case IN_T: case OUT_T:{ - if (!hasError) { - inout_stat(); + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T:{ + if (!hasError) { + jj_consume_token(IN_T); + } + break; + } + case OUT_T:{ + if (!hasError) { + jj_consume_token(OUT_T); + } + break; + } + default: + jj_la1[144] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } break; } default: - jj_la1[106] = jj_gen; + jj_la1[145] = jj_gen; ; } } @@ -3832,6 +5186,39 @@ assert(false); } +QCString VhdlParser::file_incomplete_type_definition() {QCString s,s1; + if (!hasError) { + jj_consume_token(FILE_T); + } + if (!hasError) { + jj_consume_token(OF_T); + } + if (!hasError) { + type_mark(); + } +return ""; +assert(false); +} + + +QCString VhdlParser::floating_incomplete_type_definition() {QCString s,s1; + if (!hasError) { + jj_consume_token(RANGE_T); + } + if (!hasError) { + jj_consume_token(BOX_T); + } + if (!hasError) { + jj_consume_token(DOT_T); + } + if (!hasError) { + jj_consume_token(BOX_T); + } +return "range <>.<>"; +assert(false); +} + + QCString VhdlParser::floating_type_definition() {QCString s; if (!hasError) { s = range_constraint(); @@ -3865,7 +5252,7 @@ return QCString(tok->image); break; } default: - jj_la1[107] = jj_gen; + jj_la1[146] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -3904,7 +5291,7 @@ s+"("+s1+")"; break; } default: - jj_la1[108] = jj_gen; + jj_la1[147] = jj_gen; ; } } @@ -3925,7 +5312,7 @@ QCString VhdlParser::full_type_declaration() {std::shared_ptr<Entry> tmpEntry;QC } if (!hasError) { tmpEntry=m_sharedState->current; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,0,Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,0,Protection::Public); } if (!hasError) { s2 = type_definition(); @@ -3972,6 +5359,256 @@ assert(false); } +void VhdlParser::geninter() { + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + gen_interface_list(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + gen_assoc_list(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } + break; + } + default: + jj_la1[148] = jj_gen; + ; + } + } + break; + } + default: + jj_la1[149] = jj_gen; + ; + } + } +} + + +void VhdlParser::gen_assoc_list() { + if (!hasError) { + jj_consume_token(GENERIC_T); + } + if (!hasError) { + jj_consume_token(MAP_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + association_list(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } +} + + +void VhdlParser::gen_interface_list() { + if (!hasError) { + jj_consume_token(GENERIC_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { +m_sharedState->parse_sec=GEN_SEC; + } + if (!hasError) { + interface_list(); + } + if (!hasError) { +m_sharedState->parse_sec=0; + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } +} + + +void VhdlParser::generate_statement_body() { + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case BEGIN_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FOR_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PACKAGE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T: + case VIEW_T:{ + if (!hasError) { + while (!hasError) { + if (jj_2_58(2147483647)) { + ; + } else { + goto end_label_27; + } + if (!hasError) { + block_declarative_item(); + } + } + end_label_27: ; + } + if (!hasError) { + jj_consume_token(BEGIN_T); + } + break; + } + default: + jj_la1[150] = jj_gen; + ; + } + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case POSTPONED_T: + case PROCESS_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case VHDL2008TOOLDIR:{ + ; + break; + } + default: + jj_la1[151] = jj_gen; + goto end_label_28; + } + if (!hasError) { + concurrent_statement(); + } + } + end_label_28: ; + } +} + + +void VhdlParser::generate_statement_body1() { + if (!hasError) { + generate_statement_body(); + } + if (!hasError) { + generate_scheme_1(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSE_T:{ + if (!hasError) { + generate_scheme_2(); + } + break; + } + default: + jj_la1[152] = jj_gen; + ; + } + } +} + + +void VhdlParser::generate_scheme_1() { + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSIF_T:{ + ; + break; + } + default: + jj_la1[153] = jj_gen; + goto end_label_29; + } + if (!hasError) { + generate_scheme_3(); + } + } + end_label_29: ; + } +} + + +void VhdlParser::generate_scheme_2() { + if (!hasError) { + jj_consume_token(ELSE_T); + } + if (!hasError) { + if (jj_2_59(2)) { + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + } else { + ; + } + } + if (!hasError) { + jj_consume_token(GENERATE_T); + } + if (!hasError) { + generate_statement_body(); + } +} + + +void VhdlParser::generate_scheme_3() { + if (!hasError) { + jj_consume_token(ELSIF_T); + } + if (!hasError) { + if (jj_2_60(2)) { + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + } else { + ; + } + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(GENERATE_T); + } + if (!hasError) { + generate_statement_body(); + } +} + + void VhdlParser::generate_statement() {QCString s; if (!hasError) { s = identifier(); @@ -4013,7 +5650,7 @@ outlineParser()->error_skipto(GENERATE_T); break; } default: - jj_la1[109] = jj_gen; + jj_la1[154] = jj_gen; ; } } @@ -4040,7 +5677,7 @@ void VhdlParser::generate_scheme() { jj_consume_token(IF_T); } if (!hasError) { - if (jj_2_39(2)) { + if (jj_2_61(2)) { if (!hasError) { identifier(); } @@ -4057,7 +5694,7 @@ void VhdlParser::generate_scheme() { break; } default: - jj_la1[110] = jj_gen; + jj_la1[155] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4139,7 +5776,7 @@ return s; break; } default: - jj_la1[111] = jj_gen; + jj_la1[156] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4161,8 +5798,8 @@ QCString VhdlParser::group_constituent_list() {QCString s,s1,s2; break; } default: - jj_la1[112] = jj_gen; - goto end_label_21; + jj_la1[157] = jj_gen; + goto end_label_30; } if (!hasError) { jj_consume_token(COMMA_T); @@ -4174,7 +5811,7 @@ QCString VhdlParser::group_constituent_list() {QCString s,s1,s2; s2+=",";s2+=s1; } } - end_label_21: ; + end_label_30: ; } return s+s2; assert(false); @@ -4272,7 +5909,7 @@ return QCString(tok->image); break; } default: - jj_la1[113] = jj_gen; + jj_la1[158] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4292,8 +5929,8 @@ QCString VhdlParser::identifier_list() {QCString str,str1; break; } default: - jj_la1[114] = jj_gen; - goto end_label_22; + jj_la1[159] = jj_gen; + goto end_label_31; } if (!hasError) { jj_consume_token(COMMA_T); @@ -4305,7 +5942,16 @@ QCString VhdlParser::identifier_list() {QCString str,str1; str+=",";str+=str1; } } - end_label_22: ; + end_label_31: ; + } + if (!hasError) { + if (jj_2_62(1) && (checkListTok())) { + if (!hasError) { + jj_consume_token(SEMI_T); + } + } else { + ; + } } return str; assert(false); @@ -4326,7 +5972,7 @@ void VhdlParser::if_statement() {QCString s,s1; break; } default: - jj_la1[115] = jj_gen; + jj_la1[160] = jj_gen; ; } } @@ -4344,7 +5990,7 @@ s.prepend("if "); FlowChart::addFlowChart(FlowChart::IF_NO,QCString(),s); } if (!hasError) { - sequence_of_statement(); + sequence_of_statements(); } if (!hasError) { while (!hasError) { @@ -4354,8 +6000,8 @@ s.prepend("if "); break; } default: - jj_la1[116] = jj_gen; - goto end_label_23; + jj_la1[161] = jj_gen; + goto end_label_32; } if (!hasError) { jj_consume_token(ELSIF_T); @@ -4371,10 +6017,10 @@ s1.prepend("elsif "); FlowChart::addFlowChart(FlowChart::ELSIF_NO,QCString(),s1); } if (!hasError) { - sequence_of_statement(); + sequence_of_statements(); } } - end_label_23: ; + end_label_32: ; } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -4386,12 +6032,12 @@ s1.prepend("elsif "); FlowChart::addFlowChart(FlowChart::ELSE_NO,QCString(),QCString()); } if (!hasError) { - sequence_of_statement(); + sequence_of_statements(); } break; } default: - jj_la1[117] = jj_gen; + jj_la1[162] = jj_gen; ; } } @@ -4411,7 +6057,7 @@ FlowChart::addFlowChart(FlowChart::ELSE_NO,QCString(),QCString()); break; } default: - jj_la1[118] = jj_gen; + jj_la1[163] = jj_gen; ; } } @@ -4423,6 +6069,179 @@ FlowChart::moveToPrevLevel(); } +QCString VhdlParser::incomplete_subtype_indication() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + subtype_indication(); + } + if (!hasError) { +return ""; + } + break; + } + case TYPE_T:{ + if (!hasError) { + anonymous_type_indication(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[164] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::incomplete_type_definition() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PRIVATE_T:{ + if (!hasError) { + private_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + case BOX_T:{ + if (!hasError) { + scalar_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + case LPAREN_T:{ + if (!hasError) { + discrete_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + case UNITS_T:{ + if (!hasError) { + physical_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[165] = jj_gen; + if (jj_2_63(4)) { + if (!hasError) { + floating_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case RANGE_T:{ + if (!hasError) { + integer_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + case ARRAY_T:{ + if (!hasError) { + array_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + case ACCESS_T:{ + if (!hasError) { + access_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + case FILE_T:{ + if (!hasError) { + file_incomplete_type_definition(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[166] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } +assert(false); +} + + +QCString VhdlParser::incomplete_type_mark() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + type_mark(); + } + if (!hasError) { +return ""; + } + break; + } + case TYPE_T:{ + if (!hasError) { + anonymous_type_indication(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[167] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::integer_incomplete_type_definition() {QCString s; + if (!hasError) { + jj_consume_token(RANGE_T); + } + if (!hasError) { + jj_consume_token(BOX_T); + } +return "range <>"; +assert(false); +} + + QCString VhdlParser::incomplete_type_declaration() {QCString s; if (!hasError) { jj_consume_token(TYPE_T); @@ -4456,8 +6275,8 @@ s+=s2; break; } default: - jj_la1[119] = jj_gen; - goto end_label_24; + jj_la1[168] = jj_gen; + goto end_label_33; } if (!hasError) { jj_consume_token(COMMA_T); @@ -4469,7 +6288,7 @@ s+=s2; s+=",";s+=s1; } } - end_label_24: ; + end_label_33: ; } if (!hasError) { jj_consume_token(RPAREN_T); @@ -4480,7 +6299,7 @@ assert(false); QCString VhdlParser::index_specification() {QCString s; - if (jj_2_40(2147483647)) { + if (jj_2_64(2147483647)) { if (!hasError) { s = discrete_range(); } @@ -4521,7 +6340,7 @@ return s; break; } default: - jj_la1[120] = jj_gen; + jj_la1[169] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4548,6 +6367,8 @@ assert(false); QCString VhdlParser::instantiation_unit() {QCString s,s1,s2; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case COMPONENT_T: + case SLSL_T: + case STRINGLITERAL: case BASIC_IDENTIFIER: case EXTENDED_CHARACTER:{ if (!hasError) { @@ -4559,12 +6380,12 @@ QCString VhdlParser::instantiation_unit() {QCString s,s1,s2; break; } default: - jj_la1[121] = jj_gen; + jj_la1[170] = jj_gen; ; } } if (!hasError) { - s = identifier(); + s = name(); } if (!hasError) { s1="component "; return s; @@ -4576,7 +6397,7 @@ s1="component "; return s; jj_consume_token(ENTITY_T); } if (!hasError) { - if (jj_2_41(2)) { + if (jj_2_65(2)) { if (!hasError) { jj_consume_token(BASIC_IDENTIFIER); } @@ -4611,7 +6432,7 @@ s+="(";s+=s1;s+=")" ; break; } default: - jj_la1[122] = jj_gen; + jj_la1[171] = jj_gen; ; } } @@ -4633,7 +6454,7 @@ s1="configuration ";return s; break; } default: - jj_la1[123] = jj_gen; + jj_la1[172] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4674,7 +6495,7 @@ return QCString(tok->image); break; } default: - jj_la1[124] = jj_gen; + jj_la1[173] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4701,37 +6522,47 @@ assert(false); QCString VhdlParser::interface_declaration() {QCString s,s1; - if (jj_2_42(5)) { + if (jj_2_66(2147483647)) { if (!hasError) { - s = interface_subprogram_declaration(); + s = interface_variable_declaration(); } if (!hasError) { return s; } - } else if (jj_2_43(5)) { + } else if (jj_2_67(2147483647)) { if (!hasError) { - interface_package_declaration(); + interface_object_declaration(); } if (!hasError) { -return s; +return " "; } - } else if (jj_2_44(5)) { + } else if (jj_2_68(2147483647)) { if (!hasError) { - s = interface_variable_declaration(); +m_sharedState->interf_sec=true; + } + if (!hasError) { + s = interface_subprogram_declaration(); + } + if (!hasError) { +m_sharedState->interf_sec=false ;return s; + } + } else if (jj_2_69(2147483647)) { + if (!hasError) { + interface_package_declaration(); } if (!hasError) { return s; } - } else if (jj_2_45(5)) { + } else if (jj_2_70(5)) { if (!hasError) { - interface_file_declaration(); + s = interface_type_declaration(); } if (!hasError) { return s; } - } else if (jj_2_46(2147483647)) { + } else if (jj_2_71(2147483647)) { if (!hasError) { - subprogram_declaration(); + interface_subprogram_declaration(); } if (!hasError) { return s; @@ -4752,13 +6583,13 @@ return s; } if (!hasError) { if (m_sharedState->parse_sec==GEN_SEC) - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,s1.data(),0,Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,s1.data(),0,Protection::Public); return s; } break; } default: - jj_la1[125] = jj_gen; + jj_la1[174] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4767,6 +6598,89 @@ assert(false); } +void VhdlParser::interface_object_declaration() {QCString s,s1,s2; + if (jj_2_72(2147483647)) { + if (!hasError) { + interface_constant_declaration(); + } + } else if (jj_2_73(2147483647)) { + if (!hasError) { + interface_signal_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FILE_T:{ + if (!hasError) { + interface_file_declaration(); + } + break; + } + default: + jj_la1[175] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +} + + +QCString VhdlParser::interface_constant_declaration() {QCString s,s1,s2; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONSTANT_T:{ + if (!hasError) { + jj_consume_token(CONSTANT_T); + } + break; + } + default: + jj_la1[176] = jj_gen; + ; + } + } + if (!hasError) { + identifier_list(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T:{ + if (!hasError) { + jj_consume_token(IN_T); + } + break; + } + default: + jj_la1[177] = jj_gen; + ; + } + } + if (!hasError) { + interface_type_indication(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{ + if (!hasError) { + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + conditional_expression(); + } + break; + } + default: + jj_la1[178] = jj_gen; + ; + } + } +return ""; +assert(false); +} + + QCString VhdlParser::interface_element() {QCString s; if (!hasError) { s = interface_declaration(); @@ -4789,7 +6703,7 @@ QCString VhdlParser::interface_file_declaration() {QCString s,s1; if (!hasError) { s1 = subtype_indication(); } -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public); +outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Protection::Public); return QCString(" file "+s+":"+s1); assert(false); } @@ -4801,14 +6715,10 @@ QCString VhdlParser::interface_list() {QCString s,s1,s2; } if (!hasError) { while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SEMI_T:{ + if (jj_2_74(2)) { ; - break; - } - default: - jj_la1[126] = jj_gen; - goto end_label_25; + } else { + goto end_label_34; } if (!hasError) { jj_consume_token(SEMI_T); @@ -4820,13 +6730,639 @@ QCString VhdlParser::interface_list() {QCString s,s1,s2; s2+=";";s2+=s1; } } - end_label_25: ; + end_label_34: ; + } + if (!hasError) { + if (jj_2_75(1) && (checkListTok())) { + if (!hasError) { + jj_consume_token(SEMI_T); + } + } else { + ; + } } return s+s2; assert(false); } +QCString VhdlParser::interface_package_declaration() {QCString s,s1,s2; + if (!hasError) { + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(IS_T); + } + if (!hasError) { + jj_consume_token(NEW_T); + } + if (!hasError) { + name(); + } + if (!hasError) { + interface_package_generic_map_aspect(); + } +return ""; +assert(false); +} + + +QCString VhdlParser::interface_package_generic_map_aspect() {QCString s,s1,s2; + if (jj_2_76(4)) { + if (!hasError) { + jj_consume_token(GENERIC_T); + } + if (!hasError) { + jj_consume_token(MAP_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + jj_consume_token(BOX_T); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +return ""; + } + } else if (jj_2_77(4)) { + if (!hasError) { + jj_consume_token(GENERIC_T); + } + if (!hasError) { + jj_consume_token(MAP_T); + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + jj_consume_token(DEFAULT_T); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +return ""; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + generic_map_aspect(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[179] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + +QCString VhdlParser::interface_procedure_specification() {QCString s,s1,s2; + if (!hasError) { + jj_consume_token(PROCEDURE_T); + } + if (!hasError) { + designator(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T: + case LPAREN_T:{ + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + jj_consume_token(PARAMETER_T); + } + break; + } + default: + jj_la1[180] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + formal_parameter_list(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + break; + } + default: + jj_la1[181] = jj_gen; + ; + } + } +return ""; +assert(false); +} + + +QCString VhdlParser::interface_signal_declaration() {QCString s,s1,s2; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SIGNAL_T:{ + if (!hasError) { + jj_consume_token(SIGNAL_T); + } + break; + } + default: + jj_la1[182] = jj_gen; + ; + } + } + if (!hasError) { + identifier_list(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + if (!hasError) { + interface_type_indication(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUS_T:{ + if (!hasError) { + jj_consume_token(BUS_T); + } + break; + } + default: + jj_la1[183] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{ + if (!hasError) { + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + conditional_expression(); + } + break; + } + default: + jj_la1[184] = jj_gen; + ; + } + } +return ""; +assert(false); +} + + +QCString VhdlParser::interface_subprogram_declaration() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PROCEDURE_T:{ + if (!hasError) { + s = iproc(); + } + if (!hasError) { +return s; + } + break; + } + case FUNCTION_T: + case IMPURE_T: + case PURE_T:{ + if (!hasError) { + s = ifunc(); + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[185] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::iproc() {QCString s,s1; + if (!hasError) { + jj_consume_token(PROCEDURE_T); + } + if (!hasError) { + s = identifier(); + } + if (!hasError) { + s1 = param(); + } +m_sharedState->current->name=s; + return "procedure "+s+s1; +assert(false); +} + + +QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IMPURE_T: + case PURE_T:{ + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PURE_T:{ + if (!hasError) { + t = jj_consume_token(PURE_T); + } + break; + } + case IMPURE_T:{ + if (!hasError) { + t = jj_consume_token(IMPURE_T); + } + break; + } + default: + jj_la1[186] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + break; + } + default: + jj_la1[187] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(FUNCTION_T); + } + if (!hasError) { + s = name(); + } + if (!hasError) { + s1 = param(); + } + if (!hasError) { + jj_consume_token(RETURN_T); + } + if (!hasError) { + s2 = name(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{ + if (!hasError) { + t1 = jj_consume_token(IS_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + s3 = identifier(); + } + break; + } + case BOX_T:{ + if (!hasError) { + t2 = jj_consume_token(BOX_T); + } + break; + } + default: + jj_la1[188] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + break; + } + default: + jj_la1[189] = jj_gen; + ; + } + } +QCString q; + if(t) q=t->image.data(); + if(t2) s3="<>"; + if (!s3.isEmpty()) + { + s3.prepend(" is "); + } + m_sharedState->current->name=s; + if (m_sharedState->parse_sec==GEN_SEC) + { + QCString ss=q+" function "+s1+" return "+s2+s3; + int a=outlineParser()->getLine(FUNCTION_T); + int b=outlineParser()->getLine(PROCEDURE_T); + + if (a>b) b=a; + outlineParser()->addVhdlType(m_sharedState->current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Protection::Public); + } + m_sharedState->currP=0;return QCString(); +assert(false); +} + + +QCString VhdlParser::param() {QCString s,s1;Token *tok=0; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + tok = jj_consume_token(PARAMETER_T); + } + break; + } + default: + jj_la1[190] = jj_gen; + ; + } + } + if (!hasError) { +m_sharedState->param_sec=PARAM_SEC; + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + s1 = interface_list(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + break; + } + default: + jj_la1[191] = jj_gen; + ; + } + } +if(tok) + { + s = tok->image.data(); + } + m_sharedState->param_sec=0; + return s+"("+s1+")"; +assert(false); +} + + +QCString VhdlParser::interface_subprogram_default() {QCString s,s1,s2; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + name(); + } + break; + } + case BOX_T:{ + if (!hasError) { + jj_consume_token(BOX_T); + } + break; + } + default: + jj_la1[192] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::interface_subprogram_specification() {QCString s,s1,s2; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PROCEDURE_T:{ + if (!hasError) { + interface_procedure_specification(); + } + if (!hasError) { +return ""; + } + break; + } + case FUNCTION_T: + case IMPURE_T: + case PURE_T:{ + if (!hasError) { + interface_function_specification(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[193] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::interface_function_specification() {QCString s,s1,s2; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IMPURE_T: + case PURE_T:{ + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PURE_T:{ + if (!hasError) { + jj_consume_token(PURE_T); + } + break; + } + case IMPURE_T:{ + if (!hasError) { + jj_consume_token(IMPURE_T); + } + break; + } + default: + jj_la1[194] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + break; + } + default: + jj_la1[195] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(FUNCTION_T); + } + if (!hasError) { + designator(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + subprogram_header(); + } + break; + } + default: + jj_la1[196] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T: + case LPAREN_T:{ + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + jj_consume_token(PARAMETER_T); + } + break; + } + default: + jj_la1[197] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + formal_parameter_list(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + break; + } + default: + jj_la1[198] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(RETURN_T); + } + if (!hasError) { + if (jj_2_78(2)) { + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(OF_T); + } + } else { + ; + } + } + if (!hasError) { + type_mark(); + } +return ""; +assert(false); +} + + +QCString VhdlParser::interface_incomplete_type_declaration() {QCString s="type";QCString s1; + if (!hasError) { + jj_consume_token(TYPE_T); + } + if (!hasError) { + s1 = identifier(); + } +if (m_sharedState->currP!=VhdlDocGen::COMPONENT && m_sharedState->interf_sec==false) + { + if (m_sharedState->currP==VhdlDocGen::FUNCTION || m_sharedState->currP==VhdlDocGen::PROCEDURE) + { + outlineParser()->addProto("",s1.data(),s.data(),"","",""); + } + else if(m_sharedState->parse_sec==GEN_SEC) + { + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,s1.data(),"",Protection::Public); + } + + return s+" "+s1; + } +assert(false); +} + + +QCString VhdlParser::interface_type_declaration() {QCString s; + if (!hasError) { + s = interface_incomplete_type_declaration(); + } +return s; +assert(false); +} + + +QCString VhdlParser::interface_type_indication() {QCString s,s1,s2; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + subtype_indication(); + } + if (!hasError) { +return ""; + } + break; + } + case TYPE_T:{ + if (!hasError) { + anonymous_type_indication(); + } + if (!hasError) { +return ""; + } + break; + } + case VIEW_T:{ + if (!hasError) { + mode_view_indication(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[199] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5; if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -4861,7 +7397,7 @@ QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1= break; } default: - jj_la1[127] = jj_gen; + jj_la1[200] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -4869,7 +7405,7 @@ QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1= break; } default: - jj_la1[128] = jj_gen; + jj_la1[201] = jj_gen; ; } } @@ -4892,7 +7428,7 @@ QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1= break; } default: - jj_la1[129] = jj_gen; + jj_la1[202] = jj_gen; ; } } @@ -4908,7 +7444,7 @@ QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1= break; } default: - jj_la1[130] = jj_gen; + jj_la1[203] = jj_gen; ; } } @@ -4924,7 +7460,7 @@ QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1= break; } default: - jj_la1[131] = jj_gen; + jj_la1[204] = jj_gen; ; } } @@ -4938,21 +7474,17 @@ if(tok) s3+=":="; QCString it=s+":"+s1+" "+s2+" "+s3+" "+s4; - if (m_sharedState->currP!=VhdlDocGen::COMPONENT) + if (m_sharedState->currP!=VhdlDocGen::COMPONENT && m_sharedState->interf_sec==false) { - if (m_sharedState->currP==VhdlDocGen::FUNCTION || m_sharedState->currP==VhdlDocGen::PROCEDURE) + if (m_sharedState->currP==VhdlDocGen::FUNCTION || m_sharedState->currP==VhdlDocGen::PROCEDURE) { outlineParser()->addProto(s5.data(),s.data(),s1.data(),s2.data(),s3.data(),s4.data()); } else { QCString i=s2+s3+s4; - if (m_sharedState->currP==VhdlDocGen::GENERIC && m_sharedState->param_sec==0) - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,i.data(),s1.data(),Public); - else if(m_sharedState->parse_sec != GEN_SEC) - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,i.data(),s1.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,i.data(),s1.data(),Protection::Public); } - // fprintf(stderr,"\n\n <<port %s >>\n",$$.data()); } // if component return it; assert(false); @@ -4992,7 +7524,7 @@ QCString q=m_sharedState->lab+" for "+s; break; } default: - jj_la1[132] = jj_gen; + jj_la1[205] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5023,7 +7555,7 @@ QCString VhdlParser::library_clause() {QCString s; } if ( m_sharedState->parse_sec==0 && Config_getBool(SHOW_INCLUDE_FILES) ) { - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Protection::Public); } QCString s1="library "+s; return s1; @@ -5032,7 +7564,7 @@ assert(false); QCString VhdlParser::library_unit() {QCString s; - if (jj_2_47(2)) { + if (jj_2_79(2)) { if (!hasError) { primary_unit(); } @@ -5052,7 +7584,7 @@ return s; break; } default: - jj_la1[133] = jj_gen; + jj_la1[206] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5062,21 +7594,21 @@ assert(false); QCString VhdlParser::literal() {QCString s; - if (jj_2_48(2147483647)) { + if (jj_2_80(2147483647)) { if (!hasError) { s = bit_string_literal(); } if (!hasError) { return s; } - } else if (jj_2_49(2147483647)) { + } else if (jj_2_81(2147483647)) { if (!hasError) { s = numeric_literal(); } if (!hasError) { return s; } - } else if (jj_2_50(2147483647)) { + } else if (jj_2_82(2147483647)) { if (!hasError) { s = enumeration_literal(); } @@ -5104,7 +7636,7 @@ return "null"; break; } default: - jj_la1[134] = jj_gen; + jj_la1[207] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5139,7 +7671,7 @@ s+=":"; break; } default: - jj_la1[135] = jj_gen; + jj_la1[208] = jj_gen; ; } } @@ -5153,7 +7685,7 @@ s+=":"; break; } default: - jj_la1[136] = jj_gen; + jj_la1[209] = jj_gen; ; } } @@ -5165,7 +7697,7 @@ if(s1.isEmpty()) jj_consume_token(LOOP_T); } if (!hasError) { - s2 = sequence_of_statement(); + s2 = sequence_of_statements(); } if (!hasError) { jj_consume_token(END_T); @@ -5183,7 +7715,7 @@ if(s1.isEmpty()) break; } default: - jj_la1[137] = jj_gen; + jj_la1[210] = jj_gen; ; } } @@ -5229,7 +7761,7 @@ return "not"; break; } default: - jj_la1[138] = jj_gen; + jj_la1[211] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5285,7 +7817,45 @@ return "linkage"; break; } default: - jj_la1[139] = jj_gen; + jj_la1[212] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + +QCString VhdlParser::mode_indication() {Token *tok=0; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUFFER_T: + case IN_T: + case INOUT_T: + case LINKAGE_T: + case OUT_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + simple_mode_indication(); + } + if (!hasError) { +return " "; + } + break; + } + case VIEW_T:{ + if (!hasError) { + mode_view_indication(); + } + if (!hasError) { +return " "; + } + break; + } + default: + jj_la1[213] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5293,6 +7863,115 @@ assert(false); } +QCString VhdlParser::mode_view_declaration() {Token *tok=0; + if (!hasError) { + jj_consume_token(VIEW_T); + } + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(OF_T); + } + if (!hasError) { + subtype_indication(); + } + if (!hasError) { + jj_consume_token(IS_T); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[214] = jj_gen; + goto end_label_35; + } + if (!hasError) { + mode_view_element_definition(); + } + } + end_label_35: ; + } + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + jj_consume_token(VIEW_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + identifier(); + } + break; + } + default: + jj_la1[215] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +return ""; +assert(false); +} + + +QCString VhdlParser::mode_view_element_definition() {Token *tok=0; + if (!hasError) { + record_element_list(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + if (!hasError) { + element_mode_indication(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +return ""; +assert(false); +} + + +QCString VhdlParser::mode_view_indication() {Token *tok=0; + if (jj_2_83(3)) { + if (!hasError) { + array_mode_view_indication(); + } + if (!hasError) { +return ""; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VIEW_T:{ + if (!hasError) { + record_mode_view_indication(); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[216] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + QCString VhdlParser::multiplying_operation() {Token *tok=0; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case MULT_T:{ @@ -5332,7 +8011,7 @@ return QCString(tok->image); break; } default: - jj_la1[140] = jj_gen; + jj_la1[217] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5348,7 +8027,7 @@ QCString VhdlParser::name() {QCString s,s1; s = operator_symbol(); } if (!hasError) { - if (jj_2_51(2147483647)) { + if (jj_2_84(2147483647)) { if (!hasError) { s1 = name_ext1(); } @@ -5369,7 +8048,7 @@ return s; s = external_name(); } if (!hasError) { - if (jj_2_52(2147483647)) { + if (jj_2_85(2147483647)) { if (!hasError) { s1 = name_ext1(); } @@ -5391,7 +8070,7 @@ return s; s = identifier(); } if (!hasError) { - if (jj_2_53(2147483647)) { + if (jj_2_86(2147483647)) { if (!hasError) { s1 = name_ext1(); } @@ -5408,7 +8087,7 @@ return s; break; } default: - jj_la1[141] = jj_gen; + jj_la1[218] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5423,10 +8102,10 @@ QCString VhdlParser::name_ext1() {QCString s,s1,s2; } if (!hasError) { while (!hasError) { - if (jj_2_54(2147483647)) { + if (jj_2_87(2147483647)) { ; } else { - goto end_label_26; + goto end_label_36; } if (!hasError) { s1 = name_ext(); @@ -5435,7 +8114,7 @@ QCString VhdlParser::name_ext1() {QCString s,s1,s2; s+=s1; } } - end_label_26: ; + end_label_36: ; } return s; assert(false); @@ -5444,7 +8123,7 @@ assert(false); QCString VhdlParser::name_ext() {QCString s,s1,s2; if (!hasError) { - if (jj_2_55(2147483647)) { + if (jj_2_88(2147483647)) { if (!hasError) { jj_consume_token(APOSTROPHE_T); } @@ -5454,7 +8133,7 @@ QCString VhdlParser::name_ext() {QCString s,s1,s2; if (!hasError) { s+="'subtype"; return s; } - } else if (jj_2_56(2147483647)) { + } else if (jj_2_89(2147483647)) { if (!hasError) { jj_consume_token(DOT_T); } @@ -5464,14 +8143,14 @@ s+="'subtype"; return s; if (!hasError) { s+=".";s+=s1; return s; } - } else if (jj_2_57(2147483647)) { + } else if (jj_2_90(2147483647)) { if (!hasError) { s1 = test_att_name(); } if (!hasError) { s+=s1;return s; } - } else if (jj_2_58(2147483647)) { + } else if (jj_2_91(2147483647)) { if (!hasError) { jj_consume_token(LPAREN_T); } @@ -5484,7 +8163,7 @@ s+=s1;return s; if (!hasError) { s+="(";s+=s1;s+=")";return s; } - } else if (jj_2_59(2147483647)) { + } else if (jj_2_92(2147483647)) { if (!hasError) { jj_consume_token(LPAREN_T); } @@ -5502,8 +8181,8 @@ s+="(";s+=s1; break; } default: - jj_la1[142] = jj_gen; - goto end_label_27; + jj_la1[219] = jj_gen; + goto end_label_37; } if (!hasError) { jj_consume_token(COMMA_T); @@ -5515,7 +8194,7 @@ s+="(";s+=s1; s+=",";s+=s1; } } - end_label_27: ; + end_label_37: ; } if (!hasError) { jj_consume_token(RPAREN_T); @@ -5533,50 +8212,80 @@ assert(false); QCString VhdlParser::test_att_name() {QCString s,s1; - if (!hasError) { - if (jj_2_60(2147483647)) { + if (jj_2_94(4)) { if (!hasError) { - s1 = signature(); - } - if (!hasError) { -s=s1; + jj_consume_token(CHARACTER_LITERAL); } - } else { - ; - } - } - if (!hasError) { - jj_consume_token(APOSTROPHE_T); - } - if (!hasError) { - s1 = attribute_designator(); - } - if (!hasError) { -s+="'";s+=s1; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ if (!hasError) { - jj_consume_token(LPAREN_T); + jj_consume_token(INTEGER); } if (!hasError) { - s1 = expression(); + jj_consume_token(APOSTROPHE_T); } if (!hasError) { jj_consume_token(RPAREN_T); } if (!hasError) { -s+="(";s+=s1;s+=")"; +return "kkk"; } - break; + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case APOSTROPHE_T: + case LBRACKET_T:{ + if (!hasError) { + if (jj_2_93(2147483647)) { + if (!hasError) { + s1 = signature(); + } + if (!hasError) { +s=s1; + } + } else { + ; + } + } + if (!hasError) { + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { + s1 = attribute_designator(); + } + if (!hasError) { +s+="'";s+=s1; + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + s1 = expression(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +s+="(";s+=s1;s+=")"; + } + break; + } + default: + jj_la1[220] = jj_gen; + ; + } + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[221] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - default: - jj_la1[143] = jj_gen; - ; } - } -return s; assert(false); } @@ -5602,8 +8311,8 @@ s=s2+"("+s1; break; } default: - jj_la1[144] = jj_gen; - goto end_label_28; + jj_la1[222] = jj_gen; + goto end_label_38; } if (!hasError) { jj_consume_token(COMMA_T); @@ -5615,7 +8324,7 @@ s=s2+"("+s1; s+=",";s+=s1; } } - end_label_28: ; + end_label_38: ; } if (!hasError) { jj_consume_token(RPAREN_T); @@ -5639,7 +8348,7 @@ QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[145] = jj_gen; + jj_la1[223] = jj_gen; ; } } @@ -5656,7 +8365,7 @@ QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[146] = jj_gen; + jj_la1[224] = jj_gen; ; } } @@ -5672,7 +8381,7 @@ QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; break; } default: - jj_la1[147] = jj_gen; + jj_la1[225] = jj_gen; ; } } @@ -5705,7 +8414,7 @@ s+=":"; break; } default: - jj_la1[148] = jj_gen; + jj_la1[226] = jj_gen; ; } } @@ -5721,7 +8430,7 @@ assert(false); QCString VhdlParser::numeric_literal() {QCString s; - if (jj_2_61(2147483647)) { + if (jj_2_95(2147483647)) { if (!hasError) { s = physical_literal(); } @@ -5742,7 +8451,7 @@ return s; break; } default: - jj_la1[149] = jj_gen; + jj_la1[227] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5811,7 +8520,7 @@ return "type"; break; } default: - jj_la1[150] = jj_gen; + jj_la1[228] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -5838,7 +8547,7 @@ void VhdlParser::options() { break; } default: - jj_la1[151] = jj_gen; + jj_la1[229] = jj_gen; ; } } @@ -5853,7 +8562,7 @@ void VhdlParser::options() { break; } default: - jj_la1[152] = jj_gen; + jj_la1[230] = jj_gen; ; } } @@ -5876,7 +8585,7 @@ void VhdlParser::package_body() {QCString s; if (!hasError) { m_sharedState->lastCompound=m_sharedState->current; s.prepend("_"); - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protection::Protected); } if (!hasError) { package_body_declarative_part(); @@ -5896,7 +8605,7 @@ m_sharedState->lastCompound=m_sharedState->current; break; } default: - jj_la1[153] = jj_gen; + jj_la1[231] = jj_gen; ; } } @@ -5912,7 +8621,7 @@ m_sharedState->lastCompound=m_sharedState->current; break; } default: - jj_la1[154] = jj_gen; + jj_la1[232] = jj_gen; ; } } @@ -5959,42 +8668,68 @@ void VhdlParser::package_body_declarative_item() { } break; } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } default: - jj_la1[155] = jj_gen; - if (jj_2_62(3)) { + jj_la1[233] = jj_gen; + if (jj_2_96(2)) { if (!hasError) { - group_template_declaration(); + package_body(); + } + } else if (jj_2_97(4)) { + if (!hasError) { + package_instantiation_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ + case PACKAGE_T:{ + if (!hasError) { + package_declaration(); + } + break; + } + case FILE_T:{ + if (!hasError) { + file_declaration(); + } + break; + } + case ALIAS_T:{ + if (!hasError) { + alias_declaration(); + } + break; + } + case VIEW_T:{ + if (!hasError) { + mode_view_declaration(); + } + break; + } + case USE_T:{ if (!hasError) { - group_declaration(); + use_clause(); } break; } default: - jj_la1[156] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + jj_la1[234] = jj_gen; + if (jj_2_98(3)) { + if (!hasError) { + group_template_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{ + if (!hasError) { + group_declaration(); + } + break; + } + default: + jj_la1[235] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } } } } @@ -6011,25 +8746,27 @@ void VhdlParser::package_body_declarative_part() { case FUNCTION_T: case GROUP_T: case IMPURE_T: + case PACKAGE_T: case PROCEDURE_T: case PURE_T: case SHARED_T: case SUBTYPE_T: case TYPE_T: case USE_T: - case VARIABLE_T:{ + case VARIABLE_T: + case VIEW_T:{ ; break; } default: - jj_la1[157] = jj_gen; - goto end_label_29; + jj_la1[236] = jj_gen; + goto end_label_39; } if (!hasError) { package_body_declarative_item(); } } - end_label_29: ; + end_label_39: ; } } @@ -6053,14 +8790,14 @@ void VhdlParser::package_header() {QCString s; break; } default: - jj_la1[158] = jj_gen; + jj_la1[237] = jj_gen; ; } } break; } default: - jj_la1[159] = jj_gen; + jj_la1[238] = jj_gen; ; } } @@ -6085,9 +8822,9 @@ m_sharedState->lastCompound=m_sharedState->current; clone->name=s; clone->startLine=outlineParser()->getLine(PACKAGE_T); clone->bodyLine=outlineParser()->getLine(PACKAGE_T); - clone->protection=Package; + clone->protection=Protection::Package; m_sharedState->current_root->moveToSubEntryAndKeep(clone); - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(PACKAGE_T),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(PACKAGE_T),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Protection::Package); } if (!hasError) { package_header(); @@ -6107,7 +8844,7 @@ m_sharedState->lastCompound=m_sharedState->current; break; } default: - jj_la1[160] = jj_gen; + jj_la1[239] = jj_gen; ; } } @@ -6123,7 +8860,7 @@ m_sharedState->lastCompound=m_sharedState->current; break; } default: - jj_la1[161] = jj_gen; + jj_la1[240] = jj_gen; ; } } @@ -6134,42 +8871,6 @@ m_sharedState->lastEntity=0;m_sharedState->lastCompound=0; m_sharedState->genLab } -void VhdlParser::geninter() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_interface_list(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[162] = jj_gen; - ; - } - } - break; - } - default: - jj_la1[163] = jj_gen; - ; - } - } -} - - void VhdlParser::package_declarative_item() { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case FUNCTION_T: @@ -6193,101 +8894,121 @@ void VhdlParser::package_declarative_item() { } break; } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - signal_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - case COMPONENT_T:{ - if (!hasError) { - component_declaration(); - } - break; - } default: - jj_la1[164] = jj_gen; - if (jj_2_63(2147483647)) { + jj_la1[241] = jj_gen; + if (jj_2_99(5)) { + if (!hasError) { + package_instantiation_declaration(); + } + } else if (jj_2_100(3)) { if (!hasError) { - attribute_declaration(); + package_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ + case CONSTANT_T:{ if (!hasError) { - attribute_specification(); + constant_declaration(); } break; } - case DISCONNECT_T:{ + case SIGNAL_T:{ if (!hasError) { - disconnection_specification(); + signal_declaration(); } break; } - case USE_T:{ + case SHARED_T: + case VARIABLE_T:{ if (!hasError) { - use_clause(); + variable_declaration(); + } + break; + } + case FILE_T:{ + if (!hasError) { + file_declaration(); + } + break; + } + case ALIAS_T:{ + if (!hasError) { + alias_declaration(); + } + break; + } + case COMPONENT_T:{ + if (!hasError) { + component_declaration(); + } + break; + } + case VIEW_T:{ + if (!hasError) { + mode_view_declaration(); } break; } default: - jj_la1[165] = jj_gen; - if (jj_2_64(3)) { + jj_la1[242] = jj_gen; + if (jj_2_101(2147483647)) { if (!hasError) { - group_template_declaration(); + attribute_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ + case ATTRIBUTE_T:{ if (!hasError) { - group_declaration(); + attribute_specification(); + } + break; + } + case DISCONNECT_T:{ + if (!hasError) { + disconnection_specification(); + } + break; + } + case USE_T:{ + if (!hasError) { + use_clause(); } break; } default: - jj_la1[166] = jj_gen; - if (jj_2_65(5)) { + jj_la1[243] = jj_gen; + if (jj_2_102(3)) { if (!hasError) { - package_instantiation_declaration(); + group_template_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ + case GROUP_T:{ if (!hasError) { - package_declaration(); + group_declaration(); } break; } default: - jj_la1[167] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + jj_la1[244] = jj_gen; + if (jj_2_103(5)) { + if (!hasError) { + package_instantiation_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{ + if (!hasError) { + package_declaration(); + } + break; + } + default: + jj_la1[245] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } } } } @@ -6319,23 +9040,61 @@ void VhdlParser::package_declarative_part() { case SUBTYPE_T: case TYPE_T: case USE_T: - case VARIABLE_T:{ + case VARIABLE_T: + case VIEW_T:{ ; break; } default: - jj_la1[168] = jj_gen; - goto end_label_30; + jj_la1[246] = jj_gen; + goto end_label_40; } if (!hasError) { package_declarative_item(); } } - end_label_30: ; + end_label_40: ; } } +void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2; + if (!hasError) { + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + s = identifier(); + } + if (!hasError) { + jj_consume_token(IS_T); + } + if (!hasError) { + jj_consume_token(NEW_T); + } + if (!hasError) { + s1 = name(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + gen_assoc_list(); + } + break; + } + default: + jj_la1[247] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +QCString q=" is new "+s1+s2; + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Protection::Public); +} + + QCString VhdlParser::parameter_specification() {QCString s,s1; if (!hasError) { s = identifier(); @@ -6351,9 +9110,88 @@ assert(false); } +QCString VhdlParser::pathname_element() {QCString s,s1; + if (!hasError) { + s = identifier(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + s1 = expression(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + break; + } + default: + jj_la1[248] = jj_gen; + ; + } + } +if(!s1.isEmpty()) + return s+"("+s1+")"; + + return s; +assert(false); +} + + +QCString VhdlParser::pathname_element_list() {QCString s,s1,s2; + if (!hasError) { + if (!hasError) { + s = pathname_element(); + } + if (!hasError) { + jj_consume_token(DOT_T); + } + } + if (!hasError) { +s+="."; + } + if (!hasError) { + while (!hasError) { + if (jj_2_104(2147483647)) { + ; + } else { + goto end_label_41; + } + if (!hasError) { + s1 = pathname_element(); + } + if (!hasError) { + jj_consume_token(DOT_T); + } + if (!hasError) { +s2+=s1;s2+="."; + } + } + end_label_41: ; + } +return s+s2; +assert(false); +} + + +QCString VhdlParser::package_path_name() {QCString s; + if (!hasError) { + jj_consume_token(AT_T); + } + if (!hasError) { + s = name(); + } +return "@"+s; +assert(false); +} + + QCString VhdlParser::physical_literal() {QCString s,s1; if (!hasError) { - if (jj_2_66(2147483647)) { + if (jj_2_105(2147483647)) { if (!hasError) { s = abstract_literal(); } @@ -6380,7 +9218,7 @@ QCString VhdlParser::physical_type_definition() {QCString s,s1,s2;Token *t=0; jj_consume_token(SEMI_T); } if (!hasError) { -outlineParser()->addVhdlType(s.data(),t->beginLine,Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,0,Public); +outlineParser()->addVhdlType(s.data(),t->beginLine,Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,0,Protection::Public); } if (!hasError) { while (!hasError) { @@ -6391,14 +9229,14 @@ outlineParser()->addVhdlType(s.data(),t->beginLine,Entry::VARIABLE_SEC,VhdlDocGe break; } default: - jj_la1[169] = jj_gen; - goto end_label_31; + jj_la1[249] = jj_gen; + goto end_label_42; } if (!hasError) { s1 = secondary_unit_declaration(); } } - end_label_31: ; + end_label_42: ; } if (!hasError) { jj_consume_token(END_T); @@ -6418,7 +9256,7 @@ outlineParser()->addVhdlType(s.data(),t->beginLine,Entry::VARIABLE_SEC,VhdlDocGe break; } default: - jj_la1[170] = jj_gen; + jj_la1[250] = jj_gen; ; } } @@ -6427,6 +9265,16 @@ assert(false); } +void VhdlParser::physical_incomplete_type_definition() { + if (!hasError) { + jj_consume_token(UNITS_T); + } + if (!hasError) { + jj_consume_token(BOX_T); + } +} + + void VhdlParser::port_clause() { if (!hasError) { jj_consume_token(PORT_T); @@ -6476,19 +9324,19 @@ void VhdlParser::port_map_aspect() { QCString VhdlParser::primary() {QCString s,s1; - if (jj_2_67(2147483647)) { + if (jj_2_106(2147483647)) { if (!hasError) { s = function_call(); } if (!hasError) { return s; } - } else if (jj_2_68(2147483647)) { + } else if (jj_2_107(2147483647)) { if (!hasError) { jj_consume_token(LPAREN_T); } if (!hasError) { - s1 = expression(); + s1 = conditional_expression(); } if (!hasError) { jj_consume_token(RPAREN_T); @@ -6496,57 +9344,51 @@ return s; if (!hasError) { s="("+s1+")"; return s; } - } else if (jj_2_69(2147483647)) { + } else if (jj_2_108(2147483647)) { if (!hasError) { s = qualified_expression(); } if (!hasError) { return s; } - } else if (jj_2_70(2147483647)) { + } else if (jj_2_109(2147483647)) { if (!hasError) { s = type_conversion(); } if (!hasError) { return s; } - } else if (jj_2_71(2147483647)) { + } else if (jj_2_110(2147483647)) { if (!hasError) { s = literal(); } if (!hasError) { s.prepend(" ");return s; } - } else if (jj_2_72(2147483647)) { + } else if (jj_2_111(2147483647)) { if (!hasError) { s = name(); } if (!hasError) { return s; } - } else if (jj_2_73(2147483647)) { + } else if (jj_2_112(2147483647)) { if (!hasError) { allocator(); } if (!hasError) { return QCString(); } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - s = aggregate(); - } - if (!hasError) { + } else if (jj_2_113(2147483647)) { + if (!hasError) { + s = aggregate(); + } + if (!hasError) { return s; - } - break; - } - default: - jj_la1[171] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); } @@ -6567,15 +9409,11 @@ void VhdlParser::primary_unit() { break; } default: - jj_la1[172] = jj_gen; - if (jj_2_74(2147483647)) { + jj_la1[251] = jj_gen; + if (jj_2_114(2147483647)) { if (!hasError) { package_instantiation_declaration(); } - } else if (jj_2_75(4)) { - if (!hasError) { - interface_package_declaration(); - } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case PACKAGE_T:{ @@ -6591,7 +9429,7 @@ void VhdlParser::primary_unit() { break; } default: - jj_la1[173] = jj_gen; + jj_la1[252] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -6600,9 +9438,76 @@ void VhdlParser::primary_unit() { } +QCString VhdlParser::private_variable_declaration() {QCString s,s1; + if (!hasError) { + jj_consume_token(PRIVATE_T); + } + if (!hasError) { + variable_declaration(); + } +return "private"; +assert(false); +} + + +QCString VhdlParser::private_incomplete_type_definition() {QCString s,s1; + if (!hasError) { + jj_consume_token(PRIVATE_T); + } +return "private"; +assert(false); +} + + +QCString VhdlParser::parameter_map_aspect() {QCString s,s1; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + jj_consume_token(PARAMETER_T); + } + if (!hasError) { + jj_consume_token(MAP_T); + } + break; + } + default: + jj_la1[253] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + actual_parameter_part(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } +assert(false); +} + + QCString VhdlParser::procedure_call() {QCString s,s1; if (!hasError) { - s = name(); + name(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + jj_consume_token(PARAMETER_T); + } + if (!hasError) { + jj_consume_token(MAP_T); + } + break; + } + default: + jj_la1[254] = jj_gen; + ; + } } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -6611,29 +9516,26 @@ QCString VhdlParser::procedure_call() {QCString s,s1; jj_consume_token(LPAREN_T); } if (!hasError) { - s1 = actual_parameter_part(); + actual_parameter_part(); } if (!hasError) { jj_consume_token(RPAREN_T); } - if (!hasError) { -s1.prepend("("); s1.append(")"); - } break; } default: - jj_la1[174] = jj_gen; + jj_la1[255] = jj_gen; ; } } -return s+s1; +return ""; assert(false); } QCString VhdlParser::procedure_call_statement() {QCString s,s1; if (!hasError) { - if (jj_2_76(2)) { + if (jj_2_115(2)) { if (!hasError) { s = identifier(); } @@ -6658,98 +9560,160 @@ assert(false); } -QCString VhdlParser::process_declarative_item() {QCString s; +QCString VhdlParser::procedure_specifiction() {QCString s,s1; + if (!hasError) { + jj_consume_token(PROCEDURE_T); + } + if (!hasError) { + designator(); + } + if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - if (!hasError) { -return QCString(); - } - break; - } - case TYPE_T:{ + case GENERIC_T:{ if (!hasError) { - s = type_declaration(); - } - if (!hasError) { -return s; + subprogram_header(); } break; } - case SUBTYPE_T:{ - if (!hasError) { - s = subtype_declaration(); - } + default: + jj_la1[256] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T: + case LPAREN_T:{ if (!hasError) { -return s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + jj_consume_token(PARAMETER_T); + } + break; + } + default: + jj_la1[257] = jj_gen; + ; } - break; } - case CONSTANT_T:{ if (!hasError) { - s = constant_declaration(); + jj_consume_token(LPAREN_T); } if (!hasError) { -return s; + formal_parameter_list(); } - break; - } - case SHARED_T: - case VARIABLE_T:{ if (!hasError) { - s = variable_declaration(); - } - if (!hasError) { -return s; + jj_consume_token(RPAREN_T); } break; } - case FILE_T:{ + default: + jj_la1[258] = jj_gen; + ; + } + } +return s+s1+";"; +assert(false); +} + + +QCString VhdlParser::process_declarative_item() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{ if (!hasError) { - s = file_declaration(); + subprogram_declaration(); } if (!hasError) { -return s; +return QCString(); } break; } - case ALIAS_T:{ - if (!hasError) { - s = alias_declaration(); - } + case IS_T:{ if (!hasError) { -return s; + subprogram_body(); } break; } default: - jj_la1[175] = jj_gen; - if (jj_2_77(3)) { + jj_la1[259] = jj_gen; + if (jj_2_116(2)) { if (!hasError) { - s = attribute_declaration(); + package_body(); } if (!hasError) { -return s; +return ""; + } + } else if (jj_2_117(2147483647)) { + if (!hasError) { + package_declaration(); + } + if (!hasError) { +return ""; } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ + case PACKAGE_T:{ if (!hasError) { - s = attribute_specification(); + package_instantiation_declaration(); + } + if (!hasError) { +return ""; + } + break; + } + case SUBTYPE_T:{ + if (!hasError) { + s = subtype_declaration(); } if (!hasError) { return s; } break; } - case USE_T:{ + case TYPE_T:{ if (!hasError) { - s = use_clause(); + s = type_declaration(); + } + if (!hasError) { +return s; + } + break; + } + case CONSTANT_T:{ + if (!hasError) { + s = constant_declaration(); + } + if (!hasError) { +return s; + } + break; + } + case SHARED_T: + case VARIABLE_T:{ + if (!hasError) { + s = variable_declaration(); + } + if (!hasError) { +return s; + } + break; + } + case FILE_T:{ + if (!hasError) { + s = file_declaration(); + } + if (!hasError) { +return s; + } + break; + } + case ALIAS_T:{ + if (!hasError) { + s = alias_declaration(); } if (!hasError) { return s; @@ -6757,19 +9721,28 @@ return s; break; } default: - jj_la1[176] = jj_gen; - if (jj_2_78(3)) { + jj_la1[260] = jj_gen; + if (jj_2_118(3)) { if (!hasError) { - s = group_template_declaration(); + s = attribute_declaration(); } if (!hasError) { return s; } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ + case ATTRIBUTE_T:{ if (!hasError) { - s = group_declaration(); + s = attribute_specification(); + } + if (!hasError) { +return s; + } + break; + } + case USE_T:{ + if (!hasError) { + s = use_clause(); } if (!hasError) { return s; @@ -6777,9 +9750,31 @@ return s; break; } default: - jj_la1[177] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + jj_la1[261] = jj_gen; + if (jj_2_119(3)) { + if (!hasError) { + s = group_template_declaration(); + } + if (!hasError) { +return s; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{ + if (!hasError) { + s = group_declaration(); + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[262] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } } } } @@ -6800,6 +9795,8 @@ QCString VhdlParser::process_declarative_part() {QCString s,s1; case FUNCTION_T: case GROUP_T: case IMPURE_T: + case IS_T: + case PACKAGE_T: case PROCEDURE_T: case PURE_T: case SHARED_T: @@ -6811,8 +9808,8 @@ QCString VhdlParser::process_declarative_part() {QCString s,s1; break; } default: - jj_la1[178] = jj_gen; - goto end_label_32; + jj_la1[263] = jj_gen; + goto end_label_43; } if (!hasError) { s1 = process_declarative_item(); @@ -6821,7 +9818,7 @@ QCString VhdlParser::process_declarative_part() {QCString s,s1; s+=s1; } } - end_label_32: ; + end_label_43: ; } return s; assert(false); @@ -6842,7 +9839,7 @@ void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;Token *tok1= break; } default: - jj_la1[179] = jj_gen; + jj_la1[264] = jj_gen; ; } } @@ -6855,7 +9852,7 @@ void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;Token *tok1= break; } default: - jj_la1[180] = jj_gen; + jj_la1[265] = jj_gen; ; } } @@ -6884,7 +9881,7 @@ m_sharedState->currP=VhdlDocGen::PROCESS; break; } default: - jj_la1[181] = jj_gen; + jj_la1[266] = jj_gen; ; } } @@ -6897,7 +9894,7 @@ m_sharedState->currP=VhdlDocGen::PROCESS; break; } default: - jj_la1[182] = jj_gen; + jj_la1[267] = jj_gen; ; } } @@ -6927,7 +9924,7 @@ if (s2.data()) break; } default: - jj_la1[183] = jj_gen; + jj_la1[268] = jj_gen; ; } } @@ -6944,7 +9941,7 @@ if (s2.data()) break; } default: - jj_la1[184] = jj_gen; + jj_la1[269] = jj_gen; ; } } @@ -6962,7 +9959,7 @@ if(s.isEmpty()) m_sharedState->currP=0; if(tok) s1=tok->image; - outlineParser()->createFunction(m_sharedState->currName.data(),VhdlDocGen::PROCESS,s1.data()); + outlineParser()->createFunction(m_sharedState->currName,VhdlDocGen::PROCESS,s1); outlineParser()->createFlow(); m_sharedState->currName=""; outlineParser()->newEntry(); @@ -6974,6 +9971,7 @@ void VhdlParser::process_statement_part() { while (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ASSERT_T: + case BLOCK_T: case CASE_T: case EXIT_T: case FOR_T: @@ -6995,67 +9993,437 @@ void VhdlParser::process_statement_part() { break; } default: - jj_la1[185] = jj_gen; - goto end_label_33; + jj_la1[270] = jj_gen; + goto end_label_44; } if (!hasError) { sequential_statement(); } } - end_label_33: ; + end_label_44: ; } } -QCString VhdlParser::qualified_expression() {QCString s,s1; +QCString VhdlParser::protected_type_body() { if (!hasError) { - s1 = identifier(); + jj_consume_token(PROTECTED_T); } if (!hasError) { - jj_consume_token(APOSTROPHE_T); + jj_consume_token(BODY_T); } if (!hasError) { -s=s1+"'"; + protected_type_body_declarative_part(); } if (!hasError) { - if (jj_2_79(2147483647)) { + jj_consume_token(END_T); + } + if (!hasError) { + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + jj_consume_token(BODY_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ if (!hasError) { - s1 = aggregate(); + identifier(); } + break; + } + default: + jj_la1[271] = jj_gen; + ; + } + } +return QCString(); +assert(false); +} + + +void VhdlParser::protected_type_body_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{ if (!hasError) { -s+=s1; + subprogram_declaration(); + } + break; + } + case IS_T:{ + if (!hasError) { + subprogram_body(); + } + break; + } + default: + jj_la1[272] = jj_gen; + if (jj_2_120(2)) { + if (!hasError) { + package_body(); + } + } else if (jj_2_121(2147483647)) { + if (!hasError) { + package_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{ + if (!hasError) { + package_instantiation_declaration(); + } + break; + } + case TYPE_T:{ + if (!hasError) { + type_declaration(); + } + break; + } + case SUBTYPE_T:{ + if (!hasError) { + subtype_declaration(); + } + break; + } + case CONSTANT_T:{ + if (!hasError) { + constant_declaration(); + } + break; + } + case SHARED_T: + case VARIABLE_T:{ + if (!hasError) { + variable_declaration(); + } + break; + } + case FILE_T:{ + if (!hasError) { + file_declaration(); + } + break; + } + case ALIAS_T:{ + if (!hasError) { + alias_declaration(); + } + break; + } + default: + jj_la1[273] = jj_gen; + if (jj_2_122(2147483647)) { + if (!hasError) { + attribute_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{ + if (!hasError) { + attribute_specification(); + } + break; + } + case USE_T:{ + if (!hasError) { + use_clause(); + } + break; + } + default: + jj_la1[274] = jj_gen; + if (jj_2_123(3)) { + if (!hasError) { + group_template_declaration(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{ + if (!hasError) { + group_declaration(); + } + break; + } + default: + jj_la1[275] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } + } + } +} + + +void VhdlParser::protected_type_body_declarative_part() { + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case IS_T: + case PACKAGE_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[276] = jj_gen; + goto end_label_45; + } + if (!hasError) { + protected_type_body_declarative_item(); + } + } + end_label_45: ; + } +} + + +QCString VhdlParser::protected_type_declaration() { + if (!hasError) { + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + try { + if (!hasError) { + protected_type_header(); + } + if (!hasError) { + protected_type_declarative_part(); + } + } catch ( ...) { +outlineParser()->error_skipto(END_T); + } + } + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + identifier(); + } + break; + } + default: + jj_la1[277] = jj_gen; + ; + } + } +return QCString(); +assert(false); +} + + +void VhdlParser::protected_type_header() { + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + generic_clause(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + generic_map_aspect(); + } + break; + } + default: + jj_la1[278] = jj_gen; + ; + } + } + break; + } + default: + jj_la1[279] = jj_gen; + ; + } + } +} + + +void VhdlParser::protected_type_declarative_item() { + if (jj_2_124(2147483647)) { + if (!hasError) { + subprogram_declaration(); + } + } else if (jj_2_125(4)) { + if (!hasError) { + alias_declaration(); } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ + case FUNCTION_T:{ if (!hasError) { - jj_consume_token(LPAREN_T); + subprogram_instantiation_declaration(); } + break; + } + case ATTRIBUTE_T:{ if (!hasError) { - s1 = expression(); + attribute_specification(); } + break; + } + case PRIVATE_T:{ if (!hasError) { - jj_consume_token(RPAREN_T); + private_variable_declaration(); } + break; + } + case USE_T:{ if (!hasError) { -s+="(";s+=s1;s+=")"; + use_clause(); } break; } default: - jj_la1[186] = jj_gen; + jj_la1[280] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } +} + + +void VhdlParser::protected_type_declarative_part() { + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case FUNCTION_T: + case IMPURE_T: + case PRIVATE_T: + case PROCEDURE_T: + case PURE_T: + case USE_T:{ + ; + break; + } + default: + jj_la1[281] = jj_gen; + goto end_label_46; + } + if (!hasError) { + protected_type_declarative_item(); + } + } + end_label_46: ; } +} + + +QCString VhdlParser::qualified_expression() {QCString s,s1;Token *tok=0; + if (jj_2_127(4)) { + if (!hasError) { + s1 = identifier(); + } + if (!hasError) { + jj_consume_token(CHARACTER_LITERAL); + } + if (!hasError) { + tok = jj_consume_token(LETTER_OR_DIGIT); + } + if (!hasError) { + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +return s1+"'('"+QCString(tok->image)+"')"; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + s1 = identifier(); + } + if (!hasError) { + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { +s=s1+"'"; + } + if (!hasError) { + if (jj_2_126(2147483647)) { + if (!hasError) { + s1 = aggregate(); + } + if (!hasError) { +s+=s1; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + s1 = expression(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +s+="(";s+=s1;s+=")"; + } + break; + } + default: + jj_la1[282] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + if (!hasError) { return s; + } + break; + } + default: + jj_la1[283] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } assert(false); } QCString VhdlParser::range() {QCString s,s1,s2; - if (jj_2_80(2147483647)) { + if (jj_2_128(2147483647)) { if (!hasError) { s = simple_expression(); } @@ -7068,7 +10436,7 @@ QCString VhdlParser::range() {QCString s,s1,s2; if (!hasError) { return s+" "+s1+" "+s2; } - } else if (jj_2_81(2147483647)) { + } else if (jj_2_129(2147483647)) { if (!hasError) { s = attribute_name(); } @@ -7101,9 +10469,6 @@ void VhdlParser::record_type_definition() { } if (!hasError) { while (!hasError) { - if (!hasError) { - element_declaration(); - } switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case SLSL_T: case STRINGLITERAL: @@ -7113,11 +10478,14 @@ void VhdlParser::record_type_definition() { break; } default: - jj_la1[187] = jj_gen; - goto end_label_34; + jj_la1[284] = jj_gen; + goto end_label_47; + } + if (!hasError) { + element_declaration(); } } - end_label_34: ; + end_label_47: ; } if (!hasError) { jj_consume_token(END_T); @@ -7137,7 +10505,140 @@ void VhdlParser::record_type_definition() { break; } default: - jj_la1[188] = jj_gen; + jj_la1[285] = jj_gen; + ; + } + } +} + + +void VhdlParser::record_constraint() { + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + record_element_constraint(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[286] = jj_gen; + goto end_label_48; + } + if (!hasError) { + jj_consume_token(COMMA_T); + } + if (!hasError) { + record_element_constraint(); + } + } + end_label_48: ; + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } +} + + +void VhdlParser::record_element_constraint() { + if (!hasError) { + identifier(); + } + if (!hasError) { + element_constraint(); + } +} + + +void VhdlParser::record_element_list() { + if (!hasError) { + identifier(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[287] = jj_gen; + goto end_label_49; + } + if (!hasError) { + jj_consume_token(COMMA_T); + } + if (!hasError) { + identifier(); + } + } + end_label_49: ; + } +} + + +void VhdlParser::record_element_resolution() { + if (!hasError) { + identifier(); + } + if (!hasError) { + resolution_indication(); + } +} + + +void VhdlParser::record_resolution() { + if (!hasError) { + record_element_resolution(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[288] = jj_gen; + goto end_label_50; + } + if (!hasError) { + jj_consume_token(COMMA_T); + } + if (!hasError) { + record_element_resolution(); + } + } + end_label_50: ; + } +} + + +void VhdlParser::record_mode_view_indication() { + if (!hasError) { + jj_consume_token(VIEW_T); + } + if (!hasError) { + name(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case OF_T:{ + if (!hasError) { + jj_consume_token(OF_T); + } + if (!hasError) { + subtype_indication(); + } + break; + } + default: + jj_la1[289] = jj_gen; ; } } @@ -7171,15 +10672,65 @@ QCString VhdlParser::relation() {QCString s,s1,s2; break; } default: - jj_la1[189] = jj_gen; + jj_la1[290] = jj_gen; + ; + } + } +return s+s1+s2; +assert(false); +} + + +QCString VhdlParser::relative_pathname() {QCString s,s1,s2; + if (!hasError) { + s = neg_list(); + } + if (!hasError) { + if (jj_2_130(2147483647)) { + if (!hasError) { + s1 = pathname_element_list(); + } + } else { ; } } + if (!hasError) { + s2 = identifier(); + } return s+s1+s2; assert(false); } +QCString VhdlParser::neg_list() {QCString s; + if (!hasError) { + while (!hasError) { + if (!hasError) { + jj_consume_token(NEG_T); + } + if (!hasError) { + jj_consume_token(DOT_T); + } + if (!hasError) { +s+="^."; + } + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case NEG_T:{ + ; + break; + } + default: + jj_la1[291] = jj_gen; + goto end_label_51; + } + } + end_label_51: ; + } +return s; +assert(false); +} + + QCString VhdlParser::relation_operator() { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case LT_T:{ @@ -7291,7 +10842,7 @@ return "?/="; break; } default: - jj_la1[190] = jj_gen; + jj_la1[292] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7313,7 +10864,7 @@ QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2 break; } default: - jj_la1[191] = jj_gen; + jj_la1[293] = jj_gen; ; } } @@ -7335,7 +10886,7 @@ QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2 break; } default: - jj_la1[192] = jj_gen; + jj_la1[294] = jj_gen; ; } } @@ -7350,7 +10901,74 @@ assert(false); } +QCString VhdlParser::resolution_indication() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + s = identifier(); + } + if (!hasError) { +return s; + } + break; + } + case LPAREN_T:{ + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + s = expression(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +return "("+s+")"; + } + break; + } + default: + jj_la1[295] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); +} + + QCString VhdlParser::return_statement() {QCString s,s1; + if (jj_2_131(2147483647)) { + if (!hasError) { + s = plain_return_statement(); + } + if (!hasError) { +return s; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case RETURN_T: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + s = value_return_statement(); + } + if (!hasError) { +return s; + } + break; + } + default: + jj_la1[296] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + +QCString VhdlParser::plain_return_statement() {QCString s,s1; if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case BASIC_IDENTIFIER: @@ -7361,55 +10979,68 @@ QCString VhdlParser::return_statement() {QCString s,s1; if (!hasError) { jj_consume_token(COLON_T); } + break; + } + default: + jj_la1[297] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(RETURN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + if (!hasError) { + jj_consume_token(WHEN_T); + } if (!hasError) { -s+=":"; + condition(); } break; } default: - jj_la1[193] = jj_gen; + jj_la1[298] = jj_gen; ; } } if (!hasError) { - jj_consume_token(RETURN_T); + jj_consume_token(SEMI_T); } +return s; +assert(false); +} + + +QCString VhdlParser::value_return_statement() {QCString s,s1; if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ABS_T: - case AND_T: - case NAND_T: - case NEW_T: - case NOR_T: - case NOT_T: - case NULL_T: - case OR_T: - case XOR_T: - case XNOR_T: - case LPAREN_T: - case PLUS_T: - case MINUS_T: - case SLSL_T: - case QQ_T: - case INTEGER: - case STRINGLITERAL: case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ + case EXTENDED_CHARACTER:{ if (!hasError) { - s1 = expression(); + s = identifier(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + if (!hasError) { +s+=":"; } break; } default: - jj_la1[194] = jj_gen; + jj_la1[299] = jj_gen; ; } } if (!hasError) { + jj_consume_token(RETURN_T); + } + if (!hasError) { + s1 = conditional_or_unaffected_expression(); + } + if (!hasError) { jj_consume_token(SEMI_T); } return s+" return "+s1+";"; @@ -7418,7 +11049,7 @@ assert(false); QCString VhdlParser::scalar_type_definition() {QCString s,s1; - if (jj_2_82(2147483647)) { + if (jj_2_132(2147483647)) { if (!hasError) { s = enumeration_type_definition(); } @@ -7440,7 +11071,7 @@ return s; break; } default: - jj_la1[195] = jj_gen; + jj_la1[300] = jj_gen; ; } } @@ -7450,7 +11081,7 @@ return s+" "+s1; break; } default: - jj_la1[196] = jj_gen; + jj_la1[301] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7459,6 +11090,13 @@ assert(false); } +void VhdlParser::scalar_incomplete_type_definition() { + if (!hasError) { + jj_consume_token(BOX_T); + } +} + + void VhdlParser::secondary_unit() { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ARCHITECTURE_T:{ @@ -7474,7 +11112,7 @@ void VhdlParser::secondary_unit() { break; } default: - jj_la1[197] = jj_gen; + jj_la1[302] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7494,7 +11132,7 @@ QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;Token *t1=0; if (!hasError) { jj_consume_token(SEMI_T); } -outlineParser()->addVhdlType(s.data(),t1->beginLine,Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,s1.data(),Public); +outlineParser()->addVhdlType(s.data(),t1->beginLine,Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,s1.data(),Protection::Public); return s+"="+s1; assert(false); } @@ -7561,8 +11199,8 @@ void VhdlParser::selected_waveforms() { break; } default: - jj_la1[198] = jj_gen; - goto end_label_35; + jj_la1[303] = jj_gen; + goto end_label_52; } if (!hasError) { jj_consume_token(COMMA_T); @@ -7577,7 +11215,7 @@ void VhdlParser::selected_waveforms() { choices(); } } - end_label_35: ; + end_label_52: ; } } @@ -7595,6 +11233,315 @@ assert(false); } +void VhdlParser::selected_signal_assignment_wave() { + if (jj_2_133(2147483647)) { + if (!hasError) { + selected_force_assignment(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WITH_T:{ + if (!hasError) { + selected_waveform_assignment(); + } + break; + } + default: + jj_la1[304] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +} + + +void VhdlParser::selected_variable_assignment() { + if (!hasError) { + jj_consume_token(WITH_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(SELECT_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{ + if (!hasError) { + jj_consume_token(Q_T); + } + break; + } + default: + jj_la1[305] = jj_gen; + ; + } + } + if (!hasError) { + select_name(); + } + if (!hasError) { + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + sel_var_list(); + } +} + + +void VhdlParser::select_name() { + if (jj_2_134(2147483647)) { + if (!hasError) { + aggregate(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + name(); + } + break; + } + default: + jj_la1[306] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +} + + +void VhdlParser::selected_waveform_assignment() { + if (!hasError) { + jj_consume_token(WITH_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(SELECT_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{ + if (!hasError) { + jj_consume_token(Q_T); + } + break; + } + default: + jj_la1[307] = jj_gen; + ; + } + } + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{ + if (!hasError) { + delay_mechanism(); + } + break; + } + default: + jj_la1[308] = jj_gen; + ; + } + } + if (!hasError) { + sel_wave_list(); + } +} + + +void VhdlParser::selected_force_assignment() { + if (!hasError) { + jj_consume_token(WITH_T); + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(SELECT_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{ + if (!hasError) { + jj_consume_token(Q_T); + } + break; + } + default: + jj_la1[309] = jj_gen; + ; + } + } + if (!hasError) { + target(); + } + if (!hasError) { + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + jj_consume_token(FORCE_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T: + case OUT_T:{ + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T:{ + if (!hasError) { + jj_consume_token(IN_T); + } + break; + } + case OUT_T:{ + if (!hasError) { + jj_consume_token(OUT_T); + } + break; + } + default: + jj_la1[310] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + break; + } + default: + jj_la1[311] = jj_gen; + ; + } + } + if (!hasError) { + sel_var_list(); + } +} + + +void VhdlParser::sel_var_list() { + if (!hasError) { + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + choices(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + if (!hasError) { + jj_consume_token(COMMA_T); + } + break; + } + case SEMI_T:{ + if (!hasError) { + jj_consume_token(SEMI_T); + } + break; + } + default: + jj_la1[312] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + if (!hasError) { + while (!hasError) { + if (jj_2_135(2147483647)) { + ; + } else { + goto end_label_53; + } + if (!hasError) { + expression(); + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + choices(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + if (!hasError) { + jj_consume_token(COMMA_T); + } + break; + } + case SEMI_T:{ + if (!hasError) { + jj_consume_token(SEMI_T); + } + break; + } + default: + jj_la1[313] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + end_label_53: ; + } +} + + +void VhdlParser::sel_wave_list() { + if (!hasError) { + waveform_element(); + } + if (!hasError) { + jj_consume_token(WHEN_T); + } + if (!hasError) { + choices(); + } + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[314] = jj_gen; + goto end_label_54; + } + if (!hasError) { + jj_consume_token(COMMA_T); + } + if (!hasError) { + sel_wave_list(); + } + } + end_label_54: ; + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +} + + QCString VhdlParser::sensitivity_list() {QCString s,s1;Token* tok=0; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ALL_T:{ @@ -7621,8 +11568,8 @@ if(tok) return "all" ; break; } default: - jj_la1[199] = jj_gen; - goto end_label_36; + jj_la1[315] = jj_gen; + goto end_label_55; } if (!hasError) { jj_consume_token(COMMA_T); @@ -7634,7 +11581,7 @@ if(tok) return "all" ; s+=",";s+=s1; } } - end_label_36: ; + end_label_55: ; } if (!hasError) { return s; @@ -7642,7 +11589,7 @@ return s; break; } default: - jj_la1[200] = jj_gen; + jj_la1[316] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7650,13 +11597,13 @@ assert(false); } -QCString VhdlParser::sequence_of_statement() {QCString s,s1; +QCString VhdlParser::sequence_of_statements() {QCString s,s1; if (!hasError) { while (!hasError) { - if (jj_2_83(3)) { + if (jj_2_136(3)) { ; } else { - goto end_label_37; + goto end_label_56; } if (!hasError) { s1 = sequential_statement(); @@ -7665,7 +11612,7 @@ QCString VhdlParser::sequence_of_statement() {QCString s,s1; s+=s1; } } - end_label_37: ; + end_label_56: ; } return s; assert(false); @@ -7673,90 +11620,97 @@ assert(false); QCString VhdlParser::sequential_statement() {QCString s; - if (jj_2_84(2147483647)) { + if (jj_2_137(2147483647)) { if (!hasError) { s = signal_assignment_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; } - } else if (jj_2_85(3)) { + } else if (jj_2_138(3)) { if (!hasError) { s = assertion_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; } - } else if (jj_2_86(3)) { + } else if (jj_2_139(3)) { if (!hasError) { s = report_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; } - } else if (jj_2_87(3)) { + } else if (jj_2_140(3)) { if (!hasError) { s = wait_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; } - } else if (jj_2_88(2147483647)) { + } else if (jj_2_141(2147483647)) { if (!hasError) { s = variable_assignment_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; } - } else if (jj_2_89(3)) { + } else if (jj_2_142(3)) { if (!hasError) { s = procedure_call_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; } - } else if (jj_2_90(3)) { + } else if (jj_2_143(3)) { if (!hasError) { if_statement(); } if (!hasError) { return s; } - } else if (jj_2_91(3)) { + } else if (jj_2_144(3)) { if (!hasError) { case_statement(); } if (!hasError) { return s; } - } else if (jj_2_92(3)) { + } else if (jj_2_145(3)) { if (!hasError) { loop_statement(); } if (!hasError) { return s; } - } else if (jj_2_93(3)) { + } else if (jj_2_146(3)) { if (!hasError) { s = next_statement(); } if (!hasError) { return s; } - } else if (jj_2_94(3)) { + } else if (jj_2_147(3)) { if (!hasError) { s = exit_statement(); } if (!hasError) { return s; } - } else if (jj_2_95(3)) { + } else if (jj_2_148(3)) { if (!hasError) { s = return_statement(); } if (!hasError) { FlowChart::addFlowChart(FlowChart::RETURN_NO,s,QCString());return s; } + } else if (jj_2_149(3)) { + if (!hasError) { + sequential_bock_statement(); + } + if (!hasError) { +return ""; + } } else { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case NULL_T: @@ -7771,7 +11725,179 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s,QCString());return s; break; } default: - jj_la1[201] = jj_gen; + jj_la1[317] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); +} + + +QCString VhdlParser::sequential_bock_statement() {QCString s,s1,s2; + if (jj_2_150(6)) { + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + label(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + break; + } + default: + jj_la1[318] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(BLOCK_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{ + if (!hasError) { + jj_consume_token(IS_T); + } + break; + } + default: + jj_la1[319] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(BEGIN_T); + } + if (!hasError) { + sequential_block_statement_part(); + } + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BLOCK_T:{ + if (!hasError) { + jj_consume_token(BLOCK_T); + } + break; + } + default: + jj_la1[320] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + label(); + } + break; + } + default: + jj_la1[321] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } + if (!hasError) { +return ""; + } + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BLOCK_T: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + label(); + } + if (!hasError) { + jj_consume_token(COLON_T); + } + break; + } + default: + jj_la1[322] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(BLOCK_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{ + if (!hasError) { + jj_consume_token(IS_T); + } + break; + } + default: + jj_la1[323] = jj_gen; + ; + } + } + if (!hasError) { + sequential_block_declarative_part(); + } + if (!hasError) { + jj_consume_token(BEGIN_T); + } + if (!hasError) { + sequential_block_statement_part(); + } + if (!hasError) { + jj_consume_token(END_T); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BLOCK_T:{ + if (!hasError) { + jj_consume_token(BLOCK_T); + } + break; + } + default: + jj_la1[324] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + if (!hasError) { + label(); + } + break; + } + default: + jj_la1[325] = jj_gen; + ; + } + } + if (!hasError) { + jj_consume_token(SEMI_T); + } + if (!hasError) { +return ""; + } + break; + } + default: + jj_la1[326] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7780,6 +11906,135 @@ assert(false); } +QCString VhdlParser::sequential_block_declarative_part() {QCString s,s1,s2; + if (!hasError) { + process_declarative_part(); + } +return ""; +assert(false); +} + + +QCString VhdlParser::sequential_block_statement_part() {QCString s,s1,s2; + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case BLOCK_T: + case CASE_T: + case EXIT_T: + case FOR_T: + case IF_T: + case LOOP_T: + case NEXT_T: + case NULL_T: + case REPORT_T: + case RETURN_T: + case WAIT_T: + case WHILE_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[327] = jj_gen; + goto end_label_57; + } + if (!hasError) { + sequential_statement(); + } + } + end_label_57: ; + } +return ""; +assert(false); +} + + +QCString VhdlParser::sequential_statement_body() {QCString s,s1,s2; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case BEGIN_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case IS_T: + case PACKAGE_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + if (!hasError) { + sequential_statement_declarative_part(); + } + if (!hasError) { + jj_consume_token(BEGIN_T); + } + break; + } + default: + jj_la1[328] = jj_gen; + ; + } + } + if (!hasError) { + sequence_of_statements(); + } +return ""; +assert(false); +} + + +QCString VhdlParser::sequential_statement_declarative_part() {QCString s,s1,s2; + if (!hasError) { + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case IS_T: + case PACKAGE_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[329] = jj_gen; + goto end_label_58; + } + if (!hasError) { + process_declarative_item(); + } + } + end_label_58: ; + } +return ""; +assert(false); +} + + QCString VhdlParser::shift_expression() {QCString s,s1,s2; if (!hasError) { s = simple_expression(); @@ -7801,7 +12056,7 @@ QCString VhdlParser::shift_expression() {QCString s,s1,s2; break; } default: - jj_la1[202] = jj_gen; + jj_la1[330] = jj_gen; ; } } @@ -7867,7 +12122,7 @@ return "ror"; break; } default: - jj_la1[203] = jj_gen; + jj_la1[331] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7896,7 +12151,7 @@ return "-"; break; } default: - jj_la1[204] = jj_gen; + jj_la1[332] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7905,14 +12160,14 @@ assert(false); QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3; - if (jj_2_97(2147483647)) { + if (jj_2_152(2147483647)) { if (!hasError) { conditional_signal_assignment_wave(); } if (!hasError) { return QCString(); } - } else if (jj_2_98(2147483647)) { + } else if (jj_2_153(2147483647)) { if (!hasError) { selected_signal_assignment_wave(); } @@ -7927,7 +12182,7 @@ return QCString(); case BASIC_IDENTIFIER: case EXTENDED_CHARACTER:{ if (!hasError) { - if (jj_2_96(2)) { + if (jj_2_151(2)) { if (!hasError) { s = identifier(); } @@ -7958,7 +12213,7 @@ s+=":"; break; } default: - jj_la1[205] = jj_gen; + jj_la1[333] = jj_gen; ; } } @@ -7974,7 +12229,7 @@ return s+s1+"<="+s2+s3+";"; break; } default: - jj_la1[206] = jj_gen; + jj_la1[334] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -7983,13 +12238,6 @@ assert(false); } -void VhdlParser::semi() { - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4; if (!hasError) { jj_consume_token(SIGNAL_T); @@ -8013,7 +12261,7 @@ void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4; break; } default: - jj_la1[207] = jj_gen; + jj_la1[335] = jj_gen; ; } } @@ -8029,7 +12277,7 @@ void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4; break; } default: - jj_la1[208] = jj_gen; + jj_la1[336] = jj_gen; ; } } @@ -8039,7 +12287,7 @@ void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4; if(tok) s3.prepend(":="); s4=s1+s2+s3; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Protection::Public); } @@ -8064,7 +12312,7 @@ return "bus"; break; } default: - jj_la1[209] = jj_gen; + jj_la1[337] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8089,8 +12337,8 @@ QCString VhdlParser::signal_list() {QCString s,s1; break; } default: - jj_la1[210] = jj_gen; - goto end_label_38; + jj_la1[338] = jj_gen; + goto end_label_59; } if (!hasError) { jj_consume_token(COMMA_T); @@ -8102,7 +12350,7 @@ QCString VhdlParser::signal_list() {QCString s,s1; s+=",";s+=s1; } } - end_label_38: ; + end_label_59: ; } break; } @@ -8125,7 +12373,7 @@ return "all"; break; } default: - jj_la1[211] = jj_gen; + jj_la1[339] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8133,6 +12381,63 @@ assert(false); } +QCString VhdlParser::simple_mode_indication() {QCString s,s1; + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUFFER_T: + case IN_T: + case INOUT_T: + case LINKAGE_T: + case OUT_T:{ + if (!hasError) { + mode(); + } + break; + } + default: + jj_la1[340] = jj_gen; + ; + } + } + if (!hasError) { + subtype_indication(); + } + if (!hasError) { + interface_type_indication(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUS_T:{ + if (!hasError) { + jj_consume_token(BUS_T); + } + break; + } + default: + jj_la1[341] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{ + if (!hasError) { + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + expression(); + } + break; + } + default: + jj_la1[342] = jj_gen; + ; + } + } +assert(false); +} + + QCString VhdlParser::signature() {QCString s,s1,s2; if (!hasError) { jj_consume_token(LBRACKET_T); @@ -8154,8 +12459,8 @@ QCString VhdlParser::signature() {QCString s,s1,s2; break; } default: - jj_la1[212] = jj_gen; - goto end_label_39; + jj_la1[343] = jj_gen; + goto end_label_60; } if (!hasError) { jj_consume_token(COMMA_T); @@ -8167,12 +12472,12 @@ QCString VhdlParser::signature() {QCString s,s1,s2; s+=",";s+=s1; } } - end_label_39: ; + end_label_60: ; } break; } default: - jj_la1[213] = jj_gen; + jj_la1[344] = jj_gen; ; } } @@ -8191,7 +12496,7 @@ s+="return ";s+=s1; break; } default: - jj_la1[214] = jj_gen; + jj_la1[345] = jj_gen; ; } } @@ -8214,34 +12519,34 @@ QCString VhdlParser::simple_expression() {QCString s,s1,s2; break; } default: - jj_la1[215] = jj_gen; + jj_la1[346] = jj_gen; ; } } if (!hasError) { - s1 = term(); + s1 = simpleTerm(); } if (!hasError) { s+=s1; } if (!hasError) { while (!hasError) { - if (jj_2_99(2147483647)) { + if (jj_2_154(2147483647)) { ; } else { - goto end_label_40; + goto end_label_61; } if (!hasError) { s1 = adding_operator(); } if (!hasError) { - s2 = term(); + s2 = simpleTerm(); } if (!hasError) { s+=s1;s+=s2; } } - end_label_40: ; + end_label_61: ; } return s; assert(false); @@ -8287,8 +12592,7 @@ void VhdlParser::subprogram_body() {QCString s; jj_consume_token(IS_T); } if (!hasError) { - //try{ - s = subprogram_declarative_part(); + s = subprogram_declarative_part(); } if (!hasError) { if (s.data()) @@ -8316,7 +12620,7 @@ if (s.data()) break; } default: - jj_la1[216] = jj_gen; + jj_la1[347] = jj_gen; ; } } @@ -8331,7 +12635,7 @@ if (s.data()) break; } default: - jj_la1[217] = jj_gen; + jj_la1[348] = jj_gen; ; } } @@ -8345,7 +12649,7 @@ m_sharedState->tempEntry->endBodyLine=outlineParser()->getLine(END_T); void VhdlParser::subprogram_declaration() { - if (jj_2_100(2147483647)) { + if (jj_2_155(2147483647)) { if (!hasError) { subprogram_instantiation_declaration(); } @@ -8367,7 +12671,7 @@ m_sharedState->currP=0; break; } default: - jj_la1[218] = jj_gen; + jj_la1[349] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8390,7 +12694,7 @@ void VhdlParser::subprogram_1() { break; } default: - jj_la1[219] = jj_gen; + jj_la1[350] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8476,8 +12780,8 @@ return s; break; } default: - jj_la1[220] = jj_gen; - if (jj_2_101(2147483647)) { + jj_la1[351] = jj_gen; + if (jj_2_156(2147483647)) { if (!hasError) { s = attribute_declaration(); } @@ -8505,8 +12809,8 @@ return s; break; } default: - jj_la1[221] = jj_gen; - if (jj_2_102(3)) { + jj_la1[352] = jj_gen; + if (jj_2_157(3)) { if (!hasError) { s = group_template_declaration(); } @@ -8525,7 +12829,7 @@ return s; break; } default: - jj_la1[222] = jj_gen; + jj_la1[353] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8560,8 +12864,8 @@ QCString VhdlParser::subprogram_declarative_part() {QCString s,s1; break; } default: - jj_la1[223] = jj_gen; - goto end_label_41; + jj_la1[354] = jj_gen; + goto end_label_62; } if (!hasError) { s1 = subprogram_declarative_item(); @@ -8570,7 +12874,7 @@ QCString VhdlParser::subprogram_declarative_part() {QCString s,s1; s+=s1; } } - end_label_41: ; + end_label_62: ; } return s; assert(false); @@ -8592,13 +12896,44 @@ void VhdlParser::subprogram_kind() { break; } default: - jj_la1[224] = jj_gen; + jj_la1[355] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } +void VhdlParser::subprogram_header() { + if (!hasError) { + jj_consume_token(GENERIC_T); + } + if (!hasError) { +m_sharedState->parse_sec=GEN_SEC; + } + if (!hasError) { + jj_consume_token(LPAREN_T); + } + if (!hasError) { + generic_list(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + if (!hasError) { +m_sharedState->parse_sec=0; + } + if (!hasError) { + if (jj_2_158(2)) { + if (!hasError) { + generic_map_aspect(); + } + } else { + ; + } + } +} + + void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case PROCEDURE_T:{ @@ -8610,7 +12945,7 @@ void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t; } if (!hasError) { m_sharedState->currP=VhdlDocGen::PROCEDURE; - outlineParser()->createFunction(s.data(),m_sharedState->currP,0); + outlineParser()->createFunction(s,m_sharedState->currP,0); m_sharedState->tempEntry=m_sharedState->current; m_sharedState->current->startLine=outlineParser()->getLine(PROCEDURE_T); m_sharedState->current->bodyLine=outlineParser()->getLine(PROCEDURE_T); @@ -8636,12 +12971,12 @@ m_sharedState->param_sec=0; break; } default: - jj_la1[225] = jj_gen; + jj_la1[356] = jj_gen; ; } } if (!hasError) { - if (jj_2_103(2)) { + if (jj_2_159(2)) { if (!hasError) { gen_interface_list(); } @@ -8650,7 +12985,7 @@ m_sharedState->param_sec=0; } } if (!hasError) { - if (jj_2_104(2)) { + if (jj_2_160(2)) { if (!hasError) { gen_assoc_list(); } @@ -8688,7 +13023,7 @@ outlineParser()->newEntry(); break; } default: - jj_la1[226] = jj_gen; + jj_la1[357] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8696,7 +13031,7 @@ outlineParser()->newEntry(); break; } default: - jj_la1[227] = jj_gen; + jj_la1[358] = jj_gen; ; } } @@ -8704,22 +13039,52 @@ outlineParser()->newEntry(); t = jj_consume_token(FUNCTION_T); } if (!hasError) { +m_sharedState->currP=VhdlDocGen::FUNCTION; + } + if (!hasError) { s = designator(); } if (!hasError) { -m_sharedState->currP=VhdlDocGen::FUNCTION; - if(tok) - outlineParser()->createFunction(tok->image.c_str(),m_sharedState->currP,s.data()); + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + subprogram_header(); + } + break; + } + default: + jj_la1[359] = jj_gen; + ; + } + } + if (!hasError) { +if (tok) + outlineParser()->createFunction(tok->image,m_sharedState->currP,s); else - outlineParser()->createFunction(0,m_sharedState->currP,s.data()); + outlineParser()->createFunction(QCString(),m_sharedState->currP,s); + m_sharedState->tempEntry=m_sharedState->current; m_sharedState->current->startLine=outlineParser()->getLine(FUNCTION_T); m_sharedState->current->bodyLine=outlineParser()->getLine(FUNCTION_T); } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T: case LPAREN_T:{ if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{ + if (!hasError) { + jj_consume_token(PARAMETER_T); + } + break; + } + default: + jj_la1[360] = jj_gen; + ; + } + } + if (!hasError) { m_sharedState->param_sec=PARAM_SEC; } if (!hasError) { @@ -8737,7 +13102,7 @@ m_sharedState->param_sec=0; break; } default: - jj_la1[228] = jj_gen; + jj_la1[361] = jj_gen; ; } } @@ -8745,6 +13110,18 @@ m_sharedState->param_sec=0; jj_consume_token(RETURN_T); } if (!hasError) { + if (jj_2_161(2)) { + if (!hasError) { + identifier(); + } + if (!hasError) { + jj_consume_token(OF_T); + } + } else { + ; + } + } + if (!hasError) { s = type_mark(); } if (!hasError) { @@ -8755,7 +13132,7 @@ m_sharedState->tempEntry=m_sharedState->current; break; } default: - jj_la1[229] = jj_gen; + jj_la1[362] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8767,6 +13144,7 @@ void VhdlParser::subprogram_statement_part() { while (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case ASSERT_T: + case BLOCK_T: case CASE_T: case EXIT_T: case FOR_T: @@ -8788,21 +13166,21 @@ void VhdlParser::subprogram_statement_part() { break; } default: - jj_la1[230] = jj_gen; - goto end_label_42; + jj_la1[363] = jj_gen; + goto end_label_63; } if (!hasError) { sequential_statement(); } } - end_label_42: ; + end_label_63: ; } } -QCString VhdlParser::subtype_declaration() {QCString s,s1; +QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2; if (!hasError) { - jj_consume_token(SUBTYPE_T); + jj_consume_token(FUNCTION_T); } if (!hasError) { s = identifier(); @@ -8811,39 +13189,86 @@ QCString VhdlParser::subtype_declaration() {QCString s,s1; jj_consume_token(IS_T); } if (!hasError) { - s1 = subtype_indication(); + jj_consume_token(NEW_T); + } + if (!hasError) { + s1 = name(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LBRACKET_T:{ + if (!hasError) { + s2 = signature(); + } + break; + } + default: + jj_la1[364] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + gen_assoc_list(); + } + break; + } + default: + jj_la1[365] = jj_gen; + ; + } } if (!hasError) { jj_consume_token(SEMI_T); } -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public); - return " subtype "+s+" is "+s1+";"; +QCString q= " is new "+s1+s2; + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Protection::Public); + return q; assert(false); } -QCString VhdlParser::reslution_indication() {QCString s; +QCString VhdlParser::subtype_declaration() {QCString s,s1; if (!hasError) { - jj_consume_token(LPAREN_T); + jj_consume_token(SUBTYPE_T); } if (!hasError) { - s = expression(); + s = identifier(); } if (!hasError) { - jj_consume_token(RPAREN_T); + jj_consume_token(IS_T); } -return "("+s+")"; + if (!hasError) { + s1 = subtype_indication(); + } + if (!hasError) { + jj_consume_token(SEMI_T); + } +outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Protection::Public); + return " subtype "+s+" is "+s1+";"; assert(false); } QCString VhdlParser::subtype_indication() {QCString s,s1,s2; if (!hasError) { - if (jj_2_105(5)) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{ if (!hasError) { - s = reslution_indication(); + jj_consume_token(LPAREN_T); } - } else { + if (!hasError) { + s = expression(); + } + if (!hasError) { + jj_consume_token(RPAREN_T); + } + break; + } + default: + jj_la1[366] = jj_gen; ; } } @@ -8852,23 +13277,16 @@ QCString VhdlParser::subtype_indication() {QCString s,s1,s2; if (!hasError) { s1 = name(); } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ + if (jj_2_162(2)) { ; - break; - } - default: - jj_la1[231] = jj_gen; - goto end_label_43; + } else { + goto end_label_64; } } - end_label_43: ; + end_label_64: ; } if (!hasError) { - if (jj_2_106(2147483647)) { + if (jj_2_163(2147483647)) { if (!hasError) { s2 = constraint(); } @@ -8882,7 +13300,7 @@ assert(false); QCString VhdlParser::suffix() {QCString s; - if (jj_2_107(2147483647)) { + if (jj_2_164(2147483647)) { if (!hasError) { s = name(); } @@ -8919,7 +13337,7 @@ return " all "; break; } default: - jj_la1[232] = jj_gen; + jj_la1[367] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8952,7 +13370,7 @@ return s; break; } default: - jj_la1[233] = jj_gen; + jj_la1[368] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -8960,16 +13378,16 @@ assert(false); } -QCString VhdlParser::term() {QCString s,s1,s2; +QCString VhdlParser::simpleTerm() {QCString s,s1,s2; if (!hasError) { s = factor(); } if (!hasError) { while (!hasError) { - if (jj_2_108(2)) { + if (jj_2_165(2)) { ; } else { - goto end_label_44; + goto end_label_65; } if (!hasError) { s1 = multiplying_operation(); @@ -8981,7 +13399,7 @@ QCString VhdlParser::term() {QCString s,s1,s2; s+=s1;s+=s2; } } - end_label_44: ; + end_label_65: ; } return s; assert(false); @@ -9019,7 +13437,7 @@ assert(false); QCString VhdlParser::type_declaration() {QCString s; - if (jj_2_109(3)) { + if (jj_2_166(3)) { if (!hasError) { s = full_type_declaration(); } @@ -9038,7 +13456,7 @@ return s; break; } default: - jj_la1[234] = jj_gen; + jj_la1[369] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -9087,9 +13505,18 @@ return s; } break; } + case NEW_T:{ + if (!hasError) { + protected_type_instantiation_definition(); + } + if (!hasError) { +return QCString(); + } + break; + } default: - jj_la1[235] = jj_gen; - if (jj_2_110(2)) { + jj_la1[370] = jj_gen; + if (jj_2_167(2)) { if (!hasError) { protected_type_body(); } @@ -9108,7 +13535,7 @@ return QCString(); break; } default: - jj_la1[236] = jj_gen; + jj_la1[371] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -9118,6 +13545,29 @@ assert(false); } +void VhdlParser::protected_type_instantiation_definition() {QCString s; + if (!hasError) { + jj_consume_token(NEW_T); + } + if (!hasError) { + name(); + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + generic_map_aspect(); + } + break; + } + default: + jj_la1[372] = jj_gen; + ; + } + } +} + + QCString VhdlParser::type_mark() {QCString s; if (!hasError) { s = name(); @@ -9145,8 +13595,8 @@ QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3; break; } default: - jj_la1[237] = jj_gen; - goto end_label_45; + jj_la1[373] = jj_gen; + goto end_label_66; } if (!hasError) { jj_consume_token(COMMA_T); @@ -9158,7 +13608,7 @@ QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3; s3+=",";s3+=s1; } } - end_label_45: ; + end_label_66: ; } if (!hasError) { jj_consume_token(RPAREN_T); @@ -9189,8 +13639,8 @@ QCString VhdlParser::use_clause() {QCString s,s1; break; } default: - jj_la1[238] = jj_gen; - goto end_label_46; + jj_la1[374] = jj_gen; + goto end_label_67; } if (!hasError) { jj_consume_token(COMMA_T); @@ -9202,7 +13652,7 @@ QCString VhdlParser::use_clause() {QCString s,s1; s+=",";s+=s1; } } - end_label_46: ; + end_label_67: ; } if (!hasError) { jj_consume_token(SEMI_T); @@ -9221,7 +13671,7 @@ auto ql1=split(s.str(),","); Entry::VARIABLE_SEC, VhdlDocGen::USE, it.c_str(), - "_use_",Public); + "_use_",Protection::Public); } } } @@ -9239,7 +13689,7 @@ QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2; case BASIC_IDENTIFIER: case EXTENDED_CHARACTER:{ if (!hasError) { - if (jj_2_111(2)) { + if (jj_2_168(2)) { if (!hasError) { s = identifier(); } @@ -9260,7 +13710,7 @@ s+=":"; jj_consume_token(VARASSIGN_T); } if (!hasError) { - s2 = expression(); + s2 = conditional_or_unaffected_expression(); } if (!hasError) { jj_consume_token(SEMI_T); @@ -9280,7 +13730,7 @@ return QCString(); break; } default: - jj_la1[239] = jj_gen; + jj_la1[375] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -9298,7 +13748,7 @@ QCString VhdlParser::variable_declaration() {Token *tok=0;Token *t1=0;QCString s break; } default: - jj_la1[240] = jj_gen; + jj_la1[376] = jj_gen; ; } } @@ -9316,17 +13766,30 @@ QCString VhdlParser::variable_declaration() {Token *tok=0;Token *t1=0;QCString s } if (!hasError) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{ + if (!hasError) { + generic_map_aspect(); + } + break; + } + default: + jj_la1[377] = jj_gen; + ; + } + } + if (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case VARASSIGN_T:{ if (!hasError) { t1 = jj_consume_token(VARASSIGN_T); } if (!hasError) { - s2 = expression(); + s2 = conditional_expression(); } break; } default: - jj_la1[241] = jj_gen; + jj_la1[378] = jj_gen; ; } } @@ -9352,7 +13815,7 @@ int spec; it+=":="; it+=s2; } - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public); + outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Protection::Public); return val; assert(false); } @@ -9372,7 +13835,7 @@ QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0; break; } default: - jj_la1[242] = jj_gen; + jj_la1[379] = jj_gen; ; } } @@ -9388,7 +13851,7 @@ QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0; break; } default: - jj_la1[243] = jj_gen; + jj_la1[380] = jj_gen; ; } } @@ -9401,7 +13864,7 @@ QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0; break; } default: - jj_la1[244] = jj_gen; + jj_la1[381] = jj_gen; ; } } @@ -9414,7 +13877,7 @@ QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0; break; } default: - jj_la1[245] = jj_gen; + jj_la1[382] = jj_gen; ; } } @@ -9463,8 +13926,8 @@ QCString VhdlParser::waveform() {QCString s,s1; break; } default: - jj_la1[246] = jj_gen; - goto end_label_47; + jj_la1[383] = jj_gen; + goto end_label_68; } if (!hasError) { jj_consume_token(COMMA_T); @@ -9476,7 +13939,7 @@ QCString VhdlParser::waveform() {QCString s,s1; s+=","; s+=s1; } } - end_label_47: ; + end_label_68: ; } if (!hasError) { return s; @@ -9493,7 +13956,7 @@ return " unaffected "; break; } default: - jj_la1[247] = jj_gen; + jj_la1[384] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -9520,7 +13983,7 @@ s1.prepend(" after "); break; } default: - jj_la1[248] = jj_gen; + jj_la1[385] = jj_gen; ; } } @@ -9529,1853 +13992,6 @@ assert(false); } -QCString VhdlParser::protected_type_body() { - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - jj_consume_token(BODY_T); - } - if (!hasError) { - protected_type_body_declarative_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - jj_consume_token(BODY_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[249] = jj_gen; - ; - } - } -return QCString(); -assert(false); -} - - -void VhdlParser::protected_type_body_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - case IS_T:{ - if (!hasError) { - subprogram_body(); - } - break; - } - case TYPE_T:{ - if (!hasError) { - type_declaration(); - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - subtype_declaration(); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - default: - jj_la1[250] = jj_gen; - if (jj_2_112(2147483647)) { - if (!hasError) { - attribute_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[251] = jj_gen; - if (jj_2_113(3)) { - if (!hasError) { - group_template_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[252] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } -} - - -void VhdlParser::protected_type_body_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case CONSTANT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case IS_T: - case PROCEDURE_T: - case PURE_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[253] = jj_gen; - goto end_label_48; - } - if (!hasError) { - protected_type_body_declarative_item(); - } - } - end_label_48: ; - } -} - - -QCString VhdlParser::protected_type_declaration() { - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - try { - if (!hasError) { - protected_type_declarative_part(); - } - } catch ( ...) { -outlineParser()->error_skipto(END_T); - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[254] = jj_gen; - ; - } - } -return QCString(); -assert(false); -} - - -void VhdlParser::protected_type_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_specification(); - } - break; - } - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[255] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::protected_type_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T: - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case USE_T:{ - ; - break; - } - default: - jj_la1[256] = jj_gen; - goto end_label_49; - } - if (!hasError) { - protected_type_declarative_item(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - } - end_label_49: ; - } -} - - -QCString VhdlParser::context_ref() {QCString s, s1; - if (!hasError) { - jj_consume_token(CONTEXT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOT_T:{ - ; - break; - } - default: - jj_la1[257] = jj_gen; - goto end_label_50; - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { -s+=".";s+=s1; - } - } - end_label_50: ; - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return "context "+s ; -assert(false); -} - - -void VhdlParser::context_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(CONTEXT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -m_sharedState->parse_sec=CONTEXT_SEC; - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONTEXT_T: - case LIBRARY_T: - case USE_T:{ - ; - break; - } - default: - jj_la1[258] = jj_gen; - goto end_label_51; - } - if (!hasError) { - s1 = libustcont_stats(); - } - } - end_label_51: ; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONTEXT_T:{ - if (!hasError) { - jj_consume_token(CONTEXT_T); - } - break; - } - default: - jj_la1[259] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[260] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->parse_sec=0; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public); -} - - -QCString VhdlParser::libustcont_stats() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case USE_T:{ - if (!hasError) { - s = use_clause(); - } - if (!hasError) { -return s; - } - break; - } - case LIBRARY_T:{ - if (!hasError) { - s = library_clause(); - } - if (!hasError) { -return s; - } - break; - } - case CONTEXT_T:{ - if (!hasError) { - s = context_ref(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[261] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false); -} - - -void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - s2 = signature(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - break; - } - default: - jj_la1[262] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString q=" is new "+s1+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public); -} - - -QCString VhdlParser::interface_package_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - break; - } - default: - jj_la1[263] = jj_gen; - ; - } - } -m_sharedState->current->name=s; - return "package "+s+" is new "+s1; -assert(false); -} - - -QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(FUNCTION_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - s2 = signature(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - break; - } - default: - jj_la1[264] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString q= " is new "+s1+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public); - return q; -assert(false); -} - - -void VhdlParser::gen_assoc_list() { - if (!hasError) { - jj_consume_token(GENERIC_T); - } - if (!hasError) { - jj_consume_token(MAP_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - association_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -} - - -void VhdlParser::gen_interface_list() { - if (!hasError) { - jj_consume_token(GENERIC_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { -//int u=s_str.iLine; - m_sharedState->parse_sec=GEN_SEC; - } - if (!hasError) { - interface_list(); - } - if (!hasError) { -// QCString vo=$3; - m_sharedState->parse_sec=0; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -} - - -void VhdlParser::case_scheme() { - if (!hasError) { - jj_consume_token(CASE_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - when_stats(); - } - if (!hasError) { - if (jj_2_114(3)) { - if (!hasError) { - ttend(); - } - } else { - ; - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - generate_statement_body(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::when_stats() { - if (!hasError) { - while (!hasError) { - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - if (jj_2_115(2)) { - if (!hasError) { - label(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - choices(); - } - if (!hasError) { - jj_consume_token(ARROW_T); - } - if (!hasError) { - generate_statement_body(); - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - ; - break; - } - default: - jj_la1[265] = jj_gen; - goto end_label_52; - } - } - end_label_52: ; - } -} - - -void VhdlParser::ttend() { - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[266] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::generate_statement_body() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case BEGIN_T: - case COMPONENT_T: - case CONSTANT_T: - case DISCONNECT_T: - case FILE_T: - case FOR_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case SIGNAL_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - if (!hasError) { - while (!hasError) { - if (jj_2_116(2147483647)) { - ; - } else { - goto end_label_53; - } - if (!hasError) { - block_declarative_item(); - } - } - end_label_53: ; - } - if (!hasError) { - jj_consume_token(BEGIN_T); - } - break; - } - default: - jj_la1[267] = jj_gen; - ; - } - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case CASE_T: - case POSTPONED_T: - case PROCESS_T: - case WITH_T: - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case VHDL2008TOOLDIR:{ - ; - break; - } - default: - jj_la1[268] = jj_gen; - goto end_label_54; - } - if (!hasError) { - concurrent_statement(); - } - } - end_label_54: ; - } -} - - -void VhdlParser::generate_statement_body1() { - if (!hasError) { - generate_statement_body(); - } - if (!hasError) { - generate_scheme_1(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - if (!hasError) { - generate_scheme_2(); - } - break; - } - default: - jj_la1[269] = jj_gen; - ; - } - } -} - - -void VhdlParser::generate_scheme_1() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSIF_T:{ - ; - break; - } - default: - jj_la1[270] = jj_gen; - goto end_label_55; - } - if (!hasError) { - generate_scheme_3(); - } - } - end_label_55: ; - } -} - - -void VhdlParser::generate_scheme_2() { - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - if (jj_2_117(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - generate_statement_body(); - } -} - - -void VhdlParser::generate_scheme_3() { - if (!hasError) { - jj_consume_token(ELSIF_T); - } - if (!hasError) { - if (jj_2_118(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - generate_statement_body(); - } -} - - -QCString VhdlParser::external_name() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(SLSL_T); - } - if (!hasError) { - s = sig_stat(); - } - if (!hasError) { - s1 = external_pathname(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s2 = subtype_indication(); - } - if (!hasError) { - jj_consume_token(RSRS_T); - } -QCString t="<<"+s; - QCString t1=s1+":"+s2+">>"; - return s+s1; -assert(false); -} - - -QCString VhdlParser::sig_stat() {Token *t; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONSTANT_T:{ - if (!hasError) { - t = jj_consume_token(CONSTANT_T); - } - if (!hasError) { -return QCString(t->image); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - t = jj_consume_token(SIGNAL_T); - } - if (!hasError) { -return QCString(t->image); - } - break; - } - case VARIABLE_T:{ - if (!hasError) { - t = jj_consume_token(VARIABLE_T); - } - if (!hasError) { -return QCString(t->image); - } - break; - } - default: - jj_la1[271] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false); -} - - -QCString VhdlParser::external_pathname() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOT_T:{ - if (!hasError) { - s = absolute_pathname(); - } - if (!hasError) { -return s; - } - break; - } - case NEG_T:{ - if (!hasError) { - s = relative_pathname(); - } - if (!hasError) { -return s; - } - break; - } - case AT_T:{ - if (!hasError) { - s = package_path_name(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[272] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false); -} - - -QCString VhdlParser::absolute_pathname() {QCString s,s1; - if (jj_2_119(2147483647)) { - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s = pathname_element_list(); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { -return "."+s+s1; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOT_T:{ - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return "."+s; - } - break; - } - default: - jj_la1[273] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false); -} - - -QCString VhdlParser::relative_pathname() {QCString s,s1,s2; - if (!hasError) { - s = neg_list(); - } - if (!hasError) { - if (jj_2_120(2147483647)) { - if (!hasError) { - s1 = pathname_element_list(); - } - } else { - ; - } - } - if (!hasError) { - s2 = identifier(); - } -return s+s1+s2; -assert(false); -} - - -QCString VhdlParser::neg_list() {QCString s; - if (!hasError) { - while (!hasError) { - if (!hasError) { - jj_consume_token(NEG_T); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { -s+="^."; - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case NEG_T:{ - ; - break; - } - default: - jj_la1[274] = jj_gen; - goto end_label_56; - } - } - end_label_56: ; - } -return s; -assert(false); -} - - -QCString VhdlParser::pathname_element() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[275] = jj_gen; - ; - } - } -if(!s1.isEmpty()) - return s+"("+s1+")"; - - return s; -assert(false); -} - - -QCString VhdlParser::pathname_element_list() {QCString s,s1,s2; - if (!hasError) { - if (!hasError) { - s = pathname_element(); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - } - if (!hasError) { -s+="."; - } - if (!hasError) { - while (!hasError) { - if (jj_2_121(2147483647)) { - ; - } else { - goto end_label_57; - } - if (!hasError) { - s1 = pathname_element(); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { -s2+=s1;s2+="."; - } - } - end_label_57: ; - } -return s+s2; -assert(false); -} - - -QCString VhdlParser::package_path_name() {QCString s; - if (!hasError) { - jj_consume_token(AT_T); - } - if (!hasError) { - s = name(); - } -return "@"+s; -assert(false); -} - - -void VhdlParser::conditional_signal_assignment_wave() { - if (jj_2_122(2147483647)) { - if (!hasError) { - conditional_force_assignment(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - conditional_waveform_assignment(); - } - break; - } - default: - jj_la1[276] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::conditional_waveform_assignment() { - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INERTIAL_T: - case REJECT_T: - case TRANSPORT_T:{ - if (!hasError) { - delay_mechanism(); - } - break; - } - default: - jj_la1[277] = jj_gen; - ; - } - } - if (!hasError) { - waveform_element(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - if (!hasError) { - else_wave_list(); - } - break; - } - default: - jj_la1[278] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::else_wave_list() { - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - expression(); - } - break; - } - default: - jj_la1[279] = jj_gen; - ; - } - } -} - - -void VhdlParser::conditional_force_assignment() { - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - jj_consume_token(FORCE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T: - case OUT_T:{ - if (!hasError) { - inout_stat(); - } - break; - } - default: - jj_la1[280] = jj_gen; - ; - } - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ABS_T: - case AND_T: - case NAND_T: - case NEW_T: - case NOR_T: - case NOT_T: - case NULL_T: - case OR_T: - case XOR_T: - case XNOR_T: - case LPAREN_T: - case PLUS_T: - case MINUS_T: - case SLSL_T: - case QQ_T: - case INTEGER: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ - if (!hasError) { - expression(); - } - if (!hasError) { - else_stat(); - } - break; - } - default: - jj_la1[281] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::selected_signal_assignment_wave() { - if (jj_2_123(2147483647)) { - if (!hasError) { - selected_force_assignment(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WITH_T:{ - if (!hasError) { - selected_waveform_assignment(); - } - break; - } - default: - jj_la1[282] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::selected_variable_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[283] = jj_gen; - ; - } - } - if (!hasError) { - select_name(); - } - if (!hasError) { - jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - sel_var_list(); - } -} - - -void VhdlParser::select_name() { - if (jj_2_124(2147483647)) { - if (!hasError) { - aggregate(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[284] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::selected_waveform_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[285] = jj_gen; - ; - } - } - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INERTIAL_T: - case REJECT_T: - case TRANSPORT_T:{ - if (!hasError) { - delay_mechanism(); - } - break; - } - default: - jj_la1[286] = jj_gen; - ; - } - } - if (!hasError) { - sel_wave_list(); - } -} - - -void VhdlParser::selected_force_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[287] = jj_gen; - ; - } - } - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - jj_consume_token(FORCE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T: - case OUT_T:{ - if (!hasError) { - inout_stat(); - } - break; - } - default: - jj_la1[288] = jj_gen; - ; - } - } - if (!hasError) { - sel_var_list(); - } -} - - -void VhdlParser::sel_var_list() { - if (!hasError) { - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - if (!hasError) { - jj_consume_token(COMMA_T); - } - break; - } - case SEMI_T:{ - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[289] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - if (!hasError) { - while (!hasError) { - if (jj_2_125(2147483647)) { - ; - } else { - goto end_label_58; - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - if (!hasError) { - jj_consume_token(COMMA_T); - } - break; - } - case SEMI_T:{ - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[290] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - end_label_58: ; - } -} - - -void VhdlParser::sel_wave_list() { - if (!hasError) { - waveform_element(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[291] = jj_gen; - goto end_label_59; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - sel_wave_list(); - } - } - end_label_59: ; - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::inout_stat() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T:{ - if (!hasError) { - jj_consume_token(IN_T); - } - break; - } - case OUT_T:{ - if (!hasError) { - jj_consume_token(OUT_T); - } - break; - } - default: - jj_la1[292] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::else_stat() { - if (!hasError) { - while (!hasError) { - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - expression(); - } - break; - } - default: - jj_la1[293] = jj_gen; - ; - } - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - ; - break; - } - default: - jj_la1[294] = jj_gen; - goto end_label_60; - } - } - end_label_60: ; - } -} - - -QCString VhdlParser::interface_subprogram_declaration() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PROCEDURE_T:{ - if (!hasError) { - s = iproc(); - } - if (!hasError) { -return s; - } - break; - } - case FUNCTION_T: - case IMPURE_T: - case PURE_T:{ - if (!hasError) { - s = ifunc(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[295] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false); -} - - -QCString VhdlParser::iproc() {QCString s,s1; - if (!hasError) { - jj_consume_token(PROCEDURE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - s1 = param(); - } -m_sharedState->current->name=s; - return "procedure "+s+s1; -assert(false); -} - - -QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IMPURE_T: - case PURE_T:{ - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PURE_T:{ - if (!hasError) { - t = jj_consume_token(PURE_T); - } - break; - } - case IMPURE_T:{ - if (!hasError) { - t = jj_consume_token(IMPURE_T); - } - break; - } - default: - jj_la1[296] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - break; - } - default: - jj_la1[297] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(FUNCTION_T); - } - if (!hasError) { - s = name(); - } - if (!hasError) { - s1 = param(); - } - if (!hasError) { - jj_consume_token(RETURN_T); - } - if (!hasError) { - s2 = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T:{ - if (!hasError) { - t1 = jj_consume_token(IS_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s3 = identifier(); - } - break; - } - case BOX_T:{ - if (!hasError) { - t2 = jj_consume_token(BOX_T); - } - break; - } - default: - jj_la1[298] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - break; - } - default: - jj_la1[299] = jj_gen; - ; - } - } -QCString q; - if(t) q=t->image.data(); - if(t2) s3="<>"; - if (!s3.isEmpty()) - { - s3.prepend(" is "); - } - m_sharedState->current->name=s; - if (m_sharedState->parse_sec==GEN_SEC) - { - QCString ss=q+" function "+s1+" return "+s2+s3; - int a=outlineParser()->getLine(FUNCTION_T); - int b=outlineParser()->getLine(PROCEDURE_T); - - if (a>b) b=a; - outlineParser()->addVhdlType(m_sharedState->current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Public); - } - m_sharedState->currP=0;return QCString(); -assert(false); -} - - -QCString VhdlParser::param() {QCString s,s1;Token *tok=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PARAMETER_T:{ - if (!hasError) { - tok = jj_consume_token(PARAMETER_T); - } - break; - } - default: - jj_la1[300] = jj_gen; - ; - } - } - if (!hasError) { -m_sharedState->param_sec=PARAM_SEC; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = interface_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[301] = jj_gen; - ; - } - } -if(tok) - { - s = tok->image.data(); - } - m_sharedState->param_sec=0; - return s+"("+s1+")"; -assert(false); -} - - void VhdlParser::parseInline() { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case POSTPONED_T: @@ -11397,7 +14013,7 @@ void VhdlParser::parseInline() { break; } default: - jj_la1[302] = jj_gen; + jj_la1[386] = jj_gen; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } @@ -11431,7 +14047,7 @@ void VhdlParser::ReInit(TokenManager* tokenManager){ trace = false; jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 303; i++) jj_la1[i] = -1; + for (int i = 0; i < 387; i++) jj_la1[i] = -1; } @@ -11462,7 +14078,7 @@ Token * VhdlParser::jj_consume_token(int kind) { jj_gen++; if (++jj_gc > 100) { jj_gc = 0; - for (int i = 0; i < 125; i++) { + for (int i = 0; i < 168; i++) { JJCalls *c = &jj_2_rtns[i]; while (c != nullptr) { if (c->gen < jj_gen) c->first = nullptr; @@ -11556,7 +14172,7 @@ int VhdlParser::jj_ntk_f(){ void VhdlParser::jj_rescan_token(){ jj_rescan = true; - for (int i = 0; i < 125; i++) { + for (int i = 0; i < 168; i++) { JJCalls *p = &jj_2_rtns[i]; do { if (p->gen > jj_gen) { @@ -11687,6 +14303,49 @@ int VhdlParser::jj_ntk_f(){ case 122: jj_3_123(); break; case 123: jj_3_124(); break; case 124: jj_3_125(); break; + case 125: jj_3_126(); break; + case 126: jj_3_127(); break; + case 127: jj_3_128(); break; + case 128: jj_3_129(); break; + case 129: jj_3_130(); break; + case 130: jj_3_131(); break; + case 131: jj_3_132(); break; + case 132: jj_3_133(); break; + case 133: jj_3_134(); break; + case 134: jj_3_135(); break; + case 135: jj_3_136(); break; + case 136: jj_3_137(); break; + case 137: jj_3_138(); break; + case 138: jj_3_139(); break; + case 139: jj_3_140(); break; + case 140: jj_3_141(); break; + case 141: jj_3_142(); break; + case 142: jj_3_143(); break; + case 143: jj_3_144(); break; + case 144: jj_3_145(); break; + case 145: jj_3_146(); break; + case 146: jj_3_147(); break; + case 147: jj_3_148(); break; + case 148: jj_3_149(); break; + case 149: jj_3_150(); break; + case 150: jj_3_151(); break; + case 151: jj_3_152(); break; + case 152: jj_3_153(); break; + case 153: jj_3_154(); break; + case 154: jj_3_155(); break; + case 155: jj_3_156(); break; + case 156: jj_3_157(); break; + case 157: jj_3_158(); break; + case 158: jj_3_159(); break; + case 159: jj_3_160(); break; + case 160: jj_3_161(); break; + case 161: jj_3_162(); break; + case 162: jj_3_163(); break; + case 163: jj_3_164(); break; + case 164: jj_3_165(); break; + case 165: jj_3_166(); break; + case 166: jj_3_167(); break; + case 167: jj_3_168(); break; } } p = p->next; |