2 #include "./VhdlParser.h"
5 unsigned int jj_la1_0[] = {
6 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,0x90004000,0x400000,0x0,0x90404000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,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,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x10000000,0x0,0x50000000,0x8000,0x0,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,0x90004000,0x400000,0x0,0x0,0x90404000,0x0,0x0,0x0,0x40000000,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x20080000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x20000,0x0,0x0,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,0x8000,0x0,0x0,0x41000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x2000,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x90c04000,0x20080000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
7 unsigned int jj_la1_1[] = {
8 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x125808,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,0x10000,0x1000,0x1000000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x1000,0x0,0x4000000,0x4000000,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,0x0,0x0,0x0,0x81000,0x0,0x0,0x0,0x0,0x0,0x40,0x20,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x800,0x0,0x0,0x0,0x8a00000,0x0,0x0,0x1000,0x1,0x0,0x0,0x1000,0x0,0x0,0x8a00000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x40000,0x400000,0x0,0x0,0x104800,0x20000,0x124800,0x0,0x0,0x10000,0x10000,0x104800,0x8,0x20000,0x0,0x124808,0x0,0x0,0x0,0x100,0x0,0x0,0x104800,0x0,0x20000,0x124800,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x20081200,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,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x1104800,0x0,0x20000,0x1124800,0x0,0x104000,0x104000,0x4000001,0x1,0x0,0x4000001,0x10000,0x10000,0x10000,0x0,0x0,0x125808,0x0,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,};
9 unsigned int jj_la1_2[] = {
10 0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x110000,0x28000,0x0,0x20000000,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x4000,0x0,0x0,0x110000,0x0,0x0,0x110000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x28000,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,0x32,0x100,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x0,0x0,0x0,0x400,0x1000,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,0x1000,0x0,0x0,0x0,0x110000,0x0,0x0,0x1000,0x111000,0x0,0x0,0x2,0x0,0x1000,0x0,0x110000,0x0,0x0,0x110000,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x20000024,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x200000,0x1000,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,0x600000,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x32,0x0,0x0,0x110000,0x0,0x0,0x110000,0x0,0x110000,0x110000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x110000,0x28000,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x800,0x32,0x0,0x0,0x0,0x0,0x1000000,0x0,0x800,0x0,0x0,0x0,0x800,0x0,0x0,0x110000,0x100000,0x100000,0x0,0x0,0x2000,0x0,0x138000,};
11 unsigned int jj_la1_3[] = {
12 0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x188830,0x8000000,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x80000,0x0,0x108830,0x80000,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,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,0x80000,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,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,0x108830,0x80000,0x0,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd000001,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,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,0x8000,0x0,0x0,0x0,0x0,0x8000000,0x20,0x0,0x0,0x0,0x40000,0x0,0x0,0x10000,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x80000,0x80000,0x80000,0x0,0x0,0x80000,0x0,0x0,0x0,0x2000000,0x0,0x188830,0x8000000,0x100010,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x2000000,0x0,0x0,0x8000000,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
13 unsigned int jj_la1_4[] = {
14 0x0,0x0,0x60000,0x30,0x40,0x100,0x0,0x0,0x0,0x0,0x40000,0x0,0x40001,0x0,0x0,0x0,0x0,0x40,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x40001,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,0x40000,0x40000,0x40000,0x40000,0x40000,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x4,0x40001,0x0,0x0,0x40000,0x1,0x0,0x0,0x40000,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x40031,0x0,0x1,0x0,0x0,0x0,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,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x1,0x0,0x0,0x0,0x40001,0x1,0x0,0x40000,0xfc00,0xfc00,0x0,0x0,0x0,0x40031,0x1,0x0,0x40,0x40,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,0x0,0x40001,0x0,0x1,0x0,0x40,0x40,0x40001,0x0,0x80,0x0,0x0,0x0,0x0,0x40,0x40031,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40001,0x0,0xa0000000,0x20000000,0x0,0x1,0x40001,0x0,0x0,0x0,0x0,0x40031,0x0,0x8000000,0x40000,0x8000000,0x0,0x8000000,0x0,0x240,0x240,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x1,0x0,};
15 unsigned int jj_la1_5[] = {
16 0x1420,0x0,0x1c0,0x0,0x0,0x0,0x2,0x3c0,0x0,0x0,0x1c0,0x0,0x200001c0,0x0,0x0,0x0,0x180,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x200001c0,0x180,0x0,0x180,0x0,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,0x3c0,0x3c0,0x1c0,0x1c0,0x3c0,0x380,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x0,0x1e0,0x0,0x180,0x0,0x3c0,0x0,0x180,0x0,0x180,0x0,0x0,0x180,0x0,0x1017e0,0x0,0x0,0x180,0x180,0x0,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,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x1c0,0x0,0x0,0x0,0x180,0x1c0,0x0,0x180,0x1c0,0x0,0x0,0x180,0x0,0x180,0x1017e0,0x0,0x0,0x0,0x0,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,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,0x180,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x200001c0,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,};
18 /** Constructor with user supplied TokenManager. */
23 QCString VhdlParser::abstract_literal() {Token *tok;
24 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
25 case DECIMAL_LITERAL:{if (!hasError) {
27 tok = jj_consume_token(DECIMAL_LITERAL);
31 return tok->image.c_str();
36 case INTEGER:{if (!hasError) {
38 tok = jj_consume_token(INTEGER);
42 return tok->image.c_str();
47 case BASED_LITERAL:{if (!hasError) {
49 tok = jj_consume_token(BASED_LITERAL);
53 return tok->image.c_str();
61 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
67 QCString VhdlParser::access_type_definition() {Token *tok=0;QCString str,str1;if (!hasError) {
69 tok = jj_consume_token(ACCESS_T);
73 str1 = subtype_indication();
76 str=tok->image.c_str(); return str+str1;
81 QCString VhdlParser::actual_designator() {QCString str;Token *t=0;
82 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
83 case OPEN_T:{if (!hasError) {
85 t = jj_consume_token(OPEN_T);
89 return t->image.c_str();
96 if (jj_2_1(2147483647)) {if (!hasError) {
105 } else if (jj_2_2(2147483647)) {if (!hasError) {
115 jj_consume_token(-1);
116 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
123 QCString VhdlParser::actual_parameter_part() {QCString s;if (!hasError) {
125 s = association_list();
133 QCString VhdlParser::actual_part() {QCString s,s1;
134 if (jj_2_3(2147483647)) {if (!hasError) {
136 s = actual_designator();
144 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
145 case BOX_T:{if (!hasError) {
147 jj_consume_token(BOX_T);
158 case BASIC_IDENTIFIER:
159 case EXTENDED_CHARACTER:{if (!hasError) {
165 jj_consume_token(LPAREN_T);
169 s1 = actual_designator();
173 jj_consume_token(RPAREN_T);
177 s+="(";s+=s1+")";return s;
184 jj_consume_token(-1);
185 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
192 QCString VhdlParser::adding_operator() {
193 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
194 case PLUS_T:{if (!hasError) {
196 jj_consume_token(PLUS_T);
205 case MINUS_T:{if (!hasError) {
207 jj_consume_token(MINUS_T);
216 case AMPERSAND_T:{if (!hasError) {
218 jj_consume_token(AMPERSAND_T);
229 jj_consume_token(-1);
230 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
236 QCString VhdlParser::aggregate() {QCString s,s1,s2;if (!hasError) {
238 jj_consume_token(LPAREN_T);
242 s = element_association();
247 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
257 jj_consume_token(COMMA_T);
261 s1 = element_association();
273 jj_consume_token(RPAREN_T);
281 QCString VhdlParser::alias_declaration() {QCString s,s1,s2;if (!hasError) {
283 jj_consume_token(ALIAS_T);
287 s2 = alias_designator();
291 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
292 case COLON_T:{if (!hasError) {
294 jj_consume_token(COLON_T);
302 s1 = subtype_indication();
318 jj_consume_token(IS_T);
334 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
335 case LBRACKET_T:{if (!hasError) {
353 jj_consume_token(SEMI_T);
356 addVhdlType(s2.data(),getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data(),Public);
363 QCString VhdlParser::alias_designator() {Token *tok=0;QCString s;
364 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
365 case BASIC_IDENTIFIER:
366 case EXTENDED_CHARACTER:{if (!hasError) {
377 case CHARACTER_LITERAL:{if (!hasError) {
379 tok = jj_consume_token(CHARACTER_LITERAL);
383 return tok->image.c_str();
388 case STRINGLITERAL:{if (!hasError) {
390 s = operator_symbol();
401 jj_consume_token(-1);
402 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
408 void VhdlParser::allocator() {
409 if (jj_2_4(3)) {if (!hasError) {
411 jj_consume_token(NEW_T);
415 qualified_expression();
419 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
420 case NEW_T:{if (!hasError) {
422 jj_consume_token(NEW_T);
426 subtype_indication();
433 jj_consume_token(-1);
434 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
440 void VhdlParser::architecture_body() {QCString s,s1;if (!hasError) {
442 jj_consume_token(ARCHITECTURE_T);
450 jj_consume_token(OF_T);
458 jj_consume_token(IS_T);
462 QCString t=s1+"::"+s;
464 pushLabel(genLabels,s1);
465 lastCompound=current;
466 addVhdlType(t,getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private);
470 try {if (!hasError) {
472 architecture_declarative_part();
476 error_skipto(BEGIN_T);
481 jj_consume_token(BEGIN_T);
485 architecture_statement_part();
489 jj_consume_token(END_T);
493 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
494 case ARCHITECTURE_T:{if (!hasError) {
496 jj_consume_token(ARCHITECTURE_T);
508 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
511 case BASIC_IDENTIFIER:
512 case EXTENDED_CHARACTER:{if (!hasError) {
526 jj_consume_token(SEMI_T);
529 lastEntity=0;lastCompound=0; genLabels.resize(0);
533 void VhdlParser::architecture_declarative_part() {if (!hasError) {
536 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
563 block_declarative_item();
573 void VhdlParser::architecture_statement_part() {if (!hasError) {
576 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
585 case BASIC_IDENTIFIER:
586 case EXTENDED_CHARACTER:
587 case VHDL2008TOOLDIR:{
596 concurrent_statement();
606 QCString VhdlParser::array_type_definition() {QCString s;
607 if (jj_2_5(2147483647)) {if (!hasError) {
609 s = unconstraint_array_definition();
617 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
618 case ARRAY_T:{if (!hasError) {
620 s = constraint_array_definition();
631 jj_consume_token(-1);
632 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
639 QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) {
641 jj_consume_token(ASSERT_T);
649 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
650 case REPORT_T:{if (!hasError) {
652 t = jj_consume_token(REPORT_T);
668 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
669 case SEVERITY_T:{if (!hasError) {
671 t1 = jj_consume_token(SEVERITY_T);
686 s.prepend("assert ");
687 if(t) s1.prepend(" report ");
688 if(t1) s2.prepend(" report ");
694 QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0;if (!hasError) {
696 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
697 case BASIC_IDENTIFIER:
698 case EXTENDED_CHARACTER:{if (!hasError) {
704 t = jj_consume_token(COLON_T);
720 jj_consume_token(SEMI_T);
729 QCString VhdlParser::association_element() {QCString s,s1;if (!hasError) {
731 if (jj_2_6(2147483647)) {if (!hasError) {
737 jj_consume_token(ARROW_T);
754 QCString VhdlParser::association_list() {QCString s,s1;if (!hasError) {
756 s = association_element();
761 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
771 jj_consume_token(COMMA_T);
775 s1 = association_element();
791 QCString VhdlParser::attribute_declaration() {QCString s,s1;if (!hasError) {
793 jj_consume_token(ATTRIBUTE_T);
801 jj_consume_token(COLON_T);
809 jj_consume_token(SEMI_T);
812 addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public);
813 return " attribute "+s+":"+s1+";";
818 QCString VhdlParser::attribute_designator() {QCString s;Token *tok=0;
819 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
820 case BASIC_IDENTIFIER:
821 case EXTENDED_CHARACTER:{if (!hasError) {
832 case RANGE_T:{if (!hasError) {
834 tok = jj_consume_token(RANGE_T);
838 return tok->image.c_str();
845 jj_consume_token(-1);
846 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
852 QCString VhdlParser::attribute_name() {QCString s,s1;if (!hasError) {
858 jj_consume_token(APOSTROPHE_T);
870 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
871 case LPAREN_T:{if (!hasError) {
873 jj_consume_token(LPAREN_T);
881 jj_consume_token(RPAREN_T);
901 QCString VhdlParser::attribute_specification() {QCString s,s1,s2;if (!hasError) {
903 jj_consume_token(ATTRIBUTE_T);
907 s = attribute_designator();
911 jj_consume_token(OF_T);
915 s1 = entity_specification();
919 jj_consume_token(IS_T);
927 jj_consume_token(SEMI_T);
930 QCString t= s1+" is "+s2;
931 addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public);
932 return " attribute "+s+" of "+s1+ " is "+s2+";";
937 QCString VhdlParser::base() {Token *tok=0;if (!hasError) {
939 tok = jj_consume_token(INTEGER);
942 return tok->image.c_str();
947 QCString VhdlParser::base_specifier() {Token *tok=0;if (!hasError) {
949 tok = jj_consume_token(BASIC_IDENTIFIER);
952 return tok->image.c_str();
957 QCString VhdlParser::base_unit_declaration() {QCString s;if (!hasError) {
967 QCString VhdlParser::based_integer() {Token *tok=0;if (!hasError) {
969 tok = jj_consume_token(BASIC_IDENTIFIER);
972 return tok->image.c_str();
977 QCString VhdlParser::based_literal() {Token *tok=0;if (!hasError) {
979 tok = jj_consume_token(BASED_LITERAL);
982 return tok->image.c_str();
987 QCString VhdlParser::basic_identifier() {Token *tok=0;if (!hasError) {
989 tok = jj_consume_token(BASIC_IDENTIFIER);
992 return tok->image.c_str();
997 void VhdlParser::binding_indication() {if (!hasError) {
999 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1000 case USE_T:{if (!hasError) {
1002 jj_consume_token(USE_T);
1012 jj_la1[20] = jj_gen;
1018 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1019 case GENERIC_T:{if (!hasError) {
1021 generic_map_aspect();
1027 jj_la1[21] = jj_gen;
1033 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1034 case PORT_T:{if (!hasError) {
1042 jj_la1[22] = jj_gen;
1050 QCString VhdlParser::bit_string_literal() {Token *tok=0;if (!hasError) {
1052 tok = jj_consume_token(BIT_STRING_LITERAL);
1055 return tok->image.c_str();
1060 QCString VhdlParser::bit_value() {Token *tok=0;if (!hasError) {
1062 tok = jj_consume_token(BASIC_IDENTIFIER);
1065 return tok->image.c_str();
1070 void VhdlParser::block_configuration() {if (!hasError) {
1072 jj_consume_token(FOR_T);
1076 block_specification();
1081 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1087 jj_la1[23] = jj_gen;
1100 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1106 jj_la1[24] = jj_gen;
1110 configuration_item();
1118 jj_consume_token(END_T);
1122 jj_consume_token(FOR_T);
1126 jj_consume_token(SEMI_T);
1132 void VhdlParser::block_declarative_item() {
1133 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1137 case PURE_T:{if (!hasError) {
1139 subprogram_declaration();
1144 case TYPE_T:{if (!hasError) {
1151 case SUBTYPE_T:{if (!hasError) {
1153 subtype_declaration();
1158 case CONSTANT_T:{if (!hasError) {
1160 constant_declaration();
1165 case SIGNAL_T:{if (!hasError) {
1167 signal_declaration();
1173 case VARIABLE_T:{if (!hasError) {
1175 variable_declaration();
1180 case FILE_T:{if (!hasError) {
1187 case ALIAS_T:{if (!hasError) {
1189 alias_declaration();
1194 case COMPONENT_T:{if (!hasError) {
1196 component_declaration();
1202 jj_la1[25] = jj_gen;
1203 if (jj_2_7(2147483647)) {if (!hasError) {
1205 attribute_declaration();
1209 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1210 case ATTRIBUTE_T:{if (!hasError) {
1212 attribute_specification();
1217 case FOR_T:{if (!hasError) {
1219 configuration_specification();
1224 case DISCONNECT_T:{if (!hasError) {
1226 disconnection_specification();
1231 case USE_T:{if (!hasError) {
1239 jj_la1[26] = jj_gen;
1240 if (jj_2_8(3)) {if (!hasError) {
1242 group_template_declaration();
1246 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1247 case GROUP_T:{if (!hasError) {
1249 group_declaration();
1255 jj_la1[27] = jj_gen;
1256 jj_consume_token(-1);
1257 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
1266 void VhdlParser::block_declarative_part() {if (!hasError) {
1269 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1292 jj_la1[28] = jj_gen;
1296 block_declarative_item();
1306 void VhdlParser::block_header() {if (!hasError) {
1308 if (jj_2_9(2147483647)) {if (!hasError) {
1314 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1315 case GENERIC_T:{if (!hasError) {
1317 generic_map_aspect();
1321 jj_consume_token(SEMI_T);
1327 jj_la1[29] = jj_gen;
1338 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1339 case PORT_T:{if (!hasError) {
1345 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1346 case PORT_T:{if (!hasError) {
1352 jj_consume_token(SEMI_T);
1358 jj_la1[30] = jj_gen;
1366 jj_la1[31] = jj_gen;
1374 void VhdlParser::block_specification() {if (!hasError) {
1380 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1381 case LPAREN_T:{if (!hasError) {
1383 jj_consume_token(LPAREN_T);
1387 index_specification();
1391 jj_consume_token(RPAREN_T);
1397 jj_la1[32] = jj_gen;
1405 void VhdlParser::block_statement() {QCString s;if (!hasError) {
1411 jj_consume_token(COLON_T);
1415 jj_consume_token(BLOCK_T);
1419 pushLabel(genLabels,s);
1423 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1424 case LPAREN_T:{if (!hasError) {
1426 jj_consume_token(LPAREN_T);
1434 jj_consume_token(RPAREN_T);
1440 jj_la1[33] = jj_gen;
1446 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1447 case IS_T:{if (!hasError) {
1449 jj_consume_token(IS_T);
1455 jj_la1[34] = jj_gen;
1465 block_declarative_part();
1469 jj_consume_token(BEGIN_T);
1473 block_statement_part();
1477 jj_consume_token(END_T);
1481 jj_consume_token(BLOCK_T);
1485 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1486 case BASIC_IDENTIFIER:
1487 case EXTENDED_CHARACTER:{if (!hasError) {
1495 jj_la1[35] = jj_gen;
1501 jj_consume_token(SEMI_T);
1504 genLabels=popLabel(genLabels);
1508 void VhdlParser::block_statement_part() {if (!hasError) {
1511 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1520 case BASIC_IDENTIFIER:
1521 case EXTENDED_CHARACTER:
1522 case VHDL2008TOOLDIR:{
1527 jj_la1[36] = jj_gen;
1531 concurrent_statement();
1541 void VhdlParser::case_statement() {QCString s;if (!hasError) {
1543 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1544 case BASIC_IDENTIFIER:
1545 case EXTENDED_CHARACTER:{if (!hasError) {
1551 jj_consume_token(COLON_T);
1557 jj_la1[37] = jj_gen;
1563 jj_consume_token(CASE_T);
1571 QCString ca="case "+s;
1572 FlowChart::addFlowChart(FlowChart::CASE_NO,0,ca);
1576 jj_consume_token(IS_T);
1580 case_statement_alternative();
1585 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1591 jj_la1[38] = jj_gen;
1595 case_statement_alternative();
1603 jj_consume_token(END_T);
1607 jj_consume_token(CASE_T);
1611 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1612 case BASIC_IDENTIFIER:
1613 case EXTENDED_CHARACTER:{if (!hasError) {
1621 jj_la1[39] = jj_gen;
1627 jj_consume_token(SEMI_T);
1630 FlowChart::moveToPrevLevel();
1631 FlowChart::addFlowChart(FlowChart::END_CASE,"end case",0);
1635 void VhdlParser::case_statement_alternative() {QCString s;if (!hasError) {
1637 jj_consume_token(WHEN_T);
1645 jj_consume_token(ARROW_T);
1651 FlowChart::addFlowChart(FlowChart::WHEN_NO,s.data(),t);
1655 sequence_of_statement();
1658 FlowChart::moveToPrevLevel();
1662 QCString VhdlParser::character_literal() {Token *tok=0;if (!hasError) {
1664 tok = jj_consume_token(CHARACTER_LITERAL);
1667 return tok->image.c_str();
1672 QCString VhdlParser::choice() {QCString s;
1673 if (jj_2_10(2147483647)) {if (!hasError) {
1675 s = discrete_range();
1682 } else if (jj_2_11(2147483647)) {if (!hasError) {
1684 s = simple_expression();
1691 } else if (jj_2_12(2147483647)) {if (!hasError) {
1701 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1702 case OTHER_T:{if (!hasError) {
1704 jj_consume_token(OTHER_T);
1714 jj_la1[40] = jj_gen;
1715 jj_consume_token(-1);
1716 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
1723 QCString VhdlParser::choices() {QCString s,s1;if (!hasError) {
1730 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1736 jj_la1[41] = jj_gen;
1740 jj_consume_token(BAR_T);
1760 void VhdlParser::component_configuration() {if (!hasError) {
1762 jj_consume_token(FOR_T);
1766 component_specification();
1770 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1774 case SEMI_T:{if (!hasError) {
1776 binding_indication();
1780 jj_consume_token(SEMI_T);
1786 jj_la1[42] = jj_gen;
1792 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1793 case FOR_T:{if (!hasError) {
1795 block_configuration();
1801 jj_la1[43] = jj_gen;
1807 jj_consume_token(END_T);
1811 jj_consume_token(FOR_T);
1815 jj_consume_token(SEMI_T);
1821 void VhdlParser::component_declaration() {QCString s;if (!hasError) {
1823 jj_consume_token(COMPONENT_T);
1831 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1832 case IS_T:{if (!hasError) {
1834 jj_consume_token(IS_T);
1840 jj_la1[44] = jj_gen;
1846 currP=VhdlDocGen::COMPONENT;
1850 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1851 case GENERIC_T:{if (!hasError) {
1859 jj_la1[45] = jj_gen;
1865 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1866 case PORT_T:{if (!hasError) {
1874 jj_la1[46] = jj_gen;
1880 addVhdlType(s.data(),getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Public);
1885 jj_consume_token(END_T);
1889 jj_consume_token(COMPONENT_T);
1893 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1894 case BASIC_IDENTIFIER:
1895 case EXTENDED_CHARACTER:{if (!hasError) {
1903 jj_la1[47] = jj_gen;
1909 jj_consume_token(SEMI_T);
1915 void VhdlParser::component_instantiation_statement() {QCString s,s1;if (!hasError) {
1921 jj_consume_token(COLON_T);
1925 s1 = instantiation_unit();
1930 if (s1.contains("|")) {
1931 s3=VhdlDocGen::getIndexWord(s1.data(),0);
1932 s1=VhdlDocGen::getIndexWord(s1.data(),1);
1935 addCompInst(s.lower().data(),s1.lower().data(),s3.data(),getLine());
1939 if (jj_2_13(2147483647)) {if (!hasError) {
1941 generic_map_aspect();
1950 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1951 case PORT_T:{if (!hasError) {
1959 jj_la1[48] = jj_gen;
1965 jj_consume_token(SEMI_T);
1971 void VhdlParser::component_specification() {if (!hasError) {
1973 instantiation_list();
1977 jj_consume_token(COLON_T);
1987 QCString VhdlParser::composite_type_definition() {QCString s,s1;
1988 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1989 case ARRAY_T:{if (!hasError) {
1991 s = array_type_definition();
2000 case RECORD_T:{if (!hasError) {
2002 record_type_definition();
2012 jj_la1[49] = jj_gen;
2013 jj_consume_token(-1);
2014 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2020 void VhdlParser::concurrent_assertion_statement() {if (!hasError) {
2022 if (jj_2_14(2)) {if (!hasError) {
2028 jj_consume_token(COLON_T);
2037 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2038 case POSTPONED_T:{if (!hasError) {
2040 jj_consume_token(POSTPONED_T);
2046 jj_la1[50] = jj_gen;
2056 jj_consume_token(SEMI_T);
2062 void VhdlParser::concurrent_procedure_call_statement() {if (!hasError) {
2064 if (jj_2_15(2)) {if (!hasError) {
2070 jj_consume_token(COLON_T);
2079 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2080 case POSTPONED_T:{if (!hasError) {
2082 jj_consume_token(POSTPONED_T);
2088 jj_la1[51] = jj_gen;
2098 jj_consume_token(SEMI_T);
2104 void VhdlParser::concurrent_signal_assignment_statement() {if (!hasError) {
2106 if (jj_2_16(2)) {if (!hasError) {
2112 jj_consume_token(COLON_T);
2121 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2122 case POSTPONED_T:{if (!hasError) {
2124 jj_consume_token(POSTPONED_T);
2130 jj_la1[52] = jj_gen;
2136 if (jj_2_17(2147483647)) {if (!hasError) {
2138 conditional_signal_assignment();
2142 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2143 case WITH_T:{if (!hasError) {
2145 selected_signal_assignment();
2151 jj_la1[53] = jj_gen;
2152 jj_consume_token(-1);
2153 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2161 void VhdlParser::concurrent_statement() {
2162 if (jj_2_18(2147483647)) {if (!hasError) {
2167 } else if (jj_2_19(2147483647)) {if (!hasError) {
2169 process_statement();
2172 } else if (jj_2_20(2147483647)) {if (!hasError) {
2174 generate_statement();
2178 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2179 case CASE_T:{if (!hasError) {
2187 jj_la1[54] = jj_gen;
2188 if (jj_2_21(2147483647)) {if (!hasError) {
2190 concurrent_assertion_statement();
2193 } else if (jj_2_22(2147483647)) {if (!hasError) {
2195 concurrent_signal_assignment_statement();
2198 } else if (jj_2_23(2147483647)) {if (!hasError) {
2200 component_instantiation_statement();
2203 } else if (jj_2_24(2147483647)) {if (!hasError) {
2205 concurrent_procedure_call_statement();
2209 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2210 case VHDL2008TOOLDIR:{if (!hasError) {
2212 jj_consume_token(VHDL2008TOOLDIR);
2218 jj_la1[55] = jj_gen;
2219 jj_consume_token(-1);
2220 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2228 QCString VhdlParser::condition() {QCString s;if (!hasError) {
2238 QCString VhdlParser::condition_clause() {QCString s;if (!hasError) {
2240 jj_consume_token(UNTIL_T);
2252 void VhdlParser::conditional_signal_assignment() {if (!hasError) {
2258 jj_consume_token(LESSTHAN_T);
2266 conditional_waveforms();
2270 jj_consume_token(SEMI_T);
2276 void VhdlParser::conditional_waveforms() {if (!hasError) {
2283 if (jj_2_25(2147483647)) {
2289 jj_consume_token(WHEN_T);
2297 jj_consume_token(ELSE_T);
2309 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2310 case WHEN_T:{if (!hasError) {
2312 jj_consume_token(WHEN_T);
2322 jj_la1[56] = jj_gen;
2330 void VhdlParser::configuration_declaration() {QCString s,s1;if (!hasError) {
2332 jj_consume_token(CONFIGURATION_T);
2340 jj_consume_token(OF_T);
2348 jj_consume_token(IS_T);
2353 addVhdlType(s.data(),getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Public);
2357 configuration_declarative_part();
2361 block_configuration();
2365 jj_consume_token(END_T);
2369 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2370 case CONFIGURATION_T:{if (!hasError) {
2372 jj_consume_token(CONFIGURATION_T);
2378 jj_la1[57] = jj_gen;
2384 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2387 case BASIC_IDENTIFIER:
2388 case EXTENDED_CHARACTER:{if (!hasError) {
2396 jj_la1[58] = jj_gen;
2402 jj_consume_token(SEMI_T);
2405 genLabels.resize(0); confName="";
2409 void VhdlParser::configuration_declarative_item() {
2410 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2411 case USE_T:{if (!hasError) {
2418 case ATTRIBUTE_T:{if (!hasError) {
2420 attribute_specification();
2425 case GROUP_T:{if (!hasError) {
2427 group_declaration();
2433 jj_la1[59] = jj_gen;
2434 jj_consume_token(-1);
2435 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2440 void VhdlParser::configuration_declarative_part() {if (!hasError) {
2443 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2451 jj_la1[60] = jj_gen;
2455 configuration_declarative_item();
2465 void VhdlParser::configuration_item() {
2466 if (jj_2_26(2147483647)) {if (!hasError) {
2468 component_configuration();
2472 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2473 case FOR_T:{if (!hasError) {
2475 block_configuration();
2481 jj_la1[61] = jj_gen;
2482 jj_consume_token(-1);
2483 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2489 void VhdlParser::configuration_specification() {if (!hasError) {
2491 jj_consume_token(FOR_T);
2495 component_specification();
2499 binding_indication();
2503 jj_consume_token(SEMI_T);
2509 QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0;if (!hasError) {
2511 jj_consume_token(CONSTANT_T);
2515 s = identifier_list();
2519 jj_consume_token(COLON_T);
2523 s1 = subtype_indication();
2527 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2528 case VARASSIGN_T:{if (!hasError) {
2530 t = jj_consume_token(VARASSIGN_T);
2540 jj_la1[62] = jj_gen;
2546 jj_consume_token(SEMI_T);
2552 addVhdlType(s.data(),getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Public);
2553 it.prepend("constant ");
2559 QCString VhdlParser::constraint_array_definition() {QCString s,s1;if (!hasError) {
2561 jj_consume_token(ARRAY_T);
2565 s = index_constraint();
2569 jj_consume_token(OF_T);
2573 s1 = subtype_indication();
2581 void VhdlParser::context_clause() {if (!hasError) {
2584 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2591 jj_la1[63] = jj_gen;
2605 QCString VhdlParser::constraint() {QCString s;
2606 if (jj_2_27(2147483647)) {if (!hasError) {
2608 s = range_constraint();
2615 } else if (jj_2_28(2147483647)) {if (!hasError) {
2617 s = index_constraint();
2625 jj_consume_token(-1);
2626 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2632 void VhdlParser::context_item() {
2633 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2634 case LIBRARY_T:{if (!hasError) {
2641 case USE_T:{if (!hasError) {
2649 jj_la1[64] = jj_gen;
2650 jj_consume_token(-1);
2651 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2656 QCString VhdlParser::decimal_literal() {Token *tok=0;if (!hasError) {
2658 tok = jj_consume_token(DECIMAL_LITERAL);
2661 return tok->image.c_str();
2666 QCString VhdlParser::delay_mechanism() {QCString s;
2667 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2668 case TRANSPORT_T:{if (!hasError) {
2670 jj_consume_token(TRANSPORT_T);
2674 return " transport ";
2680 case REJECT_T:{if (!hasError) {
2682 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2683 case REJECT_T:{if (!hasError) {
2685 jj_consume_token(REJECT_T);
2693 s.prepend(" reject ");
2699 jj_la1[65] = jj_gen;
2705 jj_consume_token(INERTIAL_T);
2709 return s+" inertial ";
2715 jj_la1[66] = jj_gen;
2716 jj_consume_token(-1);
2717 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2723 void VhdlParser::design_file() {
2724 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2725 case ARCHITECTURE_T:
2726 case CONFIGURATION_T:
2731 case USE_T:{if (!hasError) {
2733 while (!hasError) {if (!hasError) {
2738 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2739 case ARCHITECTURE_T:
2740 case CONFIGURATION_T:
2750 jj_la1[67] = jj_gen;
2763 case 0:{if (!hasError) {
2765 jj_consume_token(0);
2771 jj_la1[68] = jj_gen;
2772 jj_consume_token(-1);
2773 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2778 void VhdlParser::design_unit() {if (!hasError) {
2790 QCString VhdlParser::designator() {QCString s;
2791 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2792 case BASIC_IDENTIFIER:
2793 case EXTENDED_CHARACTER:{if (!hasError) {
2804 case STRINGLITERAL:{if (!hasError) {
2806 s = operator_symbol();
2816 jj_la1[69] = jj_gen;
2817 jj_consume_token(-1);
2818 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2824 QCString VhdlParser::direction() {Token *tok=0;
2825 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2826 case TO_T:{if (!hasError) {
2828 tok = jj_consume_token(TO_T);
2832 return tok->image.c_str();
2837 case DOWNTO_T:{if (!hasError) {
2839 tok = jj_consume_token(DOWNTO_T);
2843 return tok->image.c_str();
2849 jj_la1[70] = jj_gen;
2850 jj_consume_token(-1);
2851 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2857 void VhdlParser::disconnection_specification() {if (!hasError) {
2859 jj_consume_token(DISCONNECT_T);
2863 guarded_signal_specificatio();
2867 jj_consume_token(AFTER_T);
2875 jj_consume_token(SEMI_T);
2881 void VhdlParser::guarded_signal_specificatio() {if (!hasError) {
2887 jj_consume_token(COLON_T);
2897 QCString VhdlParser::discrete_range() {QCString s;
2898 if (jj_2_29(2147483647)) {if (!hasError) {
2907 } else if (jj_2_30(2147483647)) {if (!hasError) {
2909 s = subtype_indication();
2917 jj_consume_token(-1);
2918 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2924 QCString VhdlParser::element_association() {QCString s,s1;if (!hasError) {
2926 if (jj_2_31(2147483647)) {if (!hasError) {
2932 jj_consume_token(ARROW_T);
2951 QCString VhdlParser::element_declaration() {QCString s,s1;if (!hasError) {
2953 s = identifier_list();
2957 jj_consume_token(COLON_T);
2961 s1 = subtype_indication();
2965 jj_consume_token(SEMI_T);
2968 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,s1.data(),Public);
2969 //addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public);
2975 QCString VhdlParser::entity_aspect() {Token *tok=0;QCString s,s1;
2976 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2977 case ENTITY_T:{if (!hasError) {
2979 tok = jj_consume_token(ENTITY_T);
2987 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2988 case LPAREN_T:{if (!hasError) {
2990 jj_consume_token(LPAREN_T);
2998 jj_consume_token(RPAREN_T);
3008 jj_la1[71] = jj_gen;
3019 case CONFIGURATION_T:{if (!hasError) {
3021 tok = jj_consume_token(CONFIGURATION_T);
3029 return tok->image.c_str()+s;
3034 case OPEN_T:{if (!hasError) {
3036 tok = jj_consume_token(OPEN_T);
3040 return tok->image.c_str();
3046 jj_la1[72] = jj_gen;
3047 jj_consume_token(-1);
3048 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3054 QCString VhdlParser::entity_class() {
3055 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3056 case ENTITY_T:{if (!hasError) {
3058 jj_consume_token(ENTITY_T);
3067 case ARCHITECTURE_T:{if (!hasError) {
3069 jj_consume_token(ARCHITECTURE_T);
3073 return "architecture";
3078 case CONFIGURATION_T:{if (!hasError) {
3080 jj_consume_token(CONFIGURATION_T);
3084 return "configuration";
3089 case PROCEDURE_T:{if (!hasError) {
3091 jj_consume_token(PROCEDURE_T);
3100 case FUNCTION_T:{if (!hasError) {
3102 jj_consume_token(FUNCTION_T);
3111 case PACKAGE_T:{if (!hasError) {
3113 jj_consume_token(PACKAGE_T);
3122 case TYPE_T:{if (!hasError) {
3124 jj_consume_token(TYPE_T);
3133 case SUBTYPE_T:{if (!hasError) {
3135 jj_consume_token(SUBTYPE_T);
3144 case CONSTANT_T:{if (!hasError) {
3146 jj_consume_token(CONSTANT_T);
3155 case SIGNAL_T:{if (!hasError) {
3157 jj_consume_token(SIGNAL_T);
3166 case VARIABLE_T:{if (!hasError) {
3168 jj_consume_token(VARIABLE_T);
3177 case COMPONENT_T:{if (!hasError) {
3179 jj_consume_token(COMPONENT_T);
3188 case LABEL_T:{if (!hasError) {
3190 jj_consume_token(LABEL_T);
3199 case LITERAL_T:{if (!hasError) {
3201 jj_consume_token(LITERAL_T);
3210 case UNITS_T:{if (!hasError) {
3212 jj_consume_token(UNITS_T);
3221 case GROUP_T:{if (!hasError) {
3223 jj_consume_token(GROUP_T);
3232 case FILE_T:{if (!hasError) {
3234 jj_consume_token(FILE_T);
3244 jj_la1[73] = jj_gen;
3245 jj_consume_token(-1);
3246 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3252 QCString VhdlParser::entity_class_entry() {QCString s;if (!hasError) {
3258 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3259 case BOX_T:{if (!hasError) {
3261 jj_consume_token(BOX_T);
3271 jj_la1[74] = jj_gen;
3281 QCString VhdlParser::entity_class_entry_list() {QCString s,s1,s2;if (!hasError) {
3284 s1 = entity_class_entry();
3295 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3301 jj_la1[75] = jj_gen;
3305 jj_consume_token(COMMA_T);
3309 s = entity_class_entry();
3325 void VhdlParser::entity_declaration() {QCString s;if (!hasError) {
3327 jj_consume_token(ENTITY_T);
3335 jj_consume_token(IS_T);
3341 addVhdlType(s.data(),getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public);
3349 entity_declarative_part();
3353 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3354 case BEGIN_T:{if (!hasError) {
3356 jj_consume_token(BEGIN_T);
3360 entity_statement_part();
3366 jj_la1[76] = jj_gen;
3372 jj_consume_token(END_T);
3376 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3377 case ENTITY_T:{if (!hasError) {
3379 jj_consume_token(ENTITY_T);
3385 jj_la1[77] = jj_gen;
3391 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3394 case BASIC_IDENTIFIER:
3395 case EXTENDED_CHARACTER:{if (!hasError) {
3403 jj_la1[78] = jj_gen;
3409 jj_consume_token(SEMI_T);
3412 lastEntity=0;lastCompound=0; genLabels.resize(0);
3416 void VhdlParser::entity_declarative_item() {
3417 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3421 case PURE_T:{if (!hasError) {
3423 subprogram_declaration();
3428 case TYPE_T:{if (!hasError) {
3435 case SUBTYPE_T:{if (!hasError) {
3437 subtype_declaration();
3442 case CONSTANT_T:{if (!hasError) {
3444 constant_declaration();
3449 case SIGNAL_T:{if (!hasError) {
3451 signal_declaration();
3457 case VARIABLE_T:{if (!hasError) {
3459 variable_declaration();
3464 case FILE_T:{if (!hasError) {
3471 case ALIAS_T:{if (!hasError) {
3473 alias_declaration();
3479 jj_la1[79] = jj_gen;
3480 if (jj_2_32(2147483647)) {if (!hasError) {
3482 attribute_declaration();
3486 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3487 case ATTRIBUTE_T:{if (!hasError) {
3489 attribute_specification();
3494 case DISCONNECT_T:{if (!hasError) {
3496 disconnection_specification();
3501 case USE_T:{if (!hasError) {
3509 jj_la1[80] = jj_gen;
3510 if (jj_2_33(3)) {if (!hasError) {
3512 group_template_declaration();
3516 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3517 case GROUP_T:{if (!hasError) {
3519 group_declaration();
3525 jj_la1[81] = jj_gen;
3526 if (jj_2_34(5)) {if (!hasError) {
3528 package_instantiation_declaration();
3532 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3533 case PACKAGE_T:{if (!hasError) {
3535 package_declaration();
3540 case VHDL2008TOOLDIR:{if (!hasError) {
3542 jj_consume_token(VHDL2008TOOLDIR);
3548 jj_la1[82] = jj_gen;
3549 jj_consume_token(-1);
3550 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3561 void VhdlParser::entity_declarative_part() {if (!hasError) {
3564 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3582 case VHDL2008TOOLDIR:{
3587 jj_la1[83] = jj_gen;
3591 entity_declarative_item();
3601 QCString VhdlParser::entity_designator() {QCString s,s1;if (!hasError) {
3607 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3608 case LBRACKET_T:{if (!hasError) {
3616 jj_la1[84] = jj_gen;
3626 void VhdlParser::entity_header() {if (!hasError) {
3628 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3629 case GENERIC_T:{if (!hasError) {
3631 currP=VhdlDocGen::GENERIC;parse_sec=GEN_SEC;
3641 jj_la1[85] = jj_gen;
3647 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3648 case PORT_T:{if (!hasError) {
3650 currP=VhdlDocGen::PORT;
3660 jj_la1[86] = jj_gen;
3668 QCString VhdlParser::entity_name_list() {QCString s,s1;
3669 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3672 case BASIC_IDENTIFIER:
3673 case EXTENDED_CHARACTER:
3674 case CHARACTER_LITERAL:{if (!hasError) {
3676 while (!hasError) {if (!hasError) {
3678 s1 = entity_designator();
3685 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3688 case BASIC_IDENTIFIER:
3689 case EXTENDED_CHARACTER:
3690 case CHARACTER_LITERAL:{
3695 jj_la1[87] = jj_gen;
3708 case OTHER_T:{if (!hasError) {
3710 jj_consume_token(OTHER_T);
3719 case ALL_T:{if (!hasError) {
3721 jj_consume_token(ALL_T);
3731 jj_la1[88] = jj_gen;
3732 jj_consume_token(-1);
3733 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3739 QCString VhdlParser::entity_specification() {QCString s,s1;if (!hasError) {
3741 s = entity_name_list();
3745 jj_consume_token(COLON_T);
3749 s1 = entity_class();
3757 void VhdlParser::entity_statement() {
3758 if (jj_2_35(2147483647)) {if (!hasError) {
3760 concurrent_assertion_statement();
3763 } else if (jj_2_36(2147483647)) {if (!hasError) {
3765 process_statement();
3769 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3773 case BASIC_IDENTIFIER:
3774 case EXTENDED_CHARACTER:{if (!hasError) {
3776 concurrent_procedure_call_statement();
3782 jj_la1[89] = jj_gen;
3783 jj_consume_token(-1);
3784 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3790 void VhdlParser::entity_statement_part() {if (!hasError) {
3793 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3799 case BASIC_IDENTIFIER:
3800 case EXTENDED_CHARACTER:{
3805 jj_la1[90] = jj_gen;
3819 QCString VhdlParser::entity_tag() {QCString s;
3820 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3823 case BASIC_IDENTIFIER:
3824 case EXTENDED_CHARACTER:{if (!hasError) {
3835 case CHARACTER_LITERAL:{if (!hasError) {
3837 s = character_literal();
3847 jj_la1[91] = jj_gen;
3848 jj_consume_token(-1);
3849 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3855 QCString VhdlParser::enumeration_literal() {QCString s;
3856 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3857 case BASIC_IDENTIFIER:
3858 case EXTENDED_CHARACTER:{if (!hasError) {
3869 case CHARACTER_LITERAL:{if (!hasError) {
3871 s = character_literal();
3881 jj_la1[92] = jj_gen;
3882 jj_consume_token(-1);
3883 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3889 QCString VhdlParser::enumeration_type_definition() {QCString s,s1;if (!hasError) {
3891 jj_consume_token(LPAREN_T);
3895 s = enumeration_literal();
3900 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3906 jj_la1[93] = jj_gen;
3910 jj_consume_token(COMMA_T);
3914 s1 = enumeration_literal();
3926 jj_consume_token(RPAREN_T);
3934 QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) {
3936 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3937 case BASIC_IDENTIFIER:
3938 case EXTENDED_CHARACTER:{if (!hasError) {
3944 t = jj_consume_token(COLON_T);
3950 jj_la1[94] = jj_gen;
3956 jj_consume_token(EXIT_T);
3960 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3961 case BASIC_IDENTIFIER:
3962 case EXTENDED_CHARACTER:{if (!hasError) {
3970 jj_la1[95] = jj_gen;
3976 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3977 case WHEN_T:{if (!hasError) {
3979 t1 = jj_consume_token(WHEN_T);
3989 jj_la1[96] = jj_gen;
3995 jj_consume_token(SEMI_T);
4000 if(t1) s2.prepend(" when ");
4001 FlowChart::addFlowChart(FlowChart::EXIT_NO,"exit",s2.data(),s1.data());
4008 QCString VhdlParser::expression() {QCString s,s1,s2;if (!hasError) {
4015 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4026 jj_la1[97] = jj_gen;
4050 QCString VhdlParser::logop() {
4051 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4052 case AND_T:{if (!hasError) {
4054 jj_consume_token(AND_T);
4063 case NAND_T:{if (!hasError) {
4065 jj_consume_token(NAND_T);
4074 case NOR_T:{if (!hasError) {
4076 jj_consume_token(NOR_T);
4085 case XNOR_T:{if (!hasError) {
4087 jj_consume_token(XNOR_T);
4096 case XOR_T:{if (!hasError) {
4098 jj_consume_token(XOR_T);
4107 case OR_T:{if (!hasError) {
4109 jj_consume_token(OR_T);
4119 jj_la1[98] = jj_gen;
4120 jj_consume_token(-1);
4121 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4127 QCString VhdlParser::extended_identifier() {Token *t;if (!hasError) {
4129 t = jj_consume_token(EXTENDED_CHARACTER);
4132 return t->image.c_str();
4137 QCString VhdlParser::factor() {QCString s,s1;
4138 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4145 case BASIC_IDENTIFIER:
4146 case EXTENDED_CHARACTER:
4147 case CHARACTER_LITERAL:
4148 case DECIMAL_LITERAL:
4150 case BIT_STRING_LITERAL:{if (!hasError) {
4156 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4157 case DOUBLEMULT_T:{if (!hasError) {
4159 jj_consume_token(DOUBLEMULT_T);
4173 jj_la1[99] = jj_gen;
4184 case ABS_T:{if (!hasError) {
4186 jj_consume_token(ABS_T);
4194 s1 = "abs "; return s1+s;
4199 case NOT_T:{if (!hasError) {
4201 jj_consume_token(NOT_T);
4209 s1="not ";return s1+s;
4215 jj_la1[100] = jj_gen;
4216 jj_consume_token(-1);
4217 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4223 QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3;if (!hasError) {
4225 jj_consume_token(FILE_T);
4229 s = identifier_list();
4233 jj_consume_token(COLON_T);
4237 s2 = subtype_indication();
4241 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4243 case OPEN_T:{if (!hasError) {
4245 s3 = file_open_information();
4251 jj_la1[101] = jj_gen;
4257 jj_consume_token(SEMI_T);
4260 QCString t1=s2+" "+s3;
4261 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public);
4262 return " file "+s+":"+s2+" "+s3+";";
4267 QCString VhdlParser::file_logical_name() {QCString s;if (!hasError) {
4277 QCString VhdlParser::file_open_information() {QCString s,s1,s2;if (!hasError) {
4279 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4280 case OPEN_T:{if (!hasError) {
4282 jj_consume_token(OPEN_T);
4292 jj_la1[102] = jj_gen;
4298 jj_consume_token(IS_T);
4302 s1 = file_logical_name();
4305 s2="open "+s+" is "+s1; return s2;
4310 QCString VhdlParser::file_type_definition() {QCString s,s1;if (!hasError) {
4312 jj_consume_token(FILE_T);
4316 jj_consume_token(OF_T);
4323 s1=" file of "+s; return s1;
4328 QCString VhdlParser::floating_type_definition() {QCString s;if (!hasError) {
4330 s = range_constraint();
4338 QCString VhdlParser::formal_designator() {QCString s;Token *tok=0;
4339 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4342 case BASIC_IDENTIFIER:
4343 case EXTENDED_CHARACTER:{if (!hasError) {
4354 case INTEGER:{if (!hasError) {
4356 tok = jj_consume_token(INTEGER);
4360 return tok->image.c_str();
4366 jj_la1[103] = jj_gen;
4367 jj_consume_token(-1);
4368 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4374 QCString VhdlParser::formal_parameter_list() {QCString s;if (!hasError) {
4376 s = interface_list();
4384 QCString VhdlParser::formal_part() {QCString s,s1;if (!hasError) {
4390 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4391 case LPAREN_T:{if (!hasError) {
4393 jj_consume_token(LPAREN_T);
4397 formal_designator();
4401 jj_consume_token(RPAREN_T);
4411 jj_la1[104] = jj_gen;
4421 QCString VhdlParser::full_type_declaration() {Entry *tmpEntry;QCString s,s1,s2;if (!hasError) {
4423 jj_consume_token(TYPE_T);
4431 jj_consume_token(IS_T);
4436 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,0,Public);
4440 try {if (!hasError) {
4442 s2 = type_definition();
4446 error_skipto(SEMI_T);
4451 jj_consume_token(SEMI_T);
4454 if (s2.contains("#")) {
4455 VhdlDocGen::deleteAllChars(s2,'#');
4456 tmpEntry->spec=VhdlDocGen::RECORD;
4457 tmpEntry->type=s2.data();
4458 //addVhdlType(s.data(),getLine(TYPE_T),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,s2.data(),Public);
4460 else if (s2.contains("%")) {
4461 VhdlDocGen::deleteAllChars(s2,'%');
4462 tmpEntry->spec=VhdlDocGen::UNITS;
4463 tmpEntry->type=s2.data();
4464 //addVhdlType(s.data(),getLine(TYPE_T),Entry::VARIABLE_SEC,VhdlDocGen::UNITS,s2.data(),s2.data(),Public);
4467 tmpEntry->spec=VhdlDocGen::TYPE;
4468 tmpEntry->type=s2.data();
4469 //addVhdlType(s.data(),getLine(TYPE_T),Entry::VARIABLE_SEC,VhdlDocGen::TYPE,0,s2.data(),Public);
4472 return "type "+s+" is "+s2+";";
4477 QCString VhdlParser::function_call() {QCString s,s1;if (!hasError) {
4483 jj_consume_token(LPAREN_T);
4487 s1 = actual_parameter_part();
4491 jj_consume_token(RPAREN_T);
4494 return s+"("+s1+")";
4499 void VhdlParser::generate_statement() {QCString s;if (!hasError) {
4505 jj_consume_token(COLON_T);
4509 try {if (!hasError) {
4515 jj_consume_token(GENERATE_T);
4519 pushLabel(genLabels,s);
4523 generate_statement_body1();
4527 jj_consume_token(END_T);
4531 error_skipto(GENERATE_T);
4536 jj_consume_token(GENERATE_T);
4540 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4541 case BASIC_IDENTIFIER:
4542 case EXTENDED_CHARACTER:{if (!hasError) {
4550 jj_la1[105] = jj_gen;
4556 jj_consume_token(SEMI_T);
4559 genLabels=popLabel(genLabels);
4563 void VhdlParser::generate_scheme() {
4564 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4565 case FOR_T:{if (!hasError) {
4567 jj_consume_token(FOR_T);
4571 parameter_specification();
4576 case IF_T:{if (!hasError) {
4578 jj_consume_token(IF_T);
4588 jj_la1[106] = jj_gen;
4589 jj_consume_token(-1);
4590 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4595 void VhdlParser::generic_clause() {QCString s;if (!hasError) {
4597 jj_consume_token(GENERIC_T);
4601 jj_consume_token(LPAREN_T);
4613 jj_consume_token(RPAREN_T);
4617 jj_consume_token(SEMI_T);
4624 QCString VhdlParser::generic_list() {QCString s;if (!hasError) {
4626 s = interface_list();
4634 void VhdlParser::generic_map_aspect() {if (!hasError) {
4636 jj_consume_token(GENERIC_T);
4640 jj_consume_token(MAP_T);
4644 jj_consume_token(LPAREN_T);
4652 jj_consume_token(RPAREN_T);
4658 QCString VhdlParser::group_constituent() {QCString s;
4659 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4662 case BASIC_IDENTIFIER:
4663 case EXTENDED_CHARACTER:{if (!hasError) {
4674 case CHARACTER_LITERAL:{if (!hasError) {
4676 s = character_literal();
4686 jj_la1[107] = jj_gen;
4687 jj_consume_token(-1);
4688 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4694 QCString VhdlParser::group_constituent_list() {QCString s,s1,s2;if (!hasError) {
4697 s1 = group_constituent();
4704 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4710 jj_la1[108] = jj_gen;
4714 jj_consume_token(COMMA_T);
4718 s = group_constituent();
4734 QCString VhdlParser::group_declaration() {QCString s,s1,s2;if (!hasError) {
4736 jj_consume_token(GROUP_T);
4744 jj_consume_token(COLON_T);
4752 jj_consume_token(LPAREN_T);
4756 s2 = group_constituent_list();
4760 jj_consume_token(RPAREN_T);
4764 jj_consume_token(SEMI_T);
4767 return "group "+s+":"+s1+"("+s2+");";
4772 QCString VhdlParser::group_template_declaration() {QCString s,s1;if (!hasError) {
4774 jj_consume_token(GROUP_T);
4782 jj_consume_token(IS_T);
4786 jj_consume_token(LPAREN_T);
4790 s1 = entity_class_entry_list();
4794 jj_consume_token(RPAREN_T);
4798 jj_consume_token(SEMI_T);
4801 return "group "+s+ "is ("+s1+");";
4806 void VhdlParser::guarded_signal_specification() {if (!hasError) {
4812 jj_consume_token(COLON_T);
4822 QCString VhdlParser::identifier() {Token *tok=0;
4823 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4824 case EXTENDED_CHARACTER:{if (!hasError) {
4826 tok = jj_consume_token(EXTENDED_CHARACTER);
4830 return tok->image.c_str();
4835 case BASIC_IDENTIFIER:{if (!hasError) {
4837 tok = jj_consume_token(BASIC_IDENTIFIER);
4841 return tok->image.c_str();
4847 jj_la1[109] = jj_gen;
4848 jj_consume_token(-1);
4849 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4855 QCString VhdlParser::identifier_list() {QCString str,str1;if (!hasError) {
4862 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4868 jj_la1[110] = jj_gen;
4872 jj_consume_token(COMMA_T);
4876 str1 = identifier();
4892 void VhdlParser::if_statement() {QCString s,s1;if (!hasError) {
4894 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4895 case BASIC_IDENTIFIER:
4896 case EXTENDED_CHARACTER:{if (!hasError) {
4902 jj_consume_token(COLON_T);
4908 jj_la1[111] = jj_gen;
4914 jj_consume_token(IF_T);
4922 jj_consume_token(THEN_T);
4927 FlowChart::addFlowChart(FlowChart::IF_NO,0,s);
4931 sequence_of_statement();
4936 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4942 jj_la1[112] = jj_gen;
4946 jj_consume_token(ELSIF_T);
4954 jj_consume_token(THEN_T);
4958 s1.prepend("elsif ");
4959 FlowChart::addFlowChart(FlowChart::ELSIF_NO,0,s1.data());
4963 sequence_of_statement();
4971 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4972 case ELSE_T:{if (!hasError) {
4974 jj_consume_token(ELSE_T);
4978 FlowChart::addFlowChart(FlowChart::ELSE_NO,0,0);
4982 sequence_of_statement();
4988 jj_la1[113] = jj_gen;
4994 jj_consume_token(END_T);
4998 jj_consume_token(IF_T);
5002 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5003 case BASIC_IDENTIFIER:
5004 case EXTENDED_CHARACTER:{if (!hasError) {
5012 jj_la1[114] = jj_gen;
5018 jj_consume_token(SEMI_T);
5021 FlowChart::moveToPrevLevel();
5022 FlowChart::addFlowChart(FlowChart::ENDIF_NO,0,0);
5026 QCString VhdlParser::incomplete_type_declaration() {QCString s;if (!hasError) {
5028 jj_consume_token(TYPE_T);
5036 jj_consume_token(SEMI_T);
5039 return "type "+s+";";
5044 QCString VhdlParser::index_constraint() {QCString s="("; QCString s1,s2;if (!hasError) {
5046 jj_consume_token(LPAREN_T);
5050 s2 = discrete_range();
5059 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5065 jj_la1[115] = jj_gen;
5069 jj_consume_token(COMMA_T);
5073 s1 = discrete_range();
5085 jj_consume_token(RPAREN_T);
5093 QCString VhdlParser::index_specification() {QCString s;
5094 if (jj_2_37(2147483647)) {if (!hasError) {
5096 s = discrete_range();
5104 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5115 case BASIC_IDENTIFIER:
5116 case EXTENDED_CHARACTER:
5117 case CHARACTER_LITERAL:
5118 case DECIMAL_LITERAL:
5120 case BIT_STRING_LITERAL:{if (!hasError) {
5132 jj_la1[116] = jj_gen;
5133 jj_consume_token(-1);
5134 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5141 QCString VhdlParser::index_subtype_definition() {QCString s;if (!hasError) {
5147 jj_consume_token(RANGE_T);
5151 jj_consume_token(BOX_T);
5154 return s+" range <> ";
5159 QCString VhdlParser::instantiation_unit() {QCString s,s1,s2;Token *tok;
5160 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5162 case BASIC_IDENTIFIER:
5163 case EXTENDED_CHARACTER:{if (!hasError) {
5165 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5166 case COMPONENT_T:{if (!hasError) {
5168 jj_consume_token(COMPONENT_T);
5174 jj_la1[117] = jj_gen;
5184 s1="component "; return s;
5189 case ENTITY_T:{if (!hasError) {
5191 jj_consume_token(ENTITY_T);
5195 if (jj_2_38(2)) {if (!hasError) {
5197 jj_consume_token(BASIC_IDENTIFIER);
5201 jj_consume_token(DOT_T);
5218 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5219 case LPAREN_T:{if (!hasError) {
5221 jj_consume_token(LPAREN_T);
5229 jj_consume_token(RPAREN_T);
5233 s+="(";s+=s1;s+=")" ;
5239 jj_la1[118] = jj_gen;
5250 case CONFIGURATION_T:{if (!hasError) {
5252 jj_consume_token(CONFIGURATION_T);
5260 s1="configuration ";return s;
5266 jj_la1[119] = jj_gen;
5267 jj_consume_token(-1);
5268 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5274 QCString VhdlParser::instantiation_list() {QCString s;Token *tok=0;
5275 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5276 case BASIC_IDENTIFIER:
5277 case EXTENDED_CHARACTER:{if (!hasError) {
5279 s = identifier_list();
5288 case OTHER_T:{if (!hasError) {
5290 tok = jj_consume_token(OTHER_T);
5294 return tok->image.c_str();
5299 case ALL_T:{if (!hasError) {
5301 tok = jj_consume_token(ALL_T);
5305 return tok->image.c_str();
5311 jj_la1[120] = jj_gen;
5312 jj_consume_token(-1);
5313 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5319 QCString VhdlParser::integer() {Token *t;if (!hasError) {
5321 t = jj_consume_token(INTEGER);
5324 return t->image.c_str();
5329 QCString VhdlParser::integer_type_definition() {QCString s;if (!hasError) {
5331 s = range_constraint();
5339 QCString VhdlParser::interface_declaration() {QCString s,s1;
5340 if (jj_2_39(5)) {if (!hasError) {
5342 s = interface_subprogram_declaration();
5350 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5351 case PACKAGE_T:{if (!hasError) {
5353 interface_package_declaration();
5363 jj_la1[121] = jj_gen;
5364 if (jj_2_40(5)) {if (!hasError) {
5366 s = interface_variable_declaration();
5373 } else if (jj_2_41(5)) {if (!hasError) {
5375 interface_file_declaration();
5382 } else if (jj_2_42(2147483647)) {if (!hasError) {
5384 subprogram_declaration();
5392 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5398 case VARIABLE_T:{if (!hasError) {
5408 if (parse_sec==GEN_SEC)
5410 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,s1.data(),0,Public);
5417 jj_la1[122] = jj_gen;
5418 jj_consume_token(-1);
5419 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5428 QCString VhdlParser::interface_element() {QCString s;if (!hasError) {
5430 s = interface_declaration();
5438 QCString VhdlParser::interface_file_declaration() {QCString s,s1;if (!hasError) {
5440 jj_consume_token(FILE_T);
5444 s = identifier_list();
5448 jj_consume_token(COLON_T);
5452 s1 = subtype_indication();
5455 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public);
5456 return " file "+s+":"+s1;
5461 QCString VhdlParser::interface_list() {QCString s,s1,s2;if (!hasError) {
5463 s = interface_element();
5468 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5474 jj_la1[123] = jj_gen;
5478 jj_consume_token(SEMI_T);
5482 s1 = interface_element();
5498 QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5;if (!hasError) {
5500 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5504 case VARIABLE_T:{if (!hasError) {
5506 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5507 case VARIABLE_T:{if (!hasError) {
5509 tok = jj_consume_token(VARIABLE_T);
5514 case SIGNAL_T:{if (!hasError) {
5516 tok = jj_consume_token(SIGNAL_T);
5521 case CONSTANT_T:{if (!hasError) {
5523 tok = jj_consume_token(CONSTANT_T);
5528 case SHARED_T:{if (!hasError) {
5530 tok = jj_consume_token(SHARED_T);
5536 jj_la1[124] = jj_gen;
5537 jj_consume_token(-1);
5538 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5545 jj_la1[125] = jj_gen;
5551 s = identifier_list();
5555 jj_consume_token(COLON_T);
5559 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5564 case OUT_T:{if (!hasError) {
5572 jj_la1[126] = jj_gen;
5578 s2 = subtype_indication();
5582 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5583 case BUS_T:{if (!hasError) {
5585 tok1 = jj_consume_token(BUS_T);
5591 jj_la1[127] = jj_gen;
5597 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5598 case VARASSIGN_T:{if (!hasError) {
5600 tok2 = jj_consume_token(VARASSIGN_T);
5610 jj_la1[128] = jj_gen;
5616 s5=tok->image.c_str();
5619 s3=tok1->image.data();
5624 QCString it=s+":"+s1+" "+s2+" "+s3+" "+s4;
5625 if (currP!=VhdlDocGen::COMPONENT)
5627 if (currP==VhdlDocGen::FUNCTION || currP==VhdlDocGen::PROCEDURE)
5629 addProto(s5.data(),s.data(),s1.data(),s2.data(),s3.data(),s4.data());
5633 QCString i=s2+s3+s4;
5634 if (currP==VhdlDocGen::GENERIC && param_sec==0)
5635 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public);
5636 else if(parse_sec != GEN_SEC)
5637 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public);
5639 // fprintf(stderr,"\n\n <<port %s >>\n",$$.data());
5646 QCString VhdlParser::iteration_scheme() {QCString s;
5647 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5648 case WHILE_T:{if (!hasError) {
5650 jj_consume_token(WHILE_T);
5658 s.prepend("while ");
5659 FlowChart::addFlowChart(FlowChart::WHILE_NO,0,s.data(),lab.data());
5666 case FOR_T:{if (!hasError) {
5668 jj_consume_token(FOR_T);
5672 s = parameter_specification();
5676 QCString q=lab+" for "+s;
5677 FlowChart::addFlowChart(FlowChart::FOR_NO,0,q.data(),lab.data());
5685 jj_la1[129] = jj_gen;
5686 jj_consume_token(-1);
5687 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5693 QCString VhdlParser::label() {QCString s;if (!hasError) {
5703 QCString VhdlParser::library_clause() {QCString s;if (!hasError) {
5706 jj_consume_token(LIBRARY_T);
5710 s = identifier_list();
5714 jj_consume_token(SEMI_T);
5719 if ( parse_sec==0 && Config_getBool(SHOW_INCLUDE_FILES) )
5721 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Public);
5723 QCString s1="library "+s;
5729 QCString VhdlParser::library_unit() {QCString s;
5730 if (jj_2_43(2)) {if (!hasError) {
5740 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5741 case ARCHITECTURE_T:
5742 case PACKAGE_T:{if (!hasError) {
5753 case CONTEXT_T:{if (!hasError) {
5755 context_declaration();
5761 jj_la1[130] = jj_gen;
5762 jj_consume_token(-1);
5763 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5770 QCString VhdlParser::literal() {QCString s;
5771 if (jj_2_44(2147483647)) {if (!hasError) {
5773 s = bit_string_literal();
5780 } else if (jj_2_45(2147483647)) {if (!hasError) {
5782 s = numeric_literal();
5789 } else if (jj_2_46(2147483647)) {if (!hasError) {
5791 s = enumeration_literal();
5799 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5800 case STRINGLITERAL:{if (!hasError) {
5802 s = string_literal();
5811 case NULL_T:{if (!hasError) {
5813 jj_consume_token(NULL_T);
5823 jj_la1[131] = jj_gen;
5824 jj_consume_token(-1);
5825 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5832 QCString VhdlParser::logical_operator() {QCString s;if (!hasError) {
5842 QCString VhdlParser::loop_statement() {QCString s,s1,s2,s3;if (!hasError) {
5844 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5845 case BASIC_IDENTIFIER:
5846 case EXTENDED_CHARACTER:{if (!hasError) {
5852 jj_consume_token(COLON_T);
5862 jj_la1[132] = jj_gen;
5868 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5870 case WHILE_T:{if (!hasError) {
5872 s1 = iteration_scheme();
5878 jj_la1[133] = jj_gen;
5885 FlowChart::addFlowChart(FlowChart::LOOP_NO,0,"infinite");
5889 jj_consume_token(LOOP_T);
5893 s2 = sequence_of_statement();
5897 jj_consume_token(END_T);
5901 jj_consume_token(LOOP_T);
5905 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5906 case BASIC_IDENTIFIER:
5907 case EXTENDED_CHARACTER:{if (!hasError) {
5915 jj_la1[134] = jj_gen;
5921 jj_consume_token(SEMI_T);
5924 QCString q = s+" loop "+s2+" end loop" +s3;
5925 QCString endLoop="end loop" + s3;
5926 FlowChart::moveToPrevLevel();
5927 FlowChart::addFlowChart(FlowChart::END_LOOP,endLoop.data(),0);
5933 QCString VhdlParser::miscellaneous_operator() {Token *t=0;
5934 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5935 case DOUBLEMULT_T:{if (!hasError) {
5937 jj_consume_token(DOUBLEMULT_T);
5946 case ABS_T:{if (!hasError) {
5948 jj_consume_token(ABS_T);
5957 case NOT_T:{if (!hasError) {
5959 jj_consume_token(NOT_T);
5969 jj_la1[135] = jj_gen;
5970 jj_consume_token(-1);
5971 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5977 QCString VhdlParser::mode() {Token *tok=0;
5978 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5979 case IN_T:{if (!hasError) {
5981 tok = jj_consume_token(IN_T);
5990 case OUT_T:{if (!hasError) {
5992 tok = jj_consume_token(OUT_T);
6001 case INOUT_T:{if (!hasError) {
6003 tok = jj_consume_token(INOUT_T);
6012 case BUFFER_T:{if (!hasError) {
6014 tok = jj_consume_token(BUFFER_T);
6023 case LINKAGE_T:{if (!hasError) {
6025 tok = jj_consume_token(LINKAGE_T);
6035 jj_la1[136] = jj_gen;
6036 jj_consume_token(-1);
6037 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6043 QCString VhdlParser::multiplying_operation() {Token *tok=0;
6044 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6045 case MULT_T:{if (!hasError) {
6047 tok = jj_consume_token(MULT_T);
6051 return tok->image.c_str();
6056 case SLASH_T:{if (!hasError) {
6058 tok = jj_consume_token(SLASH_T);
6062 return tok->image.c_str();
6067 case MOD_T:{if (!hasError) {
6069 tok = jj_consume_token(MOD_T);
6073 return tok->image.c_str();
6078 case REM_T:{if (!hasError) {
6080 tok = jj_consume_token(REM_T);
6084 return tok->image.c_str();
6090 jj_la1[137] = jj_gen;
6091 jj_consume_token(-1);
6092 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6098 QCString VhdlParser::name() {QCString s,s1;if (!hasError) {
6100 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6101 case STRINGLITERAL:{if (!hasError) {
6103 s = operator_symbol();
6108 case BASIC_IDENTIFIER:
6109 case EXTENDED_CHARACTER:{if (!hasError) {
6116 case SLSL_T:{if (!hasError) {
6118 s = external_name();
6124 jj_la1[138] = jj_gen;
6125 jj_consume_token(-1);
6126 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6131 if (jj_2_47(2147483647)) {if (!hasError) {
6150 QCString VhdlParser::name_ext1() {QCString s,s1,s2;if (!hasError) {
6157 if (jj_2_48(2147483647)) {
6179 QCString VhdlParser::name_ext() {QCString s,s1,s2;if (!hasError) {
6181 if (jj_2_49(2147483647)) {if (!hasError) {
6183 jj_consume_token(DOT_T);
6194 } else if (jj_2_50(2147483647)) {if (!hasError) {
6196 s1 = test_att_name();
6203 } else if (jj_2_51(2147483647)) {if (!hasError) {
6205 jj_consume_token(LPAREN_T);
6209 s1 = discrete_range();
6213 jj_consume_token(RPAREN_T);
6217 s+="(";s+=s1;s+=")";
6220 } else if (jj_2_52(2147483647)) {if (!hasError) {
6222 jj_consume_token(LPAREN_T);
6235 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6241 jj_la1[139] = jj_gen;
6245 jj_consume_token(COMMA_T);
6261 jj_consume_token(RPAREN_T);
6269 jj_consume_token(-1);
6270 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6279 QCString VhdlParser::test_att_name() {QCString s,s1;if (!hasError) {
6281 if (jj_2_53(2147483647)) {if (!hasError) {
6296 jj_consume_token(APOSTROPHE_T);
6300 s1 = attribute_designator();
6308 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6309 case LPAREN_T:{if (!hasError) {
6311 jj_consume_token(LPAREN_T);
6319 jj_consume_token(RPAREN_T);
6323 s+="(";s+=s1;s+=")";
6329 jj_la1[140] = jj_gen;
6339 QCString VhdlParser::indexed_name() {QCString s,s1,s2;if (!hasError) {
6345 jj_consume_token(LPAREN_T);
6358 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6364 jj_la1[141] = jj_gen;
6368 jj_consume_token(COMMA_T);
6384 jj_consume_token(RPAREN_T);
6392 QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) {
6394 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6395 case BASIC_IDENTIFIER:
6396 case EXTENDED_CHARACTER:{if (!hasError) {
6402 t = jj_consume_token(COLON_T);
6408 jj_la1[142] = jj_gen;
6414 jj_consume_token(NEXT_T);
6418 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6419 case BASIC_IDENTIFIER:
6420 case EXTENDED_CHARACTER:{if (!hasError) {
6428 jj_la1[143] = jj_gen;
6434 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6435 case WHEN_T:{if (!hasError) {
6437 t1 = jj_consume_token(WHEN_T);
6447 jj_la1[144] = jj_gen;
6453 jj_consume_token(SEMI_T);
6457 FlowChart::addFlowChart(FlowChart::NEXT_NO,"next ",s2.data(),s1.data());
6459 if(t1) s2.prepend("when ");
6465 QCString VhdlParser::null_statement() {QCString s;if (!hasError) {
6467 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6468 case BASIC_IDENTIFIER:
6469 case EXTENDED_CHARACTER:{if (!hasError) {
6475 jj_consume_token(COLON_T);
6485 jj_la1[145] = jj_gen;
6491 jj_consume_token(NULL_T);
6495 jj_consume_token(SEMI_T);
6503 QCString VhdlParser::numeric_literal() {QCString s;
6504 if (jj_2_54(2147483647)) {if (!hasError) {
6506 s = physical_literal();
6514 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6516 case DECIMAL_LITERAL:
6517 case BASED_LITERAL:{if (!hasError) {
6519 s = abstract_literal();
6529 jj_la1[146] = jj_gen;
6530 jj_consume_token(-1);
6531 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6538 QCString VhdlParser::object_class() {
6539 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6540 case CONSTANT_T:{if (!hasError) {
6542 jj_consume_token(CONSTANT_T);
6551 case SIGNAL_T:{if (!hasError) {
6553 jj_consume_token(SIGNAL_T);
6562 case VARIABLE_T:{if (!hasError) {
6564 jj_consume_token(VARIABLE_T);
6573 case SHARED_T:{if (!hasError) {
6575 jj_consume_token(SHARED_T);
6579 jj_consume_token(VARIABLE_T);
6583 return "shared variable";
6588 case FILE_T:{if (!hasError) {
6590 jj_consume_token(FILE_T);
6599 case TYPE_T:{if (!hasError) {
6601 jj_consume_token(TYPE_T);
6611 jj_la1[147] = jj_gen;
6612 jj_consume_token(-1);
6613 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6619 QCString VhdlParser::operator_symbol() {Token *tok=0;if (!hasError) {
6621 tok = jj_consume_token(STRINGLITERAL);
6624 return tok->image.c_str();
6629 void VhdlParser::options() {if (!hasError) {
6631 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6632 case GUARDED_T:{if (!hasError) {
6634 jj_consume_token(GUARDED_T);
6640 jj_la1[148] = jj_gen;
6646 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6649 case TRANSPORT_T:{if (!hasError) {
6657 jj_la1[149] = jj_gen;
6665 void VhdlParser::package_body() {QCString s;if (!hasError) {
6667 jj_consume_token(PACKAGE_T);
6671 jj_consume_token(BODY_T);
6679 jj_consume_token(IS_T);
6683 lastCompound=current;
6685 addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected);
6689 package_body_declarative_part();
6693 jj_consume_token(END_T);
6697 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6698 case PACKAGE_T:{if (!hasError) {
6700 jj_consume_token(PACKAGE_T);
6704 jj_consume_token(BODY_T);
6710 jj_la1[150] = jj_gen;
6716 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6719 case BASIC_IDENTIFIER:
6720 case EXTENDED_CHARACTER:{if (!hasError) {
6728 jj_la1[151] = jj_gen;
6734 jj_consume_token(SEMI_T);
6737 lastCompound=0; genLabels.resize(0);
6741 void VhdlParser::package_body_declarative_item() {
6742 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6746 case PURE_T:{if (!hasError) {
6748 subprogram_declaration();
6753 case TYPE_T:{if (!hasError) {
6760 case SUBTYPE_T:{if (!hasError) {
6762 subtype_declaration();
6767 case CONSTANT_T:{if (!hasError) {
6769 constant_declaration();
6775 case VARIABLE_T:{if (!hasError) {
6777 variable_declaration();
6782 case FILE_T:{if (!hasError) {
6789 case ALIAS_T:{if (!hasError) {
6791 alias_declaration();
6796 case USE_T:{if (!hasError) {
6804 jj_la1[152] = jj_gen;
6805 if (jj_2_55(3)) {if (!hasError) {
6807 group_template_declaration();
6811 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6812 case GROUP_T:{if (!hasError) {
6814 group_declaration();
6820 jj_la1[153] = jj_gen;
6821 jj_consume_token(-1);
6822 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6829 void VhdlParser::package_body_declarative_part() {if (!hasError) {
6832 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6850 jj_la1[154] = jj_gen;
6854 package_body_declarative_item();
6864 void VhdlParser::package_declaration() {QCString s;if (!hasError) {
6866 jj_consume_token(PACKAGE_T);
6874 jj_consume_token(IS_T);
6878 lastCompound=current;
6879 Entry *clone=new Entry(*current);
6880 clone->section=Entry::NAMESPACE_SEC;
6881 clone->spec=VhdlDocGen::PACKAGE;
6883 clone->startLine=getLine(PACKAGE_T);
6884 clone->bodyLine=getLine(PACKAGE_T);
6885 clone->protection=Package;
6886 current_root->addSubEntry(clone);
6887 addVhdlType(s,getLine(PACKAGE_T),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package);
6891 package_declarative_part();
6895 jj_consume_token(END_T);
6899 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6900 case PACKAGE_T:{if (!hasError) {
6902 jj_consume_token(PACKAGE_T);
6908 jj_la1[155] = jj_gen;
6914 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6917 case BASIC_IDENTIFIER:
6918 case EXTENDED_CHARACTER:{if (!hasError) {
6926 jj_la1[156] = jj_gen;
6932 jj_consume_token(SEMI_T);
6935 lastEntity=0;lastCompound=0; genLabels.resize(0);
6939 void VhdlParser::geninter() {if (!hasError) {
6941 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6942 case GENERIC_T:{if (!hasError) {
6944 gen_interface_list();
6948 jj_consume_token(SEMI_T);
6952 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6953 case GENERIC_T:{if (!hasError) {
6959 jj_consume_token(SEMI_T);
6965 jj_la1[157] = jj_gen;
6973 jj_la1[158] = jj_gen;
6981 void VhdlParser::package_declarative_item() {
6982 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6986 case PURE_T:{if (!hasError) {
6988 subprogram_declaration();
6993 case TYPE_T:{if (!hasError) {
7000 case SUBTYPE_T:{if (!hasError) {
7002 subtype_declaration();
7007 case CONSTANT_T:{if (!hasError) {
7009 constant_declaration();
7014 case SIGNAL_T:{if (!hasError) {
7016 signal_declaration();
7022 case VARIABLE_T:{if (!hasError) {
7024 variable_declaration();
7029 case FILE_T:{if (!hasError) {
7036 case ALIAS_T:{if (!hasError) {
7038 alias_declaration();
7043 case COMPONENT_T:{if (!hasError) {
7045 component_declaration();
7051 jj_la1[159] = jj_gen;
7052 if (jj_2_56(2147483647)) {if (!hasError) {
7054 attribute_declaration();
7058 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7059 case ATTRIBUTE_T:{if (!hasError) {
7061 attribute_specification();
7066 case DISCONNECT_T:{if (!hasError) {
7068 disconnection_specification();
7073 case USE_T:{if (!hasError) {
7081 jj_la1[160] = jj_gen;
7082 if (jj_2_57(3)) {if (!hasError) {
7084 group_template_declaration();
7088 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7089 case GROUP_T:{if (!hasError) {
7091 group_declaration();
7097 jj_la1[161] = jj_gen;
7098 if (jj_2_58(5)) {if (!hasError) {
7100 package_instantiation_declaration();
7104 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7105 case PACKAGE_T:{if (!hasError) {
7107 package_declaration();
7113 jj_la1[162] = jj_gen;
7114 jj_consume_token(-1);
7115 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7126 void VhdlParser::package_declarative_part() {if (!hasError) {
7129 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7152 jj_la1[163] = jj_gen;
7156 package_declarative_item();
7166 QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) {
7172 jj_consume_token(IN_T);
7176 s1 = discrete_range();
7184 QCString VhdlParser::physical_literal() {QCString s,s1;if (!hasError) {
7186 if (jj_2_59(2147483647)) {if (!hasError) {
7188 s = abstract_literal();
7200 s+=" ";s+=s1;s.prepend(" "); return s;
7205 QCString VhdlParser::physical_type_definition() {QCString s,s1,s2;if (!hasError) {
7207 jj_consume_token(UNITS_T);
7215 jj_consume_token(SEMI_T);
7219 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,0,Public);
7224 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7225 case BASIC_IDENTIFIER:
7226 case EXTENDED_CHARACTER:{
7231 jj_la1[164] = jj_gen;
7235 s1 = secondary_unit_declaration();
7243 jj_consume_token(END_T);
7247 jj_consume_token(UNITS_T);
7251 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7254 case BASIC_IDENTIFIER:
7255 case EXTENDED_CHARACTER:{if (!hasError) {
7263 jj_la1[165] = jj_gen;
7273 void VhdlParser::port_clause() {if (!hasError) {
7275 jj_consume_token(PORT_T);
7279 jj_consume_token(LPAREN_T);
7287 jj_consume_token(RPAREN_T);
7291 jj_consume_token(SEMI_T);
7298 QCString VhdlParser::port_list() {QCString s;if (!hasError) {
7300 s = interface_list();
7308 void VhdlParser::port_map_aspect() {if (!hasError) {
7310 jj_consume_token(PORT_T);
7314 jj_consume_token(MAP_T);
7318 jj_consume_token(LPAREN_T);
7326 jj_consume_token(RPAREN_T);
7332 QCString VhdlParser::primary() {QCString s,s1;
7333 if (jj_2_60(2147483647)) {if (!hasError) {
7335 s = function_call();
7342 } else if (jj_2_61(2147483647)) {if (!hasError) {
7344 jj_consume_token(LPAREN_T);
7352 jj_consume_token(RPAREN_T);
7356 s="("+s1+")"; return s;
7359 } else if (jj_2_62(2147483647)) {if (!hasError) {
7361 s = qualified_expression();
7368 } else if (jj_2_63(2147483647)) {if (!hasError) {
7370 s = type_conversion();
7377 } else if (jj_2_64(2147483647)) {if (!hasError) {
7383 s.prepend(" ");return s;
7386 } else if (jj_2_65(2147483647)) {if (!hasError) {
7396 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7397 case NEW_T:{if (!hasError) {
7408 case LPAREN_T:{if (!hasError) {
7420 jj_la1[166] = jj_gen;
7421 jj_consume_token(-1);
7422 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7429 void VhdlParser::primary_unit() {
7430 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7431 case ENTITY_T:{if (!hasError) {
7433 entity_declaration();
7438 case CONFIGURATION_T:{if (!hasError) {
7440 configuration_declaration();
7446 jj_la1[167] = jj_gen;
7447 if (jj_2_66(2147483647)) {if (!hasError) {
7449 package_instantiation_declaration();
7452 } else if (jj_2_67(4)) {if (!hasError) {
7454 interface_package_declaration();
7458 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7459 case PACKAGE_T:{if (!hasError) {
7461 package_declaration();
7467 jj_la1[168] = jj_gen;
7468 jj_consume_token(-1);
7469 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7476 QCString VhdlParser::procedure_call() {QCString s,s1;if (!hasError) {
7482 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7483 case LPAREN_T:{if (!hasError) {
7485 jj_consume_token(LPAREN_T);
7489 s1 = actual_parameter_part();
7493 jj_consume_token(RPAREN_T);
7497 s1.prepend("("); s1.append(")");
7503 jj_la1[169] = jj_gen;
7513 QCString VhdlParser::procedure_call_statement() {QCString s,s1;if (!hasError) {
7515 if (jj_2_68(2)) {if (!hasError) {
7521 jj_consume_token(COLON_T);
7534 s1 = procedure_call();
7538 jj_consume_token(SEMI_T);
7546 QCString VhdlParser::process_declarative_item() {QCString s;
7547 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7551 case PURE_T:{if (!hasError) {
7553 subprogram_declaration();
7562 case TYPE_T:{if (!hasError) {
7564 s = type_declaration();
7573 case SUBTYPE_T:{if (!hasError) {
7575 s = subtype_declaration();
7584 case CONSTANT_T:{if (!hasError) {
7586 s = constant_declaration();
7596 case VARIABLE_T:{if (!hasError) {
7598 s = variable_declaration();
7607 case FILE_T:{if (!hasError) {
7609 s = file_declaration();
7618 case ALIAS_T:{if (!hasError) {
7620 s = alias_declaration();
7630 jj_la1[170] = jj_gen;
7631 if (jj_2_69(3)) {if (!hasError) {
7633 s = attribute_declaration();
7641 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7642 case ATTRIBUTE_T:{if (!hasError) {
7644 s = attribute_specification();
7653 case USE_T:{if (!hasError) {
7665 jj_la1[171] = jj_gen;
7666 if (jj_2_70(3)) {if (!hasError) {
7668 s = group_template_declaration();
7676 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7677 case GROUP_T:{if (!hasError) {
7679 s = group_declaration();
7689 jj_la1[172] = jj_gen;
7690 jj_consume_token(-1);
7691 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7701 QCString VhdlParser::process_declarative_part() {QCString s,s1;if (!hasError) {
7704 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7723 jj_la1[173] = jj_gen;
7727 s1 = process_declarative_item();
7743 void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;if (!hasError) {
7745 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7746 case BASIC_IDENTIFIER:
7747 case EXTENDED_CHARACTER:{if (!hasError) {
7753 jj_consume_token(COLON_T);
7759 jj_la1[174] = jj_gen;
7765 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7766 case POSTPONED_T:{if (!hasError) {
7768 jj_consume_token(POSTPONED_T);
7774 jj_la1[175] = jj_gen;
7780 currP=VhdlDocGen::PROCESS;
7781 current->startLine=getLine();
7782 current->bodyLine=getLine();
7786 jj_consume_token(PROCESS_T);
7790 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7791 case LPAREN_T:{if (!hasError) {
7793 jj_consume_token(LPAREN_T);
7797 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7798 case ALL_T:{if (!hasError) {
7800 tok = jj_consume_token(ALL_T);
7807 case BASIC_IDENTIFIER:
7808 case EXTENDED_CHARACTER:{if (!hasError) {
7810 s1 = sensitivity_list();
7816 jj_la1[176] = jj_gen;
7817 jj_consume_token(-1);
7818 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7823 jj_consume_token(RPAREN_T);
7829 jj_la1[177] = jj_gen;
7835 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7836 case IS_T:{if (!hasError) {
7838 jj_consume_token(IS_T);
7844 jj_la1[178] = jj_gen;
7850 s2 = process_declarative_part();
7855 FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s2.data(),0);
7856 FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0);
7860 jj_consume_token(BEGIN_T);
7864 process_statement_part();
7868 jj_consume_token(END_T);
7872 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7873 case POSTPONED_T:{if (!hasError) {
7875 jj_consume_token(POSTPONED_T);
7881 jj_la1[179] = jj_gen;
7887 jj_consume_token(PROCESS_T);
7891 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7892 case BASIC_IDENTIFIER:
7893 case EXTENDED_CHARACTER:{if (!hasError) {
7901 jj_la1[180] = jj_gen;
7907 jj_consume_token(SEMI_T);
7911 currName=VhdlDocGen::getProcessNumber();
7915 current->name=currName;
7917 current->endBodyLine=getLine();
7920 s1=tok->image.data();
7921 createFunction(currName,VhdlDocGen::PROCESS,s1.data());
7928 void VhdlParser::process_statement_part() {if (!hasError) {
7931 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7948 case BASIC_IDENTIFIER:
7949 case EXTENDED_CHARACTER:{
7954 jj_la1[181] = jj_gen;
7958 sequential_statement();
7968 QCString VhdlParser::qualified_expression() {QCString s,s1;if (!hasError) {
7974 jj_consume_token(APOSTROPHE_T);
7982 if (jj_2_71(2147483647)) {if (!hasError) {
7992 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7993 case LPAREN_T:{if (!hasError) {
7995 jj_consume_token(LPAREN_T);
8003 jj_consume_token(RPAREN_T);
8007 s+="(";s+=s1;s+=")";
8013 jj_la1[182] = jj_gen;
8014 jj_consume_token(-1);
8015 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8025 QCString VhdlParser::range() {QCString s,s1,s2;
8026 if (jj_2_72(2147483647)) {if (!hasError) {
8028 s = simple_expression();
8036 s2 = simple_expression();
8040 return s+" "+s1+" "+s2;
8043 } else if (jj_2_73(2147483647)) {if (!hasError) {
8045 s = attribute_name();
8053 jj_consume_token(-1);
8054 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8060 QCString VhdlParser::range_constraint() {QCString s,s1;if (!hasError) {
8062 jj_consume_token(RANGE_T);
8074 void VhdlParser::record_type_definition() {if (!hasError) {
8076 jj_consume_token(RECORD_T);
8080 while (!hasError) {if (!hasError) {
8082 element_declaration();
8085 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8086 case BASIC_IDENTIFIER:
8087 case EXTENDED_CHARACTER:{
8092 jj_la1[183] = jj_gen;
8100 jj_consume_token(END_T);
8104 jj_consume_token(RECORD_T);
8108 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8111 case BASIC_IDENTIFIER:
8112 case EXTENDED_CHARACTER:{if (!hasError) {
8120 jj_la1[184] = jj_gen;
8128 QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) {
8130 s = shift_expression();
8134 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8140 case NOTEQU_T:{if (!hasError) {
8142 s1 = relation_operator();
8146 s2 = shift_expression();
8152 jj_la1[185] = jj_gen;
8162 QCString VhdlParser::relation_operator() {
8163 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8164 case LT_T:{if (!hasError) {
8166 jj_consume_token(LT_T);
8175 case GT_T:{if (!hasError) {
8177 jj_consume_token(GT_T);
8186 case EQU_T:{if (!hasError) {
8188 jj_consume_token(EQU_T);
8197 case GREATERTHAN_T:{if (!hasError) {
8199 jj_consume_token(GREATERTHAN_T);
8208 case LESSTHAN_T:{if (!hasError) {
8210 jj_consume_token(LESSTHAN_T);
8219 case NOTEQU_T:{if (!hasError) {
8221 jj_consume_token(NOTEQU_T);
8231 jj_la1[186] = jj_gen;
8232 jj_consume_token(-1);
8233 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8239 QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2;if (!hasError) {
8241 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8242 case BASIC_IDENTIFIER:
8243 case EXTENDED_CHARACTER:{if (!hasError) {
8249 t = jj_consume_token(COLON_T);
8255 jj_la1[187] = jj_gen;
8261 jj_consume_token(REPORT_T);
8269 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8270 case SEVERITY_T:{if (!hasError) {
8272 t1 = jj_consume_token(SEVERITY_T);
8282 jj_la1[188] = jj_gen;
8288 jj_consume_token(SEMI_T);
8291 if(t) s.append(":");
8292 s1.prepend(" report ");
8293 if(t1) s2.prepend(" severity ");
8299 QCString VhdlParser::return_statement() {QCString s,s1;if (!hasError) {
8301 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8302 case BASIC_IDENTIFIER:
8303 case EXTENDED_CHARACTER:{if (!hasError) {
8309 jj_consume_token(COLON_T);
8319 jj_la1[189] = jj_gen;
8325 jj_consume_token(RETURN_T);
8329 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8340 case BASIC_IDENTIFIER:
8341 case EXTENDED_CHARACTER:
8342 case CHARACTER_LITERAL:
8343 case DECIMAL_LITERAL:
8345 case BIT_STRING_LITERAL:{if (!hasError) {
8353 jj_la1[190] = jj_gen;
8359 jj_consume_token(SEMI_T);
8362 return s+" return "+s1+";";
8367 QCString VhdlParser::scalar_type_definition() {QCString s,s1;
8368 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8369 case LPAREN_T:{if (!hasError) {
8371 s = enumeration_type_definition();
8380 case RANGE_T:{if (!hasError) {
8382 s = range_constraint();
8386 if (jj_2_74(2147483647)) {if (!hasError) {
8388 s1 = physical_type_definition();
8397 return s+" "+s1+"%";
8403 jj_la1[191] = jj_gen;
8404 jj_consume_token(-1);
8405 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8411 void VhdlParser::secondary_unit() {
8412 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8413 case ARCHITECTURE_T:{if (!hasError) {
8415 architecture_body();
8420 case PACKAGE_T:{if (!hasError) {
8428 jj_la1[192] = jj_gen;
8429 jj_consume_token(-1);
8430 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8435 QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;if (!hasError) {
8441 jj_consume_token(EQU_T);
8445 s1 = physical_literal();
8449 jj_consume_token(SEMI_T);
8452 //printf("\n %s %s [%d]",s.data(),s1.data(),getLine());
8453 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,s1.data(),Public);
8460 QCString VhdlParser::selected_name() {QCString s,s1;if (!hasError) {
8466 jj_consume_token(DOT_T);
8478 void VhdlParser::selected_signal_assignment() {if (!hasError) {
8480 jj_consume_token(WITH_T);
8488 jj_consume_token(SELECT_T);
8496 jj_consume_token(LESSTHAN_T);
8504 selected_waveforms();
8508 jj_consume_token(SEMI_T);
8514 void VhdlParser::selected_waveforms() {if (!hasError) {
8520 jj_consume_token(WHEN_T);
8529 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8535 jj_la1[193] = jj_gen;
8539 jj_consume_token(COMMA_T);
8547 jj_consume_token(WHEN_T);
8561 QCString VhdlParser::sensitivity_clause() {QCString s;if (!hasError) {
8563 jj_consume_token(ON_T);
8567 s = sensitivity_list();
8576 QCString VhdlParser::sensitivity_list() {QCString s,s1;if (!hasError) {
8583 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8589 jj_la1[194] = jj_gen;
8593 jj_consume_token(COMMA_T);
8613 QCString VhdlParser::sequence_of_statement() {QCString s,s1;if (!hasError) {
8622 s1 = sequential_statement();
8638 QCString VhdlParser::sequential_statement() {QCString s;
8639 if (jj_2_76(2147483647)) {if (!hasError) {
8641 s = signal_assignment_statement();
8645 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8648 } else if (jj_2_77(3)) {if (!hasError) {
8650 s = assertion_statement();
8654 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8657 } else if (jj_2_78(3)) {if (!hasError) {
8659 s = report_statement();
8663 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8666 } else if (jj_2_79(3)) {if (!hasError) {
8668 s = wait_statement();
8672 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8675 } else if (jj_2_80(2147483647)) {if (!hasError) {
8677 s = variable_assignment_statement();
8681 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8684 } else if (jj_2_81(3)) {if (!hasError) {
8686 s = procedure_call_statement();
8690 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8693 } else if (jj_2_82(3)) {if (!hasError) {
8702 } else if (jj_2_83(3)) {if (!hasError) {
8711 } else if (jj_2_84(3)) {if (!hasError) {
8720 } else if (jj_2_85(3)) {if (!hasError) {
8722 s = next_statement();
8729 } else if (jj_2_86(3)) {if (!hasError) {
8731 s = exit_statement();
8738 } else if (jj_2_87(3)) {if (!hasError) {
8740 s = return_statement();
8744 FlowChart::addFlowChart(FlowChart::RETURN_NO,s.data(),0);return s;
8748 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8750 case BASIC_IDENTIFIER:
8751 case EXTENDED_CHARACTER:{if (!hasError) {
8753 s = null_statement();
8757 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8763 jj_la1[195] = jj_gen;
8764 jj_consume_token(-1);
8765 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8772 QCString VhdlParser::shift_expression() {QCString s,s1,s2;if (!hasError) {
8774 s = simple_expression();
8778 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8784 case SRL_T:{if (!hasError) {
8786 s1 = shift_operator();
8790 s2 = simple_expression();
8796 jj_la1[196] = jj_gen;
8806 QCString VhdlParser::shift_operator() {
8807 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8808 case SLL_T:{if (!hasError) {
8810 jj_consume_token(SLL_T);
8819 case SRL_T:{if (!hasError) {
8821 jj_consume_token(SRL_T);
8830 case SLA_T:{if (!hasError) {
8832 jj_consume_token(SLA_T);
8841 case SRA_T:{if (!hasError) {
8843 jj_consume_token(SRA_T);
8852 case ROL_T:{if (!hasError) {
8854 jj_consume_token(ROL_T);
8863 case ROR_T:{if (!hasError) {
8865 jj_consume_token(ROR_T);
8875 jj_la1[197] = jj_gen;
8876 jj_consume_token(-1);
8877 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8883 QCString VhdlParser::sign() {
8884 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8885 case PLUS_T:{if (!hasError) {
8887 jj_consume_token(PLUS_T);
8896 case MINUS_T:{if (!hasError) {
8898 jj_consume_token(MINUS_T);
8908 jj_la1[198] = jj_gen;
8909 jj_consume_token(-1);
8910 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8916 QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3;
8917 if (jj_2_89(2147483647)) {if (!hasError) {
8919 conditional_signal_assignment_wave();
8926 } else if (jj_2_90(2147483647)) {if (!hasError) {
8928 selected_signal_assignment_wave();
8936 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8940 case BASIC_IDENTIFIER:
8941 case EXTENDED_CHARACTER:{if (!hasError) {
8943 if (jj_2_88(2)) {if (!hasError) {
8949 jj_consume_token(COLON_T);
8966 jj_consume_token(LESSTHAN_T);
8970 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8973 case TRANSPORT_T:{if (!hasError) {
8975 s2 = delay_mechanism();
8981 jj_la1[199] = jj_gen;
8991 jj_consume_token(SEMI_T);
8995 return s+s1+"<="+s2+s3+";";
9001 jj_la1[200] = jj_gen;
9002 jj_consume_token(-1);
9003 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9010 void VhdlParser::semi() {if (!hasError) {
9012 jj_consume_token(SEMI_T);
9018 void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4;if (!hasError) {
9020 jj_consume_token(SIGNAL_T);
9024 s = identifier_list();
9028 jj_consume_token(COLON_T);
9032 s1 = subtype_indication();
9036 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9038 case REGISTER_T:{if (!hasError) {
9046 jj_la1[201] = jj_gen;
9052 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9053 case VARASSIGN_T:{if (!hasError) {
9055 tok = jj_consume_token(VARASSIGN_T);
9065 jj_la1[202] = jj_gen;
9071 jj_consume_token(SEMI_T);
9077 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public);
9081 QCString VhdlParser::signal_kind() {
9082 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9083 case REGISTER_T:{if (!hasError) {
9085 jj_consume_token(REGISTER_T);
9094 case BUS_T:{if (!hasError) {
9096 jj_consume_token(BUS_T);
9106 jj_la1[203] = jj_gen;
9107 jj_consume_token(-1);
9108 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9114 QCString VhdlParser::signal_list() {QCString s,s1;
9115 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9118 case BASIC_IDENTIFIER:
9119 case EXTENDED_CHARACTER:{if (!hasError) {
9126 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9132 jj_la1[204] = jj_gen;
9136 jj_consume_token(COMMA_T);
9153 case OTHER_T:{if (!hasError) {
9155 jj_consume_token(OTHER_T);
9164 case ALL_T:{if (!hasError) {
9166 jj_consume_token(ALL_T);
9176 jj_la1[205] = jj_gen;
9177 jj_consume_token(-1);
9178 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9184 QCString VhdlParser::signature() {QCString s,s1,s2;if (!hasError) {
9186 jj_consume_token(LBRACKET_T);
9190 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9193 case BASIC_IDENTIFIER:
9194 case EXTENDED_CHARACTER:{if (!hasError) {
9201 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9207 jj_la1[206] = jj_gen;
9211 jj_consume_token(COMMA_T);
9229 jj_la1[207] = jj_gen;
9235 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9236 case RETURN_T:{if (!hasError) {
9238 jj_consume_token(RETURN_T);
9252 jj_la1[208] = jj_gen;
9258 jj_consume_token(RBRACKET_T);
9261 s1="["+s+"]";return s1;
9266 QCString VhdlParser::simple_expression() {QCString s,s1,s2;if (!hasError) {
9268 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9270 case MINUS_T:{if (!hasError) {
9278 jj_la1[209] = jj_gen;
9293 if (jj_2_91(2147483647)) {
9299 s1 = adding_operator();
9319 void VhdlParser::simple_name() {if (!hasError) {
9327 QCString VhdlParser::slice_name() {QCString s,s1;if (!hasError) {
9333 jj_consume_token(LPAREN_T);
9337 s1 = discrete_range();
9341 jj_consume_token(RPAREN_T);
9344 return s+"("+s1+")";
9349 QCString VhdlParser::string_literal() {Token *tok=0;if (!hasError) {
9351 tok = jj_consume_token(STRINGLITERAL);
9354 return tok->image.c_str();
9359 void VhdlParser::subprogram_body() {QCString s;if (!hasError) {
9361 jj_consume_token(IS_T);
9366 s = subprogram_declarative_part();
9372 FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s,0);
9374 FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0);
9378 jj_consume_token(BEGIN_T);
9382 subprogram_statement_part();
9386 jj_consume_token(END_T);
9390 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9392 case PROCEDURE_T:{if (!hasError) {
9400 jj_la1[210] = jj_gen;
9406 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9408 case BASIC_IDENTIFIER:
9409 case EXTENDED_CHARACTER:{if (!hasError) {
9417 jj_la1[211] = jj_gen;
9423 jj_consume_token(SEMI_T);
9426 tempEntry->endBodyLine=getLine(END_T);
9432 void VhdlParser::subprogram_declaration() {
9433 if (jj_2_92(2147483647)) {if (!hasError) {
9435 subprogram_instantiation_declaration();
9439 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9443 case PURE_T:{if (!hasError) {
9445 subprogram_specification();
9459 jj_la1[212] = jj_gen;
9460 jj_consume_token(-1);
9461 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9467 void VhdlParser::subprogram_1() {
9468 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9469 case IS_T:{if (!hasError) {
9476 case SEMI_T:{if (!hasError) {
9478 jj_consume_token(SEMI_T);
9484 jj_la1[213] = jj_gen;
9485 jj_consume_token(-1);
9486 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9491 QCString VhdlParser::subprogram_declarative_item() {QCString s;
9492 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9496 case PURE_T:{if (!hasError) {
9498 subprogram_declaration();
9507 case TYPE_T:{if (!hasError) {
9509 s = type_declaration();
9518 case IS_T:{if (!hasError) {
9529 case SUBTYPE_T:{if (!hasError) {
9531 s = subtype_declaration();
9540 case CONSTANT_T:{if (!hasError) {
9542 s = constant_declaration();
9552 case VARIABLE_T:{if (!hasError) {
9554 s = variable_declaration();
9563 case FILE_T:{if (!hasError) {
9565 s = file_declaration();
9574 case ALIAS_T:{if (!hasError) {
9576 s = alias_declaration();
9586 jj_la1[214] = jj_gen;
9587 if (jj_2_93(2147483647)) {if (!hasError) {
9589 s = attribute_declaration();
9597 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9598 case ATTRIBUTE_T:{if (!hasError) {
9600 s = attribute_specification();
9609 case USE_T:{if (!hasError) {
9621 jj_la1[215] = jj_gen;
9622 if (jj_2_94(3)) {if (!hasError) {
9624 s = group_template_declaration();
9632 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9633 case GROUP_T:{if (!hasError) {
9635 s = group_declaration();
9645 jj_la1[216] = jj_gen;
9646 jj_consume_token(-1);
9647 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9657 QCString VhdlParser::subprogram_declarative_part() {QCString s,s1;if (!hasError) {
9660 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9680 jj_la1[217] = jj_gen;
9684 s1 = subprogram_declarative_item();
9700 void VhdlParser::subprogram_kind() {
9701 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9702 case FUNCTION_T:{if (!hasError) {
9704 jj_consume_token(FUNCTION_T);
9709 case PROCEDURE_T:{if (!hasError) {
9711 jj_consume_token(PROCEDURE_T);
9717 jj_la1[218] = jj_gen;
9718 jj_consume_token(-1);
9719 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9724 void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t;
9725 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9726 case PROCEDURE_T:{if (!hasError) {
9728 jj_consume_token(PROCEDURE_T);
9736 currP=VhdlDocGen::PROCEDURE;
9737 createFunction(s.data(),currP,0);
9739 current->startLine=getLine(PROCEDURE_T);
9740 current->bodyLine=getLine(PROCEDURE_T);
9744 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9745 case LPAREN_T:{if (!hasError) {
9747 jj_consume_token(LPAREN_T);
9751 param_sec=PARAM_SEC;
9763 jj_consume_token(RPAREN_T);
9769 jj_la1[219] = jj_gen;
9775 if (jj_2_95(2)) {if (!hasError) {
9777 gen_interface_list();
9786 if (jj_2_96(2)) {if (!hasError) {
9808 case PURE_T:{if (!hasError) {
9810 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9812 case PURE_T:{if (!hasError) {
9814 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9815 case PURE_T:{if (!hasError) {
9817 tok = jj_consume_token(PURE_T);
9822 case IMPURE_T:{if (!hasError) {
9824 tok = jj_consume_token(IMPURE_T);
9830 jj_la1[220] = jj_gen;
9831 jj_consume_token(-1);
9832 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9839 jj_la1[221] = jj_gen;
9845 t = jj_consume_token(FUNCTION_T);
9853 currP=VhdlDocGen::FUNCTION;
9855 createFunction(tok->image.c_str(),currP,s.data());
9857 createFunction(0,currP,s.data());
9859 current->startLine=getLine(FUNCTION_T);
9860 current->bodyLine=getLine(FUNCTION_T);
9864 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9865 case LPAREN_T:{if (!hasError) {
9867 param_sec=PARAM_SEC;
9871 jj_consume_token(LPAREN_T);
9875 formal_parameter_list();
9879 jj_consume_token(RPAREN_T);
9889 jj_la1[222] = jj_gen;
9895 jj_consume_token(RETURN_T);
9911 jj_la1[223] = jj_gen;
9912 jj_consume_token(-1);
9913 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9918 void VhdlParser::subprogram_statement_part() {if (!hasError) {
9921 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9938 case BASIC_IDENTIFIER:
9939 case EXTENDED_CHARACTER:{
9944 jj_la1[224] = jj_gen;
9948 sequential_statement();
9958 QCString VhdlParser::subtype_declaration() {QCString s,s1;if (!hasError) {
9960 jj_consume_token(SUBTYPE_T);
9968 jj_consume_token(IS_T);
9972 s1 = subtype_indication();
9976 jj_consume_token(SEMI_T);
9979 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public);
9980 return " subtype "+s+" is "+s1+";";
9985 QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) {
9991 if (jj_2_97(2147483647)) {if (!hasError) {
10002 if (jj_2_98(2147483647)) {if (!hasError) {
10012 return s+" "+s1+" "+s2;
10017 QCString VhdlParser::suffix() {QCString s;
10018 if (jj_2_99(2147483647)) {if (!hasError) {
10028 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10029 case CHARACTER_LITERAL:{if (!hasError) {
10031 s = character_literal();
10040 case STRINGLITERAL:{if (!hasError) {
10042 s = operator_symbol();
10051 case ALL_T:{if (!hasError) {
10053 jj_consume_token(ALL_T);
10063 jj_la1[225] = jj_gen;
10064 jj_consume_token(-1);
10065 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10072 QCString VhdlParser::target() {QCString s;
10073 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10075 case STRINGLITERAL:
10076 case BASIC_IDENTIFIER:
10077 case EXTENDED_CHARACTER:{if (!hasError) {
10088 case LPAREN_T:{if (!hasError) {
10100 jj_la1[226] = jj_gen;
10101 jj_consume_token(-1);
10102 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10108 QCString VhdlParser::term() {QCString s,s1,s2;if (!hasError) {
10114 while (!hasError) {
10121 s1 = multiplying_operation();
10141 QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) {
10143 jj_consume_token(FOR_T);
10155 QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) {
10161 jj_consume_token(LPAREN_T);
10169 jj_consume_token(RPAREN_T);
10172 return s+"("+s1+")";
10177 QCString VhdlParser::type_declaration() {QCString s;
10178 if (jj_2_101(3)) {if (!hasError) {
10180 s = full_type_declaration();
10188 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10189 case TYPE_T:{if (!hasError) {
10191 s = incomplete_type_declaration();
10201 jj_la1[227] = jj_gen;
10202 jj_consume_token(-1);
10203 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10210 QCString VhdlParser::type_definition() {QCString s;
10211 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10213 case LPAREN_T:{if (!hasError) {
10216 s = scalar_type_definition();
10226 case RECORD_T:{if (!hasError) {
10228 s = composite_type_definition();
10237 case ACCESS_T:{if (!hasError) {
10239 s = access_type_definition();
10248 case FILE_T:{if (!hasError) {
10250 s = file_type_definition();
10260 jj_la1[228] = jj_gen;
10261 if (jj_2_102(2)) {if (!hasError) {
10263 protected_type_body();
10271 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10272 case PROTECTED_T:{if (!hasError) {
10274 protected_type_declaration();
10284 jj_la1[229] = jj_gen;
10285 jj_consume_token(-1);
10286 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10294 QCString VhdlParser::type_mark() {QCString s;if (!hasError) {
10304 QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3;if (!hasError) {
10306 jj_consume_token(ARRAY_T);
10310 jj_consume_token(LPAREN_T);
10314 s = index_subtype_definition();
10318 while (!hasError) {
10319 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10325 jj_la1[230] = jj_gen;
10329 jj_consume_token(COMMA_T);
10333 s1 = index_subtype_definition();
10345 jj_consume_token(RPAREN_T);
10349 jj_consume_token(OF_T);
10353 s2 = subtype_indication();
10356 return "array("+s+s3+") of "+s2;
10361 QCString VhdlParser::use_clause() {QCString s,s1;if (!hasError) {
10363 jj_consume_token(USE_T);
10367 s = selected_name();
10371 while (!hasError) {
10372 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10378 jj_la1[231] = jj_gen;
10382 jj_consume_token(COMMA_T);
10386 s1 = selected_name();
10398 jj_consume_token(SEMI_T);
10401 QStringList ql1=QStringList::split(",",s,FALSE);
10402 for (uint j=0;j<ql1.count();j++)
10404 QStringList ql=QStringList::split(".",ql1[j],FALSE);
10405 QCString it=ql[1].utf8();
10406 if ( parse_sec==0 && Config_getBool(SHOW_INCLUDE_FILES) )
10408 VhdlParser::addVhdlType(it.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::USE,it.data(),"_use_",Public);
10417 QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2;
10418 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10421 case STRINGLITERAL:
10422 case BASIC_IDENTIFIER:
10423 case EXTENDED_CHARACTER:{if (!hasError) {
10425 if (jj_2_103(2)) {if (!hasError) {
10431 jj_consume_token(COLON_T);
10448 jj_consume_token(VARASSIGN_T);
10456 jj_consume_token(SEMI_T);
10460 return s+s1+":="+s2+";";
10465 case WITH_T:{if (!hasError) {
10467 selected_variable_assignment();
10477 jj_la1[232] = jj_gen;
10478 jj_consume_token(-1);
10479 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10485 QCString VhdlParser::variable_declaration() {Token *tok=0;Token *t1=0;QCString s,s1,s2;if (!hasError) {
10487 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10488 case SHARED_T:{if (!hasError) {
10490 tok = jj_consume_token(SHARED_T);
10496 jj_la1[233] = jj_gen;
10502 jj_consume_token(VARIABLE_T);
10506 s = identifier_list();
10510 jj_consume_token(COLON_T);
10514 s1 = subtype_indication();
10518 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10519 case VARASSIGN_T:{if (!hasError) {
10521 t1 = jj_consume_token(VARASSIGN_T);
10531 jj_la1[234] = jj_gen;
10537 jj_consume_token(SEMI_T);
10543 QCString val=" variable "+s+":"+s1+s2+";";
10547 it.prepend(" shared ");
10548 val.prepend(" shared");
10549 spec=VhdlDocGen::SHAREDVARIABLE;
10552 spec=VhdlDocGen::SHAREDVARIABLE;
10558 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public);
10564 QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0;if (!hasError) {
10566 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10567 case BASIC_IDENTIFIER:
10568 case EXTENDED_CHARACTER:{if (!hasError) {
10574 t = jj_consume_token(COLON_T);
10580 jj_la1[235] = jj_gen;
10586 jj_consume_token(WAIT_T);
10590 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10591 case ON_T:{if (!hasError) {
10593 s1 = sensitivity_clause();
10599 jj_la1[236] = jj_gen;
10605 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10606 case UNTIL_T:{if (!hasError) {
10608 s2 = condition_clause();
10614 jj_la1[237] = jj_gen;
10620 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10621 case FOR_T:{if (!hasError) {
10623 s3 = timeout_clause();
10629 jj_la1[238] = jj_gen;
10635 jj_consume_token(SEMI_T);
10638 if(t) s.append(":");
10639 return s+" wait "+s1+s2+s3+";";
10644 QCString VhdlParser::waveform() {QCString s,s1;
10645 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10655 case STRINGLITERAL:
10656 case BASIC_IDENTIFIER:
10657 case EXTENDED_CHARACTER:
10658 case CHARACTER_LITERAL:
10659 case DECIMAL_LITERAL:
10660 case BASED_LITERAL:
10661 case BIT_STRING_LITERAL:{if (!hasError) {
10663 s = waveform_element();
10667 while (!hasError) {
10668 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10674 jj_la1[239] = jj_gen;
10678 jj_consume_token(COMMA_T);
10682 s1 = waveform_element();
10699 case UNAFFECTED_T:{if (!hasError) {
10701 jj_consume_token(UNAFFECTED_T);
10705 return " unaffected ";
10711 jj_la1[240] = jj_gen;
10712 jj_consume_token(-1);
10713 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10719 QCString VhdlParser::waveform_element() {QCString s,s1;if (!hasError) {
10725 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10726 case AFTER_T:{if (!hasError) {
10728 jj_consume_token(AFTER_T);
10736 s1.prepend(" after ");
10742 jj_la1[241] = jj_gen;
10752 QCString VhdlParser::protected_type_body() {if (!hasError) {
10754 jj_consume_token(PROTECTED_T);
10758 jj_consume_token(BODY_T);
10762 protected_type_body_declarative_part();
10766 jj_consume_token(END_T);
10770 jj_consume_token(PROTECTED_T);
10774 jj_consume_token(BODY_T);
10778 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10779 case BASIC_IDENTIFIER:
10780 case EXTENDED_CHARACTER:{if (!hasError) {
10788 jj_la1[242] = jj_gen;
10798 void VhdlParser::protected_type_body_declarative_item() {
10799 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10803 case PURE_T:{if (!hasError) {
10805 subprogram_declaration();
10810 case IS_T:{if (!hasError) {
10817 case TYPE_T:{if (!hasError) {
10819 type_declaration();
10824 case SUBTYPE_T:{if (!hasError) {
10826 subtype_declaration();
10831 case CONSTANT_T:{if (!hasError) {
10833 constant_declaration();
10839 case VARIABLE_T:{if (!hasError) {
10841 variable_declaration();
10846 case FILE_T:{if (!hasError) {
10848 file_declaration();
10853 case ALIAS_T:{if (!hasError) {
10855 alias_declaration();
10861 jj_la1[243] = jj_gen;
10862 if (jj_2_104(2147483647)) {if (!hasError) {
10864 attribute_declaration();
10868 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10869 case ATTRIBUTE_T:{if (!hasError) {
10871 attribute_specification();
10876 case USE_T:{if (!hasError) {
10884 jj_la1[244] = jj_gen;
10885 if (jj_2_105(3)) {if (!hasError) {
10887 group_template_declaration();
10891 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10892 case GROUP_T:{if (!hasError) {
10894 group_declaration();
10900 jj_la1[245] = jj_gen;
10901 jj_consume_token(-1);
10902 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10911 void VhdlParser::protected_type_body_declarative_part() {if (!hasError) {
10913 while (!hasError) {
10914 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10934 jj_la1[246] = jj_gen;
10938 protected_type_body_declarative_item();
10948 QCString VhdlParser::protected_type_declaration() {if (!hasError) {
10950 jj_consume_token(PROTECTED_T);
10954 try {if (!hasError) {
10956 protected_type_declarative_part();
10960 error_skipto(END_T);
10965 jj_consume_token(END_T);
10969 jj_consume_token(PROTECTED_T);
10973 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10974 case BASIC_IDENTIFIER:
10975 case EXTENDED_CHARACTER:{if (!hasError) {
10983 jj_la1[247] = jj_gen;
10993 void VhdlParser::protected_type_declarative_item() {
10994 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10998 case PURE_T:{if (!hasError) {
11000 subprogram_specification();
11005 case ATTRIBUTE_T:{if (!hasError) {
11007 attribute_specification();
11012 case USE_T:{if (!hasError) {
11020 jj_la1[248] = jj_gen;
11021 jj_consume_token(-1);
11022 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11027 void VhdlParser::protected_type_declarative_part() {if (!hasError) {
11029 while (!hasError) {
11030 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11041 jj_la1[249] = jj_gen;
11045 protected_type_declarative_item();
11049 jj_consume_token(SEMI_T);
11059 QCString VhdlParser::context_ref() {QCString s;if (!hasError) {
11061 jj_consume_token(CONTEXT_T);
11065 s = identifier_list();
11069 jj_consume_token(SEMI_T);
11072 return "context "+s ;
11077 void VhdlParser::context_declaration() {QCString s,s1;if (!hasError) {
11079 jj_consume_token(CONTEXT_T);
11087 jj_consume_token(IS_T);
11091 parse_sec=CONTEXT_SEC;
11095 while (!hasError) {
11096 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11104 jj_la1[250] = jj_gen;
11108 s1 = libustcont_stats();
11116 jj_consume_token(END_T);
11120 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11121 case CONTEXT_T:{if (!hasError) {
11123 jj_consume_token(CONTEXT_T);
11129 jj_la1[251] = jj_gen;
11135 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11136 case BASIC_IDENTIFIER:
11137 case EXTENDED_CHARACTER:{if (!hasError) {
11145 jj_la1[252] = jj_gen;
11151 jj_consume_token(SEMI_T);
11155 addVhdlType(s.data(),getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public);
11159 QCString VhdlParser::libustcont_stats() {QCString s;
11160 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11161 case USE_T:{if (!hasError) {
11172 case LIBRARY_T:{if (!hasError) {
11174 s = library_clause();
11183 case CONTEXT_T:{if (!hasError) {
11195 jj_la1[253] = jj_gen;
11196 jj_consume_token(-1);
11197 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11203 void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2;if (!hasError) {
11205 jj_consume_token(PACKAGE_T);
11213 jj_consume_token(IS_T);
11217 jj_consume_token(NEW_T);
11229 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11230 case GENERIC_T:{if (!hasError) {
11238 jj_la1[254] = jj_gen;
11244 jj_consume_token(SEMI_T);
11247 QCString q=" is new "+s1+s2;
11248 addVhdlType(s.data(),getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public);
11252 QCString VhdlParser::interface_package_declaration() {QCString s,s1;if (!hasError) {
11254 jj_consume_token(PACKAGE_T);
11262 jj_consume_token(IS_T);
11266 jj_consume_token(NEW_T);
11274 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11275 case GENERIC_T:{if (!hasError) {
11283 jj_la1[255] = jj_gen;
11289 return "package "+s+" is new "+s1;
11294 QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2;if (!hasError) {
11296 jj_consume_token(FUNCTION_T);
11304 jj_consume_token(IS_T);
11308 jj_consume_token(NEW_T);
11320 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11321 case GENERIC_T:{if (!hasError) {
11329 jj_la1[256] = jj_gen;
11335 jj_consume_token(SEMI_T);
11338 QCString q= " is new "+s1+s2;
11339 addVhdlType(s.data(),getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public);
11345 void VhdlParser::gen_assoc_list() {if (!hasError) {
11347 jj_consume_token(GENERIC_T);
11351 jj_consume_token(MAP_T);
11355 jj_consume_token(LPAREN_T);
11359 association_list();
11363 jj_consume_token(RPAREN_T);
11369 void VhdlParser::gen_interface_list() {if (!hasError) {
11371 jj_consume_token(GENERIC_T);
11375 jj_consume_token(LPAREN_T);
11379 //int u=s_str.iLine;
11393 jj_consume_token(RPAREN_T);
11399 void VhdlParser::case_scheme() {if (!hasError) {
11401 jj_consume_token(CASE_T);
11409 jj_consume_token(GENERATE_T);
11417 if (jj_2_106(3)) {if (!hasError) {
11428 jj_consume_token(END_T);
11432 jj_consume_token(GENERATE_T);
11436 generate_statement_body();
11440 jj_consume_token(SEMI_T);
11446 void VhdlParser::when_stats() {if (!hasError) {
11448 while (!hasError) {if (!hasError) {
11450 jj_consume_token(WHEN_T);
11454 if (jj_2_107(2)) {if (!hasError) {
11460 jj_consume_token(COLON_T);
11473 jj_consume_token(ARROW_T);
11477 generate_statement_body();
11480 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11486 jj_la1[257] = jj_gen;
11496 void VhdlParser::ttend() {if (!hasError) {
11498 jj_consume_token(END_T);
11502 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11503 case BASIC_IDENTIFIER:
11504 case EXTENDED_CHARACTER:{if (!hasError) {
11512 jj_la1[258] = jj_gen;
11518 jj_consume_token(SEMI_T);
11524 void VhdlParser::generate_statement_body() {if (!hasError) {
11526 jj_consume_token(BEGIN_T);
11530 generate_statement_body();
11536 void VhdlParser::generate_statement_body1() {if (!hasError) {
11538 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11557 case VARIABLE_T:{if (!hasError) {
11559 while (!hasError) {
11560 if (jj_2_108(2147483647)) {
11566 block_declarative_item();
11574 jj_consume_token(BEGIN_T);
11580 jj_la1[259] = jj_gen;
11586 while (!hasError) {
11587 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11595 case STRINGLITERAL:
11596 case BASIC_IDENTIFIER:
11597 case EXTENDED_CHARACTER:
11598 case VHDL2008TOOLDIR:{
11603 jj_la1[260] = jj_gen;
11607 concurrent_statement();
11617 QCString VhdlParser::external_name() {QCString s,s1,s2;if (!hasError) {
11619 jj_consume_token(SLSL_T);
11627 s1 = external_pathname();
11631 jj_consume_token(COLON_T);
11635 s2 = subtype_indication();
11639 jj_consume_token(RSRS_T);
11643 QCString t1=s1+":"+s2+">>";
11649 QCString VhdlParser::sig_stat() {Token *t;
11650 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11651 case CONSTANT_T:{if (!hasError) {
11653 t = jj_consume_token(CONSTANT_T);
11657 return t->image.data();
11662 case SIGNAL_T:{if (!hasError) {
11664 t = jj_consume_token(SIGNAL_T);
11668 return t->image.data();
11673 case VARIABLE_T:{if (!hasError) {
11675 t = jj_consume_token(VARIABLE_T);
11679 return t->image.data();
11685 jj_la1[261] = jj_gen;
11686 jj_consume_token(-1);
11687 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11693 QCString VhdlParser::external_pathname() {QCString s;
11694 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11695 case DOT_T:{if (!hasError) {
11697 s = absolute_pathname();
11706 case NEG_T:{if (!hasError) {
11708 s = relative_pathname();
11717 case AT_T:{if (!hasError) {
11719 s = package_path_name();
11729 jj_la1[262] = jj_gen;
11730 jj_consume_token(-1);
11731 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11737 QCString VhdlParser::absolute_pathname() {QCString s,s1;
11738 if (jj_2_109(2147483647)) {if (!hasError) {
11740 jj_consume_token(DOT_T);
11744 s = pathname_element_list();
11756 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11757 case DOT_T:{if (!hasError) {
11759 jj_consume_token(DOT_T);
11773 jj_la1[263] = jj_gen;
11774 jj_consume_token(-1);
11775 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11782 QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) {
11788 if (jj_2_110(2147483647)) {if (!hasError) {
11790 s1 = pathname_element_list();
11807 QCString VhdlParser::neg_list() {QCString s;if (!hasError) {
11809 while (!hasError) {if (!hasError) {
11811 jj_consume_token(NEG_T);
11815 jj_consume_token(DOT_T);
11822 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11828 jj_la1[264] = jj_gen;
11840 QCString VhdlParser::pathname_element() {QCString s,s1;if (!hasError) {
11846 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11847 case LPAREN_T:{if (!hasError) {
11849 jj_consume_token(LPAREN_T);
11857 jj_consume_token(RPAREN_T);
11863 jj_la1[265] = jj_gen;
11869 return s+"("+s1+")";
11876 QCString VhdlParser::pathname_element_list() {QCString s,s1,s2;if (!hasError) {
11879 s = pathname_element();
11883 jj_consume_token(DOT_T);
11893 while (!hasError) {
11894 if (jj_2_111(2147483647)) {
11900 s1 = pathname_element();
11904 jj_consume_token(DOT_T);
11920 QCString VhdlParser::package_path_name() {QCString s;if (!hasError) {
11922 jj_consume_token(AT_T);
11934 void VhdlParser::conditional_signal_assignment_wave() {
11935 if (jj_2_112(2147483647)) {if (!hasError) {
11937 conditional_force_assignment();
11941 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11944 case STRINGLITERAL:
11945 case BASIC_IDENTIFIER:
11946 case EXTENDED_CHARACTER:{if (!hasError) {
11948 conditional_waveform_assignment();
11954 jj_la1[266] = jj_gen;
11955 jj_consume_token(-1);
11956 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11962 void VhdlParser::conditional_waveform_assignment() {if (!hasError) {
11968 jj_consume_token(LESSTHAN_T);
11972 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11975 case TRANSPORT_T:{if (!hasError) {
11983 jj_la1[267] = jj_gen;
11989 waveform_element();
11993 jj_consume_token(WHEN_T);
12001 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12002 case ELSE_T:{if (!hasError) {
12010 jj_la1[268] = jj_gen;
12016 jj_consume_token(SEMI_T);
12022 void VhdlParser::else_wave_list() {if (!hasError) {
12024 jj_consume_token(ELSE_T);
12032 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12033 case WHEN_T:{if (!hasError) {
12035 jj_consume_token(WHEN_T);
12045 jj_la1[269] = jj_gen;
12053 void VhdlParser::conditional_force_assignment() {if (!hasError) {
12059 jj_consume_token(LESSTHAN_T);
12063 jj_consume_token(FORCE_T);
12067 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12069 case OUT_T:{if (!hasError) {
12077 jj_la1[270] = jj_gen;
12087 jj_consume_token(WHEN_T);
12091 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12101 case STRINGLITERAL:
12102 case BASIC_IDENTIFIER:
12103 case EXTENDED_CHARACTER:
12104 case CHARACTER_LITERAL:
12105 case DECIMAL_LITERAL:
12106 case BASED_LITERAL:
12107 case BIT_STRING_LITERAL:{if (!hasError) {
12119 jj_la1[271] = jj_gen;
12125 jj_consume_token(SEMI_T);
12131 void VhdlParser::selected_signal_assignment_wave() {
12132 if (jj_2_113(2147483647)) {if (!hasError) {
12134 selected_force_assignment();
12138 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12139 case WITH_T:{if (!hasError) {
12141 selected_waveform_assignment();
12147 jj_la1[272] = jj_gen;
12148 jj_consume_token(-1);
12149 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12155 void VhdlParser::selected_variable_assignment() {if (!hasError) {
12157 jj_consume_token(WITH_T);
12165 jj_consume_token(SELECT_T);
12169 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12170 case Q_T:{if (!hasError) {
12172 jj_consume_token(Q_T);
12178 jj_la1[273] = jj_gen;
12188 jj_consume_token(VARASSIGN_T);
12198 void VhdlParser::select_name() {
12199 if (jj_2_114(2147483647)) {if (!hasError) {
12205 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12207 case STRINGLITERAL:
12208 case BASIC_IDENTIFIER:
12209 case EXTENDED_CHARACTER:{if (!hasError) {
12217 jj_la1[274] = jj_gen;
12218 jj_consume_token(-1);
12219 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12225 void VhdlParser::selected_waveform_assignment() {if (!hasError) {
12227 jj_consume_token(WITH_T);
12235 jj_consume_token(SELECT_T);
12239 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12240 case Q_T:{if (!hasError) {
12242 jj_consume_token(Q_T);
12248 jj_la1[275] = jj_gen;
12258 jj_consume_token(LESSTHAN_T);
12262 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12265 case TRANSPORT_T:{if (!hasError) {
12273 jj_la1[276] = jj_gen;
12285 void VhdlParser::selected_force_assignment() {if (!hasError) {
12287 jj_consume_token(WITH_T);
12295 jj_consume_token(SELECT_T);
12299 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12300 case Q_T:{if (!hasError) {
12302 jj_consume_token(Q_T);
12308 jj_la1[277] = jj_gen;
12318 jj_consume_token(LESSTHAN_T);
12322 jj_consume_token(FORCE_T);
12326 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12328 case OUT_T:{if (!hasError) {
12336 jj_la1[278] = jj_gen;
12348 void VhdlParser::sel_var_list() {if (!hasError) {
12355 jj_consume_token(WHEN_T);
12363 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12364 case COMMA_T:{if (!hasError) {
12366 jj_consume_token(COMMA_T);
12371 case SEMI_T:{if (!hasError) {
12373 jj_consume_token(SEMI_T);
12379 jj_la1[279] = jj_gen;
12380 jj_consume_token(-1);
12381 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12388 while (!hasError) {
12389 if (jj_2_115(2147483647)) {
12399 jj_consume_token(WHEN_T);
12407 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12408 case COMMA_T:{if (!hasError) {
12410 jj_consume_token(COMMA_T);
12415 case SEMI_T:{if (!hasError) {
12417 jj_consume_token(SEMI_T);
12423 jj_la1[280] = jj_gen;
12424 jj_consume_token(-1);
12425 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12436 void VhdlParser::sel_wave_list() {if (!hasError) {
12438 waveform_element();
12442 jj_consume_token(WHEN_T);
12450 while (!hasError) {
12451 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12457 jj_la1[281] = jj_gen;
12461 jj_consume_token(COMMA_T);
12473 jj_consume_token(SEMI_T);
12479 void VhdlParser::inout_stat() {
12480 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12481 case IN_T:{if (!hasError) {
12483 jj_consume_token(IN_T);
12488 case OUT_T:{if (!hasError) {
12490 jj_consume_token(OUT_T);
12496 jj_la1[282] = jj_gen;
12497 jj_consume_token(-1);
12498 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12503 void VhdlParser::else_stat() {if (!hasError) {
12505 while (!hasError) {if (!hasError) {
12507 jj_consume_token(ELSE_T);
12515 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12516 case WHEN_T:{if (!hasError) {
12518 jj_consume_token(WHEN_T);
12528 jj_la1[283] = jj_gen;
12533 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12539 jj_la1[284] = jj_gen;
12549 QCString VhdlParser::interface_subprogram_declaration() {QCString s;
12550 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12551 case PROCEDURE_T:{if (!hasError) {
12564 case PURE_T:{if (!hasError) {
12576 jj_la1[285] = jj_gen;
12577 jj_consume_token(-1);
12578 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12584 QCString VhdlParser::iproc() {QCString s,s1;if (!hasError) {
12586 jj_consume_token(PROCEDURE_T);
12598 return "procedure "+s+s1;
12603 QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0;if (!hasError) {
12605 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12608 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12609 case PURE_T:{if (!hasError) {
12611 t = jj_consume_token(PURE_T);
12616 case IMPURE_T:{if (!hasError) {
12618 t = jj_consume_token(IMPURE_T);
12624 jj_la1[286] = jj_gen;
12625 jj_consume_token(-1);
12626 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12631 jj_la1[287] = jj_gen;
12637 jj_consume_token(FUNCTION_T);
12649 jj_consume_token(RETURN_T);
12657 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12658 case IS_T:{if (!hasError) {
12660 t1 = jj_consume_token(IS_T);
12664 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12665 case BASIC_IDENTIFIER:
12666 case EXTENDED_CHARACTER:{if (!hasError) {
12673 case BOX_T:{if (!hasError) {
12675 t2 = jj_consume_token(BOX_T);
12681 jj_la1[288] = jj_gen;
12682 jj_consume_token(-1);
12683 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12690 jj_la1[289] = jj_gen;
12696 if(t) q=t->image.data();
12700 s3.prepend(" is ");
12703 if (parse_sec==GEN_SEC)
12705 QCString ss=q+" function "+s1+" return "+s2+s3;
12706 int a=getLine(FUNCTION_T);
12707 int b=getLine(PROCEDURE_T);
12710 addVhdlType(current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Public);
12717 QCString VhdlParser::param() {QCString s,s1;Token *tok=0;if (!hasError) {
12719 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12720 case PARAMETER_T:{if (!hasError) {
12722 tok = jj_consume_token(PARAMETER_T);
12728 jj_la1[290] = jj_gen;
12734 param_sec=PARAM_SEC;
12738 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12739 case LPAREN_T:{if (!hasError) {
12741 jj_consume_token(LPAREN_T);
12745 s1 = interface_list();
12749 jj_consume_token(RPAREN_T);
12755 jj_la1[291] = jj_gen;
12762 s = tok->image.data();
12766 return s+"("+s1+")";
12771 void VhdlParser::parseInline() {
12772 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12775 case BASIC_IDENTIFIER:
12776 case EXTENDED_CHARACTER:{if (!hasError) {
12778 process_statement();
12786 case PURE_T:{if (!hasError) {
12788 subprogram_declaration();
12794 jj_la1[292] = jj_gen;
12795 jj_consume_token(-1);
12796 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12801 VhdlParser::VhdlParser(TokenManager *tm){
12805 VhdlParser::~VhdlParser()
12807 if (token_source) delete token_source;
12809 Token *next, *t = head;
12816 if (errorHandlerCreated) {
12817 delete errorHandler;
12821 void VhdlParser::ReInit(TokenManager *tm){
12822 if (head) delete head;
12823 errorHandler = new ErrorHandler();
12824 errorHandlerCreated = true;
12827 head = token = new Token();
12829 token->next = NULL;
12830 jj_lookingAhead = false;
12833 jj_scanpos = jj_lastpos = NULL;
12837 trace_enabled = false;
12840 for (int i = 0; i < 293; i++) jj_la1[i] = -1;
12844 Token * VhdlParser::jj_consume_token(int kind) {
12846 if ((oldToken = token)->next != NULL) token = token->next;
12847 else token = token->next = token_source->getNextToken();
12849 if (token->kind == kind) {
12851 if (++jj_gc > 100) {
12853 for (int i = 0; i < 115; i++) {
12854 JJCalls *c = &jj_2_rtns[i];
12855 while (c != NULL) {
12856 if (c->gen < jj_gen) c->first = NULL;
12865 JAVACC_STRING_TYPE image = kind >= 0 ? tokenImage[kind] : tokenImage[0];
12866 errorHandler->handleUnexpectedToken(kind, image.substr(1, image.size() - 2), getToken(1), this), hasError = true;
12871 bool VhdlParser::jj_scan_token(int kind){
12872 if (jj_scanpos == jj_lastpos) {
12874 if (jj_scanpos->next == NULL) {
12875 jj_lastpos = jj_scanpos = jj_scanpos->next = token_source->getNextToken();
12877 jj_lastpos = jj_scanpos = jj_scanpos->next;
12880 jj_scanpos = jj_scanpos->next;
12883 int i = 0; Token *tok = token;
12884 while (tok != NULL && tok != jj_scanpos) { i++; tok = tok->next; }
12885 if (tok != NULL) jj_add_error_token(kind, i);
12887 if (jj_scanpos->kind != kind) return true;
12888 if (jj_la == 0 && jj_scanpos == jj_lastpos) { return jj_done = true; }
12893 /** Get the next Token. */
12895 Token * VhdlParser::getNextToken(){
12896 if (token->next != NULL) token = token->next;
12897 else token = token->next = token_source->getNextToken();
12903 /** Get the specific Token. */
12905 Token * VhdlParser::getToken(int index){
12907 for (int i = 0; i < index; i++) {
12908 if (t->next != NULL) t = t->next;
12909 else t = t->next = token_source->getNextToken();
12915 int VhdlParser::jj_ntk_f(){
12916 if ((jj_nt=token->next) == NULL)
12917 return (jj_ntk = (token->next=token_source->getNextToken())->kind);
12919 return (jj_ntk = jj_nt->kind);
12923 void VhdlParser::jj_add_error_token(int kind, int pos) {
12926 /** Generate ParseException. */
12928 void VhdlParser::parseError() {
12929 fprintf(stderr, "Parse error at: %d:%d, after token: %s encountered: %s\n", token->beginLine, token->beginColumn, addUnicodeEscapes(token->image).c_str(), addUnicodeEscapes(getToken(1)->image).c_str());
12933 void VhdlParser::enable_tracing() {
12936 /** Disable tracing. */
12938 void VhdlParser::disable_tracing() {
12942 void VhdlParser::jj_rescan_token(){
12944 for (int i = 0; i < 115; i++) {
12945 JJCalls *p = &jj_2_rtns[i];
12947 if (p->gen > jj_gen) {
12948 jj_la = p->arg; jj_lastpos = jj_scanpos = p->first;
12950 case 0: jj_3_1(); break;
12951 case 1: jj_3_2(); break;
12952 case 2: jj_3_3(); break;
12953 case 3: jj_3_4(); break;
12954 case 4: jj_3_5(); break;
12955 case 5: jj_3_6(); break;
12956 case 6: jj_3_7(); break;
12957 case 7: jj_3_8(); break;
12958 case 8: jj_3_9(); break;
12959 case 9: jj_3_10(); break;
12960 case 10: jj_3_11(); break;
12961 case 11: jj_3_12(); break;
12962 case 12: jj_3_13(); break;
12963 case 13: jj_3_14(); break;
12964 case 14: jj_3_15(); break;
12965 case 15: jj_3_16(); break;
12966 case 16: jj_3_17(); break;
12967 case 17: jj_3_18(); break;
12968 case 18: jj_3_19(); break;
12969 case 19: jj_3_20(); break;
12970 case 20: jj_3_21(); break;
12971 case 21: jj_3_22(); break;
12972 case 22: jj_3_23(); break;
12973 case 23: jj_3_24(); break;
12974 case 24: jj_3_25(); break;
12975 case 25: jj_3_26(); break;
12976 case 26: jj_3_27(); break;
12977 case 27: jj_3_28(); break;
12978 case 28: jj_3_29(); break;
12979 case 29: jj_3_30(); break;
12980 case 30: jj_3_31(); break;
12981 case 31: jj_3_32(); break;
12982 case 32: jj_3_33(); break;
12983 case 33: jj_3_34(); break;
12984 case 34: jj_3_35(); break;
12985 case 35: jj_3_36(); break;
12986 case 36: jj_3_37(); break;
12987 case 37: jj_3_38(); break;
12988 case 38: jj_3_39(); break;
12989 case 39: jj_3_40(); break;
12990 case 40: jj_3_41(); break;
12991 case 41: jj_3_42(); break;
12992 case 42: jj_3_43(); break;
12993 case 43: jj_3_44(); break;
12994 case 44: jj_3_45(); break;
12995 case 45: jj_3_46(); break;
12996 case 46: jj_3_47(); break;
12997 case 47: jj_3_48(); break;
12998 case 48: jj_3_49(); break;
12999 case 49: jj_3_50(); break;
13000 case 50: jj_3_51(); break;
13001 case 51: jj_3_52(); break;
13002 case 52: jj_3_53(); break;
13003 case 53: jj_3_54(); break;
13004 case 54: jj_3_55(); break;
13005 case 55: jj_3_56(); break;
13006 case 56: jj_3_57(); break;
13007 case 57: jj_3_58(); break;
13008 case 58: jj_3_59(); break;
13009 case 59: jj_3_60(); break;
13010 case 60: jj_3_61(); break;
13011 case 61: jj_3_62(); break;
13012 case 62: jj_3_63(); break;
13013 case 63: jj_3_64(); break;
13014 case 64: jj_3_65(); break;
13015 case 65: jj_3_66(); break;
13016 case 66: jj_3_67(); break;
13017 case 67: jj_3_68(); break;
13018 case 68: jj_3_69(); break;
13019 case 69: jj_3_70(); break;
13020 case 70: jj_3_71(); break;
13021 case 71: jj_3_72(); break;
13022 case 72: jj_3_73(); break;
13023 case 73: jj_3_74(); break;
13024 case 74: jj_3_75(); break;
13025 case 75: jj_3_76(); break;
13026 case 76: jj_3_77(); break;
13027 case 77: jj_3_78(); break;
13028 case 78: jj_3_79(); break;
13029 case 79: jj_3_80(); break;
13030 case 80: jj_3_81(); break;
13031 case 81: jj_3_82(); break;
13032 case 82: jj_3_83(); break;
13033 case 83: jj_3_84(); break;
13034 case 84: jj_3_85(); break;
13035 case 85: jj_3_86(); break;
13036 case 86: jj_3_87(); break;
13037 case 87: jj_3_88(); break;
13038 case 88: jj_3_89(); break;
13039 case 89: jj_3_90(); break;
13040 case 90: jj_3_91(); break;
13041 case 91: jj_3_92(); break;
13042 case 92: jj_3_93(); break;
13043 case 93: jj_3_94(); break;
13044 case 94: jj_3_95(); break;
13045 case 95: jj_3_96(); break;
13046 case 96: jj_3_97(); break;
13047 case 97: jj_3_98(); break;
13048 case 98: jj_3_99(); break;
13049 case 99: jj_3_100(); break;
13050 case 100: jj_3_101(); break;
13051 case 101: jj_3_102(); break;
13052 case 102: jj_3_103(); break;
13053 case 103: jj_3_104(); break;
13054 case 104: jj_3_105(); break;
13055 case 105: jj_3_106(); break;
13056 case 106: jj_3_107(); break;
13057 case 107: jj_3_108(); break;
13058 case 108: jj_3_109(); break;
13059 case 109: jj_3_110(); break;
13060 case 110: jj_3_111(); break;
13061 case 111: jj_3_112(); break;
13062 case 112: jj_3_113(); break;
13063 case 113: jj_3_114(); break;
13064 case 114: jj_3_115(); break;
13068 } while (p != NULL);
13074 void VhdlParser::jj_save(int index, int xla){
13075 JJCalls *p = &jj_2_rtns[index];
13076 while (p->gen > jj_gen) {
13077 if (p->next == NULL) { p = p->next = new JJCalls(); break; }
13080 p->gen = jj_gen + xla - jj_la; p->first = token; p->arg = xla;