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,0x90404000,0x20080000,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,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,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,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,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,0x4000000,0x40001c0,0x0,0x0,0x0,0x180,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x40001c0,0x180,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,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,0x4000000,0x4000000,0x2,0x0,0x0,0x3c0,0x3c0,0x1c0,0x1c0,0x3c0,0x380,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x817e0,0x0,0x0,0x1e0,0x0,0x180,0x0,0x3c0,0x0,0x180,0x0,0x180,0x0,0x0,0x180,0x0,0x817e0,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,0x817e0,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,0x817e0,0x0,0x180,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x180,0x4000000,0x40001c0,0x40001c0,0x0,0x1,0x0,0x1,0x0,0x1c0,0x0,0x0,0x0,0x0,0x817e0,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;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;
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) {
555 case VHDL2008TOOLDIR:{
564 block_declarative_item();
574 void VhdlParser::architecture_statement_part() {if (!hasError) {
577 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
586 case BASIC_IDENTIFIER:
587 case EXTENDED_CHARACTER:
588 case VHDL2008TOOLDIR:{
597 concurrent_statement();
607 QCString VhdlParser::array_type_definition() {QCString s;
608 if (jj_2_5(2147483647)) {if (!hasError) {
610 s = unconstraint_array_definition();
618 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
619 case ARRAY_T:{if (!hasError) {
621 s = constraint_array_definition();
632 jj_consume_token(-1);
633 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
640 QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) {
642 jj_consume_token(ASSERT_T);
650 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
651 case REPORT_T:{if (!hasError) {
653 t = jj_consume_token(REPORT_T);
669 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
670 case SEVERITY_T:{if (!hasError) {
672 t1 = jj_consume_token(SEVERITY_T);
687 s.prepend("assert ");
688 if(t) s1.prepend(" report ");
689 if(t1) s2.prepend(" report ");
695 QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0;if (!hasError) {
697 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
698 case BASIC_IDENTIFIER:
699 case EXTENDED_CHARACTER:{if (!hasError) {
705 t = jj_consume_token(COLON_T);
721 jj_consume_token(SEMI_T);
730 QCString VhdlParser::association_element() {QCString s,s1;if (!hasError) {
732 if (jj_2_6(2147483647)) {if (!hasError) {
738 jj_consume_token(ARROW_T);
755 QCString VhdlParser::association_list() {QCString s,s1;if (!hasError) {
757 s = association_element();
762 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
772 jj_consume_token(COMMA_T);
776 s1 = association_element();
792 QCString VhdlParser::attribute_declaration() {QCString s,s1;if (!hasError) {
794 jj_consume_token(ATTRIBUTE_T);
802 jj_consume_token(COLON_T);
810 jj_consume_token(SEMI_T);
813 addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public);
814 return " attribute "+s+":"+s1+";";
819 QCString VhdlParser::attribute_designator() {QCString s;Token *tok;
820 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
821 case BASIC_IDENTIFIER:
822 case EXTENDED_CHARACTER:{if (!hasError) {
833 case RANGE_T:{if (!hasError) {
835 tok = jj_consume_token(RANGE_T);
839 return tok->image.c_str();
846 jj_consume_token(-1);
847 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
853 QCString VhdlParser::attribute_name() {QCString s,s1;if (!hasError) {
859 jj_consume_token(APOSTROPHE_T);
871 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
872 case LPAREN_T:{if (!hasError) {
874 jj_consume_token(LPAREN_T);
882 jj_consume_token(RPAREN_T);
902 QCString VhdlParser::attribute_specification() {QCString s,s1,s2;if (!hasError) {
904 jj_consume_token(ATTRIBUTE_T);
908 s = attribute_designator();
912 jj_consume_token(OF_T);
916 s1 = entity_specification();
920 jj_consume_token(IS_T);
928 jj_consume_token(SEMI_T);
931 QCString t= s1+" is "+s2;
932 addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public);
933 return " attribute "+s+" of "+s1+ " is "+s2+";";
938 QCString VhdlParser::base() {Token *tok;if (!hasError) {
940 tok = jj_consume_token(INTEGER);
943 return tok->image.c_str();
948 QCString VhdlParser::base_specifier() {Token *tok;if (!hasError) {
950 tok = jj_consume_token(BASIC_IDENTIFIER);
953 return tok->image.c_str();
958 QCString VhdlParser::base_unit_declaration() {QCString s;if (!hasError) {
968 QCString VhdlParser::based_integer() {Token *tok;if (!hasError) {
970 tok = jj_consume_token(BASIC_IDENTIFIER);
973 return tok->image.c_str();
978 QCString VhdlParser::based_literal() {Token *tok;if (!hasError) {
980 tok = jj_consume_token(BASED_LITERAL);
983 return tok->image.c_str();
988 QCString VhdlParser::basic_identifier() {Token *tok;if (!hasError) {
990 tok = jj_consume_token(BASIC_IDENTIFIER);
993 return tok->image.c_str();
998 void VhdlParser::binding_indication() {if (!hasError) {
1000 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1001 case USE_T:{if (!hasError) {
1003 jj_consume_token(USE_T);
1013 jj_la1[20] = jj_gen;
1019 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1020 case GENERIC_T:{if (!hasError) {
1022 generic_map_aspect();
1028 jj_la1[21] = jj_gen;
1034 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1035 case PORT_T:{if (!hasError) {
1043 jj_la1[22] = jj_gen;
1051 QCString VhdlParser::bit_string_literal() {Token *tok;if (!hasError) {
1053 tok = jj_consume_token(BIT_STRING_LITERAL);
1056 return tok->image.c_str();
1061 QCString VhdlParser::bit_value() {Token *tok;if (!hasError) {
1063 tok = jj_consume_token(BASIC_IDENTIFIER);
1066 return tok->image.c_str();
1071 void VhdlParser::block_configuration() {if (!hasError) {
1073 jj_consume_token(FOR_T);
1077 block_specification();
1082 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1088 jj_la1[23] = jj_gen;
1101 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1107 jj_la1[24] = jj_gen;
1111 configuration_item();
1119 jj_consume_token(END_T);
1123 jj_consume_token(FOR_T);
1127 jj_consume_token(SEMI_T);
1133 void VhdlParser::block_declarative_item() {
1134 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1138 case PURE_T:{if (!hasError) {
1140 subprogram_declaration();
1145 case TYPE_T:{if (!hasError) {
1152 case SUBTYPE_T:{if (!hasError) {
1154 subtype_declaration();
1159 case CONSTANT_T:{if (!hasError) {
1161 constant_declaration();
1166 case SIGNAL_T:{if (!hasError) {
1168 signal_declaration();
1174 case VARIABLE_T:{if (!hasError) {
1176 variable_declaration();
1181 case FILE_T:{if (!hasError) {
1188 case ALIAS_T:{if (!hasError) {
1190 alias_declaration();
1195 case COMPONENT_T:{if (!hasError) {
1197 component_declaration();
1203 jj_la1[25] = jj_gen;
1204 if (jj_2_7(2147483647)) {if (!hasError) {
1206 attribute_declaration();
1210 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1211 case ATTRIBUTE_T:{if (!hasError) {
1213 attribute_specification();
1218 case FOR_T:{if (!hasError) {
1220 configuration_specification();
1225 case DISCONNECT_T:{if (!hasError) {
1227 disconnection_specification();
1232 case USE_T:{if (!hasError) {
1240 jj_la1[26] = jj_gen;
1241 if (jj_2_8(3)) {if (!hasError) {
1243 group_template_declaration();
1247 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1248 case GROUP_T:{if (!hasError) {
1250 group_declaration();
1255 case VHDL2008TOOLDIR:{if (!hasError) {
1257 jj_consume_token(VHDL2008TOOLDIR);
1263 jj_la1[27] = jj_gen;
1264 jj_consume_token(-1);
1265 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
1274 void VhdlParser::block_declarative_part() {if (!hasError) {
1277 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1296 case VHDL2008TOOLDIR:{
1301 jj_la1[28] = jj_gen;
1305 block_declarative_item();
1315 void VhdlParser::block_header() {if (!hasError) {
1317 if (jj_2_9(2147483647)) {if (!hasError) {
1323 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1324 case GENERIC_T:{if (!hasError) {
1326 generic_map_aspect();
1330 jj_consume_token(SEMI_T);
1336 jj_la1[29] = jj_gen;
1347 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1348 case PORT_T:{if (!hasError) {
1354 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1355 case PORT_T:{if (!hasError) {
1361 jj_consume_token(SEMI_T);
1367 jj_la1[30] = jj_gen;
1375 jj_la1[31] = jj_gen;
1383 void VhdlParser::block_specification() {if (!hasError) {
1389 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1390 case LPAREN_T:{if (!hasError) {
1392 jj_consume_token(LPAREN_T);
1396 index_specification();
1400 jj_consume_token(RPAREN_T);
1406 jj_la1[32] = jj_gen;
1414 void VhdlParser::block_statement() {QCString s;if (!hasError) {
1420 jj_consume_token(COLON_T);
1424 jj_consume_token(BLOCK_T);
1428 pushLabel(genLabels,s);
1432 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1433 case LPAREN_T:{if (!hasError) {
1435 jj_consume_token(LPAREN_T);
1443 jj_consume_token(RPAREN_T);
1449 jj_la1[33] = jj_gen;
1455 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1456 case IS_T:{if (!hasError) {
1458 jj_consume_token(IS_T);
1464 jj_la1[34] = jj_gen;
1474 block_declarative_part();
1478 jj_consume_token(BEGIN_T);
1482 block_statement_part();
1486 jj_consume_token(END_T);
1490 jj_consume_token(BLOCK_T);
1494 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1495 case BASIC_IDENTIFIER:
1496 case EXTENDED_CHARACTER:{if (!hasError) {
1504 jj_la1[35] = jj_gen;
1510 jj_consume_token(SEMI_T);
1513 genLabels=popLabel(genLabels);
1517 void VhdlParser::block_statement_part() {if (!hasError) {
1520 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1529 case BASIC_IDENTIFIER:
1530 case EXTENDED_CHARACTER:
1531 case VHDL2008TOOLDIR:{
1536 jj_la1[36] = jj_gen;
1540 concurrent_statement();
1550 void VhdlParser::case_statement() {QCString s;if (!hasError) {
1552 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1553 case BASIC_IDENTIFIER:
1554 case EXTENDED_CHARACTER:{if (!hasError) {
1560 jj_consume_token(COLON_T);
1566 jj_la1[37] = jj_gen;
1572 jj_consume_token(CASE_T);
1580 QCString ca="case "+s;
1581 FlowChart::addFlowChart(FlowChart::CASE_NO,0,ca);
1585 jj_consume_token(IS_T);
1589 case_statement_alternative();
1594 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1600 jj_la1[38] = jj_gen;
1604 case_statement_alternative();
1612 jj_consume_token(END_T);
1616 jj_consume_token(CASE_T);
1620 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1621 case BASIC_IDENTIFIER:
1622 case EXTENDED_CHARACTER:{if (!hasError) {
1630 jj_la1[39] = jj_gen;
1636 jj_consume_token(SEMI_T);
1639 FlowChart::moveToPrevLevel();
1640 FlowChart::addFlowChart(FlowChart::END_CASE,"end case",0);
1644 void VhdlParser::case_statement_alternative() {QCString s;if (!hasError) {
1646 jj_consume_token(WHEN_T);
1654 jj_consume_token(ARROW_T);
1660 FlowChart::addFlowChart(FlowChart::WHEN_NO,s.data(),t);
1664 sequence_of_statement();
1667 FlowChart::moveToPrevLevel();
1671 QCString VhdlParser::character_literal() {Token *tok;if (!hasError) {
1673 tok = jj_consume_token(CHARACTER_LITERAL);
1676 return tok->image.c_str();
1681 QCString VhdlParser::choice() {QCString s;
1682 if (jj_2_10(2147483647)) {if (!hasError) {
1684 s = simple_expression();
1691 } else if (jj_2_11(2147483647)) {if (!hasError) {
1693 s = discrete_range();
1700 } else if (jj_2_12(2147483647)) {if (!hasError) {
1710 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1711 case OTHER_T:{if (!hasError) {
1713 jj_consume_token(OTHER_T);
1723 jj_la1[40] = jj_gen;
1724 jj_consume_token(-1);
1725 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
1732 QCString VhdlParser::choices() {QCString s,s1;if (!hasError) {
1739 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1745 jj_la1[41] = jj_gen;
1749 jj_consume_token(BAR_T);
1769 void VhdlParser::component_configuration() {if (!hasError) {
1771 jj_consume_token(FOR_T);
1775 component_specification();
1779 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1783 case SEMI_T:{if (!hasError) {
1785 binding_indication();
1789 jj_consume_token(SEMI_T);
1795 jj_la1[42] = jj_gen;
1801 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1802 case FOR_T:{if (!hasError) {
1804 block_configuration();
1810 jj_la1[43] = jj_gen;
1816 jj_consume_token(END_T);
1820 jj_consume_token(FOR_T);
1824 jj_consume_token(SEMI_T);
1830 void VhdlParser::component_declaration() {QCString s;if (!hasError) {
1832 jj_consume_token(COMPONENT_T);
1840 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1841 case IS_T:{if (!hasError) {
1843 jj_consume_token(IS_T);
1849 jj_la1[44] = jj_gen;
1855 currP=VhdlDocGen::COMPONENT;
1859 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1860 case GENERIC_T:{if (!hasError) {
1868 jj_la1[45] = jj_gen;
1874 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1875 case PORT_T:{if (!hasError) {
1883 jj_la1[46] = jj_gen;
1889 addVhdlType(s.data(),getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Public);
1894 jj_consume_token(END_T);
1898 jj_consume_token(COMPONENT_T);
1902 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1903 case BASIC_IDENTIFIER:
1904 case EXTENDED_CHARACTER:{if (!hasError) {
1912 jj_la1[47] = jj_gen;
1918 jj_consume_token(SEMI_T);
1924 void VhdlParser::component_instantiation_statement() {QCString s,s1;if (!hasError) {
1930 jj_consume_token(COLON_T);
1934 s1 = instantiation_unit();
1938 addCompInst(s.lower().data(),s1.lower().data(),0,getLine());
1942 if (jj_2_13(2147483647)) {if (!hasError) {
1944 generic_map_aspect();
1953 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1954 case PORT_T:{if (!hasError) {
1962 jj_la1[48] = jj_gen;
1968 jj_consume_token(SEMI_T);
1974 void VhdlParser::component_specification() {if (!hasError) {
1976 instantiation_list();
1980 jj_consume_token(COLON_T);
1990 QCString VhdlParser::composite_type_definition() {QCString s,s1;
1991 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
1992 case ARRAY_T:{if (!hasError) {
1994 s = array_type_definition();
2003 case RECORD_T:{if (!hasError) {
2005 record_type_definition();
2015 jj_la1[49] = jj_gen;
2016 jj_consume_token(-1);
2017 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2023 void VhdlParser::concurrent_assertion_statement() {if (!hasError) {
2025 if (jj_2_14(2)) {if (!hasError) {
2031 jj_consume_token(COLON_T);
2040 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2041 case POSTPONED_T:{if (!hasError) {
2043 jj_consume_token(POSTPONED_T);
2049 jj_la1[50] = jj_gen;
2059 jj_consume_token(SEMI_T);
2065 void VhdlParser::concurrent_procedure_call_statement() {if (!hasError) {
2067 if (jj_2_15(2)) {if (!hasError) {
2073 jj_consume_token(COLON_T);
2082 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2083 case POSTPONED_T:{if (!hasError) {
2085 jj_consume_token(POSTPONED_T);
2091 jj_la1[51] = jj_gen;
2101 jj_consume_token(SEMI_T);
2107 void VhdlParser::concurrent_signal_assignment_statement() {if (!hasError) {
2109 if (jj_2_16(2)) {if (!hasError) {
2115 jj_consume_token(COLON_T);
2124 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2125 case POSTPONED_T:{if (!hasError) {
2127 jj_consume_token(POSTPONED_T);
2133 jj_la1[52] = jj_gen;
2139 if (jj_2_17(2147483647)) {if (!hasError) {
2141 conditional_signal_assignment();
2145 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2146 case WITH_T:{if (!hasError) {
2148 selected_signal_assignment();
2154 jj_la1[53] = jj_gen;
2155 jj_consume_token(-1);
2156 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2164 void VhdlParser::concurrent_statement() {
2165 if (jj_2_18(2147483647)) {if (!hasError) {
2170 } else if (jj_2_19(2147483647)) {if (!hasError) {
2172 process_statement();
2175 } else if (jj_2_20(2147483647)) {if (!hasError) {
2177 generate_statement();
2181 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2182 case CASE_T:{if (!hasError) {
2190 jj_la1[54] = jj_gen;
2191 if (jj_2_21(2147483647)) {if (!hasError) {
2193 concurrent_assertion_statement();
2196 } else if (jj_2_22(2147483647)) {if (!hasError) {
2198 concurrent_signal_assignment_statement();
2201 } else if (jj_2_23(2147483647)) {if (!hasError) {
2203 component_instantiation_statement();
2206 } else if (jj_2_24(2147483647)) {if (!hasError) {
2208 concurrent_procedure_call_statement();
2212 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2213 case VHDL2008TOOLDIR:{if (!hasError) {
2215 jj_consume_token(VHDL2008TOOLDIR);
2221 jj_la1[55] = jj_gen;
2222 jj_consume_token(-1);
2223 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2231 QCString VhdlParser::condition() {QCString s;if (!hasError) {
2241 QCString VhdlParser::condition_clause() {QCString s;if (!hasError) {
2243 jj_consume_token(UNTIL_T);
2255 void VhdlParser::conditional_signal_assignment() {if (!hasError) {
2261 jj_consume_token(LESSTHAN_T);
2269 conditional_waveforms();
2273 jj_consume_token(SEMI_T);
2279 void VhdlParser::conditional_waveforms() {if (!hasError) {
2286 if (jj_2_25(2147483647)) {
2292 jj_consume_token(WHEN_T);
2300 jj_consume_token(ELSE_T);
2312 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2313 case WHEN_T:{if (!hasError) {
2315 jj_consume_token(WHEN_T);
2325 jj_la1[56] = jj_gen;
2333 void VhdlParser::configuration_declaration() {QCString s,s1;if (!hasError) {
2335 jj_consume_token(CONFIGURATION_T);
2343 jj_consume_token(OF_T);
2351 jj_consume_token(IS_T);
2356 addVhdlType(s.data(),getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Public);
2360 configuration_declarative_part();
2364 block_configuration();
2368 jj_consume_token(END_T);
2372 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2373 case CONFIGURATION_T:{if (!hasError) {
2375 jj_consume_token(CONFIGURATION_T);
2381 jj_la1[57] = jj_gen;
2387 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2390 case BASIC_IDENTIFIER:
2391 case EXTENDED_CHARACTER:{if (!hasError) {
2399 jj_la1[58] = jj_gen;
2405 jj_consume_token(SEMI_T);
2408 genLabels.resize(0); confName="";
2412 void VhdlParser::configuration_declarative_item() {
2413 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2414 case USE_T:{if (!hasError) {
2421 case ATTRIBUTE_T:{if (!hasError) {
2423 attribute_specification();
2428 case GROUP_T:{if (!hasError) {
2430 group_declaration();
2436 jj_la1[59] = jj_gen;
2437 jj_consume_token(-1);
2438 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2443 void VhdlParser::configuration_declarative_part() {if (!hasError) {
2446 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2454 jj_la1[60] = jj_gen;
2458 configuration_declarative_item();
2468 void VhdlParser::configuration_item() {
2469 if (jj_2_26(2147483647)) {if (!hasError) {
2471 component_configuration();
2475 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2476 case FOR_T:{if (!hasError) {
2478 block_configuration();
2484 jj_la1[61] = jj_gen;
2485 jj_consume_token(-1);
2486 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2492 void VhdlParser::configuration_specification() {if (!hasError) {
2494 jj_consume_token(FOR_T);
2498 component_specification();
2502 binding_indication();
2506 jj_consume_token(SEMI_T);
2512 QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0;if (!hasError) {
2514 jj_consume_token(CONSTANT_T);
2518 s = identifier_list();
2522 jj_consume_token(COLON_T);
2526 s1 = subtype_indication();
2530 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2531 case VARASSIGN_T:{if (!hasError) {
2533 t = jj_consume_token(VARASSIGN_T);
2543 jj_la1[62] = jj_gen;
2549 jj_consume_token(SEMI_T);
2555 addVhdlType(s.data(),getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Public);
2556 it.prepend("constant ");
2562 QCString VhdlParser::constraint_array_definition() {QCString s,s1;if (!hasError) {
2564 jj_consume_token(ARRAY_T);
2568 s = index_constraint();
2572 jj_consume_token(OF_T);
2576 s1 = subtype_indication();
2584 void VhdlParser::context_clause() {if (!hasError) {
2587 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2594 jj_la1[63] = jj_gen;
2608 QCString VhdlParser::constraint() {QCString s;
2609 if (jj_2_27(2147483647)) {if (!hasError) {
2611 s = range_constraint();
2618 } else if (jj_2_28(2147483647)) {if (!hasError) {
2620 s = index_constraint();
2628 jj_consume_token(-1);
2629 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2635 void VhdlParser::context_item() {
2636 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2637 case LIBRARY_T:{if (!hasError) {
2644 case USE_T:{if (!hasError) {
2652 jj_la1[64] = jj_gen;
2653 jj_consume_token(-1);
2654 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2659 QCString VhdlParser::decimal_literal() {Token *tok;if (!hasError) {
2661 tok = jj_consume_token(DECIMAL_LITERAL);
2664 return tok->image.c_str();
2669 QCString VhdlParser::delay_mechanism() {QCString s;
2670 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2671 case TRANSPORT_T:{if (!hasError) {
2673 jj_consume_token(TRANSPORT_T);
2677 return " transport ";
2683 case REJECT_T:{if (!hasError) {
2685 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2686 case REJECT_T:{if (!hasError) {
2688 jj_consume_token(REJECT_T);
2696 s.prepend(" reject ");
2702 jj_la1[65] = jj_gen;
2708 jj_consume_token(INERTIAL_T);
2712 return s+" inertial ";
2718 jj_la1[66] = jj_gen;
2719 jj_consume_token(-1);
2720 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2726 void VhdlParser::design_file() {
2727 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2728 case ARCHITECTURE_T:
2729 case CONFIGURATION_T:
2734 case USE_T:{if (!hasError) {
2736 while (!hasError) {if (!hasError) {
2741 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2742 case ARCHITECTURE_T:
2743 case CONFIGURATION_T:
2753 jj_la1[67] = jj_gen;
2766 case 0:{if (!hasError) {
2768 jj_consume_token(0);
2774 jj_la1[68] = jj_gen;
2775 jj_consume_token(-1);
2776 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2781 void VhdlParser::design_unit() {if (!hasError) {
2793 QCString VhdlParser::designator() {QCString s;
2794 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2795 case BASIC_IDENTIFIER:
2796 case EXTENDED_CHARACTER:{if (!hasError) {
2807 case STRINGLITERAL:{if (!hasError) {
2809 s = operator_symbol();
2819 jj_la1[69] = jj_gen;
2820 jj_consume_token(-1);
2821 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2827 QCString VhdlParser::direction() {Token *tok;
2828 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2829 case TO_T:{if (!hasError) {
2831 tok = jj_consume_token(TO_T);
2835 return tok->image.c_str();
2840 case DOWNTO_T:{if (!hasError) {
2842 tok = jj_consume_token(DOWNTO_T);
2846 return tok->image.c_str();
2852 jj_la1[70] = jj_gen;
2853 jj_consume_token(-1);
2854 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2860 void VhdlParser::disconnection_specification() {if (!hasError) {
2862 jj_consume_token(DISCONNECT_T);
2866 guarded_signal_specificatio();
2870 jj_consume_token(AFTER_T);
2878 jj_consume_token(SEMI_T);
2884 void VhdlParser::guarded_signal_specificatio() {if (!hasError) {
2890 jj_consume_token(COLON_T);
2900 QCString VhdlParser::discrete_range() {QCString s;
2901 if (jj_2_29(2147483647)) {if (!hasError) {
2910 } else if (jj_2_30(2147483647)) {if (!hasError) {
2912 s = subtype_indication();
2920 jj_consume_token(-1);
2921 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
2927 QCString VhdlParser::element_association() {QCString s,s1;if (!hasError) {
2929 if (jj_2_31(2147483647)) {if (!hasError) {
2935 jj_consume_token(ARROW_T);
2954 QCString VhdlParser::element_declaration() {QCString s,s1;if (!hasError) {
2956 s = identifier_list();
2960 jj_consume_token(COLON_T);
2964 s1 = subtype_indication();
2968 jj_consume_token(SEMI_T);
2976 QCString VhdlParser::entity_aspect() {Token *tok;QCString s,s1;
2977 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2978 case ENTITY_T:{if (!hasError) {
2980 tok = jj_consume_token(ENTITY_T);
2988 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
2989 case LPAREN_T:{if (!hasError) {
2991 jj_consume_token(LPAREN_T);
2999 jj_consume_token(RPAREN_T);
3009 jj_la1[71] = jj_gen;
3020 case CONFIGURATION_T:{if (!hasError) {
3022 tok = jj_consume_token(CONFIGURATION_T);
3030 return tok->image.c_str()+s;
3035 case OPEN_T:{if (!hasError) {
3037 tok = jj_consume_token(OPEN_T);
3041 return tok->image.c_str();
3047 jj_la1[72] = jj_gen;
3048 jj_consume_token(-1);
3049 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3055 QCString VhdlParser::entity_class() {
3056 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3057 case ENTITY_T:{if (!hasError) {
3059 jj_consume_token(ENTITY_T);
3068 case ARCHITECTURE_T:{if (!hasError) {
3070 jj_consume_token(ARCHITECTURE_T);
3074 return "architecture";
3079 case CONFIGURATION_T:{if (!hasError) {
3081 jj_consume_token(CONFIGURATION_T);
3085 return "configuration";
3090 case PROCEDURE_T:{if (!hasError) {
3092 jj_consume_token(PROCEDURE_T);
3101 case FUNCTION_T:{if (!hasError) {
3103 jj_consume_token(FUNCTION_T);
3112 case PACKAGE_T:{if (!hasError) {
3114 jj_consume_token(PACKAGE_T);
3123 case TYPE_T:{if (!hasError) {
3125 jj_consume_token(TYPE_T);
3134 case SUBTYPE_T:{if (!hasError) {
3136 jj_consume_token(SUBTYPE_T);
3145 case CONSTANT_T:{if (!hasError) {
3147 jj_consume_token(CONSTANT_T);
3156 case SIGNAL_T:{if (!hasError) {
3158 jj_consume_token(SIGNAL_T);
3167 case VARIABLE_T:{if (!hasError) {
3169 jj_consume_token(VARIABLE_T);
3178 case COMPONENT_T:{if (!hasError) {
3180 jj_consume_token(COMPONENT_T);
3189 case LABEL_T:{if (!hasError) {
3191 jj_consume_token(LABEL_T);
3200 case LITERAL_T:{if (!hasError) {
3202 jj_consume_token(LITERAL_T);
3211 case UNITS_T:{if (!hasError) {
3213 jj_consume_token(UNITS_T);
3222 case GROUP_T:{if (!hasError) {
3224 jj_consume_token(GROUP_T);
3233 case FILE_T:{if (!hasError) {
3235 jj_consume_token(FILE_T);
3245 jj_la1[73] = jj_gen;
3246 jj_consume_token(-1);
3247 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3253 QCString VhdlParser::entity_class_entry() {QCString s;if (!hasError) {
3259 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3260 case BOX_T:{if (!hasError) {
3262 jj_consume_token(BOX_T);
3272 jj_la1[74] = jj_gen;
3282 QCString VhdlParser::entity_class_entry_list() {QCString s,s1,s2;if (!hasError) {
3285 s1 = entity_class_entry();
3296 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3302 jj_la1[75] = jj_gen;
3306 jj_consume_token(COMMA_T);
3310 s = entity_class_entry();
3326 void VhdlParser::entity_declaration() {QCString s;if (!hasError) {
3328 jj_consume_token(ENTITY_T);
3336 jj_consume_token(IS_T);
3342 addVhdlType(s.data(),getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public);
3350 entity_declarative_part();
3354 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3355 case BEGIN_T:{if (!hasError) {
3357 jj_consume_token(BEGIN_T);
3361 entity_statement_part();
3367 jj_la1[76] = jj_gen;
3373 jj_consume_token(END_T);
3377 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3378 case ENTITY_T:{if (!hasError) {
3380 jj_consume_token(ENTITY_T);
3386 jj_la1[77] = jj_gen;
3392 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3395 case BASIC_IDENTIFIER:
3396 case EXTENDED_CHARACTER:{if (!hasError) {
3404 jj_la1[78] = jj_gen;
3410 jj_consume_token(SEMI_T);
3413 lastEntity=0;lastCompound=0; genLabels.resize(0);
3417 void VhdlParser::entity_declarative_item() {
3418 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3422 case PURE_T:{if (!hasError) {
3424 subprogram_declaration();
3429 case TYPE_T:{if (!hasError) {
3436 case SUBTYPE_T:{if (!hasError) {
3438 subtype_declaration();
3443 case CONSTANT_T:{if (!hasError) {
3445 constant_declaration();
3450 case SIGNAL_T:{if (!hasError) {
3452 signal_declaration();
3458 case VARIABLE_T:{if (!hasError) {
3460 variable_declaration();
3465 case FILE_T:{if (!hasError) {
3472 case ALIAS_T:{if (!hasError) {
3474 alias_declaration();
3480 jj_la1[79] = jj_gen;
3481 if (jj_2_32(2147483647)) {if (!hasError) {
3483 attribute_declaration();
3487 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3488 case ATTRIBUTE_T:{if (!hasError) {
3490 attribute_specification();
3495 case DISCONNECT_T:{if (!hasError) {
3497 disconnection_specification();
3502 case USE_T:{if (!hasError) {
3510 jj_la1[80] = jj_gen;
3511 if (jj_2_33(3)) {if (!hasError) {
3513 group_template_declaration();
3517 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3518 case GROUP_T:{if (!hasError) {
3520 group_declaration();
3526 jj_la1[81] = jj_gen;
3527 if (jj_2_34(5)) {if (!hasError) {
3529 package_instantiation_declaration();
3533 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3534 case PACKAGE_T:{if (!hasError) {
3536 package_declaration();
3541 case VHDL2008TOOLDIR:{if (!hasError) {
3543 jj_consume_token(VHDL2008TOOLDIR);
3549 jj_la1[82] = jj_gen;
3550 jj_consume_token(-1);
3551 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3562 void VhdlParser::entity_declarative_part() {if (!hasError) {
3565 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3583 case VHDL2008TOOLDIR:{
3588 jj_la1[83] = jj_gen;
3592 entity_declarative_item();
3602 QCString VhdlParser::entity_designator() {QCString s,s1;if (!hasError) {
3608 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3609 case LBRACKET_T:{if (!hasError) {
3617 jj_la1[84] = jj_gen;
3627 void VhdlParser::entity_header() {if (!hasError) {
3629 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3630 case GENERIC_T:{if (!hasError) {
3632 currP=VhdlDocGen::GENERIC;parse_sec=GEN_SEC;
3642 jj_la1[85] = jj_gen;
3648 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3649 case PORT_T:{if (!hasError) {
3651 currP=VhdlDocGen::PORT;
3661 jj_la1[86] = jj_gen;
3669 QCString VhdlParser::entity_name_list() {QCString s,s1;
3670 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3673 case BASIC_IDENTIFIER:
3674 case EXTENDED_CHARACTER:
3675 case CHARACTER_LITERAL:{if (!hasError) {
3677 while (!hasError) {if (!hasError) {
3679 s1 = entity_designator();
3686 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3689 case BASIC_IDENTIFIER:
3690 case EXTENDED_CHARACTER:
3691 case CHARACTER_LITERAL:{
3696 jj_la1[87] = jj_gen;
3709 case OTHER_T:{if (!hasError) {
3711 jj_consume_token(OTHER_T);
3720 case ALL_T:{if (!hasError) {
3722 jj_consume_token(ALL_T);
3732 jj_la1[88] = jj_gen;
3733 jj_consume_token(-1);
3734 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3740 QCString VhdlParser::entity_specification() {QCString s,s1;if (!hasError) {
3742 s = entity_name_list();
3746 jj_consume_token(COLON_T);
3750 s1 = entity_class();
3758 void VhdlParser::entity_statement() {
3759 if (jj_2_35(2147483647)) {if (!hasError) {
3761 concurrent_assertion_statement();
3764 } else if (jj_2_36(2147483647)) {if (!hasError) {
3766 process_statement();
3770 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3774 case BASIC_IDENTIFIER:
3775 case EXTENDED_CHARACTER:{if (!hasError) {
3777 concurrent_procedure_call_statement();
3783 jj_la1[89] = jj_gen;
3784 jj_consume_token(-1);
3785 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3791 void VhdlParser::entity_statement_part() {if (!hasError) {
3794 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3800 case BASIC_IDENTIFIER:
3801 case EXTENDED_CHARACTER:{
3806 jj_la1[90] = jj_gen;
3820 QCString VhdlParser::entity_tag() {QCString s;
3821 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3824 case BASIC_IDENTIFIER:
3825 case EXTENDED_CHARACTER:{if (!hasError) {
3836 case CHARACTER_LITERAL:{if (!hasError) {
3838 s = character_literal();
3848 jj_la1[91] = jj_gen;
3849 jj_consume_token(-1);
3850 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3856 QCString VhdlParser::enumeration_literal() {QCString s;
3857 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3858 case BASIC_IDENTIFIER:
3859 case EXTENDED_CHARACTER:{if (!hasError) {
3870 case CHARACTER_LITERAL:{if (!hasError) {
3872 s = character_literal();
3882 jj_la1[92] = jj_gen;
3883 jj_consume_token(-1);
3884 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
3890 QCString VhdlParser::enumeration_type_definition() {QCString s,s1;if (!hasError) {
3892 jj_consume_token(LPAREN_T);
3896 s = enumeration_literal();
3901 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3907 jj_la1[93] = jj_gen;
3911 jj_consume_token(COMMA_T);
3915 s1 = enumeration_literal();
3927 jj_consume_token(RPAREN_T);
3935 QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) {
3937 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3938 case BASIC_IDENTIFIER:
3939 case EXTENDED_CHARACTER:{if (!hasError) {
3945 t = jj_consume_token(COLON_T);
3951 jj_la1[94] = jj_gen;
3957 jj_consume_token(EXIT_T);
3961 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3962 case BASIC_IDENTIFIER:
3963 case EXTENDED_CHARACTER:{if (!hasError) {
3971 jj_la1[95] = jj_gen;
3977 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
3978 case WHEN_T:{if (!hasError) {
3980 t1 = jj_consume_token(WHEN_T);
3990 jj_la1[96] = jj_gen;
3996 jj_consume_token(SEMI_T);
4001 if(t1) s2.prepend(" when ");
4002 FlowChart::addFlowChart(FlowChart::EXIT_NO,"exit",s2.data(),s1.data());
4009 QCString VhdlParser::expression() {QCString s,s1,s2;if (!hasError) {
4016 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4027 jj_la1[97] = jj_gen;
4051 QCString VhdlParser::logop() {
4052 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4053 case AND_T:{if (!hasError) {
4055 jj_consume_token(AND_T);
4064 case NAND_T:{if (!hasError) {
4066 jj_consume_token(NAND_T);
4075 case NOR_T:{if (!hasError) {
4077 jj_consume_token(NOR_T);
4086 case XNOR_T:{if (!hasError) {
4088 jj_consume_token(XNOR_T);
4097 case XOR_T:{if (!hasError) {
4099 jj_consume_token(XOR_T);
4108 case OR_T:{if (!hasError) {
4110 jj_consume_token(OR_T);
4120 jj_la1[98] = jj_gen;
4121 jj_consume_token(-1);
4122 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4128 QCString VhdlParser::extended_identifier() {Token *t;if (!hasError) {
4130 t = jj_consume_token(EXTENDED_CHARACTER);
4133 return t->image.c_str();
4138 QCString VhdlParser::factor() {QCString s,s1;
4139 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4146 case BASIC_IDENTIFIER:
4147 case EXTENDED_CHARACTER:
4148 case CHARACTER_LITERAL:
4149 case DECIMAL_LITERAL:
4151 case BIT_STRING_LITERAL:{if (!hasError) {
4157 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4158 case DOUBLEMULT_T:{if (!hasError) {
4160 jj_consume_token(DOUBLEMULT_T);
4174 jj_la1[99] = jj_gen;
4185 case ABS_T:{if (!hasError) {
4187 jj_consume_token(ABS_T);
4195 s1 = "abs "; return s1+s;
4200 case NOT_T:{if (!hasError) {
4202 jj_consume_token(NOT_T);
4210 s1="not ";return s1+s;
4216 jj_la1[100] = jj_gen;
4217 jj_consume_token(-1);
4218 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4224 QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3;if (!hasError) {
4226 jj_consume_token(FILE_T);
4230 s = identifier_list();
4234 jj_consume_token(COLON_T);
4238 s2 = subtype_indication();
4242 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4244 case OPEN_T:{if (!hasError) {
4246 s3 = file_open_information();
4252 jj_la1[101] = jj_gen;
4258 jj_consume_token(SEMI_T);
4261 QCString t1=s2+" "+s3;
4262 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public);
4263 return " file "+s+":"+s2+" "+s3+";";
4268 QCString VhdlParser::file_logical_name() {QCString s;if (!hasError) {
4278 QCString VhdlParser::file_open_information() {QCString s,s1,s2;if (!hasError) {
4280 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4281 case OPEN_T:{if (!hasError) {
4283 jj_consume_token(OPEN_T);
4293 jj_la1[102] = jj_gen;
4299 jj_consume_token(IS_T);
4303 s1 = file_logical_name();
4306 s2="open "+s+" is "+s1; return s2;
4311 QCString VhdlParser::file_type_definition() {QCString s,s1;if (!hasError) {
4313 jj_consume_token(FILE_T);
4317 jj_consume_token(OF_T);
4324 s1=" file of "+s; return s1;
4329 QCString VhdlParser::floating_type_definition() {QCString s;if (!hasError) {
4331 s = range_constraint();
4339 QCString VhdlParser::formal_designator() {QCString s;Token *tok;
4340 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4343 case BASIC_IDENTIFIER:
4344 case EXTENDED_CHARACTER:{if (!hasError) {
4355 case INTEGER:{if (!hasError) {
4357 tok = jj_consume_token(INTEGER);
4361 return tok->image.c_str();
4367 jj_la1[103] = jj_gen;
4368 jj_consume_token(-1);
4369 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4375 QCString VhdlParser::formal_parameter_list() {QCString s;if (!hasError) {
4377 s = interface_list();
4385 QCString VhdlParser::formal_part() {QCString s,s1;if (!hasError) {
4391 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4392 case LPAREN_T:{if (!hasError) {
4394 jj_consume_token(LPAREN_T);
4398 formal_designator();
4402 jj_consume_token(RPAREN_T);
4412 jj_la1[104] = jj_gen;
4422 QCString VhdlParser::full_type_declaration() {QCString s,s1,s2;if (!hasError) {
4424 jj_consume_token(TYPE_T);
4432 jj_consume_token(IS_T);
4436 try {if (!hasError) {
4438 s2 = type_definition();
4442 error_skipto(SEMI_T);
4447 jj_consume_token(SEMI_T);
4450 addVhdlType(s.data(),getLine(TYPE_T),Entry::VARIABLE_SEC,VhdlDocGen::TYPE,0,s2.data(),Public);
4451 return "type "+s+" is "+s2+";";
4456 QCString VhdlParser::function_call() {QCString s,s1;if (!hasError) {
4462 jj_consume_token(LPAREN_T);
4466 s1 = actual_parameter_part();
4470 jj_consume_token(RPAREN_T);
4473 return s+"("+s1+")";
4478 void VhdlParser::generate_statement() {QCString s;if (!hasError) {
4484 jj_consume_token(COLON_T);
4488 try {if (!hasError) {
4494 jj_consume_token(GENERATE_T);
4498 pushLabel(genLabels,s);
4502 generate_statement_body1();
4506 jj_consume_token(END_T);
4510 error_skipto(GENERATE_T);
4515 jj_consume_token(GENERATE_T);
4519 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4520 case BASIC_IDENTIFIER:
4521 case EXTENDED_CHARACTER:{if (!hasError) {
4529 jj_la1[105] = jj_gen;
4535 jj_consume_token(SEMI_T);
4538 genLabels=popLabel(genLabels);
4542 void VhdlParser::generate_scheme() {
4543 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4544 case FOR_T:{if (!hasError) {
4546 jj_consume_token(FOR_T);
4550 parameter_specification();
4555 case IF_T:{if (!hasError) {
4557 jj_consume_token(IF_T);
4567 jj_la1[106] = jj_gen;
4568 jj_consume_token(-1);
4569 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4574 void VhdlParser::generic_clause() {QCString s;if (!hasError) {
4576 jj_consume_token(GENERIC_T);
4580 jj_consume_token(LPAREN_T);
4592 jj_consume_token(RPAREN_T);
4596 jj_consume_token(SEMI_T);
4603 QCString VhdlParser::generic_list() {QCString s;if (!hasError) {
4605 s = interface_list();
4613 void VhdlParser::generic_map_aspect() {if (!hasError) {
4615 jj_consume_token(GENERIC_T);
4619 jj_consume_token(MAP_T);
4623 jj_consume_token(LPAREN_T);
4631 jj_consume_token(RPAREN_T);
4637 QCString VhdlParser::group_constituent() {QCString s;
4638 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4641 case BASIC_IDENTIFIER:
4642 case EXTENDED_CHARACTER:{if (!hasError) {
4653 case CHARACTER_LITERAL:{if (!hasError) {
4655 s = character_literal();
4665 jj_la1[107] = jj_gen;
4666 jj_consume_token(-1);
4667 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4673 QCString VhdlParser::group_constituent_list() {QCString s,s1,s2;if (!hasError) {
4676 s1 = group_constituent();
4683 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4689 jj_la1[108] = jj_gen;
4693 jj_consume_token(COMMA_T);
4697 s = group_constituent();
4713 QCString VhdlParser::group_declaration() {QCString s,s1,s2;if (!hasError) {
4715 jj_consume_token(GROUP_T);
4723 jj_consume_token(COLON_T);
4731 jj_consume_token(LPAREN_T);
4735 s2 = group_constituent_list();
4739 jj_consume_token(RPAREN_T);
4743 jj_consume_token(SEMI_T);
4746 return "group "+s+":"+s1+"("+s2+");";
4751 QCString VhdlParser::group_template_declaration() {QCString s,s1;if (!hasError) {
4753 jj_consume_token(GROUP_T);
4761 jj_consume_token(IS_T);
4765 jj_consume_token(LPAREN_T);
4769 s1 = entity_class_entry_list();
4773 jj_consume_token(RPAREN_T);
4777 jj_consume_token(SEMI_T);
4780 return "group "+s+ "is ("+s1+");";
4785 void VhdlParser::guarded_signal_specification() {if (!hasError) {
4791 jj_consume_token(COLON_T);
4801 QCString VhdlParser::identifier() {Token *tok;
4802 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4803 case EXTENDED_CHARACTER:{if (!hasError) {
4805 tok = jj_consume_token(EXTENDED_CHARACTER);
4809 return tok->image.c_str();
4814 case BASIC_IDENTIFIER:{if (!hasError) {
4816 tok = jj_consume_token(BASIC_IDENTIFIER);
4820 return tok->image.c_str();
4826 jj_la1[109] = jj_gen;
4827 jj_consume_token(-1);
4828 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
4834 QCString VhdlParser::identifier_list() {QCString str,str1;if (!hasError) {
4841 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4847 jj_la1[110] = jj_gen;
4851 jj_consume_token(COMMA_T);
4855 str1 = identifier();
4871 void VhdlParser::if_statement() {QCString s,s1;if (!hasError) {
4873 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4874 case BASIC_IDENTIFIER:
4875 case EXTENDED_CHARACTER:{if (!hasError) {
4881 jj_consume_token(COLON_T);
4887 jj_la1[111] = jj_gen;
4893 jj_consume_token(IF_T);
4901 jj_consume_token(THEN_T);
4906 FlowChart::addFlowChart(FlowChart::IF_NO,0,s);
4910 sequence_of_statement();
4915 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4921 jj_la1[112] = jj_gen;
4925 jj_consume_token(ELSIF_T);
4933 jj_consume_token(THEN_T);
4937 s1.prepend("elsif ");
4938 FlowChart::addFlowChart(FlowChart::ELSIF_NO,0,s1.data());
4942 sequence_of_statement();
4950 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4951 case ELSE_T:{if (!hasError) {
4953 jj_consume_token(ELSE_T);
4957 FlowChart::addFlowChart(FlowChart::ELSE_NO,0,0);
4961 sequence_of_statement();
4967 jj_la1[113] = jj_gen;
4973 jj_consume_token(END_T);
4977 jj_consume_token(IF_T);
4981 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
4982 case BASIC_IDENTIFIER:
4983 case EXTENDED_CHARACTER:{if (!hasError) {
4991 jj_la1[114] = jj_gen;
4997 jj_consume_token(SEMI_T);
5000 FlowChart::moveToPrevLevel();
5001 FlowChart::addFlowChart(FlowChart::ENDIF_NO,0,0);
5005 QCString VhdlParser::incomplete_type_declaration() {QCString s;if (!hasError) {
5007 jj_consume_token(TYPE_T);
5015 jj_consume_token(SEMI_T);
5018 return "type "+s+";";
5023 QCString VhdlParser::index_constraint() {QCString s="("; QCString s1,s2;if (!hasError) {
5025 jj_consume_token(LPAREN_T);
5029 s2 = discrete_range();
5038 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5044 jj_la1[115] = jj_gen;
5048 jj_consume_token(COMMA_T);
5052 s1 = discrete_range();
5064 jj_consume_token(RPAREN_T);
5072 QCString VhdlParser::index_specification() {QCString s;
5073 if (jj_2_37(2147483647)) {if (!hasError) {
5075 s = discrete_range();
5083 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5094 case BASIC_IDENTIFIER:
5095 case EXTENDED_CHARACTER:
5096 case CHARACTER_LITERAL:
5097 case DECIMAL_LITERAL:
5099 case BIT_STRING_LITERAL:{if (!hasError) {
5111 jj_la1[116] = jj_gen;
5112 jj_consume_token(-1);
5113 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5120 QCString VhdlParser::index_subtype_definition() {QCString s;if (!hasError) {
5126 jj_consume_token(RANGE_T);
5130 jj_consume_token(BOX_T);
5133 return s+" range <> ";
5138 QCString VhdlParser::instantiation_unit() {QCString s,s1,s2;Token *tok;
5139 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5141 case BASIC_IDENTIFIER:
5142 case EXTENDED_CHARACTER:{if (!hasError) {
5144 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5145 case COMPONENT_T:{if (!hasError) {
5147 tok = jj_consume_token(COMPONENT_T);
5153 jj_la1[117] = jj_gen;
5163 s1="component"; return s;
5168 case ENTITY_T:{if (!hasError) {
5170 tok = jj_consume_token(ENTITY_T);
5178 s=tok->image.c_str()+s2;
5182 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5183 case LPAREN_T:{if (!hasError) {
5185 jj_consume_token(LPAREN_T);
5193 jj_consume_token(RPAREN_T);
5197 s+="(";s+=s1;s+=")" ;
5203 jj_la1[118] = jj_gen;
5214 case CONFIGURATION_T:{if (!hasError) {
5216 jj_consume_token(CONFIGURATION_T);
5224 s1="configuration ";return s;
5230 jj_la1[119] = jj_gen;
5231 jj_consume_token(-1);
5232 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5238 QCString VhdlParser::instantiation_list() {QCString s;Token *tok;
5239 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5240 case BASIC_IDENTIFIER:
5241 case EXTENDED_CHARACTER:{if (!hasError) {
5243 s = identifier_list();
5252 case OTHER_T:{if (!hasError) {
5254 tok = jj_consume_token(OTHER_T);
5258 return tok->image.c_str();
5263 case ALL_T:{if (!hasError) {
5265 tok = jj_consume_token(ALL_T);
5269 return tok->image.c_str();
5275 jj_la1[120] = jj_gen;
5276 jj_consume_token(-1);
5277 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5283 QCString VhdlParser::integer() {Token *t;if (!hasError) {
5285 t = jj_consume_token(INTEGER);
5288 return t->image.c_str();
5293 QCString VhdlParser::integer_type_definition() {QCString s;if (!hasError) {
5295 s = range_constraint();
5303 QCString VhdlParser::interface_declaration() {QCString s,s1;
5304 if (jj_2_38(5)) {if (!hasError) {
5306 s = interface_subprogram_declaration();
5314 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5315 case PACKAGE_T:{if (!hasError) {
5317 interface_package_declaration();
5327 jj_la1[121] = jj_gen;
5328 if (jj_2_39(5)) {if (!hasError) {
5330 s = interface_variable_declaration();
5337 } else if (jj_2_40(5)) {if (!hasError) {
5339 interface_file_declaration();
5346 } else if (jj_2_41(2147483647)) {if (!hasError) {
5348 subprogram_declaration();
5356 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5362 case VARIABLE_T:{if (!hasError) {
5372 if (parse_sec==GEN_SEC)
5373 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,s1.data(),0,Public);
5380 jj_la1[122] = jj_gen;
5381 jj_consume_token(-1);
5382 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5391 QCString VhdlParser::interface_element() {QCString s;if (!hasError) {
5393 s = interface_declaration();
5401 QCString VhdlParser::interface_file_declaration() {QCString s,s1;if (!hasError) {
5403 jj_consume_token(FILE_T);
5407 s = identifier_list();
5411 jj_consume_token(COLON_T);
5415 s1 = subtype_indication();
5418 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public);
5419 return " file "+s+":"+s1;
5424 QCString VhdlParser::interface_list() {QCString s,s1,s2;if (!hasError) {
5426 s = interface_element();
5431 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5437 jj_la1[123] = jj_gen;
5441 jj_consume_token(SEMI_T);
5445 s1 = interface_element();
5461 QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5;if (!hasError) {
5463 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5467 case VARIABLE_T:{if (!hasError) {
5469 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5470 case VARIABLE_T:{if (!hasError) {
5472 tok = jj_consume_token(VARIABLE_T);
5477 case SIGNAL_T:{if (!hasError) {
5479 tok = jj_consume_token(SIGNAL_T);
5484 case CONSTANT_T:{if (!hasError) {
5486 tok = jj_consume_token(CONSTANT_T);
5491 case SHARED_T:{if (!hasError) {
5493 tok = jj_consume_token(SHARED_T);
5499 jj_la1[124] = jj_gen;
5500 jj_consume_token(-1);
5501 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5508 jj_la1[125] = jj_gen;
5514 s = identifier_list();
5518 jj_consume_token(COLON_T);
5522 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5527 case OUT_T:{if (!hasError) {
5535 jj_la1[126] = jj_gen;
5541 s2 = subtype_indication();
5545 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5546 case BUS_T:{if (!hasError) {
5548 tok1 = jj_consume_token(BUS_T);
5554 jj_la1[127] = jj_gen;
5560 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5561 case VARASSIGN_T:{if (!hasError) {
5563 tok2 = jj_consume_token(VARASSIGN_T);
5573 jj_la1[128] = jj_gen;
5579 s5=tok->image.c_str();
5582 s3=tok->image.data();
5587 QCString it=s+":"+s1+" "+s2+" "+s3+" "+s4;
5588 if (currP!=VhdlDocGen::COMPONENT)
5590 if (currP==VhdlDocGen::FUNCTION || currP==VhdlDocGen::PROCEDURE)
5592 addProto(s5.data(),s.data(),s1.data(),s2.data(),s3.data(),s4.data());
5596 QCString i=s2+s3+s4;
5597 if (currP==VhdlDocGen::GENERIC && param_sec==0)
5598 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public);
5599 else if(parse_sec != GEN_SEC)
5600 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public);
5602 // fprintf(stderr,"\n\n <<port %s >>\n",$$.data());
5609 QCString VhdlParser::iteration_scheme() {QCString s;
5610 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5611 case WHILE_T:{if (!hasError) {
5613 jj_consume_token(WHILE_T);
5621 s.prepend("while ");
5622 FlowChart::addFlowChart(FlowChart::WHILE_NO,0,s.data(),lab.data());
5629 case FOR_T:{if (!hasError) {
5631 jj_consume_token(FOR_T);
5635 s = parameter_specification();
5639 QCString q=lab+" for "+s;
5640 FlowChart::addFlowChart(FlowChart::FOR_NO,0,q.data(),lab.data());
5648 jj_la1[129] = jj_gen;
5649 jj_consume_token(-1);
5650 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5656 QCString VhdlParser::label() {QCString s;if (!hasError) {
5666 QCString VhdlParser::library_clause() {QCString s;if (!hasError) {
5669 jj_consume_token(LIBRARY_T);
5673 s = identifier_list();
5677 jj_consume_token(SEMI_T);
5682 if ( parse_sec==0 && Config_getBool("SHOW_INCLUDE_FILES") )
5684 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Public);
5686 QCString s1="library "+s;
5692 QCString VhdlParser::library_unit() {QCString s;
5693 if (jj_2_42(2)) {if (!hasError) {
5703 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5704 case ARCHITECTURE_T:
5705 case PACKAGE_T:{if (!hasError) {
5716 case CONTEXT_T:{if (!hasError) {
5718 context_declaration();
5724 jj_la1[130] = jj_gen;
5725 jj_consume_token(-1);
5726 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5733 QCString VhdlParser::literal() {QCString s;
5734 if (jj_2_43(2147483647)) {if (!hasError) {
5736 s = bit_string_literal();
5743 } else if (jj_2_44(2147483647)) {if (!hasError) {
5745 s = numeric_literal();
5752 } else if (jj_2_45(2147483647)) {if (!hasError) {
5754 s = enumeration_literal();
5762 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5763 case STRINGLITERAL:{if (!hasError) {
5765 s = string_literal();
5774 case NULL_T:{if (!hasError) {
5776 jj_consume_token(NULL_T);
5786 jj_la1[131] = jj_gen;
5787 jj_consume_token(-1);
5788 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5795 QCString VhdlParser::logical_operator() {QCString s;if (!hasError) {
5805 QCString VhdlParser::loop_statement() {QCString s,s1,s2,s3;if (!hasError) {
5807 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5808 case BASIC_IDENTIFIER:
5809 case EXTENDED_CHARACTER:{if (!hasError) {
5815 jj_consume_token(COLON_T);
5825 jj_la1[132] = jj_gen;
5831 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5833 case WHILE_T:{if (!hasError) {
5835 s1 = iteration_scheme();
5841 jj_la1[133] = jj_gen;
5848 FlowChart::addFlowChart(FlowChart::LOOP_NO,0,"infinite");
5852 jj_consume_token(LOOP_T);
5856 s2 = sequence_of_statement();
5860 jj_consume_token(END_T);
5864 jj_consume_token(LOOP_T);
5868 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5869 case BASIC_IDENTIFIER:
5870 case EXTENDED_CHARACTER:{if (!hasError) {
5878 jj_la1[134] = jj_gen;
5884 jj_consume_token(SEMI_T);
5887 QCString q = s+" loop "+s2+" end loop" +s3;
5888 QCString endLoop="end loop" + s3;
5889 FlowChart::moveToPrevLevel();
5890 FlowChart::addFlowChart(FlowChart::END_LOOP,endLoop.data(),0);
5896 QCString VhdlParser::miscellaneous_operator() {Token *t=0;
5897 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5898 case DOUBLEMULT_T:{if (!hasError) {
5900 jj_consume_token(DOUBLEMULT_T);
5909 case ABS_T:{if (!hasError) {
5911 jj_consume_token(ABS_T);
5920 case NOT_T:{if (!hasError) {
5922 jj_consume_token(NOT_T);
5932 jj_la1[135] = jj_gen;
5933 jj_consume_token(-1);
5934 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
5940 QCString VhdlParser::mode() {Token *tok;
5941 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
5942 case IN_T:{if (!hasError) {
5944 tok = jj_consume_token(IN_T);
5953 case OUT_T:{if (!hasError) {
5955 tok = jj_consume_token(OUT_T);
5964 case INOUT_T:{if (!hasError) {
5966 tok = jj_consume_token(INOUT_T);
5975 case BUFFER_T:{if (!hasError) {
5977 tok = jj_consume_token(BUFFER_T);
5986 case LINKAGE_T:{if (!hasError) {
5988 tok = jj_consume_token(LINKAGE_T);
5998 jj_la1[136] = jj_gen;
5999 jj_consume_token(-1);
6000 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6006 QCString VhdlParser::multiplying_operation() {Token *tok;
6007 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6008 case MULT_T:{if (!hasError) {
6010 tok = jj_consume_token(MULT_T);
6014 return tok->image.c_str();
6019 case SLASH_T:{if (!hasError) {
6021 tok = jj_consume_token(SLASH_T);
6025 return tok->image.c_str();
6030 case MOD_T:{if (!hasError) {
6032 tok = jj_consume_token(MOD_T);
6036 return tok->image.c_str();
6041 case REM_T:{if (!hasError) {
6043 tok = jj_consume_token(REM_T);
6047 return tok->image.c_str();
6053 jj_la1[137] = jj_gen;
6054 jj_consume_token(-1);
6055 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6061 QCString VhdlParser::name() {QCString s,s1;if (!hasError) {
6063 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6064 case STRINGLITERAL:{if (!hasError) {
6066 s = operator_symbol();
6071 case BASIC_IDENTIFIER:
6072 case EXTENDED_CHARACTER:{if (!hasError) {
6079 case SLSL_T:{if (!hasError) {
6081 s = external_name();
6087 jj_la1[138] = jj_gen;
6088 jj_consume_token(-1);
6089 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6094 if (jj_2_46(2147483647)) {if (!hasError) {
6113 QCString VhdlParser::name_ext1() {QCString s,s1,s2;if (!hasError) {
6120 if (jj_2_47(2147483647)) {
6142 QCString VhdlParser::name_ext() {QCString s,s1,s2;if (!hasError) {
6144 if (jj_2_48(2147483647)) {if (!hasError) {
6146 jj_consume_token(DOT_T);
6157 } else if (jj_2_49(2147483647)) {if (!hasError) {
6159 s1 = test_att_name();
6166 } else if (jj_2_50(2147483647)) {if (!hasError) {
6168 jj_consume_token(LPAREN_T);
6172 s1 = discrete_range();
6176 jj_consume_token(RPAREN_T);
6180 s+="(";s+=s1;s+=")";
6183 } else if (jj_2_51(2147483647)) {if (!hasError) {
6185 jj_consume_token(LPAREN_T);
6198 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6204 jj_la1[139] = jj_gen;
6208 jj_consume_token(COMMA_T);
6224 jj_consume_token(RPAREN_T);
6232 jj_consume_token(-1);
6233 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6242 QCString VhdlParser::test_att_name() {QCString s,s1;if (!hasError) {
6244 if (jj_2_52(2147483647)) {if (!hasError) {
6259 jj_consume_token(APOSTROPHE_T);
6263 s1 = attribute_designator();
6271 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6272 case LPAREN_T:{if (!hasError) {
6274 jj_consume_token(LPAREN_T);
6282 jj_consume_token(RPAREN_T);
6286 s+="(";s+=s1;s+=")";
6292 jj_la1[140] = jj_gen;
6302 QCString VhdlParser::indexed_name() {QCString s,s1,s2;if (!hasError) {
6308 jj_consume_token(LPAREN_T);
6321 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6327 jj_la1[141] = jj_gen;
6331 jj_consume_token(COMMA_T);
6347 jj_consume_token(RPAREN_T);
6355 QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) {
6357 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6358 case BASIC_IDENTIFIER:
6359 case EXTENDED_CHARACTER:{if (!hasError) {
6365 t = jj_consume_token(COLON_T);
6371 jj_la1[142] = jj_gen;
6377 jj_consume_token(NEXT_T);
6381 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6382 case BASIC_IDENTIFIER:
6383 case EXTENDED_CHARACTER:{if (!hasError) {
6391 jj_la1[143] = jj_gen;
6397 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6398 case WHEN_T:{if (!hasError) {
6400 t1 = jj_consume_token(WHEN_T);
6410 jj_la1[144] = jj_gen;
6416 jj_consume_token(SEMI_T);
6420 FlowChart::addFlowChart(FlowChart::NEXT_NO,"next ",s2.data(),s1.data());
6422 if(t1) s2.prepend("when ");
6428 QCString VhdlParser::null_statement() {QCString s;if (!hasError) {
6430 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6431 case BASIC_IDENTIFIER:
6432 case EXTENDED_CHARACTER:{if (!hasError) {
6438 jj_consume_token(COLON_T);
6448 jj_la1[145] = jj_gen;
6454 jj_consume_token(NULL_T);
6458 jj_consume_token(SEMI_T);
6466 QCString VhdlParser::numeric_literal() {QCString s;
6467 if (jj_2_53(2147483647)) {if (!hasError) {
6469 s = physical_literal();
6477 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6479 case DECIMAL_LITERAL:
6480 case BASED_LITERAL:{if (!hasError) {
6482 s = abstract_literal();
6492 jj_la1[146] = jj_gen;
6493 jj_consume_token(-1);
6494 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6501 QCString VhdlParser::object_class() {
6502 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6503 case CONSTANT_T:{if (!hasError) {
6505 jj_consume_token(CONSTANT_T);
6514 case SIGNAL_T:{if (!hasError) {
6516 jj_consume_token(SIGNAL_T);
6525 case VARIABLE_T:{if (!hasError) {
6527 jj_consume_token(VARIABLE_T);
6536 case SHARED_T:{if (!hasError) {
6538 jj_consume_token(SHARED_T);
6542 jj_consume_token(VARIABLE_T);
6546 return "shared variable";
6551 case FILE_T:{if (!hasError) {
6553 jj_consume_token(FILE_T);
6562 case TYPE_T:{if (!hasError) {
6564 jj_consume_token(TYPE_T);
6574 jj_la1[147] = jj_gen;
6575 jj_consume_token(-1);
6576 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6582 QCString VhdlParser::operator_symbol() {Token *tok;if (!hasError) {
6584 tok = jj_consume_token(STRINGLITERAL);
6587 return tok->image.c_str();
6592 void VhdlParser::options() {if (!hasError) {
6594 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6595 case GUARDED_T:{if (!hasError) {
6597 jj_consume_token(GUARDED_T);
6603 jj_la1[148] = jj_gen;
6609 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6612 case TRANSPORT_T:{if (!hasError) {
6620 jj_la1[149] = jj_gen;
6628 void VhdlParser::package_body() {QCString s;if (!hasError) {
6630 jj_consume_token(PACKAGE_T);
6634 jj_consume_token(BODY_T);
6642 jj_consume_token(IS_T);
6646 lastCompound=current;
6648 addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected);
6652 package_body_declarative_part();
6656 jj_consume_token(END_T);
6660 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6661 case PACKAGE_T:{if (!hasError) {
6663 jj_consume_token(PACKAGE_T);
6667 jj_consume_token(BODY_T);
6673 jj_la1[150] = jj_gen;
6679 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6682 case BASIC_IDENTIFIER:
6683 case EXTENDED_CHARACTER:{if (!hasError) {
6691 jj_la1[151] = jj_gen;
6697 jj_consume_token(SEMI_T);
6700 lastCompound=0; genLabels.resize(0);
6704 void VhdlParser::package_body_declarative_item() {
6705 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6709 case PURE_T:{if (!hasError) {
6711 subprogram_declaration();
6716 case TYPE_T:{if (!hasError) {
6723 case SUBTYPE_T:{if (!hasError) {
6725 subtype_declaration();
6730 case CONSTANT_T:{if (!hasError) {
6732 constant_declaration();
6738 case VARIABLE_T:{if (!hasError) {
6740 variable_declaration();
6745 case FILE_T:{if (!hasError) {
6752 case ALIAS_T:{if (!hasError) {
6754 alias_declaration();
6759 case USE_T:{if (!hasError) {
6767 jj_la1[152] = jj_gen;
6768 if (jj_2_54(3)) {if (!hasError) {
6770 group_template_declaration();
6774 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6775 case GROUP_T:{if (!hasError) {
6777 group_declaration();
6783 jj_la1[153] = jj_gen;
6784 jj_consume_token(-1);
6785 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
6792 void VhdlParser::package_body_declarative_part() {if (!hasError) {
6795 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6813 jj_la1[154] = jj_gen;
6817 package_body_declarative_item();
6827 void VhdlParser::package_declaration() {QCString s;if (!hasError) {
6829 jj_consume_token(PACKAGE_T);
6837 jj_consume_token(IS_T);
6841 lastCompound=current;
6842 Entry *clone=new Entry(*current);
6843 clone->section=Entry::NAMESPACE_SEC;
6844 clone->spec=VhdlDocGen::PACKAGE;
6846 clone->startLine=getLine();
6847 clone->bodyLine=getLine();
6848 clone->protection=Package;
6849 current_root->addSubEntry(clone);
6850 addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package);
6854 package_declarative_part();
6858 jj_consume_token(END_T);
6862 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6863 case PACKAGE_T:{if (!hasError) {
6865 jj_consume_token(PACKAGE_T);
6871 jj_la1[155] = jj_gen;
6877 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6880 case BASIC_IDENTIFIER:
6881 case EXTENDED_CHARACTER:{if (!hasError) {
6889 jj_la1[156] = jj_gen;
6895 jj_consume_token(SEMI_T);
6898 lastEntity=0;lastCompound=0; genLabels.resize(0);
6902 void VhdlParser::geninter() {if (!hasError) {
6904 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6905 case GENERIC_T:{if (!hasError) {
6907 gen_interface_list();
6911 jj_consume_token(SEMI_T);
6915 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6916 case GENERIC_T:{if (!hasError) {
6922 jj_consume_token(SEMI_T);
6928 jj_la1[157] = jj_gen;
6936 jj_la1[158] = jj_gen;
6944 void VhdlParser::package_declarative_item() {
6945 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
6949 case PURE_T:{if (!hasError) {
6951 subprogram_declaration();
6956 case TYPE_T:{if (!hasError) {
6963 case SUBTYPE_T:{if (!hasError) {
6965 subtype_declaration();
6970 case CONSTANT_T:{if (!hasError) {
6972 constant_declaration();
6977 case SIGNAL_T:{if (!hasError) {
6979 signal_declaration();
6985 case VARIABLE_T:{if (!hasError) {
6987 variable_declaration();
6992 case FILE_T:{if (!hasError) {
6999 case ALIAS_T:{if (!hasError) {
7001 alias_declaration();
7006 case COMPONENT_T:{if (!hasError) {
7008 component_declaration();
7014 jj_la1[159] = jj_gen;
7015 if (jj_2_55(2147483647)) {if (!hasError) {
7017 attribute_declaration();
7021 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7022 case ATTRIBUTE_T:{if (!hasError) {
7024 attribute_specification();
7029 case DISCONNECT_T:{if (!hasError) {
7031 disconnection_specification();
7036 case USE_T:{if (!hasError) {
7044 jj_la1[160] = jj_gen;
7045 if (jj_2_56(3)) {if (!hasError) {
7047 group_template_declaration();
7051 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7052 case GROUP_T:{if (!hasError) {
7054 group_declaration();
7060 jj_la1[161] = jj_gen;
7061 if (jj_2_57(5)) {if (!hasError) {
7063 package_instantiation_declaration();
7067 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7068 case PACKAGE_T:{if (!hasError) {
7070 package_declaration();
7076 jj_la1[162] = jj_gen;
7077 jj_consume_token(-1);
7078 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7089 void VhdlParser::package_declarative_part() {if (!hasError) {
7092 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7115 jj_la1[163] = jj_gen;
7119 package_declarative_item();
7129 QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) {
7135 jj_consume_token(IN_T);
7139 s1 = discrete_range();
7147 QCString VhdlParser::physical_literal() {QCString s,s1;if (!hasError) {
7149 if (jj_2_58(2147483647)) {if (!hasError) {
7151 s = abstract_literal();
7163 s+=" ";s+=s1;s.prepend(" "); return s;
7168 QCString VhdlParser::physical_type_definition() {QCString s,s1,s2;if (!hasError) {
7170 jj_consume_token(UNITS_T);
7178 jj_consume_token(SEMI_T);
7183 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7184 case BASIC_IDENTIFIER:
7185 case EXTENDED_CHARACTER:{
7190 jj_la1[164] = jj_gen;
7194 s1 = secondary_unit_declaration();
7206 jj_consume_token(END_T);
7210 jj_consume_token(UNITS_T);
7214 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7217 case BASIC_IDENTIFIER:
7218 case EXTENDED_CHARACTER:{if (!hasError) {
7226 jj_la1[165] = jj_gen;
7232 current->args.prepend("units");
7233 current->spec=VhdlDocGen::UNITS;
7239 void VhdlParser::port_clause() {if (!hasError) {
7241 jj_consume_token(PORT_T);
7245 jj_consume_token(LPAREN_T);
7253 jj_consume_token(RPAREN_T);
7257 jj_consume_token(SEMI_T);
7264 QCString VhdlParser::port_list() {QCString s;if (!hasError) {
7266 s = interface_list();
7274 void VhdlParser::port_map_aspect() {if (!hasError) {
7276 jj_consume_token(PORT_T);
7280 jj_consume_token(MAP_T);
7284 jj_consume_token(LPAREN_T);
7292 jj_consume_token(RPAREN_T);
7298 QCString VhdlParser::primary() {QCString s,s1;
7299 if (jj_2_59(2147483647)) {if (!hasError) {
7301 s = function_call();
7308 } else if (jj_2_60(2147483647)) {if (!hasError) {
7310 jj_consume_token(LPAREN_T);
7318 jj_consume_token(RPAREN_T);
7322 s="("+s1+")"; return s;
7325 } else if (jj_2_61(2147483647)) {if (!hasError) {
7327 s = qualified_expression();
7334 } else if (jj_2_62(2147483647)) {if (!hasError) {
7336 s = type_conversion();
7343 } else if (jj_2_63(2147483647)) {if (!hasError) {
7349 s.prepend(" ");return s;
7352 } else if (jj_2_64(2147483647)) {if (!hasError) {
7362 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7363 case NEW_T:{if (!hasError) {
7374 case LPAREN_T:{if (!hasError) {
7386 jj_la1[166] = jj_gen;
7387 jj_consume_token(-1);
7388 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7395 void VhdlParser::primary_unit() {
7396 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7397 case ENTITY_T:{if (!hasError) {
7399 entity_declaration();
7404 case CONFIGURATION_T:{if (!hasError) {
7406 configuration_declaration();
7412 jj_la1[167] = jj_gen;
7413 if (jj_2_65(2147483647)) {if (!hasError) {
7415 package_instantiation_declaration();
7418 } else if (jj_2_66(4)) {if (!hasError) {
7420 interface_package_declaration();
7424 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7425 case PACKAGE_T:{if (!hasError) {
7427 package_declaration();
7433 jj_la1[168] = jj_gen;
7434 jj_consume_token(-1);
7435 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7442 QCString VhdlParser::procedure_call() {QCString s,s1;if (!hasError) {
7448 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7449 case LPAREN_T:{if (!hasError) {
7451 jj_consume_token(LPAREN_T);
7455 s1 = actual_parameter_part();
7459 jj_consume_token(RPAREN_T);
7463 s1.prepend("("); s1.append(")");
7469 jj_la1[169] = jj_gen;
7479 QCString VhdlParser::procedure_call_statement() {QCString s,s1;if (!hasError) {
7481 if (jj_2_67(2)) {if (!hasError) {
7487 jj_consume_token(COLON_T);
7500 s1 = procedure_call();
7504 jj_consume_token(SEMI_T);
7512 QCString VhdlParser::process_declarative_item() {QCString s;
7513 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7517 case PURE_T:{if (!hasError) {
7519 subprogram_declaration();
7528 case TYPE_T:{if (!hasError) {
7530 s = type_declaration();
7539 case SUBTYPE_T:{if (!hasError) {
7541 s = subtype_declaration();
7550 case CONSTANT_T:{if (!hasError) {
7552 s = constant_declaration();
7562 case VARIABLE_T:{if (!hasError) {
7564 s = variable_declaration();
7573 case FILE_T:{if (!hasError) {
7575 s = file_declaration();
7584 case ALIAS_T:{if (!hasError) {
7586 s = alias_declaration();
7596 jj_la1[170] = jj_gen;
7597 if (jj_2_68(3)) {if (!hasError) {
7599 s = attribute_declaration();
7607 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7608 case ATTRIBUTE_T:{if (!hasError) {
7610 s = attribute_specification();
7619 case USE_T:{if (!hasError) {
7631 jj_la1[171] = jj_gen;
7632 if (jj_2_69(3)) {if (!hasError) {
7634 s = group_template_declaration();
7642 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7643 case GROUP_T:{if (!hasError) {
7645 s = group_declaration();
7655 jj_la1[172] = jj_gen;
7656 jj_consume_token(-1);
7657 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7667 QCString VhdlParser::process_declarative_part() {QCString s,s1;if (!hasError) {
7670 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7689 jj_la1[173] = jj_gen;
7693 s1 = process_declarative_item();
7709 void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;if (!hasError) {
7711 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7712 case BASIC_IDENTIFIER:
7713 case EXTENDED_CHARACTER:{if (!hasError) {
7719 jj_consume_token(COLON_T);
7725 jj_la1[174] = jj_gen;
7731 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7732 case POSTPONED_T:{if (!hasError) {
7734 jj_consume_token(POSTPONED_T);
7740 jj_la1[175] = jj_gen;
7746 currP=VhdlDocGen::PROCESS;
7747 current->startLine=getLine();
7748 current->bodyLine=getLine();
7752 jj_consume_token(PROCESS_T);
7756 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7757 case LPAREN_T:{if (!hasError) {
7759 jj_consume_token(LPAREN_T);
7763 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7764 case ALL_T:{if (!hasError) {
7766 tok = jj_consume_token(ALL_T);
7773 case BASIC_IDENTIFIER:
7774 case EXTENDED_CHARACTER:{if (!hasError) {
7776 s1 = sensitivity_list();
7782 jj_la1[176] = jj_gen;
7783 jj_consume_token(-1);
7784 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7789 jj_consume_token(RPAREN_T);
7795 jj_la1[177] = jj_gen;
7801 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7802 case IS_T:{if (!hasError) {
7804 jj_consume_token(IS_T);
7810 jj_la1[178] = jj_gen;
7816 s2 = process_declarative_part();
7821 FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s2.data(),0);
7822 FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0);
7826 jj_consume_token(BEGIN_T);
7830 process_statement_part();
7834 jj_consume_token(END_T);
7838 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7839 case POSTPONED_T:{if (!hasError) {
7841 jj_consume_token(POSTPONED_T);
7847 jj_la1[179] = jj_gen;
7853 jj_consume_token(PROCESS_T);
7857 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7858 case BASIC_IDENTIFIER:
7859 case EXTENDED_CHARACTER:{if (!hasError) {
7867 jj_la1[180] = jj_gen;
7873 jj_consume_token(SEMI_T);
7877 currName=VhdlDocGen::getProcessNumber();
7881 current->name=currName;
7883 current->endBodyLine=getLine();
7886 s1=tok->image.data();
7887 createFunction(currName,VhdlDocGen::PROCESS,s1.data());
7894 void VhdlParser::process_statement_part() {if (!hasError) {
7897 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7914 case BASIC_IDENTIFIER:
7915 case EXTENDED_CHARACTER:{
7920 jj_la1[181] = jj_gen;
7924 sequential_statement();
7934 QCString VhdlParser::qualified_expression() {QCString s,s1;if (!hasError) {
7940 jj_consume_token(APOSTROPHE_T);
7948 if (jj_2_70(2147483647)) {if (!hasError) {
7958 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
7959 case LPAREN_T:{if (!hasError) {
7961 jj_consume_token(LPAREN_T);
7969 jj_consume_token(RPAREN_T);
7973 s+="(";s+=s1;s+=")";
7979 jj_la1[182] = jj_gen;
7980 jj_consume_token(-1);
7981 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
7991 QCString VhdlParser::range() {QCString s,s1,s2;
7992 if (jj_2_71(2147483647)) {if (!hasError) {
7994 s = simple_expression();
8002 s2 = simple_expression();
8006 return s+" "+s1+" "+s2;
8009 } else if (jj_2_72(2147483647)) {if (!hasError) {
8011 s = attribute_name();
8019 jj_consume_token(-1);
8020 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8026 QCString VhdlParser::range_constraint() {QCString s,s1;if (!hasError) {
8028 jj_consume_token(RANGE_T);
8040 void VhdlParser::record_type_definition() {if (!hasError) {
8042 jj_consume_token(RECORD_T);
8046 while (!hasError) {if (!hasError) {
8048 element_declaration();
8051 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8052 case BASIC_IDENTIFIER:
8053 case EXTENDED_CHARACTER:{
8058 jj_la1[183] = jj_gen;
8066 jj_consume_token(END_T);
8070 jj_consume_token(RECORD_T);
8074 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8077 case BASIC_IDENTIFIER:
8078 case EXTENDED_CHARACTER:{if (!hasError) {
8086 jj_la1[184] = jj_gen;
8094 QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) {
8096 s = shift_expression();
8100 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8106 case NOTEQU_T:{if (!hasError) {
8108 s1 = relation_operator();
8112 s2 = shift_expression();
8118 jj_la1[185] = jj_gen;
8128 QCString VhdlParser::relation_operator() {
8129 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8130 case LT_T:{if (!hasError) {
8132 jj_consume_token(LT_T);
8141 case GT_T:{if (!hasError) {
8143 jj_consume_token(GT_T);
8152 case EQU_T:{if (!hasError) {
8154 jj_consume_token(EQU_T);
8163 case GREATERTHAN_T:{if (!hasError) {
8165 jj_consume_token(GREATERTHAN_T);
8174 case LESSTHAN_T:{if (!hasError) {
8176 jj_consume_token(LESSTHAN_T);
8185 case NOTEQU_T:{if (!hasError) {
8187 jj_consume_token(NOTEQU_T);
8197 jj_la1[186] = jj_gen;
8198 jj_consume_token(-1);
8199 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8205 QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2;if (!hasError) {
8207 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8208 case BASIC_IDENTIFIER:
8209 case EXTENDED_CHARACTER:{if (!hasError) {
8215 t = jj_consume_token(COLON_T);
8221 jj_la1[187] = jj_gen;
8227 jj_consume_token(REPORT_T);
8235 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8236 case SEVERITY_T:{if (!hasError) {
8238 t1 = jj_consume_token(SEVERITY_T);
8248 jj_la1[188] = jj_gen;
8254 jj_consume_token(SEMI_T);
8257 if(t) s.append(":");
8258 s1.prepend(" report ");
8259 if(t1) s2.prepend(" severity ");
8265 QCString VhdlParser::return_statement() {QCString s,s1;if (!hasError) {
8267 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8268 case BASIC_IDENTIFIER:
8269 case EXTENDED_CHARACTER:{if (!hasError) {
8275 jj_consume_token(COLON_T);
8285 jj_la1[189] = jj_gen;
8291 jj_consume_token(RETURN_T);
8295 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8306 case BASIC_IDENTIFIER:
8307 case EXTENDED_CHARACTER:
8308 case CHARACTER_LITERAL:
8309 case DECIMAL_LITERAL:
8311 case BIT_STRING_LITERAL:{if (!hasError) {
8319 jj_la1[190] = jj_gen;
8325 jj_consume_token(SEMI_T);
8328 return s+" return "+s1+";";
8333 QCString VhdlParser::scalar_type_definition() {QCString s,s1;
8334 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8335 case LPAREN_T:{if (!hasError) {
8337 s = enumeration_type_definition();
8346 case RANGE_T:{if (!hasError) {
8348 s = range_constraint();
8352 if (jj_2_73(2147483647)) {if (!hasError) {
8354 s1 = physical_type_definition();
8363 s+=" ";s+=s1;return s;
8369 jj_la1[191] = jj_gen;
8370 jj_consume_token(-1);
8371 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8377 void VhdlParser::secondary_unit() {
8378 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8379 case ARCHITECTURE_T:{if (!hasError) {
8381 architecture_body();
8386 case PACKAGE_T:{if (!hasError) {
8394 jj_la1[192] = jj_gen;
8395 jj_consume_token(-1);
8396 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8401 QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;if (!hasError) {
8407 jj_consume_token(EQU_T);
8411 s1 = physical_literal();
8415 jj_consume_token(SEMI_T);
8423 QCString VhdlParser::selected_name() {QCString s,s1;if (!hasError) {
8429 jj_consume_token(DOT_T);
8441 void VhdlParser::selected_signal_assignment() {if (!hasError) {
8443 jj_consume_token(WITH_T);
8451 jj_consume_token(SELECT_T);
8459 jj_consume_token(LESSTHAN_T);
8467 selected_waveforms();
8471 jj_consume_token(SEMI_T);
8477 void VhdlParser::selected_waveforms() {if (!hasError) {
8483 jj_consume_token(WHEN_T);
8492 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8498 jj_la1[193] = jj_gen;
8502 jj_consume_token(COMMA_T);
8510 jj_consume_token(WHEN_T);
8524 QCString VhdlParser::sensitivity_clause() {QCString s;if (!hasError) {
8526 jj_consume_token(ON_T);
8530 s = sensitivity_list();
8539 QCString VhdlParser::sensitivity_list() {QCString s,s1;if (!hasError) {
8546 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8552 jj_la1[194] = jj_gen;
8556 jj_consume_token(COMMA_T);
8576 QCString VhdlParser::sequence_of_statement() {QCString s,s1;if (!hasError) {
8585 s1 = sequential_statement();
8601 QCString VhdlParser::sequential_statement() {QCString s;
8602 if (jj_2_75(2147483647)) {if (!hasError) {
8604 s = signal_assignment_statement();
8608 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8611 } else if (jj_2_76(3)) {if (!hasError) {
8613 s = assertion_statement();
8617 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8620 } else if (jj_2_77(3)) {if (!hasError) {
8622 s = report_statement();
8626 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8629 } else if (jj_2_78(3)) {if (!hasError) {
8631 s = wait_statement();
8635 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8638 } else if (jj_2_79(2147483647)) {if (!hasError) {
8640 s = variable_assignment_statement();
8644 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8647 } else if (jj_2_80(3)) {if (!hasError) {
8649 s = procedure_call_statement();
8653 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8656 } else if (jj_2_81(3)) {if (!hasError) {
8665 } else if (jj_2_82(3)) {if (!hasError) {
8674 } else if (jj_2_83(3)) {if (!hasError) {
8683 } else if (jj_2_84(3)) {if (!hasError) {
8685 s = next_statement();
8692 } else if (jj_2_85(3)) {if (!hasError) {
8694 s = exit_statement();
8701 } else if (jj_2_86(3)) {if (!hasError) {
8703 s = return_statement();
8707 FlowChart::addFlowChart(FlowChart::RETURN_NO,s.data(),0);return s;
8711 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8713 case BASIC_IDENTIFIER:
8714 case EXTENDED_CHARACTER:{if (!hasError) {
8716 s = null_statement();
8720 FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s;
8726 jj_la1[195] = jj_gen;
8727 jj_consume_token(-1);
8728 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8735 QCString VhdlParser::shift_expression() {QCString s,s1,s2;if (!hasError) {
8737 s = simple_expression();
8741 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8747 case SRL_T:{if (!hasError) {
8749 s1 = shift_operator();
8753 s2 = simple_expression();
8759 jj_la1[196] = jj_gen;
8769 QCString VhdlParser::shift_operator() {
8770 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8771 case SLL_T:{if (!hasError) {
8773 jj_consume_token(SLL_T);
8782 case SRL_T:{if (!hasError) {
8784 jj_consume_token(SRL_T);
8793 case SLA_T:{if (!hasError) {
8795 jj_consume_token(SLA_T);
8804 case SRA_T:{if (!hasError) {
8806 jj_consume_token(SRA_T);
8815 case ROL_T:{if (!hasError) {
8817 jj_consume_token(ROL_T);
8826 case ROR_T:{if (!hasError) {
8828 jj_consume_token(ROR_T);
8838 jj_la1[197] = jj_gen;
8839 jj_consume_token(-1);
8840 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8846 QCString VhdlParser::sign() {
8847 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8848 case PLUS_T:{if (!hasError) {
8850 jj_consume_token(PLUS_T);
8859 case MINUS_T:{if (!hasError) {
8861 jj_consume_token(MINUS_T);
8871 jj_la1[198] = jj_gen;
8872 jj_consume_token(-1);
8873 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8879 QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3;
8880 if (jj_2_88(2147483647)) {if (!hasError) {
8882 conditional_signal_assignment_wave();
8889 } else if (jj_2_89(2147483647)) {if (!hasError) {
8891 selected_signal_assignment_wave();
8899 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8903 case BASIC_IDENTIFIER:
8904 case EXTENDED_CHARACTER:{if (!hasError) {
8906 if (jj_2_87(2)) {if (!hasError) {
8912 jj_consume_token(COLON_T);
8929 jj_consume_token(LESSTHAN_T);
8933 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
8936 case TRANSPORT_T:{if (!hasError) {
8938 s2 = delay_mechanism();
8944 jj_la1[199] = jj_gen;
8954 jj_consume_token(SEMI_T);
8958 return s+s1+"<="+s2+s3+";";
8964 jj_la1[200] = jj_gen;
8965 jj_consume_token(-1);
8966 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
8973 void VhdlParser::semi() {if (!hasError) {
8975 jj_consume_token(SEMI_T);
8981 void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4;if (!hasError) {
8983 jj_consume_token(SIGNAL_T);
8987 s = identifier_list();
8991 jj_consume_token(COLON_T);
8995 s1 = subtype_indication();
8999 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9001 case REGISTER_T:{if (!hasError) {
9009 jj_la1[201] = jj_gen;
9015 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9016 case VARASSIGN_T:{if (!hasError) {
9018 tok = jj_consume_token(VARASSIGN_T);
9028 jj_la1[202] = jj_gen;
9034 jj_consume_token(SEMI_T);
9040 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public);
9044 QCString VhdlParser::signal_kind() {
9045 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9046 case REGISTER_T:{if (!hasError) {
9048 jj_consume_token(REGISTER_T);
9057 case BUS_T:{if (!hasError) {
9059 jj_consume_token(BUS_T);
9069 jj_la1[203] = jj_gen;
9070 jj_consume_token(-1);
9071 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9077 QCString VhdlParser::signal_list() {QCString s,s1;
9078 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9081 case BASIC_IDENTIFIER:
9082 case EXTENDED_CHARACTER:{if (!hasError) {
9089 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9095 jj_la1[204] = jj_gen;
9099 jj_consume_token(COMMA_T);
9116 case OTHER_T:{if (!hasError) {
9118 jj_consume_token(OTHER_T);
9127 case ALL_T:{if (!hasError) {
9129 jj_consume_token(ALL_T);
9139 jj_la1[205] = jj_gen;
9140 jj_consume_token(-1);
9141 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9147 QCString VhdlParser::signature() {QCString s,s1,s2;if (!hasError) {
9149 jj_consume_token(LBRACKET_T);
9153 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9156 case BASIC_IDENTIFIER:
9157 case EXTENDED_CHARACTER:{if (!hasError) {
9164 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9170 jj_la1[206] = jj_gen;
9174 jj_consume_token(COMMA_T);
9192 jj_la1[207] = jj_gen;
9198 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9199 case RETURN_T:{if (!hasError) {
9201 jj_consume_token(RETURN_T);
9215 jj_la1[208] = jj_gen;
9221 jj_consume_token(RBRACKET_T);
9224 s1="["+s+"]";return s1;
9229 QCString VhdlParser::simple_expression() {QCString s,s1,s2;if (!hasError) {
9231 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9233 case MINUS_T:{if (!hasError) {
9241 jj_la1[209] = jj_gen;
9256 if (jj_2_90(2147483647)) {
9262 s1 = adding_operator();
9282 void VhdlParser::simple_name() {if (!hasError) {
9290 QCString VhdlParser::slice_name() {QCString s,s1;if (!hasError) {
9296 jj_consume_token(LPAREN_T);
9300 s1 = discrete_range();
9304 jj_consume_token(RPAREN_T);
9307 return s+"("+s1+")";
9312 QCString VhdlParser::string_literal() {Token *tok;if (!hasError) {
9314 tok = jj_consume_token(STRINGLITERAL);
9317 return tok->image.c_str();
9322 void VhdlParser::subprogram_body() {QCString s;if (!hasError) {
9324 jj_consume_token(IS_T);
9329 s = subprogram_declarative_part();
9335 FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s,0);
9337 FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0);
9341 jj_consume_token(BEGIN_T);
9345 subprogram_statement_part();
9349 jj_consume_token(END_T);
9353 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9355 case PROCEDURE_T:{if (!hasError) {
9363 jj_la1[210] = jj_gen;
9369 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9371 case BASIC_IDENTIFIER:
9372 case EXTENDED_CHARACTER:{if (!hasError) {
9380 jj_la1[211] = jj_gen;
9386 jj_consume_token(SEMI_T);
9389 tempEntry->endBodyLine=getLine(END_T);
9395 void VhdlParser::subprogram_declaration() {
9396 if (jj_2_91(2147483647)) {if (!hasError) {
9398 subprogram_instantiation_declaration();
9402 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9406 case PURE_T:{if (!hasError) {
9408 subprogram_specification();
9422 jj_la1[212] = jj_gen;
9423 jj_consume_token(-1);
9424 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9430 void VhdlParser::subprogram_1() {
9431 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9432 case IS_T:{if (!hasError) {
9439 case SEMI_T:{if (!hasError) {
9441 jj_consume_token(SEMI_T);
9447 jj_la1[213] = jj_gen;
9448 jj_consume_token(-1);
9449 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9454 QCString VhdlParser::subprogram_declarative_item() {QCString s;
9455 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9459 case PURE_T:{if (!hasError) {
9461 subprogram_declaration();
9470 case TYPE_T:{if (!hasError) {
9472 s = type_declaration();
9481 case IS_T:{if (!hasError) {
9492 case SUBTYPE_T:{if (!hasError) {
9494 s = subtype_declaration();
9503 case CONSTANT_T:{if (!hasError) {
9505 s = constant_declaration();
9515 case VARIABLE_T:{if (!hasError) {
9517 s = variable_declaration();
9526 case FILE_T:{if (!hasError) {
9528 s = file_declaration();
9537 case ALIAS_T:{if (!hasError) {
9539 s = alias_declaration();
9549 jj_la1[214] = jj_gen;
9550 if (jj_2_92(2147483647)) {if (!hasError) {
9552 s = attribute_declaration();
9560 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9561 case ATTRIBUTE_T:{if (!hasError) {
9563 s = attribute_specification();
9572 case USE_T:{if (!hasError) {
9584 jj_la1[215] = jj_gen;
9585 if (jj_2_93(3)) {if (!hasError) {
9587 s = group_template_declaration();
9595 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9596 case GROUP_T:{if (!hasError) {
9598 s = group_declaration();
9608 jj_la1[216] = jj_gen;
9609 jj_consume_token(-1);
9610 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9620 QCString VhdlParser::subprogram_declarative_part() {QCString s,s1;if (!hasError) {
9623 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9643 jj_la1[217] = jj_gen;
9647 s1 = subprogram_declarative_item();
9663 void VhdlParser::subprogram_kind() {
9664 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9665 case FUNCTION_T:{if (!hasError) {
9667 jj_consume_token(FUNCTION_T);
9672 case PROCEDURE_T:{if (!hasError) {
9674 jj_consume_token(PROCEDURE_T);
9680 jj_la1[218] = jj_gen;
9681 jj_consume_token(-1);
9682 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9687 void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t;
9688 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9689 case PROCEDURE_T:{if (!hasError) {
9691 jj_consume_token(PROCEDURE_T);
9699 currP=VhdlDocGen::PROCEDURE;
9700 createFunction(s.data(),currP,0);
9702 current->startLine=getLine(PROCEDURE_T);
9703 current->bodyLine=getLine(PROCEDURE_T);
9707 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9708 case LPAREN_T:{if (!hasError) {
9710 jj_consume_token(LPAREN_T);
9714 param_sec=PARAM_SEC;
9726 jj_consume_token(RPAREN_T);
9732 jj_la1[219] = jj_gen;
9738 if (jj_2_94(2)) {if (!hasError) {
9740 gen_interface_list();
9749 if (jj_2_95(2)) {if (!hasError) {
9771 case PURE_T:{if (!hasError) {
9773 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9775 case PURE_T:{if (!hasError) {
9777 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9778 case PURE_T:{if (!hasError) {
9780 tok = jj_consume_token(PURE_T);
9785 case IMPURE_T:{if (!hasError) {
9787 tok = jj_consume_token(IMPURE_T);
9793 jj_la1[220] = jj_gen;
9794 jj_consume_token(-1);
9795 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9802 jj_la1[221] = jj_gen;
9808 t = jj_consume_token(FUNCTION_T);
9816 currP=VhdlDocGen::FUNCTION;
9818 createFunction(tok->image.c_str(),currP,s.data());
9820 createFunction(0,currP,s.data());
9822 current->startLine=getLine(FUNCTION_T);
9823 current->bodyLine=getLine(FUNCTION_T);
9827 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9828 case LPAREN_T:{if (!hasError) {
9830 param_sec=PARAM_SEC;
9834 jj_consume_token(LPAREN_T);
9838 formal_parameter_list();
9842 jj_consume_token(RPAREN_T);
9852 jj_la1[222] = jj_gen;
9858 jj_consume_token(RETURN_T);
9874 jj_la1[223] = jj_gen;
9875 jj_consume_token(-1);
9876 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
9881 void VhdlParser::subprogram_statement_part() {if (!hasError) {
9884 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9901 case BASIC_IDENTIFIER:
9902 case EXTENDED_CHARACTER:{
9907 jj_la1[224] = jj_gen;
9911 sequential_statement();
9921 QCString VhdlParser::subtype_declaration() {QCString s,s1;if (!hasError) {
9923 jj_consume_token(SUBTYPE_T);
9931 jj_consume_token(IS_T);
9935 s1 = subtype_indication();
9939 jj_consume_token(SEMI_T);
9942 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public);
9943 return " subtype "+s+" is "+s1+";";
9948 QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) {
9954 if (jj_2_96(2147483647)) {if (!hasError) {
9965 if (jj_2_97(2147483647)) {if (!hasError) {
9975 return s+" "+s1+" "+s2;
9980 QCString VhdlParser::suffix() {QCString s;
9981 if (jj_2_98(2147483647)) {if (!hasError) {
9991 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
9992 case CHARACTER_LITERAL:{if (!hasError) {
9994 s = character_literal();
10003 case STRINGLITERAL:{if (!hasError) {
10005 s = operator_symbol();
10014 case ALL_T:{if (!hasError) {
10016 jj_consume_token(ALL_T);
10026 jj_la1[225] = jj_gen;
10027 jj_consume_token(-1);
10028 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10035 QCString VhdlParser::target() {QCString s;
10036 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10038 case STRINGLITERAL:
10039 case BASIC_IDENTIFIER:
10040 case EXTENDED_CHARACTER:{if (!hasError) {
10051 case LPAREN_T:{if (!hasError) {
10063 jj_la1[226] = jj_gen;
10064 jj_consume_token(-1);
10065 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10071 QCString VhdlParser::term() {QCString s,s1,s2;if (!hasError) {
10077 while (!hasError) {
10084 s1 = multiplying_operation();
10104 QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) {
10106 jj_consume_token(FOR_T);
10118 QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) {
10124 jj_consume_token(LPAREN_T);
10132 jj_consume_token(RPAREN_T);
10135 return s+"("+s1+")";
10140 QCString VhdlParser::type_declaration() {QCString s;
10141 if (jj_2_100(3)) {if (!hasError) {
10143 s = full_type_declaration();
10151 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10152 case TYPE_T:{if (!hasError) {
10154 s = incomplete_type_declaration();
10164 jj_la1[227] = jj_gen;
10165 jj_consume_token(-1);
10166 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10173 QCString VhdlParser::type_definition() {QCString s;
10174 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10176 case LPAREN_T:{if (!hasError) {
10179 s = scalar_type_definition();
10189 case RECORD_T:{if (!hasError) {
10191 s = composite_type_definition();
10200 case ACCESS_T:{if (!hasError) {
10202 s = access_type_definition();
10211 case FILE_T:{if (!hasError) {
10213 s = file_type_definition();
10223 jj_la1[228] = jj_gen;
10224 if (jj_2_101(2)) {if (!hasError) {
10226 protected_type_body();
10234 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10235 case PROTECTED_T:{if (!hasError) {
10237 protected_type_declaration();
10247 jj_la1[229] = jj_gen;
10248 jj_consume_token(-1);
10249 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10257 QCString VhdlParser::type_mark() {QCString s;if (!hasError) {
10267 QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3;if (!hasError) {
10269 jj_consume_token(ARRAY_T);
10273 jj_consume_token(LPAREN_T);
10277 s = index_subtype_definition();
10281 while (!hasError) {
10282 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10288 jj_la1[230] = jj_gen;
10292 jj_consume_token(COMMA_T);
10296 s1 = index_subtype_definition();
10308 jj_consume_token(RPAREN_T);
10312 jj_consume_token(OF_T);
10316 s2 = subtype_indication();
10319 return "array("+s+s3+") of "+s2;
10324 QCString VhdlParser::use_clause() {QCString s,s1;if (!hasError) {
10326 jj_consume_token(USE_T);
10330 s = selected_name();
10334 while (!hasError) {
10335 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10341 jj_la1[231] = jj_gen;
10345 jj_consume_token(COMMA_T);
10349 s1 = selected_name();
10361 jj_consume_token(SEMI_T);
10364 QStringList ql1=QStringList::split(",",s,FALSE);
10365 for (uint j=0;j<ql1.count();j++)
10367 QStringList ql=QStringList::split(".",ql1[j],FALSE);
10368 QCString it=ql[1].utf8();
10369 if ( parse_sec==0 && Config_getBool("SHOW_INCLUDE_FILES") )
10371 VhdlParser::addVhdlType(it.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::USE,it.data(),"_use_",Public);
10380 QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2;
10381 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10384 case STRINGLITERAL:
10385 case BASIC_IDENTIFIER:
10386 case EXTENDED_CHARACTER:{if (!hasError) {
10388 if (jj_2_102(2)) {if (!hasError) {
10394 jj_consume_token(COLON_T);
10411 jj_consume_token(VARASSIGN_T);
10419 jj_consume_token(SEMI_T);
10423 return s+s1+":="+s2+";";
10428 case WITH_T:{if (!hasError) {
10430 selected_variable_assignment();
10440 jj_la1[232] = jj_gen;
10441 jj_consume_token(-1);
10442 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10448 QCString VhdlParser::variable_declaration() {Token *tok=0;Token *t1=0;QCString s,s1,s2;if (!hasError) {
10450 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10451 case SHARED_T:{if (!hasError) {
10453 tok = jj_consume_token(SHARED_T);
10459 jj_la1[233] = jj_gen;
10465 jj_consume_token(VARIABLE_T);
10469 s = identifier_list();
10473 jj_consume_token(COLON_T);
10477 s1 = subtype_indication();
10481 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10482 case VARASSIGN_T:{if (!hasError) {
10484 t1 = jj_consume_token(VARASSIGN_T);
10494 jj_la1[234] = jj_gen;
10500 jj_consume_token(SEMI_T);
10506 QCString val=" variable "+s+":"+s1+s2+";";
10510 it.prepend(" shared ");
10511 val.prepend(" shared");
10512 spec=VhdlDocGen::SHAREDVARIABLE;
10515 spec=VhdlDocGen::SHAREDVARIABLE;
10521 addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public);
10527 QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0;if (!hasError) {
10529 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10530 case BASIC_IDENTIFIER:
10531 case EXTENDED_CHARACTER:{if (!hasError) {
10537 t = jj_consume_token(COLON_T);
10543 jj_la1[235] = jj_gen;
10549 jj_consume_token(WAIT_T);
10553 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10554 case ON_T:{if (!hasError) {
10556 s1 = sensitivity_clause();
10562 jj_la1[236] = jj_gen;
10568 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10569 case UNTIL_T:{if (!hasError) {
10571 s2 = condition_clause();
10577 jj_la1[237] = jj_gen;
10583 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10584 case FOR_T:{if (!hasError) {
10586 s3 = timeout_clause();
10592 jj_la1[238] = jj_gen;
10598 jj_consume_token(SEMI_T);
10601 if(t) s.append(":");
10602 return s+" wait "+s1+s2+s3+";";
10607 QCString VhdlParser::waveform() {QCString s,s1;
10608 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10618 case STRINGLITERAL:
10619 case BASIC_IDENTIFIER:
10620 case EXTENDED_CHARACTER:
10621 case CHARACTER_LITERAL:
10622 case DECIMAL_LITERAL:
10623 case BASED_LITERAL:
10624 case BIT_STRING_LITERAL:{if (!hasError) {
10626 s = waveform_element();
10630 while (!hasError) {
10631 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10637 jj_la1[239] = jj_gen;
10641 jj_consume_token(COMMA_T);
10645 s1 = waveform_element();
10662 case UNAFFECTED_T:{if (!hasError) {
10664 jj_consume_token(UNAFFECTED_T);
10668 return " unaffected ";
10674 jj_la1[240] = jj_gen;
10675 jj_consume_token(-1);
10676 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10682 QCString VhdlParser::waveform_element() {QCString s,s1;if (!hasError) {
10688 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10689 case AFTER_T:{if (!hasError) {
10691 jj_consume_token(AFTER_T);
10699 s1.prepend(" after ");
10705 jj_la1[241] = jj_gen;
10715 QCString VhdlParser::protected_type_body() {if (!hasError) {
10717 jj_consume_token(PROTECTED_T);
10721 jj_consume_token(BODY_T);
10725 protected_type_body_declarative_part();
10729 jj_consume_token(END_T);
10733 jj_consume_token(PROTECTED_T);
10737 jj_consume_token(BODY_T);
10741 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10742 case BASIC_IDENTIFIER:
10743 case EXTENDED_CHARACTER:{if (!hasError) {
10751 jj_la1[242] = jj_gen;
10761 void VhdlParser::protected_type_body_declarative_item() {
10762 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10766 case PURE_T:{if (!hasError) {
10768 subprogram_declaration();
10773 case IS_T:{if (!hasError) {
10780 case TYPE_T:{if (!hasError) {
10782 type_declaration();
10787 case SUBTYPE_T:{if (!hasError) {
10789 subtype_declaration();
10794 case CONSTANT_T:{if (!hasError) {
10796 constant_declaration();
10802 case VARIABLE_T:{if (!hasError) {
10804 variable_declaration();
10809 case FILE_T:{if (!hasError) {
10811 file_declaration();
10816 case ALIAS_T:{if (!hasError) {
10818 alias_declaration();
10824 jj_la1[243] = jj_gen;
10825 if (jj_2_103(2147483647)) {if (!hasError) {
10827 attribute_declaration();
10831 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10832 case ATTRIBUTE_T:{if (!hasError) {
10834 attribute_specification();
10839 case USE_T:{if (!hasError) {
10847 jj_la1[244] = jj_gen;
10848 if (jj_2_104(3)) {if (!hasError) {
10850 group_template_declaration();
10854 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10855 case GROUP_T:{if (!hasError) {
10857 group_declaration();
10863 jj_la1[245] = jj_gen;
10864 jj_consume_token(-1);
10865 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10874 void VhdlParser::protected_type_body_declarative_part() {if (!hasError) {
10876 while (!hasError) {
10877 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10897 jj_la1[246] = jj_gen;
10901 protected_type_body_declarative_item();
10911 QCString VhdlParser::protected_type_declaration() {if (!hasError) {
10913 jj_consume_token(PROTECTED_T);
10917 try {if (!hasError) {
10919 protected_type_declarative_part();
10923 error_skipto(END_T);
10928 jj_consume_token(END_T);
10932 jj_consume_token(PROTECTED_T);
10936 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10937 case BASIC_IDENTIFIER:
10938 case EXTENDED_CHARACTER:{if (!hasError) {
10946 jj_la1[247] = jj_gen;
10956 void VhdlParser::protected_type_declarative_item() {
10957 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
10961 case PURE_T:{if (!hasError) {
10963 subprogram_specification();
10968 case ATTRIBUTE_T:{if (!hasError) {
10970 attribute_specification();
10975 case USE_T:{if (!hasError) {
10983 jj_la1[248] = jj_gen;
10984 jj_consume_token(-1);
10985 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
10990 void VhdlParser::protected_type_declarative_part() {if (!hasError) {
10992 while (!hasError) {
10993 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11004 jj_la1[249] = jj_gen;
11008 protected_type_declarative_item();
11012 jj_consume_token(SEMI_T);
11022 QCString VhdlParser::context_ref() {QCString s;if (!hasError) {
11024 jj_consume_token(CONTEXT_T);
11028 s = identifier_list();
11032 jj_consume_token(SEMI_T);
11035 return "context "+s ;
11040 void VhdlParser::context_declaration() {QCString s,s1;if (!hasError) {
11042 jj_consume_token(CONTEXT_T);
11050 jj_consume_token(IS_T);
11054 parse_sec=CONTEXT_SEC;
11058 while (!hasError) {
11059 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11067 jj_la1[250] = jj_gen;
11071 s1 = libustcont_stats();
11079 jj_consume_token(END_T);
11083 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11084 case CONTEXT_T:{if (!hasError) {
11086 jj_consume_token(CONTEXT_T);
11092 jj_la1[251] = jj_gen;
11098 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11099 case BASIC_IDENTIFIER:
11100 case EXTENDED_CHARACTER:{if (!hasError) {
11108 jj_la1[252] = jj_gen;
11114 jj_consume_token(SEMI_T);
11118 addVhdlType(s.data(),getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public);
11122 QCString VhdlParser::libustcont_stats() {QCString s;
11123 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11124 case USE_T:{if (!hasError) {
11135 case LIBRARY_T:{if (!hasError) {
11137 s = library_clause();
11146 case CONTEXT_T:{if (!hasError) {
11158 jj_la1[253] = jj_gen;
11159 jj_consume_token(-1);
11160 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11166 void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2;if (!hasError) {
11168 jj_consume_token(PACKAGE_T);
11176 jj_consume_token(IS_T);
11180 jj_consume_token(NEW_T);
11192 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11193 case GENERIC_T:{if (!hasError) {
11201 jj_la1[254] = jj_gen;
11207 jj_consume_token(SEMI_T);
11210 QCString q=" is new "+s1+s2;
11211 addVhdlType(s.data(),getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public);
11215 QCString VhdlParser::interface_package_declaration() {QCString s,s1;if (!hasError) {
11217 jj_consume_token(PACKAGE_T);
11225 jj_consume_token(IS_T);
11229 jj_consume_token(NEW_T);
11237 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11238 case GENERIC_T:{if (!hasError) {
11246 jj_la1[255] = jj_gen;
11252 return "package "+s+" is new "+s1;
11257 QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2;if (!hasError) {
11259 jj_consume_token(FUNCTION_T);
11267 jj_consume_token(IS_T);
11271 jj_consume_token(NEW_T);
11283 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11284 case GENERIC_T:{if (!hasError) {
11292 jj_la1[256] = jj_gen;
11298 jj_consume_token(SEMI_T);
11301 QCString q= " is new "+s1+s2;
11302 addVhdlType(s.data(),getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public);
11308 void VhdlParser::gen_assoc_list() {if (!hasError) {
11310 jj_consume_token(GENERIC_T);
11314 jj_consume_token(MAP_T);
11318 jj_consume_token(LPAREN_T);
11322 association_list();
11326 jj_consume_token(RPAREN_T);
11332 void VhdlParser::gen_interface_list() {if (!hasError) {
11334 jj_consume_token(GENERIC_T);
11338 jj_consume_token(LPAREN_T);
11342 //int u=s_str.iLine;
11356 jj_consume_token(RPAREN_T);
11362 void VhdlParser::case_scheme() {if (!hasError) {
11364 jj_consume_token(CASE_T);
11372 jj_consume_token(GENERATE_T);
11380 if (jj_2_105(3)) {if (!hasError) {
11391 jj_consume_token(END_T);
11395 jj_consume_token(GENERATE_T);
11399 generate_statement_body();
11403 jj_consume_token(SEMI_T);
11409 void VhdlParser::when_stats() {if (!hasError) {
11411 while (!hasError) {if (!hasError) {
11413 jj_consume_token(WHEN_T);
11417 if (jj_2_106(2)) {if (!hasError) {
11423 jj_consume_token(COLON_T);
11436 jj_consume_token(ARROW_T);
11440 generate_statement_body();
11443 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11449 jj_la1[257] = jj_gen;
11459 void VhdlParser::ttend() {if (!hasError) {
11461 jj_consume_token(END_T);
11465 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11466 case BASIC_IDENTIFIER:
11467 case EXTENDED_CHARACTER:{if (!hasError) {
11475 jj_la1[258] = jj_gen;
11481 jj_consume_token(SEMI_T);
11487 void VhdlParser::generate_statement_body() {if (!hasError) {
11489 jj_consume_token(BEGIN_T);
11493 generate_statement_body();
11499 void VhdlParser::generate_statement_body1() {
11500 if (jj_2_107(2147483647)) {if (!hasError) {
11502 while (!hasError) {
11503 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11522 case VHDL2008TOOLDIR:{
11527 jj_la1[259] = jj_gen;
11531 block_declarative_item();
11539 jj_consume_token(BEGIN_T);
11543 while (!hasError) {
11544 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11552 case STRINGLITERAL:
11553 case BASIC_IDENTIFIER:
11554 case EXTENDED_CHARACTER:
11555 case VHDL2008TOOLDIR:{
11560 jj_la1[260] = jj_gen;
11564 concurrent_statement();
11571 } else {if (!hasError) {
11573 while (!hasError) {
11574 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11582 case STRINGLITERAL:
11583 case BASIC_IDENTIFIER:
11584 case EXTENDED_CHARACTER:
11585 case VHDL2008TOOLDIR:{
11590 jj_la1[261] = jj_gen;
11594 concurrent_statement();
11605 QCString VhdlParser::external_name() {QCString s,s1,s2;if (!hasError) {
11607 jj_consume_token(SLSL_T);
11615 s1 = external_pathname();
11619 jj_consume_token(COLON_T);
11623 s2 = subtype_indication();
11627 jj_consume_token(RSRS_T);
11631 QCString t1=s1+":"+s2+">>";
11637 QCString VhdlParser::sig_stat() {Token *t;
11638 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11639 case CONSTANT_T:{if (!hasError) {
11641 t = jj_consume_token(CONSTANT_T);
11645 return t->image.data();
11650 case SIGNAL_T:{if (!hasError) {
11652 t = jj_consume_token(SIGNAL_T);
11656 return t->image.data();
11661 case VARIABLE_T:{if (!hasError) {
11663 t = jj_consume_token(VARIABLE_T);
11667 return t->image.data();
11673 jj_la1[262] = jj_gen;
11674 jj_consume_token(-1);
11675 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11681 QCString VhdlParser::external_pathname() {QCString s;
11682 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11683 case DOT_T:{if (!hasError) {
11685 s = absolute_pathname();
11694 case NEG_T:{if (!hasError) {
11696 s = relative_pathname();
11705 case AT_T:{if (!hasError) {
11707 s = package_path_name();
11717 jj_la1[263] = jj_gen;
11718 jj_consume_token(-1);
11719 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11725 QCString VhdlParser::absolute_pathname() {QCString s,s1;
11726 if (jj_2_108(2147483647)) {if (!hasError) {
11728 jj_consume_token(DOT_T);
11732 s = pathname_element_list();
11744 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11745 case DOT_T:{if (!hasError) {
11747 jj_consume_token(DOT_T);
11761 jj_la1[264] = jj_gen;
11762 jj_consume_token(-1);
11763 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11770 QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) {
11776 if (jj_2_109(2147483647)) {if (!hasError) {
11778 s1 = pathname_element_list();
11795 QCString VhdlParser::neg_list() {QCString s;if (!hasError) {
11797 while (!hasError) {if (!hasError) {
11799 jj_consume_token(NEG_T);
11803 jj_consume_token(DOT_T);
11810 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11816 jj_la1[265] = jj_gen;
11828 QCString VhdlParser::pathname_element() {QCString s,s1;if (!hasError) {
11834 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11835 case LPAREN_T:{if (!hasError) {
11837 jj_consume_token(LPAREN_T);
11845 jj_consume_token(RPAREN_T);
11851 jj_la1[266] = jj_gen;
11857 return s+"("+s1+")";
11864 QCString VhdlParser::pathname_element_list() {QCString s,s1,s2;if (!hasError) {
11867 s = pathname_element();
11871 jj_consume_token(DOT_T);
11881 while (!hasError) {
11882 if (jj_2_110(2147483647)) {
11888 s1 = pathname_element();
11892 jj_consume_token(DOT_T);
11908 QCString VhdlParser::package_path_name() {QCString s;if (!hasError) {
11910 jj_consume_token(AT_T);
11922 void VhdlParser::conditional_signal_assignment_wave() {
11923 if (jj_2_111(2147483647)) {if (!hasError) {
11925 conditional_force_assignment();
11929 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11932 case STRINGLITERAL:
11933 case BASIC_IDENTIFIER:
11934 case EXTENDED_CHARACTER:{if (!hasError) {
11936 conditional_waveform_assignment();
11942 jj_la1[267] = jj_gen;
11943 jj_consume_token(-1);
11944 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
11950 void VhdlParser::conditional_waveform_assignment() {if (!hasError) {
11956 jj_consume_token(LESSTHAN_T);
11960 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11963 case TRANSPORT_T:{if (!hasError) {
11971 jj_la1[268] = jj_gen;
11977 waveform_element();
11981 jj_consume_token(WHEN_T);
11989 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
11990 case ELSE_T:{if (!hasError) {
11998 jj_la1[269] = jj_gen;
12004 jj_consume_token(SEMI_T);
12010 void VhdlParser::else_wave_list() {if (!hasError) {
12012 jj_consume_token(ELSE_T);
12020 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12021 case WHEN_T:{if (!hasError) {
12023 jj_consume_token(WHEN_T);
12033 jj_la1[270] = jj_gen;
12041 void VhdlParser::conditional_force_assignment() {if (!hasError) {
12047 jj_consume_token(LESSTHAN_T);
12051 jj_consume_token(FORCE_T);
12055 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12057 case OUT_T:{if (!hasError) {
12065 jj_la1[271] = jj_gen;
12075 jj_consume_token(WHEN_T);
12079 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12089 case STRINGLITERAL:
12090 case BASIC_IDENTIFIER:
12091 case EXTENDED_CHARACTER:
12092 case CHARACTER_LITERAL:
12093 case DECIMAL_LITERAL:
12094 case BASED_LITERAL:
12095 case BIT_STRING_LITERAL:{if (!hasError) {
12107 jj_la1[272] = jj_gen;
12113 jj_consume_token(SEMI_T);
12119 void VhdlParser::selected_signal_assignment_wave() {
12120 if (jj_2_112(2147483647)) {if (!hasError) {
12122 selected_force_assignment();
12126 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12127 case WITH_T:{if (!hasError) {
12129 selected_waveform_assignment();
12135 jj_la1[273] = jj_gen;
12136 jj_consume_token(-1);
12137 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12143 void VhdlParser::selected_variable_assignment() {if (!hasError) {
12145 jj_consume_token(WITH_T);
12153 jj_consume_token(SELECT_T);
12157 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12158 case Q_T:{if (!hasError) {
12160 jj_consume_token(Q_T);
12166 jj_la1[274] = jj_gen;
12176 jj_consume_token(VARASSIGN_T);
12186 void VhdlParser::select_name() {
12187 if (jj_2_113(2147483647)) {if (!hasError) {
12193 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12195 case STRINGLITERAL:
12196 case BASIC_IDENTIFIER:
12197 case EXTENDED_CHARACTER:{if (!hasError) {
12205 jj_la1[275] = jj_gen;
12206 jj_consume_token(-1);
12207 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12213 void VhdlParser::selected_waveform_assignment() {if (!hasError) {
12215 jj_consume_token(WITH_T);
12223 jj_consume_token(SELECT_T);
12227 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12228 case Q_T:{if (!hasError) {
12230 jj_consume_token(Q_T);
12236 jj_la1[276] = jj_gen;
12246 jj_consume_token(LESSTHAN_T);
12250 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12253 case TRANSPORT_T:{if (!hasError) {
12261 jj_la1[277] = jj_gen;
12273 void VhdlParser::selected_force_assignment() {if (!hasError) {
12275 jj_consume_token(WITH_T);
12283 jj_consume_token(SELECT_T);
12287 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12288 case Q_T:{if (!hasError) {
12290 jj_consume_token(Q_T);
12296 jj_la1[278] = jj_gen;
12306 jj_consume_token(LESSTHAN_T);
12310 jj_consume_token(FORCE_T);
12314 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12316 case OUT_T:{if (!hasError) {
12324 jj_la1[279] = jj_gen;
12336 void VhdlParser::sel_var_list() {if (!hasError) {
12343 jj_consume_token(WHEN_T);
12351 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12352 case COMMA_T:{if (!hasError) {
12354 jj_consume_token(COMMA_T);
12359 case SEMI_T:{if (!hasError) {
12361 jj_consume_token(SEMI_T);
12367 jj_la1[280] = jj_gen;
12368 jj_consume_token(-1);
12369 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12376 while (!hasError) {
12377 if (jj_2_114(2147483647)) {
12387 jj_consume_token(WHEN_T);
12395 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12396 case COMMA_T:{if (!hasError) {
12398 jj_consume_token(COMMA_T);
12403 case SEMI_T:{if (!hasError) {
12405 jj_consume_token(SEMI_T);
12411 jj_la1[281] = jj_gen;
12412 jj_consume_token(-1);
12413 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12424 void VhdlParser::sel_wave_list() {if (!hasError) {
12426 waveform_element();
12430 jj_consume_token(WHEN_T);
12438 while (!hasError) {
12439 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12445 jj_la1[282] = jj_gen;
12449 jj_consume_token(COMMA_T);
12461 jj_consume_token(SEMI_T);
12467 void VhdlParser::inout_stat() {
12468 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12469 case IN_T:{if (!hasError) {
12471 jj_consume_token(IN_T);
12476 case OUT_T:{if (!hasError) {
12478 jj_consume_token(OUT_T);
12484 jj_la1[283] = jj_gen;
12485 jj_consume_token(-1);
12486 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12491 void VhdlParser::else_stat() {if (!hasError) {
12493 while (!hasError) {if (!hasError) {
12495 jj_consume_token(ELSE_T);
12503 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12504 case WHEN_T:{if (!hasError) {
12506 jj_consume_token(WHEN_T);
12516 jj_la1[284] = jj_gen;
12521 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12527 jj_la1[285] = jj_gen;
12537 QCString VhdlParser::interface_subprogram_declaration() {QCString s;
12538 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12539 case PROCEDURE_T:{if (!hasError) {
12552 case PURE_T:{if (!hasError) {
12564 jj_la1[286] = jj_gen;
12565 jj_consume_token(-1);
12566 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12572 QCString VhdlParser::iproc() {QCString s,s1;if (!hasError) {
12574 jj_consume_token(PROCEDURE_T);
12586 return "procedure "+s+s1;
12591 QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0;if (!hasError) {
12593 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12596 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12597 case PURE_T:{if (!hasError) {
12599 t = jj_consume_token(PURE_T);
12604 case IMPURE_T:{if (!hasError) {
12606 t = jj_consume_token(IMPURE_T);
12612 jj_la1[287] = jj_gen;
12613 jj_consume_token(-1);
12614 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12619 jj_la1[288] = jj_gen;
12625 jj_consume_token(FUNCTION_T);
12637 jj_consume_token(RETURN_T);
12645 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12646 case IS_T:{if (!hasError) {
12648 t1 = jj_consume_token(IS_T);
12652 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12653 case BASIC_IDENTIFIER:
12654 case EXTENDED_CHARACTER:{if (!hasError) {
12661 case BOX_T:{if (!hasError) {
12663 t2 = jj_consume_token(BOX_T);
12669 jj_la1[289] = jj_gen;
12670 jj_consume_token(-1);
12671 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12678 jj_la1[290] = jj_gen;
12684 if(t) q=t->image.data();
12688 s3.prepend(" is ");
12691 if (parse_sec==GEN_SEC)
12693 QCString ss=q+" function "+s1+" return "+s2+s3;
12694 int a=getLine(FUNCTION_T);
12695 int b=getLine(PROCEDURE_T);
12698 addVhdlType(current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Public);
12705 QCString VhdlParser::param() {QCString s,s1;Token *tok=0;if (!hasError) {
12707 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12708 case PARAMETER_T:{if (!hasError) {
12710 tok = jj_consume_token(PARAMETER_T);
12716 jj_la1[291] = jj_gen;
12722 param_sec=PARAM_SEC;
12726 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12727 case LPAREN_T:{if (!hasError) {
12729 jj_consume_token(LPAREN_T);
12733 s1 = interface_list();
12737 jj_consume_token(RPAREN_T);
12743 jj_la1[292] = jj_gen;
12750 s = tok->image.data();
12753 return s+"("+s1+")";
12758 void VhdlParser::parseInline() {
12759 switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
12762 case BASIC_IDENTIFIER:
12763 case EXTENDED_CHARACTER:{if (!hasError) {
12765 process_statement();
12773 case PURE_T:{if (!hasError) {
12775 subprogram_declaration();
12781 jj_la1[293] = jj_gen;
12782 jj_consume_token(-1);
12783 errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
12788 VhdlParser::VhdlParser(TokenManager *tm){
12792 VhdlParser::~VhdlParser()
12794 if (token_source) delete token_source;
12796 Token *next, *t = head;
12803 if (errorHandlerCreated) {
12804 delete errorHandler;
12808 void VhdlParser::ReInit(TokenManager *tm){
12809 if (head) delete head;
12810 errorHandler = new ErrorHandler();
12811 errorHandlerCreated = true;
12814 head = token = new Token();
12816 token->next = NULL;
12817 jj_lookingAhead = false;
12820 jj_scanpos = jj_lastpos = NULL;
12824 trace_enabled = false;
12827 for (int i = 0; i < 294; i++) jj_la1[i] = -1;
12831 Token * VhdlParser::jj_consume_token(int kind) {
12833 if ((oldToken = token)->next != NULL) token = token->next;
12834 else token = token->next = token_source->getNextToken();
12836 if (token->kind == kind) {
12838 if (++jj_gc > 100) {
12840 for (int i = 0; i < 114; i++) {
12841 JJCalls *c = &jj_2_rtns[i];
12842 while (c != NULL) {
12843 if (c->gen < jj_gen) c->first = NULL;
12852 JAVACC_STRING_TYPE image = kind >= 0 ? tokenImage[kind] : tokenImage[0];
12853 errorHandler->handleUnexpectedToken(kind, image.substr(1, image.size() - 2), getToken(1), this), hasError = true;
12858 bool VhdlParser::jj_scan_token(int kind){
12859 if (jj_scanpos == jj_lastpos) {
12861 if (jj_scanpos->next == NULL) {
12862 jj_lastpos = jj_scanpos = jj_scanpos->next = token_source->getNextToken();
12864 jj_lastpos = jj_scanpos = jj_scanpos->next;
12867 jj_scanpos = jj_scanpos->next;
12870 int i = 0; Token *tok = token;
12871 while (tok != NULL && tok != jj_scanpos) { i++; tok = tok->next; }
12872 if (tok != NULL) jj_add_error_token(kind, i);
12874 if (jj_scanpos->kind != kind) return true;
12875 if (jj_la == 0 && jj_scanpos == jj_lastpos) { return jj_done = true; }
12880 /** Get the next Token. */
12882 Token * VhdlParser::getNextToken(){
12883 if (token->next != NULL) token = token->next;
12884 else token = token->next = token_source->getNextToken();
12890 /** Get the specific Token. */
12892 Token * VhdlParser::getToken(int index){
12894 for (int i = 0; i < index; i++) {
12895 if (t->next != NULL) t = t->next;
12896 else t = t->next = token_source->getNextToken();
12902 int VhdlParser::jj_ntk_f(){
12903 if ((jj_nt=token->next) == NULL)
12904 return (jj_ntk = (token->next=token_source->getNextToken())->kind);
12906 return (jj_ntk = jj_nt->kind);
12910 void VhdlParser::jj_add_error_token(int kind, int pos) {
12913 /** Generate ParseException. */
12915 void VhdlParser::parseError() {
12916 // 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());
12920 void VhdlParser::enable_tracing() {
12923 /** Disable tracing. */
12925 void VhdlParser::disable_tracing() {
12929 void VhdlParser::jj_rescan_token(){
12931 for (int i = 0; i < 114; i++) {
12932 JJCalls *p = &jj_2_rtns[i];
12934 if (p->gen > jj_gen) {
12935 jj_la = p->arg; jj_lastpos = jj_scanpos = p->first;
12937 case 0: jj_3_1(); break;
12938 case 1: jj_3_2(); break;
12939 case 2: jj_3_3(); break;
12940 case 3: jj_3_4(); break;
12941 case 4: jj_3_5(); break;
12942 case 5: jj_3_6(); break;
12943 case 6: jj_3_7(); break;
12944 case 7: jj_3_8(); break;
12945 case 8: jj_3_9(); break;
12946 case 9: jj_3_10(); break;
12947 case 10: jj_3_11(); break;
12948 case 11: jj_3_12(); break;
12949 case 12: jj_3_13(); break;
12950 case 13: jj_3_14(); break;
12951 case 14: jj_3_15(); break;
12952 case 15: jj_3_16(); break;
12953 case 16: jj_3_17(); break;
12954 case 17: jj_3_18(); break;
12955 case 18: jj_3_19(); break;
12956 case 19: jj_3_20(); break;
12957 case 20: jj_3_21(); break;
12958 case 21: jj_3_22(); break;
12959 case 22: jj_3_23(); break;
12960 case 23: jj_3_24(); break;
12961 case 24: jj_3_25(); break;
12962 case 25: jj_3_26(); break;
12963 case 26: jj_3_27(); break;
12964 case 27: jj_3_28(); break;
12965 case 28: jj_3_29(); break;
12966 case 29: jj_3_30(); break;
12967 case 30: jj_3_31(); break;
12968 case 31: jj_3_32(); break;
12969 case 32: jj_3_33(); break;
12970 case 33: jj_3_34(); break;
12971 case 34: jj_3_35(); break;
12972 case 35: jj_3_36(); break;
12973 case 36: jj_3_37(); break;
12974 case 37: jj_3_38(); break;
12975 case 38: jj_3_39(); break;
12976 case 39: jj_3_40(); break;
12977 case 40: jj_3_41(); break;
12978 case 41: jj_3_42(); break;
12979 case 42: jj_3_43(); break;
12980 case 43: jj_3_44(); break;
12981 case 44: jj_3_45(); break;
12982 case 45: jj_3_46(); break;
12983 case 46: jj_3_47(); break;
12984 case 47: jj_3_48(); break;
12985 case 48: jj_3_49(); break;
12986 case 49: jj_3_50(); break;
12987 case 50: jj_3_51(); break;
12988 case 51: jj_3_52(); break;
12989 case 52: jj_3_53(); break;
12990 case 53: jj_3_54(); break;
12991 case 54: jj_3_55(); break;
12992 case 55: jj_3_56(); break;
12993 case 56: jj_3_57(); break;
12994 case 57: jj_3_58(); break;
12995 case 58: jj_3_59(); break;
12996 case 59: jj_3_60(); break;
12997 case 60: jj_3_61(); break;
12998 case 61: jj_3_62(); break;
12999 case 62: jj_3_63(); break;
13000 case 63: jj_3_64(); break;
13001 case 64: jj_3_65(); break;
13002 case 65: jj_3_66(); break;
13003 case 66: jj_3_67(); break;
13004 case 67: jj_3_68(); break;
13005 case 68: jj_3_69(); break;
13006 case 69: jj_3_70(); break;
13007 case 70: jj_3_71(); break;
13008 case 71: jj_3_72(); break;
13009 case 72: jj_3_73(); break;
13010 case 73: jj_3_74(); break;
13011 case 74: jj_3_75(); break;
13012 case 75: jj_3_76(); break;
13013 case 76: jj_3_77(); break;
13014 case 77: jj_3_78(); break;
13015 case 78: jj_3_79(); break;
13016 case 79: jj_3_80(); break;
13017 case 80: jj_3_81(); break;
13018 case 81: jj_3_82(); break;
13019 case 82: jj_3_83(); break;
13020 case 83: jj_3_84(); break;
13021 case 84: jj_3_85(); break;
13022 case 85: jj_3_86(); break;
13023 case 86: jj_3_87(); break;
13024 case 87: jj_3_88(); break;
13025 case 88: jj_3_89(); break;
13026 case 89: jj_3_90(); break;
13027 case 90: jj_3_91(); break;
13028 case 91: jj_3_92(); break;
13029 case 92: jj_3_93(); break;
13030 case 93: jj_3_94(); break;
13031 case 94: jj_3_95(); break;
13032 case 95: jj_3_96(); break;
13033 case 96: jj_3_97(); break;
13034 case 97: jj_3_98(); break;
13035 case 98: jj_3_99(); break;
13036 case 99: jj_3_100(); break;
13037 case 100: jj_3_101(); break;
13038 case 101: jj_3_102(); break;
13039 case 102: jj_3_103(); break;
13040 case 103: jj_3_104(); break;
13041 case 104: jj_3_105(); break;
13042 case 105: jj_3_106(); break;
13043 case 106: jj_3_107(); break;
13044 case 107: jj_3_108(); break;
13045 case 108: jj_3_109(); break;
13046 case 109: jj_3_110(); break;
13047 case 110: jj_3_111(); break;
13048 case 111: jj_3_112(); break;
13049 case 112: jj_3_113(); break;
13050 case 113: jj_3_114(); break;
13054 } while (p != NULL);
13060 void VhdlParser::jj_save(int index, int xla){
13061 JJCalls *p = &jj_2_rtns[index];
13062 while (p->gen > jj_gen) {
13063 if (p->next == NULL) { p = p->next = new JJCalls(); break; }
13066 p->gen = jj_gen + xla - jj_la; p->first = token; p->arg = xla;