0, 96, 96, 101, 106, 120, 123, 128, 134, 139,
145, 152, 158, 169, 175, 180, 184, 188, 194, 200,
211, 217, 222, 228, 235, 241, 249, 254, 259, 266,
- 272, 283, 289, 294, 301, 309, 314, 319, 324, 328,
- 332, 336, 340, 346, 352, 363, 369, 372, 375, 380,
- 383, 387, 393, 396, 402, 405, 418, 421, 425, 429,
- 433, 437, 441, 445, 449, 459, 463, 467, 473, 480,
- 484
+ 272, 283, 289, 302, 310, 325, 330, 335, 340, 344,
+ 348, 352, 356, 362, 368, 379, 385, 388, 391, 396,
+ 399, 403, 409, 412, 418, 421, 438, 441, 445, 449,
+ 453, 457, 461, 465, 469, 479, 483, 487, 493, 500,
+ 504
};
#endif
case 32:
#line 289 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
- ((*yyvalp).decl) = new tidl::Declaration((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.token)->ToString(), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.b_type), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.params), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.b_type)->GetComments(),
- (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yyloc).begin.line, tidl::Declaration::MethodType::SYNC);
- delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.token);
+ if (ps->IsGroupEnabled()) {
+ ps->ReportError("Group does not support 'sync' method type", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yyloc).begin.line);
+ ((*yyvalp).decl) = NULL;
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.token);
+ } else {
+ ((*yyvalp).decl) = new tidl::Declaration((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.token)->ToString(),
+ std::unique_ptr<tidl::BaseType>((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.b_type)),
+ std::unique_ptr<tidl::Parameters>((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.params)), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.b_type)->GetComments(),
+ (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yyloc).begin.line, tidl::Declaration::MethodType::SYNC);
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.token);
+ }
}
-#line 1572 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1580 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 33:
-#line 294 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 302 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).decl) = new tidl::Declaration((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token)->ToString(),
- new tidl::BaseType("void", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments()), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.params),
- (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments(), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yyloc).begin.line, tidl::Declaration::MethodType::ASYNC);
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("void", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments())),
+ std::unique_ptr<tidl::Parameters>((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.params)), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments(),
+ (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yyloc).begin.line, tidl::Declaration::MethodType::ASYNC);
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token);
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token);
}
-#line 1584 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1593 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 34:
-#line 301 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 310 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
- ((*yyvalp).decl) = new tidl::Declaration((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token)->ToString(),
- new tidl::BaseType("void", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments()), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.params),
- (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments(), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yyloc).begin.line,
- tidl::Declaration::MethodType::DELEGATE);
- delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token);
- delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token);
+ if (ps->IsGroupEnabled()) {
+ ps->ReportError("Group does not support 'delegate' method type", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yyloc).begin.line);
+ ((*yyvalp).decl) = NULL;
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token);
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token);
+ } else {
+ ((*yyvalp).decl) = new tidl::Declaration((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token)->ToString(),
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("void", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments())),
+ std::unique_ptr<tidl::Parameters>((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.params)), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token)->GetComments(),
+ (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yyloc).begin.line, tidl::Declaration::MethodType::DELEGATE);
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.token);
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token);
+ }
}
-#line 1597 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1613 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 35:
-#line 309 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 325 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error in method declaration.", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token);
}
-#line 1607 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1623 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 36:
-#line 314 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 330 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error in method declaration.", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.token);
}
-#line 1617 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1633 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 37:
-#line 319 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 335 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error. \"No async\".", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.token);
}
-#line 1627 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1643 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 38:
-#line 324 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 340 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error. \"No identifier\".", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
}
-#line 1636 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1652 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 39:
-#line 328 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 344 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error. \"No identifier\".", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
}
-#line 1645 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1661 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 40:
-#line 332 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 348 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error. \"No identifier\".", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-4)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
}
-#line 1654 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1670 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 41:
-#line 336 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 352 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error in method declaration.", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
}
-#line 1663 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1679 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 42:
-#line 340 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 356 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error in method declaration.", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yyloc).begin.line);
((*yyvalp).decl) = NULL;
}
-#line 1672 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1688 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 43:
-#line 346 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 362 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).params) = new tidl::Parameters();
if ((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.param) != nullptr) {
((*yyvalp).params)->Add(std::unique_ptr<tidl::Parameter>((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.param)));
}
}
-#line 1683 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1699 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 44:
-#line 352 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 368 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).params) = (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.params);
if ((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.param) != nullptr) {
}
}
}
-#line 1699 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1715 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 45:
-#line 363 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 379 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
ps->ReportError("syntax error in parameter list", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yyloc).begin.line);
((*yyvalp).params) = new tidl::Parameters();
}
-#line 1708 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1724 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 46:
-#line 369 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 385 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).direction) = new tidl::Token("in", "");
}
-#line 1716 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1732 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 47:
-#line 372 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 388 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).direction) = new tidl::Token("out", "");
}
-#line 1724 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1740 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 48:
-#line 375 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 391 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).direction) = new tidl::Token("ref", "");
}
-#line 1732 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1748 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 49:
-#line 380 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 396 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).param) = nullptr;
}
-#line 1740 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1756 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 50:
-#line 383 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 399 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).param) = nullptr;
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1749 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1765 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 51:
-#line 387 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 403 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).param) = new tidl::Parameter((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->ToString(), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.p_type), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yyloc).begin.line);
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1758 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1774 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 52:
-#line 393 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 409 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).p_type) = new tidl::ParameterType((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.b_type));
}
-#line 1766 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1782 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 53:
-#line 396 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 412 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).p_type) = new tidl::ParameterType((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.b_type), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.direction)->ToString());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.direction);
}
-#line 1775 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1791 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 54:
-#line 402 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 418 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.b_type);
}
-#line 1783 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1799 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 55:
-#line 405 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 421 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
- if (!ps->IsBetaEnabled()) {
+ if (ps->IsGroupEnabled()) {
+ ps->ReportError("Group does not support 'file' type", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yyloc).begin.line);
+ ((*yyvalp).b_type) = NULL;
+ delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
+ } else if (!ps->IsBetaEnabled()) {
ps->ReportError("syntax error. \"No identifier\".", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yyloc).begin.line);
ps->ReportError("try to use beta version (-b option).", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yyloc).begin.line);
((*yyvalp).b_type) = NULL;
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
}
-#line 1799 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1819 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 56:
-#line 418 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 438 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.b_type);
}
-#line 1807 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1827 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 57:
-#line 421 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 441 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("void", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1816 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1836 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 58:
-#line 425 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 445 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("char", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1825 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1845 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 59:
-#line 429 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 449 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("short", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1834 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1854 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 60:
-#line 433 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 453 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("int", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1843 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1863 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 61:
-#line 437 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 457 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("long", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1852 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1872 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 62:
-#line 441 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 461 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("float", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1861 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1881 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 63:
-#line 445 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 465 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("double", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1870 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1890 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 64:
-#line 449 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 469 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
if (ps->IsCionEnabled()) {
ps->ReportError("Cion does not support 'bundle' type", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yyloc).begin.line);
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
}
-#line 1885 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1905 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 65:
-#line 459 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 479 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("string", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1894 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1914 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 66:
-#line 463 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 483 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType("bool", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1903 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1923 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 67:
-#line 467 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 487 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->ToString(), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments(), true);
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1912 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1932 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 68:
-#line 473 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 493 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).b_type) = new tidl::BaseType((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.token)->ToString(), (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.token)->GetComments());
((*yyvalp).b_type)->SetMetaType((YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.b_type));
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.token);
}
-#line 1922 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1942 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 69:
-#line 480 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 500 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).token) = new tidl::Token("list", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1931 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1951 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
case 70:
-#line 484 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 504 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
{
((*yyvalp).token) = new tidl::Token("array", (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token)->GetComments());
delete (YY_CAST (yyGLRStackItem const *, yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.token);
}
-#line 1940 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1960 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
break;
-#line 1944 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 1964 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
default: break;
}
// User initialization code.
yylloc.initialize ();
-#line 3406 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 3426 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
if (! yyinitGLRStack (yystackp, YYINITDEPTH))
-#line 490 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
+#line 510 "/home/gogo/work/tidl/idlc/ast/tidlc.yy"
#include <ctype.h>
}
-#line 3706 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 3726 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
/*------------------.
| Report an error. |
namespace yy {
-#line 3722 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 3742 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
/// Build a parser object.
parser::parser (tidl::Parser* ps_yyarg)
#endif
} // yy
-#line 3810 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
+#line 3830 "/home/gogo/work/tidl/idlc/ast/tidlc_y.cpp"
class DeclarationTest : public testing::Test {
public:
- tidl::Parameters* params;
+ std::unique_ptr<tidl::Parameters> params;
virtual void SetUp() {
- params = new tidl::Parameters();
+ params = std::unique_ptr<tidl::Parameters>(new tidl::Parameters());
EXPECT_NE(params, nullptr);
params->Add(std::unique_ptr<tidl::Parameter>(new tidl::Parameter("test1",
new tidl::ParameterType(new tidl::BaseType("int", "")), __LINE__)));
};
TEST_F(DeclarationTest, Declaration_Constructor) {
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params, "",
- __LINE__);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), "", __LINE__);
}
TEST_F(DeclarationTest, Declaration_GetID) {
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params, "",
- __LINE__);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), "", __LINE__);
EXPECT_EQ(decl.GetID(), "test");
}
TEST_F(DeclarationTest, Declaration_GetType) {
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params, "",
- __LINE__);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), "", __LINE__);
EXPECT_EQ(decl.GetType().ToString(), "int");
}
TEST_F(DeclarationTest, Declaration_GetParameters) {
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params, "",
- __LINE__);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), "", __LINE__);
int count = 0;
for (const auto& param : decl.GetParameters()) {
}
TEST_F(DeclarationTest, Declaration_GetMethodType) {
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params, "",
- __LINE__, tidl::Declaration::MethodType::DELEGATE);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), "", __LINE__,
+ tidl::Declaration::MethodType::DELEGATE);
EXPECT_EQ(decl.GetMethodType(), tidl::Declaration::MethodType::DELEGATE);
}
TEST_F(DeclarationTest, Declaration_GetComments) {
std::string comments = "Test Declaration";
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params,
- comments, __LINE__);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), comments, __LINE__);
EXPECT_EQ(decl.GetComments(), comments);
}
TEST_F(DeclarationTest, Declaration_GetLine) {
unsigned line = __LINE__;
- tidl::Declaration decl("test", new tidl::BaseType("int", ""), params, "",
- line);
+ tidl::Declaration decl("test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::move(params), "", line);
EXPECT_EQ(decl.GetLine(), line);
}
params->Add(std::unique_ptr<tidl::Parameter>(new tidl::Parameter("test2",
new tidl::ParameterType(new tidl::BaseType("int", "")), __LINE__)));
auto decl = std::unique_ptr<tidl::Declaration>(new tidl::Declaration(
- "test", new tidl::BaseType("int", ""), params, "", __LINE__));
+ "test",
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::unique_ptr<tidl::Parameters>(params), "", __LINE__));
EXPECT_NE(decl, nullptr);
return decl;
}
testParams->Add(std::unique_ptr<tidl::Parameter>(new tidl::Parameter("test1",
new tidl::ParameterType(new tidl::BaseType("int", "")), __LINE__)));
tidl::Declaration testDecl("test",
- new tidl::BaseType("int", ""), testParams, "", __LINE__);
+ std::unique_ptr<tidl::BaseType>(new tidl::BaseType("int", "")),
+ std::unique_ptr<tidl::Parameters>(testParams), "", __LINE__);
EXPECT_EQ(decls.Exist(testDecl), true);
}