Having RunTimeString in a better shape

This is an effort towards better understanding the issues
reported on #2376
This commit is contained in:
Felipe Zimmerle
2020-08-20 14:16:26 -03:00
parent 5f853f1511
commit 7d4cb31b72
5 changed files with 121 additions and 72 deletions

View File

@@ -5621,7 +5621,7 @@ namespace yy {
case 438: // run_time_string: run_time_string "FREE_TEXT_QUOTE_MACRO_EXPANSION"
#line 3036 "seclang-parser.yy"
{
yystack_[1].value.as < std::unique_ptr<RunTimeString> > ()->appendText(yystack_[0].value.as < std::string > ());
yystack_[1].value.as < std::unique_ptr<RunTimeString> > ()->append(yystack_[0].value.as < std::string > ());
yylhs.value.as < std::unique_ptr<RunTimeString> > () = std::move(yystack_[1].value.as < std::unique_ptr<RunTimeString> > ());
}
#line 5628 "seclang-parser.cc"
@@ -5630,7 +5630,7 @@ namespace yy {
case 439: // run_time_string: run_time_string var
#line 3041 "seclang-parser.yy"
{
yystack_[1].value.as < std::unique_ptr<RunTimeString> > ()->appendVar(std::move(yystack_[0].value.as < std::unique_ptr<Variable> > ()));
yystack_[1].value.as < std::unique_ptr<RunTimeString> > ()->append(std::move(yystack_[0].value.as < std::unique_ptr<Variable> > ()));
yylhs.value.as < std::unique_ptr<RunTimeString> > () = std::move(yystack_[1].value.as < std::unique_ptr<RunTimeString> > ());
}
#line 5637 "seclang-parser.cc"
@@ -5640,7 +5640,7 @@ namespace yy {
#line 3046 "seclang-parser.yy"
{
std::unique_ptr<RunTimeString> r(new RunTimeString());
r->appendText(yystack_[0].value.as < std::string > ());
r->append(yystack_[0].value.as < std::string > ());
yylhs.value.as < std::unique_ptr<RunTimeString> > () = std::move(r);
}
#line 5647 "seclang-parser.cc"
@@ -5650,7 +5650,7 @@ namespace yy {
#line 3052 "seclang-parser.yy"
{
std::unique_ptr<RunTimeString> r(new RunTimeString());
r->appendVar(std::move(yystack_[0].value.as < std::unique_ptr<Variable> > ()));
r->append(std::move(yystack_[0].value.as < std::unique_ptr<Variable> > ()));
yylhs.value.as < std::unique_ptr<RunTimeString> > () = std::move(r);
}
#line 5657 "seclang-parser.cc"