summaryrefslogtreecommitdiffstats
path: root/vhdlparser/VhdlParser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'vhdlparser/VhdlParser.cc')
-rw-r--r--vhdlparser/VhdlParser.cc633
1 files changed, 320 insertions, 313 deletions
diff --git a/vhdlparser/VhdlParser.cc b/vhdlparser/VhdlParser.cc
index 4cf8ec0..2abe6c6 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,7 +6174,7 @@ s+=s1;
return s;
assert(false);
- }
+}
QCString VhdlParser::name_ext() {QCString s,s1,s2;if (!hasError) {
@@ -6273,7 +6274,7 @@ s+=")";
return s;
assert(false);
- }
+}
QCString VhdlParser::test_att_name() {QCString s,s1;if (!hasError) {
@@ -6333,7 +6334,7 @@ s+="(";s+=s1;s+=")";
return s;
assert(false);
- }
+}
QCString VhdlParser::indexed_name() {QCString s,s1,s2;if (!hasError) {
@@ -6386,7 +6387,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 +6460,7 @@ if(t) s+=":";
if(t1) s2.prepend("when ");
return s+s1+s2+";";
assert(false);
- }
+}
QCString VhdlParser::null_statement() {QCString s;if (!hasError) {
@@ -6497,7 +6498,7 @@ s+=":";
return s+="null";
assert(false);
- }
+}
QCString VhdlParser::numeric_literal() {QCString s;
@@ -6532,7 +6533,7 @@ return s;
}
}
assert(false);
- }
+}
QCString VhdlParser::object_class() {
@@ -6613,7 +6614,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 +6624,7 @@ QCString VhdlParser::operator_symbol() {Token *tok=0;if (!hasError) {
return tok->image.c_str();
assert(false);
- }
+}
void VhdlParser::options() {if (!hasError) {
@@ -6659,7 +6660,7 @@ void VhdlParser::options() {if (!hasError) {
}
}
- }
+}
void VhdlParser::package_body() {QCString s;if (!hasError) {
@@ -6680,7 +6681,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 +6736,7 @@ lastCompound=current;
}
lastCompound=0; genLabels.resize(0);
- }
+}
void VhdlParser::package_body_declarative_item() {
@@ -6823,7 +6824,7 @@ void VhdlParser::package_body_declarative_item() {
}
}
}
- }
+}
void VhdlParser::package_body_declarative_part() {if (!hasError) {
@@ -6858,7 +6859,7 @@ void VhdlParser::package_body_declarative_part() {if (!hasError) {
end_label_29: ;
}
- }
+}
void VhdlParser::package_declaration() {QCString s;if (!hasError) {
@@ -6875,15 +6876,15 @@ void VhdlParser::package_declaration() {QCString s;if (!hasError) {
}
if (!hasError) {
-lastCompound=current;
- Entry *clone=new Entry(*current);
+lastCompound=current.get();
+ std::unique_ptr<Entry> clone=std::make_unique<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 +6934,7 @@ lastCompound=current;
}
lastEntity=0;lastCompound=0; genLabels.resize(0);
- }
+}
void VhdlParser::geninter() {if (!hasError) {
@@ -6975,7 +6976,7 @@ void VhdlParser::geninter() {if (!hasError) {
}
}
- }
+}
void VhdlParser::package_declarative_item() {
@@ -7120,7 +7121,7 @@ void VhdlParser::package_declarative_item() {
}
}
}
- }
+}
void VhdlParser::package_declarative_part() {if (!hasError) {
@@ -7160,7 +7161,7 @@ void VhdlParser::package_declarative_part() {if (!hasError) {
end_label_30: ;
}
- }
+}
QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) {
@@ -7178,7 +7179,7 @@ QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) {
return s+" in "+s1;
assert(false);
- }
+}
QCString VhdlParser::physical_literal() {QCString s,s1;if (!hasError) {
@@ -7199,7 +7200,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 +7268,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 +7293,7 @@ void VhdlParser::port_clause() {if (!hasError) {
}
currP=0;
- }
+}
QCString VhdlParser::port_list() {QCString s;if (!hasError) {
@@ -7302,7 +7303,7 @@ QCString VhdlParser::port_list() {QCString s;if (!hasError) {
return s;
assert(false);
- }
+}
void VhdlParser::port_map_aspect() {if (!hasError) {
@@ -7326,7 +7327,7 @@ void VhdlParser::port_map_aspect() {if (!hasError) {
jj_consume_token(RPAREN_T);
}
- }
+}
QCString VhdlParser::primary() {QCString s,s1;
@@ -7423,7 +7424,7 @@ return s;
}
}
assert(false);
- }
+}
void VhdlParser::primary_unit() {
@@ -7470,7 +7471,7 @@ void VhdlParser::primary_unit() {
}
}
}
- }
+}
QCString VhdlParser::procedure_call() {QCString s,s1;if (!hasError) {
@@ -7507,7 +7508,7 @@ s1.prepend("("); s1.append(")");
return s+s1;
assert(false);
- }
+}
QCString VhdlParser::procedure_call_statement() {QCString s,s1;if (!hasError) {
@@ -7540,7 +7541,7 @@ s+=":";
return s+s1+";";
assert(false);
- }
+}
QCString VhdlParser::process_declarative_item() {QCString s;
@@ -7695,7 +7696,7 @@ return s;
}
}
assert(false);
- }
+}
QCString VhdlParser::process_declarative_part() {QCString s,s1;if (!hasError) {
@@ -7737,7 +7738,7 @@ s+=s1;
return s;
assert(false);
- }
+}
void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;if (!hasError) {
@@ -7913,7 +7914,7 @@ if(s.isEmpty())
currName=s;
current->name=currName;
- tempEntry=current;
+ tempEntry=current.get();
current->endBodyLine=getLine();
currP=0;
if(tok)
@@ -7922,7 +7923,7 @@ if(s.isEmpty())
createFlow();
currName="";
newEntry();
- }
+}
void VhdlParser::process_statement_part() {if (!hasError) {
@@ -7962,7 +7963,7 @@ void VhdlParser::process_statement_part() {if (!hasError) {
end_label_33: ;
}
- }
+}
QCString VhdlParser::qualified_expression() {QCString s,s1;if (!hasError) {
@@ -8019,7 +8020,7 @@ s+="(";s+=s1;s+=")";
return s;
assert(false);
- }
+}
QCString VhdlParser::range() {QCString s,s1,s2;
@@ -8054,7 +8055,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 +8069,7 @@ QCString VhdlParser::range_constraint() {QCString s,s1;if (!hasError) {
return " range "+s;
assert(false);
- }
+}
void VhdlParser::record_type_definition() {if (!hasError) {
@@ -8122,7 +8123,7 @@ void VhdlParser::record_type_definition() {if (!hasError) {
}
}
- }
+}
QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) {
@@ -8156,7 +8157,7 @@ QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) {
return s+s1+s2;
assert(false);
- }
+}
QCString VhdlParser::relation_operator() {
@@ -8233,7 +8234,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 +8294,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 +8362,7 @@ s+=":";
return s+" return "+s1+";";
assert(false);
- }
+}
QCString VhdlParser::scalar_type_definition() {QCString s,s1;
@@ -8405,7 +8406,7 @@ return s+" "+s1+"%";
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
void VhdlParser::secondary_unit() {
@@ -8429,7 +8430,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 +8455,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 +8473,7 @@ QCString VhdlParser::selected_name() {QCString s,s1;if (!hasError) {
return s+"."+s1;
assert(false);
- }
+}
void VhdlParser::selected_signal_assignment() {if (!hasError) {
@@ -8508,7 +8509,7 @@ void VhdlParser::selected_signal_assignment() {if (!hasError) {
jj_consume_token(SEMI_T);
}
- }
+}
void VhdlParser::selected_waveforms() {if (!hasError) {
@@ -8555,7 +8556,7 @@ void VhdlParser::selected_waveforms() {if (!hasError) {
end_label_35: ;
}
- }
+}
QCString VhdlParser::sensitivity_clause() {QCString s;if (!hasError) {
@@ -8570,7 +8571,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,7 +8608,7 @@ s+=",";s+=s1;
return s;
assert(false);
- }
+}
QCString VhdlParser::sequence_of_statement() {QCString s,s1;if (!hasError) {
@@ -8632,7 +8633,7 @@ s+=s1;
return s;
assert(false);
- }
+}
QCString VhdlParser::sequential_statement() {QCString s;
@@ -8766,7 +8767,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 +8801,7 @@ QCString VhdlParser::shift_expression() {QCString s,s1,s2;if (!hasError) {
return s+s1+s2;
assert(false);
- }
+}
QCString VhdlParser::shift_operator() {
@@ -8877,7 +8878,7 @@ return "ror";
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::sign() {
@@ -8910,7 +8911,7 @@ return "-";
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3;
@@ -9004,7 +9005,7 @@ return s+s1+"<="+s2+s3+";";
}
}
assert(false);
- }
+}
void VhdlParser::semi() {if (!hasError) {
@@ -9012,7 +9013,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 +9076,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 +9109,7 @@ return "bus";
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::signal_list() {QCString s,s1;
@@ -9178,7 +9179,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 +9261,7 @@ s+="return ";s+=s1;
s1="["+s+"]";return s1;
assert(false);
- }
+}
QCString VhdlParser::simple_expression() {QCString s,s1,s2;if (!hasError) {
@@ -9313,7 +9314,7 @@ s+=s1;s+=s2;
return s;
assert(false);
- }
+}
void VhdlParser::simple_name() {if (!hasError) {
@@ -9321,7 +9322,7 @@ void VhdlParser::simple_name() {if (!hasError) {
name();
}
- }
+}
QCString VhdlParser::slice_name() {QCString s,s1;if (!hasError) {
@@ -9343,7 +9344,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 +9354,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,7 +9427,7 @@ if (s.data())
tempEntry->endBodyLine=getLine(END_T);
createFlow();
currP=0;
- }
+}
void VhdlParser::subprogram_declaration() {
@@ -9461,7 +9462,7 @@ currP=0;
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
}
- }
+}
void VhdlParser::subprogram_1() {
@@ -9485,7 +9486,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;
@@ -9651,7 +9652,7 @@ return s;
}
}
assert(false);
- }
+}
QCString VhdlParser::subprogram_declarative_part() {QCString s,s1;if (!hasError) {
@@ -9694,7 +9695,7 @@ s+=s1;
return s;
assert(false);
- }
+}
void VhdlParser::subprogram_kind() {
@@ -9718,7 +9719,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 +9736,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);
}
@@ -9855,7 +9856,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 +9901,7 @@ param_sec=0;
}
if (!hasError) {
-tempEntry=current;
+tempEntry=current.get();
current->type=s;
newEntry();
}
@@ -9912,7 +9913,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 +9953,7 @@ void VhdlParser::subprogram_statement_part() {if (!hasError) {
end_label_42: ;
}
- }
+}
QCString VhdlParser::subtype_declaration() {QCString s,s1;if (!hasError) {
@@ -9979,7 +9980,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) {
@@ -10011,7 +10012,7 @@ QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) {
return s+" "+s1+" "+s2;
assert(false);
- }
+}
QCString VhdlParser::suffix() {QCString s;
@@ -10066,7 +10067,7 @@ return " all ";
}
}
assert(false);
- }
+}
QCString VhdlParser::target() {QCString s;
@@ -10102,7 +10103,7 @@ return s;
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::term() {QCString s,s1,s2;if (!hasError) {
@@ -10135,7 +10136,7 @@ s+=s1;s+=s2;
return s;
assert(false);
- }
+}
QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) {
@@ -10149,7 +10150,7 @@ QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) {
return " for "+s;
assert(false);
- }
+}
QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) {
@@ -10171,7 +10172,7 @@ QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) {
return s+"("+s1+")";
assert(false);
- }
+}
QCString VhdlParser::type_declaration() {QCString s;
@@ -10204,7 +10205,7 @@ return s;
}
}
assert(false);
- }
+}
QCString VhdlParser::type_definition() {QCString s;
@@ -10288,7 +10289,7 @@ return "";
}
}
assert(false);
- }
+}
QCString VhdlParser::type_mark() {QCString s;if (!hasError) {
@@ -10298,7 +10299,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 +10356,7 @@ s3+=",";s3+=s1;
return "array("+s+s3+") of "+s2;
assert(false);
- }
+}
QCString VhdlParser::use_clause() {QCString s,s1;if (!hasError) {
@@ -10411,7 +10412,7 @@ QCStringList ql1=QCStringList::split(",",s);
s1="use "+s;
return s1;
assert(false);
- }
+}
QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2;
@@ -10479,7 +10480,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 +10559,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 +10639,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 +10714,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 +10747,7 @@ s1.prepend(" after ");
return s+s1;
assert(false);
- }
+}
QCString VhdlParser::protected_type_body() {if (!hasError) {
@@ -10792,7 +10793,7 @@ QCString VhdlParser::protected_type_body() {if (!hasError) {
return "";
assert(false);
- }
+}
void VhdlParser::protected_type_body_declarative_item() {
@@ -10905,7 +10906,7 @@ void VhdlParser::protected_type_body_declarative_item() {
}
}
}
- }
+}
void VhdlParser::protected_type_body_declarative_part() {if (!hasError) {
@@ -10942,7 +10943,7 @@ void VhdlParser::protected_type_body_declarative_part() {if (!hasError) {
end_label_47: ;
}
- }
+}
QCString VhdlParser::protected_type_declaration() {if (!hasError) {
@@ -10987,7 +10988,7 @@ error_skipto(END_T);
return "";
assert(false);
- }
+}
void VhdlParser::protected_type_declarative_item() {
@@ -11021,7 +11022,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 +11054,7 @@ void VhdlParser::protected_type_declarative_part() {if (!hasError) {
end_label_48: ;
}
- }
+}
QCString VhdlParser::context_ref() {QCString s;if (!hasError) {
@@ -11071,7 +11072,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 +11154,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 +11198,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 +11247,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 +11289,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 +11340,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 +11364,7 @@ void VhdlParser::gen_assoc_list() {if (!hasError) {
jj_consume_token(RPAREN_T);
}
- }
+}
void VhdlParser::gen_interface_list() {if (!hasError) {
@@ -11393,7 +11394,7 @@ void VhdlParser::gen_interface_list() {if (!hasError) {
jj_consume_token(RPAREN_T);
}
- }
+}
void VhdlParser::case_scheme() {if (!hasError) {
@@ -11440,7 +11441,7 @@ void VhdlParser::case_scheme() {if (!hasError) {
jj_consume_token(SEMI_T);
}
- }
+}
void VhdlParser::when_stats() {if (!hasError) {
@@ -11490,7 +11491,7 @@ void VhdlParser::when_stats() {if (!hasError) {
end_label_50: ;
}
- }
+}
void VhdlParser::ttend() {if (!hasError) {
@@ -11518,7 +11519,7 @@ void VhdlParser::ttend() {if (!hasError) {
jj_consume_token(SEMI_T);
}
- }
+}
void VhdlParser::generate_statement_body() {if (!hasError) {
@@ -11530,7 +11531,7 @@ void VhdlParser::generate_statement_body() {if (!hasError) {
generate_statement_body();
}
- }
+}
void VhdlParser::generate_statement_body1() {if (!hasError) {
@@ -11611,7 +11612,7 @@ void VhdlParser::generate_statement_body1() {if (!hasError) {
end_label_52: ;
}
- }
+}
QCString VhdlParser::external_name() {QCString s,s1,s2;if (!hasError) {
@@ -11643,7 +11644,7 @@ QCString t="<<"+s;
QCString t1=s1+":"+s2+">>";
return s+s1;
assert(false);
- }
+}
QCString VhdlParser::sig_stat() {Token *t;
@@ -11687,7 +11688,7 @@ return t->image.data();
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::external_pathname() {QCString s;
@@ -11731,7 +11732,7 @@ return s;
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::absolute_pathname() {QCString s,s1;
@@ -11776,7 +11777,7 @@ return "."+s;
}
}
assert(false);
- }
+}
QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) {
@@ -11801,7 +11802,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 +11835,7 @@ s+="^.";
return s;
assert(false);
- }
+}
QCString VhdlParser::pathname_element() {QCString s,s1;if (!hasError) {
@@ -11870,7 +11871,7 @@ if(!s1.isEmpty())
return s;
assert(false);
- }
+}
QCString VhdlParser::pathname_element_list() {QCString s,s1,s2;if (!hasError) {
@@ -11914,7 +11915,7 @@ s2+=s1;s2+=".";
return s+s2;
assert(false);
- }
+}
QCString VhdlParser::package_path_name() {QCString s;if (!hasError) {
@@ -11928,7 +11929,7 @@ QCString VhdlParser::package_path_name() {QCString s;if (!hasError) {
return "@"+s;
assert(false);
- }
+}
void VhdlParser::conditional_signal_assignment_wave() {
@@ -11956,7 +11957,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 +12017,7 @@ void VhdlParser::conditional_waveform_assignment() {if (!hasError) {
jj_consume_token(SEMI_T);
}
- }
+}
void VhdlParser::else_wave_list() {if (!hasError) {
@@ -12047,7 +12048,7 @@ void VhdlParser::else_wave_list() {if (!hasError) {
}
}
- }
+}
void VhdlParser::conditional_force_assignment() {if (!hasError) {
@@ -12125,7 +12126,7 @@ void VhdlParser::conditional_force_assignment() {if (!hasError) {
jj_consume_token(SEMI_T);
}
- }
+}
void VhdlParser::selected_signal_assignment_wave() {
@@ -12149,7 +12150,7 @@ void VhdlParser::selected_signal_assignment_wave() {
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
}
- }
+}
void VhdlParser::selected_variable_assignment() {if (!hasError) {
@@ -12192,7 +12193,7 @@ void VhdlParser::selected_variable_assignment() {if (!hasError) {
sel_var_list();
}
- }
+}
void VhdlParser::select_name() {
@@ -12219,7 +12220,7 @@ void VhdlParser::select_name() {
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
}
- }
+}
void VhdlParser::selected_waveform_assignment() {if (!hasError) {
@@ -12279,7 +12280,7 @@ void VhdlParser::selected_waveform_assignment() {if (!hasError) {
sel_wave_list();
}
- }
+}
void VhdlParser::selected_force_assignment() {if (!hasError) {
@@ -12342,7 +12343,7 @@ void VhdlParser::selected_force_assignment() {if (!hasError) {
sel_var_list();
}
- }
+}
void VhdlParser::sel_var_list() {if (!hasError) {
@@ -12430,7 +12431,7 @@ void VhdlParser::sel_var_list() {if (!hasError) {
end_label_55: ;
}
- }
+}
void VhdlParser::sel_wave_list() {if (!hasError) {
@@ -12473,7 +12474,7 @@ void VhdlParser::sel_wave_list() {if (!hasError) {
jj_consume_token(SEMI_T);
}
- }
+}
void VhdlParser::inout_stat() {
@@ -12497,7 +12498,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 +12544,7 @@ void VhdlParser::else_stat() {if (!hasError) {
end_label_57: ;
}
- }
+}
QCString VhdlParser::interface_subprogram_declaration() {QCString s;
@@ -12578,7 +12579,7 @@ return s;
errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true;
}
assert(false);
- }
+}
QCString VhdlParser::iproc() {QCString s,s1;if (!hasError) {
@@ -12597,7 +12598,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 +12712,7 @@ QCString q;
}
currP=0;return "";
assert(false);
- }
+}
QCString VhdlParser::param() {QCString s,s1;Token *tok=0;if (!hasError) {
@@ -12765,7 +12766,7 @@ if(tok)
param_sec=0;
return s+"("+s1+")";
assert(false);
- }
+}
void VhdlParser::parseInline() {
@@ -12795,31 +12796,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 +12832,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;
@@ -12863,7 +12872,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,26 +12930,23 @@ 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++) {
JJCalls *p = &jj_2_rtns[i];
@@ -13071,7 +13078,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; }