diff options
Diffstat (limited to 'vhdlparser/VhdlParser.cc')
-rw-r--r-- | vhdlparser/VhdlParser.cc | 783 |
1 files changed, 402 insertions, 381 deletions
diff --git a/vhdlparser/VhdlParser.cc b/vhdlparser/VhdlParser.cc index 4cf8ec0..b360217 100644 --- a/vhdlparser/VhdlParser.cc +++ b/vhdlparser/VhdlParser.cc @@ -1,5 +1,6 @@ /* VhdlParser.cc */ -#include "./VhdlParser.h" +#include "VhdlParser.h" +#include "TokenMgrError.h" namespace vhdl { namespace parser { unsigned int jj_la1_0[] = { @@ -61,7 +62,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::access_type_definition() {Token *tok=0;QCString str,str1;if (!hasError) { @@ -75,7 +76,7 @@ QCString VhdlParser::access_type_definition() {Token *tok=0;QCString str,str1;if str=tok->image.c_str(); return str+str1; assert(false); - } +} QCString VhdlParser::actual_designator() {QCString str;Token *t=0; @@ -117,7 +118,7 @@ return str; } } assert(false); - } +} QCString VhdlParser::actual_parameter_part() {QCString s;if (!hasError) { @@ -127,7 +128,7 @@ QCString VhdlParser::actual_parameter_part() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::actual_part() {QCString s,s1; @@ -186,7 +187,7 @@ s+="(";s+=s1+")";return s; } } assert(false); - } +} QCString VhdlParser::adding_operator() { @@ -230,7 +231,7 @@ return "&"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::aggregate() {QCString s,s1,s2;if (!hasError) { @@ -275,7 +276,7 @@ s+=","+s1; return "("+s+")"; assert(false); - } +} QCString VhdlParser::alias_declaration() {QCString s,s1,s2;if (!hasError) { @@ -357,7 +358,7 @@ addVhdlType(s2.data(),getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s return s2+" "+s+";"; assert(false); - } +} QCString VhdlParser::alias_designator() {Token *tok=0;QCString s; @@ -402,7 +403,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::allocator() { @@ -434,7 +435,7 @@ void VhdlParser::allocator() { errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::architecture_body() {QCString s,s1;if (!hasError) { @@ -462,7 +463,7 @@ void VhdlParser::architecture_body() {QCString s,s1;if (!hasError) { QCString t=s1+"::"+s; genLabels.resize(0); pushLabel(genLabels,s1); - lastCompound=current; + lastCompound=current.get(); addVhdlType(t,getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private); } if (!hasError) { @@ -527,7 +528,7 @@ error_skipto(BEGIN_T); } lastEntity=0;lastCompound=0; genLabels.resize(0); - } +} void VhdlParser::architecture_declarative_part() {if (!hasError) { @@ -567,7 +568,7 @@ void VhdlParser::architecture_declarative_part() {if (!hasError) { end_label_2: ; } - } +} void VhdlParser::architecture_statement_part() {if (!hasError) { @@ -600,7 +601,7 @@ void VhdlParser::architecture_statement_part() {if (!hasError) { end_label_3: ; } - } +} QCString VhdlParser::array_type_definition() {QCString s; @@ -633,7 +634,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) { @@ -688,7 +689,7 @@ s.prepend("assert "); if(t1) s2.prepend(" report "); return s+s1+s2; assert(false); - } +} QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0;if (!hasError) { @@ -723,7 +724,7 @@ QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0;if (!has if(t) s+=":"; return s+s1+";"; assert(false); - } +} QCString VhdlParser::association_element() {QCString s,s1;if (!hasError) { @@ -748,7 +749,7 @@ QCString VhdlParser::association_element() {QCString s,s1;if (!hasError) { return s+" => "+s1; assert(false); - } +} QCString VhdlParser::association_list() {QCString s,s1;if (!hasError) { @@ -785,7 +786,7 @@ s+=","+s1; return s; assert(false); - } +} QCString VhdlParser::attribute_declaration() {QCString s,s1;if (!hasError) { @@ -812,7 +813,7 @@ QCString VhdlParser::attribute_declaration() {QCString s,s1;if (!hasError) { addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public); return " attribute "+s+":"+s1+";"; assert(false); - } +} QCString VhdlParser::attribute_designator() {QCString s;Token *tok=0; @@ -846,7 +847,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::attribute_name() {QCString s,s1;if (!hasError) { @@ -895,7 +896,7 @@ s+"("+s1+")"; return s; assert(false); - } +} QCString VhdlParser::attribute_specification() {QCString s,s1,s2;if (!hasError) { @@ -931,7 +932,7 @@ QCString t= s1+" is "+s2; addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public); return " attribute "+s+" of "+s1+ " is "+s2+";"; assert(false); - } +} QCString VhdlParser::base() {Token *tok=0;if (!hasError) { @@ -941,7 +942,7 @@ QCString VhdlParser::base() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::base_specifier() {Token *tok=0;if (!hasError) { @@ -951,7 +952,7 @@ QCString VhdlParser::base_specifier() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::base_unit_declaration() {QCString s;if (!hasError) { @@ -961,7 +962,7 @@ QCString VhdlParser::base_unit_declaration() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::based_integer() {Token *tok=0;if (!hasError) { @@ -971,7 +972,7 @@ QCString VhdlParser::based_integer() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::based_literal() {Token *tok=0;if (!hasError) { @@ -981,7 +982,7 @@ QCString VhdlParser::based_literal() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::basic_identifier() {Token *tok=0;if (!hasError) { @@ -991,7 +992,7 @@ QCString VhdlParser::basic_identifier() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} void VhdlParser::binding_indication() {if (!hasError) { @@ -1044,7 +1045,7 @@ void VhdlParser::binding_indication() {if (!hasError) { } } - } +} QCString VhdlParser::bit_string_literal() {Token *tok=0;if (!hasError) { @@ -1054,7 +1055,7 @@ QCString VhdlParser::bit_string_literal() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::bit_value() {Token *tok=0;if (!hasError) { @@ -1064,7 +1065,7 @@ QCString VhdlParser::bit_value() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} void VhdlParser::block_configuration() {if (!hasError) { @@ -1126,7 +1127,7 @@ void VhdlParser::block_configuration() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::block_declarative_item() { @@ -1260,7 +1261,7 @@ void VhdlParser::block_declarative_item() { } } } - } +} void VhdlParser::block_declarative_part() {if (!hasError) { @@ -1300,7 +1301,7 @@ void VhdlParser::block_declarative_part() {if (!hasError) { end_label_7: ; } - } +} void VhdlParser::block_header() {if (!hasError) { @@ -1368,7 +1369,7 @@ void VhdlParser::block_header() {if (!hasError) { } } - } +} void VhdlParser::block_specification() {if (!hasError) { @@ -1399,7 +1400,7 @@ void VhdlParser::block_specification() {if (!hasError) { } } - } +} void VhdlParser::block_statement() {QCString s;if (!hasError) { @@ -1502,7 +1503,7 @@ pushLabel(genLabels,s); } genLabels=popLabel(genLabels); - } +} void VhdlParser::block_statement_part() {if (!hasError) { @@ -1535,7 +1536,7 @@ void VhdlParser::block_statement_part() {if (!hasError) { end_label_8: ; } - } +} void VhdlParser::case_statement() {QCString s;if (!hasError) { @@ -1629,7 +1630,7 @@ QCString ca="case "+s; FlowChart::moveToPrevLevel(); FlowChart::addFlowChart(FlowChart::END_CASE,"end case",0); - } +} void VhdlParser::case_statement_alternative() {QCString s;if (!hasError) { @@ -1656,7 +1657,7 @@ QCString t="when "; } FlowChart::moveToPrevLevel(); - } +} QCString VhdlParser::character_literal() {Token *tok=0;if (!hasError) { @@ -1666,7 +1667,7 @@ QCString VhdlParser::character_literal() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::choice() {QCString s; @@ -1717,7 +1718,7 @@ return " others "; } } assert(false); - } +} QCString VhdlParser::choices() {QCString s,s1;if (!hasError) { @@ -1754,7 +1755,7 @@ s+="|";s+=s1; return s; assert(false); - } +} void VhdlParser::component_configuration() {if (!hasError) { @@ -1815,7 +1816,7 @@ void VhdlParser::component_configuration() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::component_declaration() {QCString s;if (!hasError) { @@ -1909,7 +1910,7 @@ addVhdlType(s.data(),getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPON jj_consume_token(SEMI_T); } - } +} void VhdlParser::component_instantiation_statement() {QCString s,s1;if (!hasError) { @@ -1965,7 +1966,7 @@ QCString s3; jj_consume_token(SEMI_T); } - } +} void VhdlParser::component_specification() {if (!hasError) { @@ -1981,7 +1982,7 @@ void VhdlParser::component_specification() {if (!hasError) { name(); } - } +} QCString VhdlParser::composite_type_definition() {QCString s,s1; @@ -2014,7 +2015,7 @@ return s+"#"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::concurrent_assertion_statement() {if (!hasError) { @@ -2056,7 +2057,7 @@ void VhdlParser::concurrent_assertion_statement() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::concurrent_procedure_call_statement() {if (!hasError) { @@ -2098,7 +2099,7 @@ void VhdlParser::concurrent_procedure_call_statement() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::concurrent_signal_assignment_statement() {if (!hasError) { @@ -2155,7 +2156,7 @@ void VhdlParser::concurrent_signal_assignment_statement() {if (!hasError) { } } - } +} void VhdlParser::concurrent_statement() { @@ -2222,7 +2223,7 @@ void VhdlParser::concurrent_statement() { } } } - } +} QCString VhdlParser::condition() {QCString s;if (!hasError) { @@ -2232,7 +2233,7 @@ QCString VhdlParser::condition() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::condition_clause() {QCString s;if (!hasError) { @@ -2246,7 +2247,7 @@ QCString VhdlParser::condition_clause() {QCString s;if (!hasError) { return " until "+s; assert(false); - } +} void VhdlParser::conditional_signal_assignment() {if (!hasError) { @@ -2270,7 +2271,7 @@ void VhdlParser::conditional_signal_assignment() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::conditional_waveforms() {if (!hasError) { @@ -2324,7 +2325,7 @@ void VhdlParser::conditional_waveforms() {if (!hasError) { } } - } +} void VhdlParser::configuration_declaration() {QCString s,s1;if (!hasError) { @@ -2403,7 +2404,7 @@ confName=s+"::"+s1; } genLabels.resize(0); confName=""; - } +} void VhdlParser::configuration_declarative_item() { @@ -2434,7 +2435,7 @@ void VhdlParser::configuration_declarative_item() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::configuration_declarative_part() {if (!hasError) { @@ -2459,7 +2460,7 @@ void VhdlParser::configuration_declarative_part() {if (!hasError) { end_label_12: ; } - } +} void VhdlParser::configuration_item() { @@ -2483,7 +2484,7 @@ void VhdlParser::configuration_item() { errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::configuration_specification() {if (!hasError) { @@ -2503,7 +2504,7 @@ void VhdlParser::configuration_specification() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0;if (!hasError) { @@ -2553,7 +2554,7 @@ if(t) it.prepend("constant "); return it; assert(false); - } +} QCString VhdlParser::constraint_array_definition() {QCString s,s1;if (!hasError) { @@ -2575,7 +2576,7 @@ QCString VhdlParser::constraint_array_definition() {QCString s,s1;if (!hasError) return s+" "+s1; assert(false); - } +} void VhdlParser::context_clause() {if (!hasError) { @@ -2599,7 +2600,7 @@ void VhdlParser::context_clause() {if (!hasError) { end_label_13: ; } - } +} QCString VhdlParser::constraint() {QCString s; @@ -2626,7 +2627,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::context_item() { @@ -2650,7 +2651,7 @@ void VhdlParser::context_item() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} QCString VhdlParser::decimal_literal() {Token *tok=0;if (!hasError) { @@ -2660,7 +2661,7 @@ QCString VhdlParser::decimal_literal() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} QCString VhdlParser::delay_mechanism() {QCString s; @@ -2717,7 +2718,7 @@ return s+" inertial "; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::design_file() { @@ -2772,7 +2773,7 @@ void VhdlParser::design_file() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::design_unit() {if (!hasError) { @@ -2784,7 +2785,7 @@ void VhdlParser::design_unit() {if (!hasError) { library_unit(); } - } +} QCString VhdlParser::designator() {QCString s; @@ -2818,7 +2819,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::direction() {Token *tok=0; @@ -2851,7 +2852,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::disconnection_specification() {if (!hasError) { @@ -2875,7 +2876,7 @@ void VhdlParser::disconnection_specification() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::guarded_signal_specificatio() {if (!hasError) { @@ -2891,7 +2892,7 @@ void VhdlParser::guarded_signal_specificatio() {if (!hasError) { name(); } - } +} QCString VhdlParser::discrete_range() {QCString s; @@ -2918,7 +2919,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::element_association() {QCString s,s1;if (!hasError) { @@ -2945,7 +2946,7 @@ if(!s.isEmpty()) return s+"=>"+s1; return s1; assert(false); - } +} QCString VhdlParser::element_declaration() {QCString s,s1;if (!hasError) { @@ -2969,7 +2970,7 @@ addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,s1.data( //addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public); return s+":"+s1; assert(false); - } +} QCString VhdlParser::entity_aspect() {Token *tok=0;QCString s,s1; @@ -3048,7 +3049,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::entity_class() { @@ -3246,7 +3247,7 @@ return "file"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::entity_class_entry() {QCString s;if (!hasError) { @@ -3275,7 +3276,7 @@ s+="<>"; return s; assert(false); - } +} QCString VhdlParser::entity_class_entry_list() {QCString s,s1,s2;if (!hasError) { @@ -3319,7 +3320,7 @@ s2+=",";s2+=s; return s1+s2; assert(false); - } +} void VhdlParser::entity_declaration() {QCString s;if (!hasError) { @@ -3336,7 +3337,7 @@ void VhdlParser::entity_declaration() {QCString s;if (!hasError) { } if (!hasError) { -lastEntity=current; +lastEntity=current.get(); lastCompound=0; addVhdlType(s.data(),getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public); } @@ -3410,7 +3411,7 @@ lastEntity=current; } lastEntity=0;lastCompound=0; genLabels.resize(0); - } +} void VhdlParser::entity_declarative_item() { @@ -3555,7 +3556,7 @@ void VhdlParser::entity_declarative_item() { } } } - } +} void VhdlParser::entity_declarative_part() {if (!hasError) { @@ -3595,7 +3596,7 @@ void VhdlParser::entity_declarative_part() {if (!hasError) { end_label_16: ; } - } +} QCString VhdlParser::entity_designator() {QCString s,s1;if (!hasError) { @@ -3620,7 +3621,7 @@ QCString VhdlParser::entity_designator() {QCString s,s1;if (!hasError) { return s+s1; assert(false); - } +} void VhdlParser::entity_header() {if (!hasError) { @@ -3662,7 +3663,7 @@ currP=VhdlDocGen::PORT; } } - } +} QCString VhdlParser::entity_name_list() {QCString s,s1; @@ -3733,7 +3734,7 @@ return "all"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::entity_specification() {QCString s,s1;if (!hasError) { @@ -3751,7 +3752,7 @@ QCString VhdlParser::entity_specification() {QCString s,s1;if (!hasError) { return s+":"+s1; assert(false); - } +} void VhdlParser::entity_statement() { @@ -3784,7 +3785,7 @@ void VhdlParser::entity_statement() { errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::entity_statement_part() {if (!hasError) { @@ -3813,7 +3814,7 @@ void VhdlParser::entity_statement_part() {if (!hasError) { end_label_18: ; } - } +} QCString VhdlParser::entity_tag() {QCString s; @@ -3849,7 +3850,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::enumeration_literal() {QCString s; @@ -3883,7 +3884,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::enumeration_type_definition() {QCString s,s1;if (!hasError) { @@ -3928,7 +3929,7 @@ s+=",";s+=s1; return "("+s+")"; assert(false); - } +} QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) { @@ -4002,7 +4003,7 @@ lab.resize(0); return s+s1+s2+";"; assert(false); - } +} QCString VhdlParser::expression() {QCString s,s1,s2;if (!hasError) { @@ -4044,7 +4045,7 @@ s+=s1;s+=s2; return s; assert(false); - } +} QCString VhdlParser::logop() { @@ -4121,7 +4122,7 @@ return "or" ; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::extended_identifier() {Token *t;if (!hasError) { @@ -4131,7 +4132,7 @@ QCString VhdlParser::extended_identifier() {Token *t;if (!hasError) { return t->image.c_str(); assert(false); - } +} QCString VhdlParser::factor() {QCString s,s1; @@ -4217,7 +4218,7 @@ s1="not ";return s1+s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3;if (!hasError) { @@ -4261,7 +4262,7 @@ QCString t1=s2+" "+s3; addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public); return " file "+s+":"+s2+" "+s3+";"; assert(false); - } +} QCString VhdlParser::file_logical_name() {QCString s;if (!hasError) { @@ -4271,7 +4272,7 @@ QCString VhdlParser::file_logical_name() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::file_open_information() {QCString s,s1,s2;if (!hasError) { @@ -4304,7 +4305,7 @@ QCString VhdlParser::file_open_information() {QCString s,s1,s2;if (!hasError) { s2="open "+s+" is "+s1; return s2; assert(false); - } +} QCString VhdlParser::file_type_definition() {QCString s,s1;if (!hasError) { @@ -4322,7 +4323,7 @@ QCString VhdlParser::file_type_definition() {QCString s,s1;if (!hasError) { s1=" file of "+s; return s1; assert(false); - } +} QCString VhdlParser::floating_type_definition() {QCString s;if (!hasError) { @@ -4332,7 +4333,7 @@ QCString VhdlParser::floating_type_definition() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::formal_designator() {QCString s;Token *tok=0; @@ -4368,7 +4369,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::formal_parameter_list() {QCString s;if (!hasError) { @@ -4378,7 +4379,7 @@ QCString VhdlParser::formal_parameter_list() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::formal_part() {QCString s,s1;if (!hasError) { @@ -4415,7 +4416,7 @@ s+"("+s1+")"; return s; assert(false); - } +} QCString VhdlParser::full_type_declaration() {Entry *tmpEntry;QCString s,s1,s2;if (!hasError) { @@ -4432,7 +4433,7 @@ QCString VhdlParser::full_type_declaration() {Entry *tmpEntry;QCString s,s1,s2;i } if (!hasError) { -tmpEntry=current; +tmpEntry=current.get(); addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,0,Public); } if (!hasError) { @@ -4471,7 +4472,7 @@ if (s2.contains("#")) { tmpEntry=0; return "type "+s+" is "+s2+";"; assert(false); - } +} QCString VhdlParser::function_call() {QCString s,s1;if (!hasError) { @@ -4493,7 +4494,7 @@ QCString VhdlParser::function_call() {QCString s,s1;if (!hasError) { return s+"("+s1+")"; assert(false); - } +} void VhdlParser::generate_statement() {QCString s;if (!hasError) { @@ -4557,7 +4558,7 @@ error_skipto(GENERATE_T); } genLabels=popLabel(genLabels); - } +} void VhdlParser::generate_scheme() { @@ -4589,7 +4590,7 @@ void VhdlParser::generate_scheme() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::generic_clause() {QCString s;if (!hasError) { @@ -4618,7 +4619,7 @@ parse_sec=GEN_SEC; } parse_sec=0; - } +} QCString VhdlParser::generic_list() {QCString s;if (!hasError) { @@ -4628,7 +4629,7 @@ QCString VhdlParser::generic_list() {QCString s;if (!hasError) { return s; assert(false); - } +} void VhdlParser::generic_map_aspect() {if (!hasError) { @@ -4652,7 +4653,7 @@ void VhdlParser::generic_map_aspect() {if (!hasError) { jj_consume_token(RPAREN_T); } - } +} QCString VhdlParser::group_constituent() {QCString s; @@ -4688,7 +4689,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::group_constituent_list() {QCString s,s1,s2;if (!hasError) { @@ -4728,7 +4729,7 @@ s2+=",";s2+=s1; return s+s2; assert(false); - } +} QCString VhdlParser::group_declaration() {QCString s,s1,s2;if (!hasError) { @@ -4766,7 +4767,7 @@ QCString VhdlParser::group_declaration() {QCString s,s1,s2;if (!hasError) { return "group "+s+":"+s1+"("+s2+");"; assert(false); - } +} QCString VhdlParser::group_template_declaration() {QCString s,s1;if (!hasError) { @@ -4800,7 +4801,7 @@ QCString VhdlParser::group_template_declaration() {QCString s,s1;if (!hasError) return "group "+s+ "is ("+s1+");"; assert(false); - } +} void VhdlParser::guarded_signal_specification() {if (!hasError) { @@ -4816,7 +4817,7 @@ void VhdlParser::guarded_signal_specification() {if (!hasError) { type_mark(); } - } +} QCString VhdlParser::identifier() {Token *tok=0; @@ -4849,7 +4850,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::identifier_list() {QCString str,str1;if (!hasError) { @@ -4886,7 +4887,7 @@ str+=",";str+=str1; return str; assert(false); - } +} void VhdlParser::if_statement() {QCString s,s1;if (!hasError) { @@ -5020,7 +5021,7 @@ FlowChart::addFlowChart(FlowChart::ELSE_NO,0,0); FlowChart::moveToPrevLevel(); FlowChart::addFlowChart(FlowChart::ENDIF_NO,0,0); - } +} QCString VhdlParser::incomplete_type_declaration() {QCString s;if (!hasError) { @@ -5038,7 +5039,7 @@ QCString VhdlParser::incomplete_type_declaration() {QCString s;if (!hasError) { return "type "+s+";"; assert(false); - } +} QCString VhdlParser::index_constraint() {QCString s="("; QCString s1,s2;if (!hasError) { @@ -5087,7 +5088,7 @@ s+=",";s+=s1; return s+")"; assert(false); - } +} QCString VhdlParser::index_specification() {QCString s; @@ -5135,7 +5136,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::index_subtype_definition() {QCString s;if (!hasError) { @@ -5153,7 +5154,7 @@ QCString VhdlParser::index_subtype_definition() {QCString s;if (!hasError) { return s+" range <> "; assert(false); - } +} QCString VhdlParser::instantiation_unit() {QCString s,s1,s2;Token *tok; @@ -5268,7 +5269,7 @@ s1="configuration ";return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::instantiation_list() {QCString s;Token *tok=0; @@ -5313,7 +5314,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::integer() {Token *t;if (!hasError) { @@ -5323,7 +5324,7 @@ QCString VhdlParser::integer() {Token *t;if (!hasError) { return t->image.c_str(); assert(false); - } +} QCString VhdlParser::integer_type_definition() {QCString s;if (!hasError) { @@ -5333,7 +5334,7 @@ QCString VhdlParser::integer_type_definition() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::interface_declaration() {QCString s,s1; @@ -5422,7 +5423,7 @@ if (parse_sec==GEN_SEC) } } assert(false); - } +} QCString VhdlParser::interface_element() {QCString s;if (!hasError) { @@ -5432,7 +5433,7 @@ QCString VhdlParser::interface_element() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::interface_file_declaration() {QCString s,s1;if (!hasError) { @@ -5455,7 +5456,7 @@ QCString VhdlParser::interface_file_declaration() {QCString s,s1;if (!hasError) addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public); return " file "+s+":"+s1; assert(false); - } +} QCString VhdlParser::interface_list() {QCString s,s1,s2;if (!hasError) { @@ -5492,7 +5493,7 @@ s2+=";";s2+=s1; return s+s2; assert(false); - } +} QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5;if (!hasError) { @@ -5640,7 +5641,7 @@ if(tok) } // if component return it; assert(false); - } +} QCString VhdlParser::iteration_scheme() {QCString s; @@ -5687,7 +5688,7 @@ QCString q=lab+" for "+s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::label() {QCString s;if (!hasError) { @@ -5697,7 +5698,7 @@ QCString VhdlParser::label() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::library_clause() {QCString s;if (!hasError) { @@ -5723,7 +5724,7 @@ if ( parse_sec==0 && Config_getBool(SHOW_INCLUDE_FILES) ) QCString s1="library "+s; return s1; assert(false); - } +} QCString VhdlParser::library_unit() {QCString s; @@ -5764,7 +5765,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::literal() {QCString s; @@ -5826,7 +5827,7 @@ return "null"; } } assert(false); - } +} QCString VhdlParser::logical_operator() {QCString s;if (!hasError) { @@ -5836,7 +5837,7 @@ QCString VhdlParser::logical_operator() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::loop_statement() {QCString s,s1,s2,s3;if (!hasError) { @@ -5927,7 +5928,7 @@ QCString q = s+" loop "+s2+" end loop" +s3; FlowChart::addFlowChart(FlowChart::END_LOOP,endLoop.data(),0); return q; assert(false); - } +} QCString VhdlParser::miscellaneous_operator() {Token *t=0; @@ -5971,7 +5972,7 @@ return "not"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::mode() {Token *tok=0; @@ -6037,7 +6038,7 @@ return "linkage"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::multiplying_operation() {Token *tok=0; @@ -6092,7 +6093,7 @@ return tok->image.c_str(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::name() {QCString s,s1;if (!hasError) { @@ -6144,7 +6145,7 @@ s+=s1; return s; assert(false); - } +} QCString VhdlParser::name_ext1() {QCString s,s1,s2;if (!hasError) { @@ -6173,13 +6174,26 @@ s+=s1; return s; assert(false); - } +} QCString VhdlParser::name_ext() {QCString s,s1,s2;if (!hasError) { if (jj_2_49(2147483647)) {if (!hasError) { + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { + + jj_consume_token(SUBTYPE_T); + } + if (!hasError) { + +s+="'subtype"; + } + + } else if (jj_2_50(2147483647)) {if (!hasError) { + jj_consume_token(DOT_T); } if (!hasError) { @@ -6191,7 +6205,7 @@ QCString VhdlParser::name_ext() {QCString s,s1,s2;if (!hasError) { s+=".";s+=s1; } - } else if (jj_2_50(2147483647)) {if (!hasError) { + } else if (jj_2_51(2147483647)) {if (!hasError) { s1 = test_att_name(); } @@ -6200,7 +6214,7 @@ s+=".";s+=s1; s+=s1; } - } else if (jj_2_51(2147483647)) {if (!hasError) { + } else if (jj_2_52(2147483647)) {if (!hasError) { jj_consume_token(LPAREN_T); } @@ -6217,7 +6231,7 @@ s+=s1; s+="(";s+=s1;s+=")"; } - } else if (jj_2_52(2147483647)) {if (!hasError) { + } else if (jj_2_53(2147483647)) {if (!hasError) { jj_consume_token(LPAREN_T); } @@ -6273,12 +6287,12 @@ s+=")"; return s; assert(false); - } +} QCString VhdlParser::test_att_name() {QCString s,s1;if (!hasError) { - if (jj_2_53(2147483647)) {if (!hasError) { + if (jj_2_54(2147483647)) {if (!hasError) { s1 = signature(); } @@ -6333,7 +6347,7 @@ s+="(";s+=s1;s+=")"; return s; assert(false); - } +} QCString VhdlParser::indexed_name() {QCString s,s1,s2;if (!hasError) { @@ -6386,7 +6400,7 @@ s+=",";s+=s1; return s+")"; assert(false); - } +} QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) { @@ -6459,7 +6473,7 @@ if(t) s+=":"; if(t1) s2.prepend("when "); return s+s1+s2+";"; assert(false); - } +} QCString VhdlParser::null_statement() {QCString s;if (!hasError) { @@ -6497,11 +6511,11 @@ s+=":"; return s+="null"; assert(false); - } +} QCString VhdlParser::numeric_literal() {QCString s; - if (jj_2_54(2147483647)) {if (!hasError) { + if (jj_2_55(2147483647)) {if (!hasError) { s = physical_literal(); } @@ -6532,7 +6546,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::object_class() { @@ -6613,7 +6627,7 @@ return "type"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::operator_symbol() {Token *tok=0;if (!hasError) { @@ -6623,7 +6637,7 @@ QCString VhdlParser::operator_symbol() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} void VhdlParser::options() {if (!hasError) { @@ -6659,7 +6673,7 @@ void VhdlParser::options() {if (!hasError) { } } - } +} void VhdlParser::package_body() {QCString s;if (!hasError) { @@ -6680,7 +6694,7 @@ void VhdlParser::package_body() {QCString s;if (!hasError) { } if (!hasError) { -lastCompound=current; +lastCompound=current.get(); s.prepend("_"); addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected); } @@ -6735,7 +6749,7 @@ lastCompound=current; } lastCompound=0; genLabels.resize(0); - } +} void VhdlParser::package_body_declarative_item() { @@ -6802,7 +6816,7 @@ void VhdlParser::package_body_declarative_item() { } default: jj_la1[152] = jj_gen; - if (jj_2_55(3)) {if (!hasError) { + if (jj_2_56(3)) {if (!hasError) { group_template_declaration(); } @@ -6823,7 +6837,7 @@ void VhdlParser::package_body_declarative_item() { } } } - } +} void VhdlParser::package_body_declarative_part() {if (!hasError) { @@ -6858,7 +6872,7 @@ void VhdlParser::package_body_declarative_part() {if (!hasError) { end_label_29: ; } - } +} void VhdlParser::package_declaration() {QCString s;if (!hasError) { @@ -6875,15 +6889,15 @@ void VhdlParser::package_declaration() {QCString s;if (!hasError) { } if (!hasError) { -lastCompound=current; - Entry *clone=new Entry(*current); +lastCompound=current.get(); + std::shared_ptr<Entry> clone=std::make_shared<Entry>(*current); clone->section=Entry::NAMESPACE_SEC; clone->spec=VhdlDocGen::PACKAGE; clone->name=s; clone->startLine=getLine(PACKAGE_T); clone->bodyLine=getLine(PACKAGE_T); clone->protection=Package; - current_root->addSubEntry(clone); + current_root->moveToSubEntryAndKeep(clone); addVhdlType(s,getLine(PACKAGE_T),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package); } if (!hasError) { @@ -6933,7 +6947,7 @@ lastCompound=current; } lastEntity=0;lastCompound=0; genLabels.resize(0); - } +} void VhdlParser::geninter() {if (!hasError) { @@ -6975,7 +6989,7 @@ void VhdlParser::geninter() {if (!hasError) { } } - } +} void VhdlParser::package_declarative_item() { @@ -7049,7 +7063,7 @@ void VhdlParser::package_declarative_item() { } default: jj_la1[159] = jj_gen; - if (jj_2_56(2147483647)) {if (!hasError) { + if (jj_2_57(2147483647)) {if (!hasError) { attribute_declaration(); } @@ -7079,7 +7093,7 @@ void VhdlParser::package_declarative_item() { } default: jj_la1[160] = jj_gen; - if (jj_2_57(3)) {if (!hasError) { + if (jj_2_58(3)) {if (!hasError) { group_template_declaration(); } @@ -7095,7 +7109,7 @@ void VhdlParser::package_declarative_item() { } default: jj_la1[161] = jj_gen; - if (jj_2_58(5)) {if (!hasError) { + if (jj_2_59(5)) {if (!hasError) { package_instantiation_declaration(); } @@ -7120,7 +7134,7 @@ void VhdlParser::package_declarative_item() { } } } - } +} void VhdlParser::package_declarative_part() {if (!hasError) { @@ -7160,7 +7174,7 @@ void VhdlParser::package_declarative_part() {if (!hasError) { end_label_30: ; } - } +} QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) { @@ -7178,12 +7192,12 @@ QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) { return s+" in "+s1; assert(false); - } +} QCString VhdlParser::physical_literal() {QCString s,s1;if (!hasError) { - if (jj_2_59(2147483647)) {if (!hasError) { + if (jj_2_60(2147483647)) {if (!hasError) { s = abstract_literal(); } @@ -7199,7 +7213,7 @@ QCString VhdlParser::physical_literal() {QCString s,s1;if (!hasError) { s+=" ";s+=s1;s.prepend(" "); return s; assert(false); - } +} QCString VhdlParser::physical_type_definition() {QCString s,s1,s2;if (!hasError) { @@ -7267,7 +7281,7 @@ addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,0,Public) return s+"%"; assert(false); - } +} void VhdlParser::port_clause() {if (!hasError) { @@ -7292,7 +7306,7 @@ void VhdlParser::port_clause() {if (!hasError) { } currP=0; - } +} QCString VhdlParser::port_list() {QCString s;if (!hasError) { @@ -7302,7 +7316,7 @@ QCString VhdlParser::port_list() {QCString s;if (!hasError) { return s; assert(false); - } +} void VhdlParser::port_map_aspect() {if (!hasError) { @@ -7326,11 +7340,11 @@ void VhdlParser::port_map_aspect() {if (!hasError) { jj_consume_token(RPAREN_T); } - } +} QCString VhdlParser::primary() {QCString s,s1; - if (jj_2_60(2147483647)) {if (!hasError) { + if (jj_2_61(2147483647)) {if (!hasError) { s = function_call(); } @@ -7339,7 +7353,7 @@ QCString VhdlParser::primary() {QCString s,s1; return s; } - } else if (jj_2_61(2147483647)) {if (!hasError) { + } else if (jj_2_62(2147483647)) {if (!hasError) { jj_consume_token(LPAREN_T); } @@ -7356,7 +7370,7 @@ return s; s="("+s1+")"; return s; } - } else if (jj_2_62(2147483647)) {if (!hasError) { + } else if (jj_2_63(2147483647)) {if (!hasError) { s = qualified_expression(); } @@ -7365,7 +7379,7 @@ s="("+s1+")"; return s; return s; } - } else if (jj_2_63(2147483647)) {if (!hasError) { + } else if (jj_2_64(2147483647)) {if (!hasError) { s = type_conversion(); } @@ -7374,7 +7388,7 @@ return s; return s; } - } else if (jj_2_64(2147483647)) {if (!hasError) { + } else if (jj_2_65(2147483647)) {if (!hasError) { s = literal(); } @@ -7383,7 +7397,7 @@ return s; s.prepend(" ");return s; } - } else if (jj_2_65(2147483647)) {if (!hasError) { + } else if (jj_2_66(2147483647)) {if (!hasError) { s = name(); } @@ -7423,7 +7437,7 @@ return s; } } assert(false); - } +} void VhdlParser::primary_unit() { @@ -7444,12 +7458,12 @@ void VhdlParser::primary_unit() { } default: jj_la1[167] = jj_gen; - if (jj_2_66(2147483647)) {if (!hasError) { + if (jj_2_67(2147483647)) {if (!hasError) { package_instantiation_declaration(); } - } else if (jj_2_67(4)) {if (!hasError) { + } else if (jj_2_68(4)) {if (!hasError) { interface_package_declaration(); } @@ -7470,7 +7484,7 @@ void VhdlParser::primary_unit() { } } } - } +} QCString VhdlParser::procedure_call() {QCString s,s1;if (!hasError) { @@ -7507,12 +7521,12 @@ s1.prepend("("); s1.append(")"); return s+s1; assert(false); - } +} QCString VhdlParser::procedure_call_statement() {QCString s,s1;if (!hasError) { - if (jj_2_68(2)) {if (!hasError) { + if (jj_2_69(2)) {if (!hasError) { s = identifier(); } @@ -7540,7 +7554,7 @@ s+=":"; return s+s1+";"; assert(false); - } +} QCString VhdlParser::process_declarative_item() {QCString s; @@ -7628,7 +7642,7 @@ return s; } default: jj_la1[170] = jj_gen; - if (jj_2_69(3)) {if (!hasError) { + if (jj_2_70(3)) {if (!hasError) { s = attribute_declaration(); } @@ -7663,7 +7677,7 @@ return s; } default: jj_la1[171] = jj_gen; - if (jj_2_70(3)) {if (!hasError) { + if (jj_2_71(3)) {if (!hasError) { s = group_template_declaration(); } @@ -7695,7 +7709,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::process_declarative_part() {QCString s,s1;if (!hasError) { @@ -7737,7 +7751,7 @@ s+=s1; return s; assert(false); - } +} void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;if (!hasError) { @@ -7913,7 +7927,7 @@ if(s.isEmpty()) currName=s; current->name=currName; - tempEntry=current; + tempEntry=current.get(); current->endBodyLine=getLine(); currP=0; if(tok) @@ -7922,7 +7936,7 @@ if(s.isEmpty()) createFlow(); currName=""; newEntry(); - } +} void VhdlParser::process_statement_part() {if (!hasError) { @@ -7962,7 +7976,7 @@ void VhdlParser::process_statement_part() {if (!hasError) { end_label_33: ; } - } +} QCString VhdlParser::qualified_expression() {QCString s,s1;if (!hasError) { @@ -7979,7 +7993,7 @@ s=s1+"'"; } if (!hasError) { - if (jj_2_71(2147483647)) {if (!hasError) { + if (jj_2_72(2147483647)) {if (!hasError) { s1 = aggregate(); } @@ -8019,11 +8033,11 @@ s+="(";s+=s1;s+=")"; return s; assert(false); - } +} QCString VhdlParser::range() {QCString s,s1,s2; - if (jj_2_72(2147483647)) {if (!hasError) { + if (jj_2_73(2147483647)) {if (!hasError) { s = simple_expression(); } @@ -8040,7 +8054,7 @@ QCString VhdlParser::range() {QCString s,s1,s2; return s+" "+s1+" "+s2; } - } else if (jj_2_73(2147483647)) {if (!hasError) { + } else if (jj_2_74(2147483647)) {if (!hasError) { s = attribute_name(); } @@ -8054,7 +8068,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::range_constraint() {QCString s,s1;if (!hasError) { @@ -8068,7 +8082,7 @@ QCString VhdlParser::range_constraint() {QCString s,s1;if (!hasError) { return " range "+s; assert(false); - } +} void VhdlParser::record_type_definition() {if (!hasError) { @@ -8122,7 +8136,7 @@ void VhdlParser::record_type_definition() {if (!hasError) { } } - } +} QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) { @@ -8156,7 +8170,7 @@ QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) { return s+s1+s2; assert(false); - } +} QCString VhdlParser::relation_operator() { @@ -8233,7 +8247,7 @@ return "/="; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2;if (!hasError) { @@ -8293,7 +8307,7 @@ if(t) s.append(":"); if(t1) s2.prepend(" severity "); return s+s1+s2+";"; assert(false); - } +} QCString VhdlParser::return_statement() {QCString s,s1;if (!hasError) { @@ -8361,7 +8375,7 @@ s+=":"; return s+" return "+s1+";"; assert(false); - } +} QCString VhdlParser::scalar_type_definition() {QCString s,s1; @@ -8383,7 +8397,7 @@ return s; } if (!hasError) { - if (jj_2_74(2147483647)) {if (!hasError) { + if (jj_2_75(2147483647)) {if (!hasError) { s1 = physical_type_definition(); } @@ -8405,7 +8419,7 @@ return s+" "+s1+"%"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::secondary_unit() { @@ -8429,7 +8443,7 @@ void VhdlParser::secondary_unit() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;if (!hasError) { @@ -8454,7 +8468,7 @@ QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;if (!hasError) return s+"="+s1; assert(false); - } +} QCString VhdlParser::selected_name() {QCString s,s1;if (!hasError) { @@ -8472,7 +8486,7 @@ QCString VhdlParser::selected_name() {QCString s,s1;if (!hasError) { return s+"."+s1; assert(false); - } +} void VhdlParser::selected_signal_assignment() {if (!hasError) { @@ -8508,7 +8522,7 @@ void VhdlParser::selected_signal_assignment() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::selected_waveforms() {if (!hasError) { @@ -8555,7 +8569,7 @@ void VhdlParser::selected_waveforms() {if (!hasError) { end_label_35: ; } - } +} QCString VhdlParser::sensitivity_clause() {QCString s;if (!hasError) { @@ -8570,7 +8584,7 @@ QCString VhdlParser::sensitivity_clause() {QCString s;if (!hasError) { s.prepend(" on "); return s; assert(false); - } +} QCString VhdlParser::sensitivity_list() {QCString s,s1;if (!hasError) { @@ -8607,13 +8621,13 @@ s+=",";s+=s1; return s; assert(false); - } +} QCString VhdlParser::sequence_of_statement() {QCString s,s1;if (!hasError) { while (!hasError) { - if (jj_2_75(3)) { + if (jj_2_76(3)) { ; } else { goto end_label_37; @@ -8632,11 +8646,11 @@ s+=s1; return s; assert(false); - } +} QCString VhdlParser::sequential_statement() {QCString s; - if (jj_2_76(2147483647)) {if (!hasError) { + if (jj_2_77(2147483647)) {if (!hasError) { s = signal_assignment_statement(); } @@ -8645,7 +8659,7 @@ QCString VhdlParser::sequential_statement() {QCString s; FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } - } else if (jj_2_77(3)) {if (!hasError) { + } else if (jj_2_78(3)) {if (!hasError) { s = assertion_statement(); } @@ -8654,7 +8668,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } - } else if (jj_2_78(3)) {if (!hasError) { + } else if (jj_2_79(3)) {if (!hasError) { s = report_statement(); } @@ -8663,7 +8677,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } - } else if (jj_2_79(3)) {if (!hasError) { + } else if (jj_2_80(3)) {if (!hasError) { s = wait_statement(); } @@ -8672,7 +8686,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } - } else if (jj_2_80(2147483647)) {if (!hasError) { + } else if (jj_2_81(2147483647)) {if (!hasError) { s = variable_assignment_statement(); } @@ -8681,7 +8695,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } - } else if (jj_2_81(3)) {if (!hasError) { + } else if (jj_2_82(3)) {if (!hasError) { s = procedure_call_statement(); } @@ -8690,7 +8704,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } - } else if (jj_2_82(3)) {if (!hasError) { + } else if (jj_2_83(3)) {if (!hasError) { if_statement(); } @@ -8699,7 +8713,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; return s; } - } else if (jj_2_83(3)) {if (!hasError) { + } else if (jj_2_84(3)) {if (!hasError) { case_statement(); } @@ -8708,7 +8722,7 @@ return s; return s; } - } else if (jj_2_84(3)) {if (!hasError) { + } else if (jj_2_85(3)) {if (!hasError) { loop_statement(); } @@ -8717,7 +8731,7 @@ return s; return s; } - } else if (jj_2_85(3)) {if (!hasError) { + } else if (jj_2_86(3)) {if (!hasError) { s = next_statement(); } @@ -8726,7 +8740,7 @@ return s; return s; } - } else if (jj_2_86(3)) {if (!hasError) { + } else if (jj_2_87(3)) {if (!hasError) { s = exit_statement(); } @@ -8735,7 +8749,7 @@ return s; return s; } - } else if (jj_2_87(3)) {if (!hasError) { + } else if (jj_2_88(3)) {if (!hasError) { s = return_statement(); } @@ -8766,7 +8780,7 @@ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; } } assert(false); - } +} QCString VhdlParser::shift_expression() {QCString s,s1,s2;if (!hasError) { @@ -8800,7 +8814,7 @@ QCString VhdlParser::shift_expression() {QCString s,s1,s2;if (!hasError) { return s+s1+s2; assert(false); - } +} QCString VhdlParser::shift_operator() { @@ -8877,7 +8891,7 @@ return "ror"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::sign() { @@ -8910,11 +8924,11 @@ return "-"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3; - if (jj_2_89(2147483647)) {if (!hasError) { + if (jj_2_90(2147483647)) {if (!hasError) { conditional_signal_assignment_wave(); } @@ -8923,7 +8937,7 @@ QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3; return ""; } - } else if (jj_2_90(2147483647)) {if (!hasError) { + } else if (jj_2_91(2147483647)) {if (!hasError) { selected_signal_assignment_wave(); } @@ -8940,7 +8954,7 @@ return ""; case BASIC_IDENTIFIER: case EXTENDED_CHARACTER:{if (!hasError) { - if (jj_2_88(2)) {if (!hasError) { + if (jj_2_89(2)) {if (!hasError) { s = identifier(); } @@ -9004,7 +9018,7 @@ return s+s1+"<="+s2+s3+";"; } } assert(false); - } +} void VhdlParser::semi() {if (!hasError) { @@ -9012,7 +9026,7 @@ void VhdlParser::semi() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4;if (!hasError) { @@ -9075,7 +9089,7 @@ if(tok) s3.prepend(":="); s4=s1+s2+s3; addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public); - } +} QCString VhdlParser::signal_kind() { @@ -9108,7 +9122,7 @@ return "bus"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::signal_list() {QCString s,s1; @@ -9178,7 +9192,7 @@ return "all"; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::signature() {QCString s,s1,s2;if (!hasError) { @@ -9260,7 +9274,7 @@ s+="return ";s+=s1; s1="["+s+"]";return s1; assert(false); - } +} QCString VhdlParser::simple_expression() {QCString s,s1,s2;if (!hasError) { @@ -9290,7 +9304,7 @@ s+=s1; if (!hasError) { while (!hasError) { - if (jj_2_91(2147483647)) { + if (jj_2_92(2147483647)) { ; } else { goto end_label_40; @@ -9313,7 +9327,7 @@ s+=s1;s+=s2; return s; assert(false); - } +} void VhdlParser::simple_name() {if (!hasError) { @@ -9321,7 +9335,7 @@ void VhdlParser::simple_name() {if (!hasError) { name(); } - } +} QCString VhdlParser::slice_name() {QCString s,s1;if (!hasError) { @@ -9343,7 +9357,7 @@ QCString VhdlParser::slice_name() {QCString s,s1;if (!hasError) { return s+"("+s1+")"; assert(false); - } +} QCString VhdlParser::string_literal() {Token *tok=0;if (!hasError) { @@ -9353,7 +9367,7 @@ QCString VhdlParser::string_literal() {Token *tok=0;if (!hasError) { return tok->image.c_str(); assert(false); - } +} void VhdlParser::subprogram_body() {QCString s;if (!hasError) { @@ -9426,11 +9440,11 @@ if (s.data()) tempEntry->endBodyLine=getLine(END_T); createFlow(); currP=0; - } +} void VhdlParser::subprogram_declaration() { - if (jj_2_92(2147483647)) {if (!hasError) { + if (jj_2_93(2147483647)) {if (!hasError) { subprogram_instantiation_declaration(); } @@ -9461,7 +9475,7 @@ currP=0; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::subprogram_1() { @@ -9485,7 +9499,7 @@ void VhdlParser::subprogram_1() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} QCString VhdlParser::subprogram_declarative_item() {QCString s; @@ -9584,7 +9598,7 @@ return s; } default: jj_la1[214] = jj_gen; - if (jj_2_93(2147483647)) {if (!hasError) { + if (jj_2_94(2147483647)) {if (!hasError) { s = attribute_declaration(); } @@ -9619,7 +9633,7 @@ return s; } default: jj_la1[215] = jj_gen; - if (jj_2_94(3)) {if (!hasError) { + if (jj_2_95(3)) {if (!hasError) { s = group_template_declaration(); } @@ -9651,7 +9665,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::subprogram_declarative_part() {QCString s,s1;if (!hasError) { @@ -9694,7 +9708,7 @@ s+=s1; return s; assert(false); - } +} void VhdlParser::subprogram_kind() { @@ -9718,7 +9732,7 @@ void VhdlParser::subprogram_kind() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t; @@ -9735,7 +9749,7 @@ void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t; currP=VhdlDocGen::PROCEDURE; createFunction(s.data(),currP,0); - tempEntry=current; + tempEntry=current.get(); current->startLine=getLine(PROCEDURE_T); current->bodyLine=getLine(PROCEDURE_T); } @@ -9772,7 +9786,7 @@ param_sec=0; } if (!hasError) { - if (jj_2_95(2)) {if (!hasError) { + if (jj_2_96(2)) {if (!hasError) { gen_interface_list(); } @@ -9783,7 +9797,7 @@ param_sec=0; } if (!hasError) { - if (jj_2_96(2)) {if (!hasError) { + if (jj_2_97(2)) {if (!hasError) { gen_assoc_list(); } @@ -9855,7 +9869,7 @@ currP=VhdlDocGen::FUNCTION; createFunction(tok->image.c_str(),currP,s.data()); else createFunction(0,currP,s.data()); - tempEntry=current; + tempEntry=current.get(); current->startLine=getLine(FUNCTION_T); current->bodyLine=getLine(FUNCTION_T); } @@ -9900,7 +9914,7 @@ param_sec=0; } if (!hasError) { -tempEntry=current; +tempEntry=current.get(); current->type=s; newEntry(); } @@ -9912,7 +9926,7 @@ tempEntry=current; jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::subprogram_statement_part() {if (!hasError) { @@ -9952,7 +9966,7 @@ void VhdlParser::subprogram_statement_part() {if (!hasError) { end_label_42: ; } - } +} QCString VhdlParser::subtype_declaration() {QCString s,s1;if (!hasError) { @@ -9979,7 +9993,7 @@ QCString VhdlParser::subtype_declaration() {QCString s,s1;if (!hasError) { addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public); return " subtype "+s+" is "+s1+";"; assert(false); - } +} QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) { @@ -9988,7 +10002,7 @@ QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) { } if (!hasError) { - if (jj_2_97(2147483647)) {if (!hasError) { + if (jj_2_98(2147483647)) {if (!hasError) { s1 = name(); } @@ -9999,7 +10013,7 @@ QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) { } if (!hasError) { - if (jj_2_98(2147483647)) {if (!hasError) { + if (jj_2_99(2147483647)) {if (!hasError) { s2 = constraint(); } @@ -10011,11 +10025,11 @@ QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) { return s+" "+s1+" "+s2; assert(false); - } +} QCString VhdlParser::suffix() {QCString s; - if (jj_2_99(2147483647)) {if (!hasError) { + if (jj_2_100(2147483647)) {if (!hasError) { s = name(); } @@ -10066,7 +10080,7 @@ return " all "; } } assert(false); - } +} QCString VhdlParser::target() {QCString s; @@ -10102,7 +10116,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::term() {QCString s,s1,s2;if (!hasError) { @@ -10112,7 +10126,7 @@ QCString VhdlParser::term() {QCString s,s1,s2;if (!hasError) { if (!hasError) { while (!hasError) { - if (jj_2_100(2)) { + if (jj_2_101(2)) { ; } else { goto end_label_43; @@ -10135,7 +10149,7 @@ s+=s1;s+=s2; return s; assert(false); - } +} QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) { @@ -10149,7 +10163,7 @@ QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) { return " for "+s; assert(false); - } +} QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) { @@ -10171,11 +10185,11 @@ QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) { return s+"("+s1+")"; assert(false); - } +} QCString VhdlParser::type_declaration() {QCString s; - if (jj_2_101(3)) {if (!hasError) { + if (jj_2_102(3)) {if (!hasError) { s = full_type_declaration(); } @@ -10204,7 +10218,7 @@ return s; } } assert(false); - } +} QCString VhdlParser::type_definition() {QCString s; @@ -10258,7 +10272,7 @@ return s; } default: jj_la1[228] = jj_gen; - if (jj_2_102(2)) {if (!hasError) { + if (jj_2_103(2)) {if (!hasError) { protected_type_body(); } @@ -10288,7 +10302,7 @@ return ""; } } assert(false); - } +} QCString VhdlParser::type_mark() {QCString s;if (!hasError) { @@ -10298,7 +10312,7 @@ QCString VhdlParser::type_mark() {QCString s;if (!hasError) { return s; assert(false); - } +} QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3;if (!hasError) { @@ -10355,7 +10369,7 @@ s3+=",";s3+=s1; return "array("+s+s3+") of "+s2; assert(false); - } +} QCString VhdlParser::use_clause() {QCString s,s1;if (!hasError) { @@ -10411,7 +10425,7 @@ QCStringList ql1=QCStringList::split(",",s); s1="use "+s; return s1; assert(false); - } +} QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2; @@ -10422,7 +10436,7 @@ QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2; case BASIC_IDENTIFIER: case EXTENDED_CHARACTER:{if (!hasError) { - if (jj_2_103(2)) {if (!hasError) { + if (jj_2_104(2)) {if (!hasError) { s = identifier(); } @@ -10479,7 +10493,7 @@ return ""; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::variable_declaration() {Token *tok=0;Token *t1=0;QCString s,s1,s2;if (!hasError) { @@ -10558,7 +10572,7 @@ int spec; addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public); return val; assert(false); - } +} QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0;if (!hasError) { @@ -10638,7 +10652,7 @@ QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0;if (!hasEr if(t) s.append(":"); return s+" wait "+s1+s2+s3+";"; assert(false); - } +} QCString VhdlParser::waveform() {QCString s,s1; @@ -10713,7 +10727,7 @@ return " unaffected "; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::waveform_element() {QCString s,s1;if (!hasError) { @@ -10746,7 +10760,7 @@ s1.prepend(" after "); return s+s1; assert(false); - } +} QCString VhdlParser::protected_type_body() {if (!hasError) { @@ -10792,7 +10806,7 @@ QCString VhdlParser::protected_type_body() {if (!hasError) { return ""; assert(false); - } +} void VhdlParser::protected_type_body_declarative_item() { @@ -10859,7 +10873,7 @@ void VhdlParser::protected_type_body_declarative_item() { } default: jj_la1[243] = jj_gen; - if (jj_2_104(2147483647)) {if (!hasError) { + if (jj_2_105(2147483647)) {if (!hasError) { attribute_declaration(); } @@ -10882,7 +10896,7 @@ void VhdlParser::protected_type_body_declarative_item() { } default: jj_la1[244] = jj_gen; - if (jj_2_105(3)) {if (!hasError) { + if (jj_2_106(3)) {if (!hasError) { group_template_declaration(); } @@ -10905,7 +10919,7 @@ void VhdlParser::protected_type_body_declarative_item() { } } } - } +} void VhdlParser::protected_type_body_declarative_part() {if (!hasError) { @@ -10942,7 +10956,7 @@ void VhdlParser::protected_type_body_declarative_part() {if (!hasError) { end_label_47: ; } - } +} QCString VhdlParser::protected_type_declaration() {if (!hasError) { @@ -10987,7 +11001,7 @@ error_skipto(END_T); return ""; assert(false); - } +} void VhdlParser::protected_type_declarative_item() { @@ -11021,7 +11035,7 @@ void VhdlParser::protected_type_declarative_item() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::protected_type_declarative_part() {if (!hasError) { @@ -11053,7 +11067,7 @@ void VhdlParser::protected_type_declarative_part() {if (!hasError) { end_label_48: ; } - } +} QCString VhdlParser::context_ref() {QCString s;if (!hasError) { @@ -11071,7 +11085,7 @@ QCString VhdlParser::context_ref() {QCString s;if (!hasError) { return "context "+s ; assert(false); - } +} void VhdlParser::context_declaration() {QCString s,s1;if (!hasError) { @@ -11153,7 +11167,7 @@ parse_sec=CONTEXT_SEC; parse_sec=0; addVhdlType(s.data(),getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public); - } +} QCString VhdlParser::libustcont_stats() {QCString s; @@ -11197,7 +11211,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2;if (!hasError) { @@ -11246,7 +11260,7 @@ void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2;if (!hasE QCString q=" is new "+s1+s2; addVhdlType(s.data(),getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public); - } +} QCString VhdlParser::interface_package_declaration() {QCString s,s1;if (!hasError) { @@ -11288,7 +11302,7 @@ QCString VhdlParser::interface_package_declaration() {QCString s,s1;if (!hasErro current->name=s; return "package "+s+" is new "+s1; assert(false); - } +} QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2;if (!hasError) { @@ -11339,7 +11353,7 @@ QCString q= " is new "+s1+s2; addVhdlType(s.data(),getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public); return q; assert(false); - } +} void VhdlParser::gen_assoc_list() {if (!hasError) { @@ -11363,7 +11377,7 @@ void VhdlParser::gen_assoc_list() {if (!hasError) { jj_consume_token(RPAREN_T); } - } +} void VhdlParser::gen_interface_list() {if (!hasError) { @@ -11393,7 +11407,7 @@ void VhdlParser::gen_interface_list() {if (!hasError) { jj_consume_token(RPAREN_T); } - } +} void VhdlParser::case_scheme() {if (!hasError) { @@ -11414,7 +11428,7 @@ void VhdlParser::case_scheme() {if (!hasError) { } if (!hasError) { - if (jj_2_106(3)) {if (!hasError) { + if (jj_2_107(3)) {if (!hasError) { ttend(); } @@ -11440,7 +11454,7 @@ void VhdlParser::case_scheme() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::when_stats() {if (!hasError) { @@ -11451,7 +11465,7 @@ void VhdlParser::when_stats() {if (!hasError) { } if (!hasError) { - if (jj_2_107(2)) {if (!hasError) { + if (jj_2_108(2)) {if (!hasError) { label(); } @@ -11490,7 +11504,7 @@ void VhdlParser::when_stats() {if (!hasError) { end_label_50: ; } - } +} void VhdlParser::ttend() {if (!hasError) { @@ -11518,7 +11532,7 @@ void VhdlParser::ttend() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::generate_statement_body() {if (!hasError) { @@ -11530,7 +11544,7 @@ void VhdlParser::generate_statement_body() {if (!hasError) { generate_statement_body(); } - } +} void VhdlParser::generate_statement_body1() {if (!hasError) { @@ -11557,7 +11571,7 @@ void VhdlParser::generate_statement_body1() {if (!hasError) { case VARIABLE_T:{if (!hasError) { while (!hasError) { - if (jj_2_108(2147483647)) { + if (jj_2_109(2147483647)) { ; } else { goto end_label_51; @@ -11611,7 +11625,7 @@ void VhdlParser::generate_statement_body1() {if (!hasError) { end_label_52: ; } - } +} QCString VhdlParser::external_name() {QCString s,s1,s2;if (!hasError) { @@ -11643,7 +11657,7 @@ QCString t="<<"+s; QCString t1=s1+":"+s2+">>"; return s+s1; assert(false); - } +} QCString VhdlParser::sig_stat() {Token *t; @@ -11687,7 +11701,7 @@ return t->image.data(); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::external_pathname() {QCString s; @@ -11731,11 +11745,11 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::absolute_pathname() {QCString s,s1; - if (jj_2_109(2147483647)) {if (!hasError) { + if (jj_2_110(2147483647)) {if (!hasError) { jj_consume_token(DOT_T); } @@ -11776,7 +11790,7 @@ return "."+s; } } assert(false); - } +} QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) { @@ -11785,7 +11799,7 @@ QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) { } if (!hasError) { - if (jj_2_110(2147483647)) {if (!hasError) { + if (jj_2_111(2147483647)) {if (!hasError) { s1 = pathname_element_list(); } @@ -11801,7 +11815,7 @@ QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) { return s+s1+s2; assert(false); - } +} QCString VhdlParser::neg_list() {QCString s;if (!hasError) { @@ -11834,7 +11848,7 @@ s+="^."; return s; assert(false); - } +} QCString VhdlParser::pathname_element() {QCString s,s1;if (!hasError) { @@ -11870,7 +11884,7 @@ if(!s1.isEmpty()) return s; assert(false); - } +} QCString VhdlParser::pathname_element_list() {QCString s,s1,s2;if (!hasError) { @@ -11891,7 +11905,7 @@ s+="."; if (!hasError) { while (!hasError) { - if (jj_2_111(2147483647)) { + if (jj_2_112(2147483647)) { ; } else { goto end_label_54; @@ -11914,7 +11928,7 @@ s2+=s1;s2+="."; return s+s2; assert(false); - } +} QCString VhdlParser::package_path_name() {QCString s;if (!hasError) { @@ -11928,11 +11942,11 @@ QCString VhdlParser::package_path_name() {QCString s;if (!hasError) { return "@"+s; assert(false); - } +} void VhdlParser::conditional_signal_assignment_wave() { - if (jj_2_112(2147483647)) {if (!hasError) { + if (jj_2_113(2147483647)) {if (!hasError) { conditional_force_assignment(); } @@ -11956,7 +11970,7 @@ void VhdlParser::conditional_signal_assignment_wave() { errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::conditional_waveform_assignment() {if (!hasError) { @@ -12016,7 +12030,7 @@ void VhdlParser::conditional_waveform_assignment() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::else_wave_list() {if (!hasError) { @@ -12047,7 +12061,7 @@ void VhdlParser::else_wave_list() {if (!hasError) { } } - } +} void VhdlParser::conditional_force_assignment() {if (!hasError) { @@ -12125,11 +12139,11 @@ void VhdlParser::conditional_force_assignment() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::selected_signal_assignment_wave() { - if (jj_2_113(2147483647)) {if (!hasError) { + if (jj_2_114(2147483647)) {if (!hasError) { selected_force_assignment(); } @@ -12149,7 +12163,7 @@ void VhdlParser::selected_signal_assignment_wave() { errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::selected_variable_assignment() {if (!hasError) { @@ -12192,11 +12206,11 @@ void VhdlParser::selected_variable_assignment() {if (!hasError) { sel_var_list(); } - } +} void VhdlParser::select_name() { - if (jj_2_114(2147483647)) {if (!hasError) { + if (jj_2_115(2147483647)) {if (!hasError) { aggregate(); } @@ -12219,7 +12233,7 @@ void VhdlParser::select_name() { errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } } - } +} void VhdlParser::selected_waveform_assignment() {if (!hasError) { @@ -12279,7 +12293,7 @@ void VhdlParser::selected_waveform_assignment() {if (!hasError) { sel_wave_list(); } - } +} void VhdlParser::selected_force_assignment() {if (!hasError) { @@ -12342,7 +12356,7 @@ void VhdlParser::selected_force_assignment() {if (!hasError) { sel_var_list(); } - } +} void VhdlParser::sel_var_list() {if (!hasError) { @@ -12386,7 +12400,7 @@ void VhdlParser::sel_var_list() {if (!hasError) { if (!hasError) { while (!hasError) { - if (jj_2_115(2147483647)) { + if (jj_2_116(2147483647)) { ; } else { goto end_label_55; @@ -12430,7 +12444,7 @@ void VhdlParser::sel_var_list() {if (!hasError) { end_label_55: ; } - } +} void VhdlParser::sel_wave_list() {if (!hasError) { @@ -12473,7 +12487,7 @@ void VhdlParser::sel_wave_list() {if (!hasError) { jj_consume_token(SEMI_T); } - } +} void VhdlParser::inout_stat() { @@ -12497,7 +12511,7 @@ void VhdlParser::inout_stat() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} void VhdlParser::else_stat() {if (!hasError) { @@ -12543,7 +12557,7 @@ void VhdlParser::else_stat() {if (!hasError) { end_label_57: ; } - } +} QCString VhdlParser::interface_subprogram_declaration() {QCString s; @@ -12578,7 +12592,7 @@ return s; errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } assert(false); - } +} QCString VhdlParser::iproc() {QCString s,s1;if (!hasError) { @@ -12597,7 +12611,7 @@ QCString VhdlParser::iproc() {QCString s,s1;if (!hasError) { current->name=s; return "procedure "+s+s1; assert(false); - } +} QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0;if (!hasError) { @@ -12711,7 +12725,7 @@ QCString q; } currP=0;return ""; assert(false); - } +} QCString VhdlParser::param() {QCString s,s1;Token *tok=0;if (!hasError) { @@ -12765,7 +12779,7 @@ if(tok) param_sec=0; return s+"("+s1+")"; assert(false); - } +} void VhdlParser::parseInline() { @@ -12795,31 +12809,21 @@ void VhdlParser::parseInline() { jj_consume_token(-1); errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; } - } +} VhdlParser::VhdlParser(TokenManager *tm){ head = NULL; + errorHandlerCreated = false; ReInit(tm); } - VhdlParser::~VhdlParser() +VhdlParser::~VhdlParser() { - if (token_source) delete token_source; - if (head) { - Token *next, *t = head; - while (t) { - next = t->next; - delete t; - t = next; - } - } - if (errorHandlerCreated) { - delete errorHandler; - } + clear(); } void VhdlParser::ReInit(TokenManager *tm){ - if (head) delete head; + clear(); errorHandler = new ErrorHandler(); errorHandlerCreated = true; hasError = false; @@ -12841,6 +12845,24 @@ void VhdlParser::ReInit(TokenManager *tm){ } +void VhdlParser::clear(){ + //Since token manager was generate from outside, + //parser should not take care of deleting + //if (token_source) delete token_source; + if (head) { + Token *next, *t = head; + while (t) { + next = t->next; + delete t; + t = next; + } + } + if (errorHandlerCreated) { + delete errorHandler; + } +} + + Token * VhdlParser::jj_consume_token(int kind) { Token *oldToken; if ((oldToken = token)->next != NULL) token = token->next; @@ -12850,7 +12872,7 @@ Token * VhdlParser::jj_consume_token(int kind) { jj_gen++; if (++jj_gc > 100) { jj_gc = 0; - for (int i = 0; i < 115; i++) { + for (int i = 0; i < 116; i++) { JJCalls *c = &jj_2_rtns[i]; while (c != NULL) { if (c->gen < jj_gen) c->first = NULL; @@ -12863,7 +12885,8 @@ Token * VhdlParser::jj_consume_token(int kind) { token = oldToken; jj_kind = kind; JAVACC_STRING_TYPE image = kind >= 0 ? tokenImage[kind] : tokenImage[0]; - errorHandler->handleUnexpectedToken(kind, image.substr(1, image.size() - 2), getToken(1), this), hasError = true; + errorHandler->handleUnexpectedToken(kind, image.substr(1, image.size() - 2), getToken(1), this); + hasError = true; return token; } @@ -12920,28 +12943,25 @@ int VhdlParser::jj_ntk_f(){ } -void VhdlParser::jj_add_error_token(int kind, int pos) { + void VhdlParser::jj_add_error_token(int kind, int pos) { } - /** Generate ParseException. */ void VhdlParser::parseError() { 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()); } - void VhdlParser::enable_tracing() { + void VhdlParser::enable_tracing() { } - /** Disable tracing. */ - - void VhdlParser::disable_tracing() { + void VhdlParser::disable_tracing() { } -void VhdlParser::jj_rescan_token(){ + void VhdlParser::jj_rescan_token(){ jj_rescan = true; - for (int i = 0; i < 115; i++) { + for (int i = 0; i < 116; i++) { JJCalls *p = &jj_2_rtns[i]; do { if (p->gen > jj_gen) { @@ -13062,6 +13082,7 @@ void VhdlParser::jj_rescan_token(){ case 112: jj_3_113(); break; case 113: jj_3_114(); break; case 114: jj_3_115(); break; + case 115: jj_3_116(); break; } } p = p->next; @@ -13071,7 +13092,7 @@ void VhdlParser::jj_rescan_token(){ } -void VhdlParser::jj_save(int index, int xla){ + void VhdlParser::jj_save(int index, int xla){ JJCalls *p = &jj_2_rtns[index]; while (p->gen > jj_gen) { if (p->next == NULL) { p = p->next = new JJCalls(); break; } |