Parse.
Lookahead and lookahead in internal form.
Semantic value of the lookahead.
Location of the lookahead.
The locations where the error started and ended.
$$.
$.
2133 int yyerrstatus_ = 0;
2136 semantic_type yylval;
2143 semantic_type yyval;
2149 YYCDEBUG <<
"Starting parse" << std::endl;
2155 #line 66 "Parser.yy"
2162 #line 2163 "Parser.cc"
2177 YYCDEBUG <<
"Entering state " << yystate << std::endl;
2197 yychar =
yylex (&yylval, &yylloc);
2204 yychar = yytoken =
yyeof_;
2205 YYCDEBUG <<
"Now at end of input." << std::endl;
2281 #line 945 "Parser.yy"
2284 boost::scoped_ptr<VersionData> versionData((
yysemantic_stack_[(6) - (4)].edifVersion));
2287 root->setName(fileName->mName);
2288 if(!fileName->mOriginalName.empty())
2290 root->setOriginalName(fileName->mOriginalName);
2293 version.
mFirst = versionData->mFirst;
2294 version.
mSecond = versionData->mSecond;
2295 version.
mThird = versionData->mThird;
2296 root->setVersion(version);
2297 root->setLevel(static_cast<EdifLevel>((
yysemantic_stack_[(6) - (5)].integerVal)) );
2298 ctx->pushStatusContainer(root);
2305 #line 963 "Parser.yy"
2314 #line 974 "Parser.yy"
2326 #line 981 "Parser.yy"
2338 #line 993 "Parser.yy"
2347 #line 999 "Parser.yy"
2359 #line 1008 "Parser.yy"
2368 #line 1025 "Parser.yy"
2377 #line 1029 "Parser.yy"
2386 #line 1038 "Parser.yy"
2395 #line 1042 "Parser.yy"
2404 #line 1048 "Parser.yy"
2411 ctx->getFactory()->create(apply);
2416 "Unable to create apply" );
2417 log(
"%s\n", message.c_str());
2419 __FILE__, __LINE__ );
2425 error(yyloc, message);
2428 ctx->setCurrentApply(apply);
2430 = ctx->getCurrentSimulate();
2431 simulate->addApply(apply);
2438 #line 1076 "Parser.yy"
2448 #line 1086 "Parser.yy"
2460 #line 1093 "Parser.yy"
2472 #line 1102 "Parser.yy"
2483 #line 1110 "Parser.yy"
2486 (yyval.nameData)->mIndices.push_back((
yysemantic_stack_[(6) - (4)].integerVal));
2489 (yyval.nameData)->mIndices.insert((yyval.nameData)->mIndices.end(),
2499 #line 1123 "Parser.yy"
2501 (yyval.arrayDimensions) = NULL;
2508 #line 1130 "Parser.yy"
2510 (yyval.arrayDimensions) =
new std::vector<size_t>();
2514 (yyval.arrayDimensions)->insert((yyval.arrayDimensions)->end(), (
yysemantic_stack_[(2) - (2)].arrayDimensions)->begin(), (
yysemantic_stack_[(2) - (2)].arrayDimensions)->end());
2523 #line 1140 "Parser.yy"
2525 (yyval.arrayDimensions) =
new std::vector<size_t>();
2533 #line 1156 "Parser.yy"
2542 #line 1160 "Parser.yy"
2551 #line 1169 "Parser.yy"
2560 #line 1175 "Parser.yy"
2569 #line 1181 "Parser.yy"
2578 #line 1190 "Parser.yy"
2585 ctx->getFactory()->create(logicElem);
2591 "Unable to create becomes" );
2592 log(
"%s\n", message.c_str());
2594 __FILE__, __LINE__ );
2600 error(yyloc, message);
2603 ctx->pushLogicElement(logicElem);
2604 ctx->incrementLogicElementDepth();
2611 #line 1236 "Parser.yy"
2616 (yyval.valueData)->mValues.push_back(
Value(
2629 #line 1251 "Parser.yy"
2631 (yyval.valueData) = NULL;
2638 #line 1255 "Parser.yy"
2642 (yyval.valueData)->mValues.push_back(
Value(
2650 #line 1262 "Parser.yy"
2654 (yyval.valueData)->mValues.push_back(
Value(
2662 #line 1269 "Parser.yy"
2668 (yyval.valueData)->mValues.begin(), (yyval.valueData)->mValues.end() );
2678 #line 1282 "Parser.yy"
2687 #line 1288 "Parser.yy"
2696 #line 1292 "Parser.yy"
2705 #line 1298 "Parser.yy"
2715 #line 1305 "Parser.yy"
2717 (yyval.integerVal) = 1;
2724 #line 1309 "Parser.yy"
2726 (yyval.integerVal) = 0;
2733 #line 1315 "Parser.yy"
2744 #line 1323 "Parser.yy"
2753 #line 1332 "Parser.yy"
2760 cell = lib->findCell(name);
2763 log(
"Found existing cell\n");
2764 if(lib->getIsExtern())
2766 if(!cell->getIsExtern())
2769 "Cell %s already exists in lib %s\n",
2770 name.c_str(), lib->getName().c_str() );
2771 log(
"%s\n", message.c_str());
2773 __FUNCTION__, __FILE__, __LINE__ );
2775 __FILE__, __LINE__ );
2781 error(yyloc, message);
2786 log(
"Extern cell %s already exists in %s\n",
2787 name.c_str(), lib->getName().c_str() );
2792 if(cell->getIsExtern())
2794 log(
"Found extern cell of this name\n");
2795 cell->setIsExtern(
false);
2800 log(
"Concrete cell %s already found... Ignoring\n",
2804 "Cell %s already exists in lib %s\n",
2805 name.c_str(), lib->getName().c_str() );
2806 log(
"%s\n", message.c_str());
2808 __FUNCTION__, __FILE__, __LINE__ );
2814 error(yyloc, message);
2824 ctx->getFactory()->create(cell);
2829 "Unable to create Cell : %s", cell->getName().c_str());
2830 log(
"%s\n", message.c_str());
2832 __FILE__, __LINE__ );
2838 error(yyloc, message);
2841 cell->setName(name);
2846 cell->setIsExtern(lib->getIsExtern());
2847 cell->setParent(lib);
2849 log(
"Created cell %s\n", cell->getName().c_str());
2851 ctx->setCurrentCell(cell);
2852 ctx->pushPropertyContainer(cell);
2853 ctx->pushStatusContainer(cell);
2860 #line 1433 "Parser.yy"
2872 #line 1446 "Parser.yy"
2884 #line 1453 "Parser.yy"
2896 #line 1467 "Parser.yy"
2913 #line 1481 "Parser.yy"
2915 (yyval.cellRefData) = NULL;
2922 #line 1485 "Parser.yy"
2932 #line 1492 "Parser.yy"
2949 #line 1506 "Parser.yy"
2951 (yyval.viewRefData) = NULL;
2958 #line 1510 "Parser.yy"
2968 #line 1517 "Parser.yy"
2977 #line 1523 "Parser.yy"
2986 #line 1529 "Parser.yy"
2996 #line 1536 "Parser.yy"
3005 #line 1540 "Parser.yy"
3014 #line 1544 "Parser.yy"
3023 #line 1563 "Parser.yy"
3033 #line 1574 "Parser.yy"
3044 #line 1582 "Parser.yy"
3053 #line 1587 "Parser.yy"
3055 (yyval.stringVal) = NULL;
3062 #line 1591 "Parser.yy"
3071 #line 1606 "Parser.yy"
3080 #line 1610 "Parser.yy"
3089 #line 1616 "Parser.yy"
3098 #line 1622 "Parser.yy"
3100 (yyval.logicListData) = NULL;
3107 #line 1626 "Parser.yy"
3110 (yyval.logicListData)->mNameDataList.push_back((
yysemantic_stack_[(2) - (2)].nameData));
3117 #line 1646 "Parser.yy"
3122 = ctx->getCurrentView();
3124 = ctx->getCurrentTiming();
3125 view->setTiming(timing);
3133 #line 1657 "Parser.yy"
3138 = ctx->getCurrentView();
3140 = ctx->getCurrentSimulate();
3141 view->setSimulate(simulate);
3149 #line 1672 "Parser.yy"
3158 #line 1676 "Parser.yy"
3167 #line 1697 "Parser.yy"
3176 #line 1703 "Parser.yy"
3186 #line 1708 "Parser.yy"
3196 #line 1715 "Parser.yy"
3205 #line 1726 "Parser.yy"
3214 #line 1732 "Parser.yy"
3225 apply->setCycleDuration(val);
3233 #line 1748 "Parser.yy"
3242 #line 1752 "Parser.yy"
3251 #line 1758 "Parser.yy"
3260 #line 1763 "Parser.yy"
3269 #line 1767 "Parser.yy"
3278 #line 1773 "Parser.yy"
3287 #line 1783 "Parser.yy"
3296 #line 1793 "Parser.yy"
3305 #line 1803 "Parser.yy"
3314 #line 1813 "Parser.yy"
3323 #line 1819 "Parser.yy"
3328 (yyval.portDelay)->setDelay(data->mValues[0].get<
Value::MiNoMax>());
3335 #line 1826 "Parser.yy"
3340 (yyval.portDelay)->setDelay(data->mValues[0].get<
Value::MiNoMax>());
3347 #line 1838 "Parser.yy"
3356 #line 1842 "Parser.yy"
3365 #line 1852 "Parser.yy"
3374 #line 1858 "Parser.yy"
3383 #line 1864 "Parser.yy"
3392 #line 1868 "Parser.yy"
3401 #line 1872 "Parser.yy"
3410 #line 1878 "Parser.yy"
3421 log(
"Skipped creation of existing design.\n");
3427 ctx->getFactory()->create(design);
3432 "Unable to create design : %s",
3433 design->getName().c_str());
3434 log(
"%s\n", message.c_str());
3436 __FILE__, __LINE__ );
3442 error(yyloc, message);
3448 design->setOriginalName((
yysemantic_stack_[(3) - (3)].nameData)->mOriginalName);
3450 design->setParent(root);
3451 root->addDesign(design);
3453 ctx->setCurrentDesign(design);
3454 ctx->pushPropertyContainer(design);
3455 ctx->pushStatusContainer(design);
3464 #line 1926 "Parser.yy"
3467 ctx->popPropertyContainer();
3468 ctx->popStatusContainer();
3470 boost::scoped_ptr<CellRefData> cellRefData((
yysemantic_stack_[(6) - (5)].cellRefData));
3471 std::string cellName = cellRefData->mCellName->mName;
3472 std::string libName = cellRefData->mLibraryName->mName;
3474 = ctx->getRoot()->findLibrary(libName) ;
3478 "Library %s not found",
3480 log(
"%s\n", message.c_str());
3482 __FUNCTION__, __FILE__, __LINE__ );
3488 error(yyloc, message);
3493 = library->findCell(cellName);
3497 "Cell %s not found",
3499 log(
"%s\n", message.c_str());
3501 __FUNCTION__, __FILE__, __LINE__ );
3507 error(yyloc, message);
3511 design->setCellRefName(cellName);
3512 design->setLibraryRefName(libName);
3520 #line 1979 "Parser.yy"
3530 #line 1984 "Parser.yy"
3539 #line 1988 "Parser.yy"
3552 #line 1996 "Parser.yy"
3561 #line 2000 "Parser.yy"
3574 #line 2013 "Parser.yy"
3583 #line 2017 "Parser.yy"
3592 #line 2023 "Parser.yy"
3601 #line 2052 "Parser.yy"
3610 #line 2056 "Parser.yy"
3619 #line 2071 "Parser.yy"
3629 #line 2078 "Parser.yy"
3631 (yyval.integerVal) = 0;
3638 #line 2082 "Parser.yy"
3640 (yyval.integerVal) = 1;
3647 #line 2086 "Parser.yy"
3649 (yyval.integerVal) = 2;
3656 #line 2105 "Parser.yy"
3665 #line 2111 "Parser.yy"
3667 (yyval.logicListData) = NULL;
3674 #line 2115 "Parser.yy"
3677 (yyval.logicListData)->mNameDataList.push_back((
yysemantic_stack_[(2) - (2)].nameData));
3684 #line 2125 "Parser.yy"
3693 #line 2132 "Parser.yy"
3702 #line 2143 "Parser.yy"
3711 #line 2147 "Parser.yy"
3720 #line 2169 "Parser.yy"
3729 #line 2183 "Parser.yy"
3736 ctx->getFactory()->create(event);
3741 "Unable to create event" );
3742 log(
"%s\n", message.c_str());
3744 __FILE__, __LINE__ );
3750 error(yyloc, message);
3753 ctx->setCurrentEvent(event);
3760 #line 2208 "Parser.yy"
3771 #line 2221 "Parser.yy"
3776 = ctx->getCurrentEvent();
3778 = ctx->getCurrentLogicElement();
3783 event->setTransition(logicElem);
3792 #line 2237 "Parser.yy"
3797 = ctx->getCurrentEvent();
3799 = ctx->getCurrentLogicElement();
3804 event->setTransition(logicElem);
3813 #line 2255 "Parser.yy"
3815 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(1) - (1)].portRefData));
3819 = ctx->getCurrentView();
3820 std::vector< std::string > nestedNames;
3826 currPortRef = nextPortRef;
3840 portNameData->
mName.c_str());
3841 log(
"%s\n", message.c_str());
3843 __FUNCTION__, __FILE__, __LINE__ );
3849 error(yyloc, message);
3854 connectibleFinder(nestedNames, port);
3855 if(!portData->mPortName->mIndices.empty())
3857 port = port->get(portData->mPortName->mIndices);
3860 = ctx->getCurrentEvent();
3861 event->addPort(port);
3866 __FUNCTION__, __FILE__, __LINE__ );
3875 = view->findInstance(
3876 instanceName->
mName );
3880 "Instance %s not known",
3881 instanceName->
mName.c_str() );
3882 log(
"%s\n", message.c_str());
3884 __FUNCTION__, __FILE__, __LINE__ );
3890 error(yyloc, message);
3893 if(!instanceName->
mIndices.empty())
3896 = instance->get(instanceName->
mIndices);
3900 = instance->findPortReference(topName);
3904 "No port ref %s found",
3905 portNameData->
mName.c_str());
3906 log(
"%s\n", message.c_str());
3908 __FUNCTION__, __FILE__, __LINE__ );
3914 error(yyloc, message);
3919 connectibleFinder(nestedNames, portRef);
3920 if(!portData->mPortName->mIndices.empty())
3922 portRef = portRef->get(
3923 portData->mPortName->mIndices );
3926 = ctx->getCurrentEvent();
3927 event->addPortReference(portRef);
3932 "Unable to connect port ref : %s",
3933 portRef->getName().c_str());
3934 log(
"%s\n", message.c_str());
3936 __FILE__, __LINE__ );
3942 error(yyloc, message);
3952 #line 2391 "Parser.yy"
3956 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(1) - (1)].portListData));
3962 ctx->getFactory()->create(portList);
3964 for( std::vector<PortRefData *>::iterator it
3965 = portListData->mPortRefs.begin();
3966 it != portListData->mPortRefs.end(); ++it )
3969 std::vector< std::string > nestedNames;
3975 currPortRef = nextPortRef;
3989 = ctx->getCurrentSimulate();
3993 = simulate->findPortListAlias(topName);
3997 "No port %s found in portListAlias\n",
3998 portNameData->
mName.c_str());
3999 log(
"%s\n", message.c_str());
4001 __FUNCTION__, __FILE__, __LINE__ );
4007 error(yyloc, message);
4014 "No port %s found in view %s",
4015 portNameData->
mName.c_str(),
4016 view->getName().c_str() );
4017 log(
"%s\n", message.c_str());
4019 __FUNCTION__, __FILE__, __LINE__ );
4025 error(yyloc, message);
4031 connectibleFinder(nestedNames, port);
4036 portList->addChildPort(port);
4041 "Unable to connect port : %s",
4042 port->getName().c_str());
4043 log(
"%s\n", message.c_str());
4045 __FILE__, __LINE__ );
4051 error(yyloc, message);
4060 = view->findInstance(
4061 instanceName->
mName );
4065 "Instance %s not known",
4066 instanceName->
mName.c_str() );
4067 log(
"%s\n", message.c_str());
4069 __FUNCTION__, __FILE__, __LINE__ );
4075 error(yyloc, message);
4078 if(!instanceName->
mIndices.empty())
4081 = instance->get(instanceName->
mIndices);
4085 = instance->findPortReference(topName);
4089 "No port ref %s found",
4090 portNameData->
mName.c_str());
4091 log(
"%s\n", message.c_str());
4093 __FUNCTION__, __FILE__, __LINE__ );
4099 error(yyloc, message);
4104 connectibleFinder(nestedNames, portRef);
4107 portRef = portRef->get(
4110 portList->addChildPortReference(portRef);
4115 "Unable to connect port ref : %s",
4116 portRef->getName().c_str());
4117 log(
"%s\n", message.c_str());
4119 __FILE__, __LINE__ );
4125 error(yyloc, message);
4131 = ctx->getCurrentEvent();
4132 event->setPortList(portList);
4140 #line 2576 "Parser.yy"
4142 boost::scoped_ptr<NetRefData> netData((
yysemantic_stack_[(1) - (1)].netRefData));
4146 = ctx->getCurrentView();
4147 std::vector< std::string > nestedNames;
4153 currNetRef = nextNetRef;
4167 netNameData->
mName.c_str());
4168 log(
"%s\n", message.c_str());
4170 __FUNCTION__, __FILE__, __LINE__ );
4176 error(yyloc, message);
4181 connectibleFinder(nestedNames, net);
4182 if(!netData->mNetName->mIndices.empty())
4184 net = net->get(netData->mNetName->mIndices);
4187 = ctx->getCurrentEvent();
4193 __FUNCTION__, __FILE__, __LINE__ );
4202 = view->findInstance(
4203 instanceName->
mName );
4207 "Instance %s not known",
4208 instanceName->
mName.c_str() );
4209 log(
"%s\n", message.c_str());
4211 __FUNCTION__, __FILE__, __LINE__ );
4217 error(yyloc, message);
4220 if(!instanceName->
mIndices.empty())
4223 = instance->get(instanceName->
mIndices);
4230 "No Net ref %s found",
4231 netNameData->
mName.c_str());
4232 log(
"%s\n", message.c_str());
4234 __FUNCTION__, __FILE__, __LINE__ );
4240 error(yyloc, message);
4245 connectibleFinder(nestedNames, net);
4246 if(!netData->mNetName->mIndices.empty())
4248 net = net->get(netData->mNetName->mIndices);
4251 = ctx->getCurrentEvent();
4257 __FUNCTION__, __FILE__, __LINE__ );
4267 #line 2700 "Parser.yy"
4276 #line 2706 "Parser.yy"
4279 if(name && !name->mName.empty())
4287 lib = root->findLibrary(name->mName);
4290 log(
"Skipped creation of existing lib.\n");
4314 log(
"%s\n", message.c_str());
4316 __FUNCTION__, __FILE__, __LINE__ );
4322 error(yyloc, message);
4328 if(lib->getLevel() != level)
4331 "Level mismatch - old %d new %d\n",
4332 lib->getLevel(), level );
4333 log(
"%s\n", message.c_str());
4335 __FUNCTION__, __FILE__, __LINE__ );
4341 error(yyloc, message);
4346 log(
"We have found the actual lib corresponding to this lib\n");
4351 ctx->getFactory()->create(lib);
4352 lib->setName(name->mName);
4353 if(! name->mOriginalName.empty())
4355 lib->setOriginalName(name->mOriginalName);
4357 lib->setLevel(level);
4358 lib->setParent(root);
4359 lib->setIsExtern(
true);
4360 root->addLibrary(lib);
4361 log(
"Created extern lib %s level %d\n",
4362 lib->getName().c_str(), level );
4364 ctx->setCurrentLibrary(lib);
4365 ctx->pushStatusContainer(lib);
4377 #line 2801 "Parser.yy"
4388 #line 2813 "Parser.yy"
4400 #line 2820 "Parser.yy"
4412 #line 2848 "Parser.yy"
4421 #line 2853 "Parser.yy"
4430 #line 2887 "Parser.yy"
4439 #line 2892 "Parser.yy"
4448 #line 2917 "Parser.yy"
4457 #line 2921 "Parser.yy"
4466 #line 2932 "Parser.yy"
4475 #line 2936 "Parser.yy"
4484 #line 2955 "Parser.yy"
4493 #line 2959 "Parser.yy"
4502 #line 2970 "Parser.yy"
4511 #line 2974 "Parser.yy"
4520 #line 2980 "Parser.yy"
4531 #line 3001 "Parser.yy"
4538 ctx->getFactory()->create(forbiddenEvent);
4543 "Unable to create forbiddenEvent" );
4544 log(
"%s\n", message.c_str());
4546 __FILE__, __LINE__ );
4552 error(yyloc, message);
4555 ctx->setCurrentForbiddenEvent(forbiddenEvent);
4557 timing->addForbiddenEvent(forbiddenEvent);
4564 #line 3028 "Parser.yy"
4574 #line 3036 "Parser.yy"
4578 = ctx->getCurrentForbiddenEvent();
4580 = ctx->getCurrentEvent();
4582 forbiddenEvent->addEvent(event);
4590 #line 3049 "Parser.yy"
4599 #line 3057 "Parser.yy"
4608 #line 3061 "Parser.yy"
4617 #line 3065 "Parser.yy"
4626 #line 3072 "Parser.yy"
4635 #line 3078 "Parser.yy"
4644 #line 3084 "Parser.yy"
4654 #line 3091 "Parser.yy"
4661 ctx->getFactory()->create(ignoreLogicElem);
4667 "Unable to create Ignore" );
4668 log(
"%s\n", message.c_str());
4670 __FILE__, __LINE__ );
4676 error(yyloc, message);
4680 = ctx->getCurrentLogicElement();
4681 logicElem->addChildLogicElement(ignoreLogicElem);
4688 #line 3132 "Parser.yy"
4697 #line 3135 "Parser.yy"
4701 boost::scoped_ptr<InstanceInfo> info((
yysemantic_stack_[(6) - (5)].instanceInfo));
4711 library = ctx->getCurrentLibrary();
4716 library = ctx->getRoot()->findLibrary(libraryName);
4721 "Library %s not found",
4722 libraryName.c_str() );
4723 log(
"%s\n", message.c_str());
4725 __FUNCTION__, __FILE__, __LINE__ );
4731 error(yyloc, message);
4734 libraryName = library->getName();
4736 bool masterIsExtern =
false;
4739 libraryName, cellName, viewName );
4740 if(!libraryName.empty())
4743 = linker->findExternView(viewNameSpec);
4747 library = ctx->getRoot()->findLibrary(
4752 masterIsExtern =
true;
4757 library = ctx->getCurrentLibrary();
4763 cell = library->findCell(cellName);
4767 "Cell %s not found",
4769 log(
"%s\n", message.c_str());
4771 __FUNCTION__, __FILE__, __LINE__ );
4777 error(yyloc, message);
4780 masterView = cell->findView(viewName);
4784 "View %s not found",
4786 log(
"%s\n", message.c_str());
4788 __FUNCTION__, __FILE__, __LINE__ );
4794 error(yyloc, message);
4799 if(nameData->mIndices.empty())
4804 ctx->getFactory()->create(singleInst);
4805 instance = singleInst;
4806 instance->setName(nameData->mName);
4807 if(!nameData->mOriginalName.empty())
4809 instance->setOriginalName(nameData->mOriginalName);
4815 "Unable to create Instance : %s",
4816 instance->getName().c_str());
4817 log(
"%s\n", message.c_str());
4819 __FILE__, __LINE__ );
4825 error(yyloc, message);
4834 ctx->getFactory()->create(instArray);
4835 instArray->setName(nameData->mName);
4836 if(!nameData->mOriginalName.empty())
4838 instArray->setOriginalName(nameData->mOriginalName);
4840 instArray->constructChildren(
4842 nameData->mIndices );
4843 instance = instArray;
4848 "Unable to create Instance Array : %s",
4849 instance->getName().c_str());
4850 log(
"%s\n", message.c_str());
4852 __FILE__, __LINE__ );
4858 error(yyloc, message);
4862 ctx->setCurrentInstance(instance);
4865 instance->bindToMasterView(masterView);
4867 == instance->getCompositionType() )
4869 std::vector< InstanceSharedPtr > children;
4870 instance->getChildren(children);
4871 std::vector< InstanceSharedPtr >::iterator inst
4873 std::vector< InstanceSharedPtr >::iterator end
4875 for(;inst != end; ++inst)
4879 ctx->getFactory(), *inst );
4880 masterView->applyOnAllPorts(
4888 creator(ctx->getFactory(), instance);
4889 masterView->applyOnAllPorts(
4896 "Unable to create Port ref");
4897 log(
"%s\n", message.c_str());
4899 __FILE__, __LINE__ );
4905 error(yyloc, message);
4910 linker->registerUnresolvedInstance(
4911 viewNameSpec, instance );
4913 instance->setParent(ctx->getCurrentView());
4914 ctx->getCurrentView()->addInstance(instance);
4915 log(
"Instance for lib %s, cell %s, view %s\n",
4916 libraryName.c_str(), cellName.c_str(),
4918 log(
"Added instance to view %s \n",
4919 ctx->getCurrentView()->getName().c_str());
4923 = instance->getParameterContext();
4925 std::vector<ParamAssignInfo *>::iterator it
4926 = info->mParamAssign.begin();
4927 std::vector<ParamAssignInfo *>::iterator end
4928 = info->mParamAssign.end();
4929 for(; it != end; ++it )
4932 chkP = instance->getParameters()->get(
4938 "Can only override existing params");
4939 log(
"%s\n", message.c_str());
4941 __FUNCTION__, __FILE__, __LINE__ );
4947 error(yyloc, message);
4951 != chkP->getSize() )
4955 "Params size mismatch : %d with %d",
4958 log(
"%s\n", message.c_str());
4960 __FUNCTION__, __FILE__, __LINE__ );
4966 error(yyloc, message);
4971 != chkP->getValue().getType() )
4974 = constructErrorMessage(
4975 "Type mismatch during assignment for param %s",
4977 log(
"%s\n", message.c_str());
4979 __FUNCTION__, __FILE__, __LINE__ );
4985 error(yyloc, message);
4989 AssignedParamCreator creator(
4990 instance, instance->getParameterContext(),
4991 instance->getParameters(), ctx->getFactory(),
5001 chkP->accept(creator);
5006 "Unable to assign param: %s",
5007 chkP->getName().c_str());
5008 log(
"%s\n", message.c_str());
5010 __FILE__, __LINE__ );
5016 error(yyloc, message);
5019 log(
"Param %s overridden at context %lu\n",
5022 ctx->setIsInInstance(
false);
5026 std::vector<PropertySharedPtr> props;
5028 = ctx->getCurrentProperty();
5031 props.push_back(property);
5033 property = ctx->getCurrentProperty();
5035 for( std::vector<PropertySharedPtr>::reverse_iterator
5036 it = props.rbegin(); it != props.rend(); ++it )
5039 instance->setProperty(
5040 property->getName(), property );
5044 for( std::vector<PortInstData *>::iterator it
5045 = info->mPortInst.begin();
5046 it != info->mPortInst.end(); ++it )
5049 std::vector< std::string > nestedNames;
5054 nestedNames.push_back(
5058 currPortRef = nextPortRef;
5065 = instance->findPortReference(topName);
5069 "No port ref %s found",
5070 portNameData->
mName.c_str());
5071 log(
"%s\n", message.c_str());
5073 __FUNCTION__, __FILE__, __LINE__ );
5079 error(yyloc, message);
5084 connectibleFinder(nestedNames, portRef);
5087 portRef = portRef->get(
5090 portRef->setAttributes(
5097 "Unable to connect port ref : %s",
5098 portRef->getName().c_str());
5099 log(
"%s\n", message.c_str());
5101 __FILE__, __LINE__ );
5107 error(yyloc, message);
5112 for( std::vector< std::string >::iterator it
5113 = info->mUserData.begin();
5114 it != info->mUserData.end(); ++it )
5117 instance->addUserData(val);
5120 for( std::vector< std::string >::iterator it
5121 = info->mComment.begin();
5122 it != info->mComment.end(); ++it )
5125 instance->addComment(val);
5128 instance->setDesignator(info->mDesignator);
5131 instance->setTiming(info->mTiming);
5141 #line 3576 "Parser.yy"
5144 (yyval.instanceInfo)->mViewRefData = (
yysemantic_stack_[(1) - (1)].viewRefData);
5151 #line 3581 "Parser.yy"
5153 (yyval.instanceInfo) = NULL;
5160 #line 3585 "Parser.yy"
5169 #line 3589 "Parser.yy"
5172 (yyval.instanceInfo)->mParamAssign.push_back((
yysemantic_stack_[(2) - (2)].paramAssignInfo));
5179 #line 3594 "Parser.yy"
5182 (yyval.instanceInfo)->mPortInst.push_back((
yysemantic_stack_[(2) - (2)].portInst));
5189 #line 3599 "Parser.yy"
5195 = ctx->getCurrentTiming();
5196 (yyval.instanceInfo)->mTiming = timing;
5203 #line 3608 "Parser.yy"
5213 #line 3613 "Parser.yy"
5222 #line 3617 "Parser.yy"
5225 (yyval.instanceInfo)->mComment.push_back(*(
yysemantic_stack_[(2) - (2)].stringVal));
5232 #line 3622 "Parser.yy"
5235 (yyval.instanceInfo)->mUserData.push_back(*(
yysemantic_stack_[(2) - (2)].stringVal));
5242 #line 3636 "Parser.yy"
5252 #line 3643 "Parser.yy"
5254 (yyval.instanceRef) = NULL;
5261 #line 3647 "Parser.yy"
5263 (yyval.instanceRef) = NULL;
5270 #line 3651 "Parser.yy"
5280 #line 3665 "Parser.yy"
5289 #line 3684 "Parser.yy"
5298 #line 3688 "Parser.yy"
5307 #line 3706 "Parser.yy"
5316 #line 3712 "Parser.yy"
5325 #line 3716 "Parser.yy"
5334 #line 3722 "Parser.yy"
5340 (yyval.valueData)->mValues.push_back(
Value(
5353 #line 3738 "Parser.yy"
5355 (yyval.valueData) = NULL;
5362 #line 3742 "Parser.yy"
5365 (yyval.valueData)->mValues.push_back(
Value(
5373 #line 3748 "Parser.yy"
5376 (yyval.valueData)->mValues.push_back(
Value(
5384 #line 3754 "Parser.yy"
5390 (yyval.valueData)->mValues.begin(), (yyval.valueData)->mValues.end() );
5400 #line 3767 "Parser.yy"
5402 (yyval.interfaceAttributes) = (
yysemantic_stack_[(4) - (3)].interfaceAttributes);
5409 #line 3773 "Parser.yy"
5411 (yyval.interfaceAttributes) = NULL;
5418 #line 3777 "Parser.yy"
5420 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5427 #line 3781 "Parser.yy"
5429 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5436 #line 3785 "Parser.yy"
5438 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5445 #line 3789 "Parser.yy"
5447 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5454 #line 3793 "Parser.yy"
5456 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5463 #line 3797 "Parser.yy"
5465 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5472 #line 3801 "Parser.yy"
5474 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5481 #line 3805 "Parser.yy"
5483 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5490 #line 3809 "Parser.yy"
5492 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5499 #line 3813 "Parser.yy"
5501 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5508 #line 3817 "Parser.yy"
5514 = ctx->getCurrentTiming();
5515 (yyval.interfaceAttributes)->setTiming(timing);
5523 #line 3827 "Parser.yy"
5529 = ctx->getCurrentSimulate();
5530 (yyval.interfaceAttributes)->setSimulate(simulate);
5538 #line 3837 "Parser.yy"
5541 (yyval.interfaceAttributes)->setDesignator(*(
yysemantic_stack_[(2) - (2)].stringVal));
5548 #line 3842 "Parser.yy"
5550 (yyval.interfaceAttributes) = (
yysemantic_stack_[(2) - (1)].interfaceAttributes);
5557 #line 3846 "Parser.yy"
5560 (yyval.interfaceAttributes)->addComment(*(
yysemantic_stack_[(2) - (2)].stringVal));
5567 #line 3851 "Parser.yy"
5570 (yyval.interfaceAttributes)->addUserData(*(
yysemantic_stack_[(2) - (2)].stringVal));
5578 #line 3864 "Parser.yy"
5587 #line 3868 "Parser.yy"
5596 #line 3888 "Parser.yy"
5605 #line 3892 "Parser.yy"
5614 #line 3908 "Parser.yy"
5621 ctx->getFactory()->create(joinedInfo);
5622 joinedInfo->setJoinedType(
5628 "Unable to create joined info" );
5629 log(
"%s\n", message.c_str());
5631 __FILE__, __LINE__ );
5637 error(yyloc, message);
5640 if(ctx->getInterfaceJoinedInfoDepth() == 0 )
5642 ctx->getCurrentView()->addInterfaceJoinedInfo(joinedInfo);
5644 ctx->pushInterfaceJoinedInfo(joinedInfo);
5645 ctx->incrementInterfaceJoinedInfoDepth();
5652 #line 3940 "Parser.yy"
5656 = ctx->getCurrentInterfaceJoinedInfo();
5657 ctx->popInterfaceJoinedInfo();
5659 if(ctx->getInterfaceJoinedInfoDepth() > 1 )
5661 parentJoinedInfo = ctx->getCurrentInterfaceJoinedInfo();
5663 ctx->decrementInterfaceJoinedInfoDepth();
5664 if(parentJoinedInfo)
5666 parentJoinedInfo->setRelationType(
5668 currentJoinedInfo->setRelationType(
5671 size_t parentJoinedInfoSize = parentJoinedInfo->getSize();
5672 size_t currentJoinedInfoSize = currentJoinedInfo->getSize();
5674 log(
"Parent joined info Size :: %d\n",
5675 parentJoinedInfoSize );
5676 log(
"Current joined info Size :: %d\n",
5677 currentJoinedInfoSize );
5682 std::vector< InterfaceJoinedInfoSharedPtr > outJoinedInfos;
5683 parentJoinedInfo->getChildren(outJoinedInfos);
5685 std::list< PortSharedPtr > outPorts;
5686 parentJoinedInfo->getPorts(outPorts);
5688 std::list< PortListSharedPtr > outPortLists;
5689 parentJoinedInfo->getPortLists(outPortLists);
5691 if(parentJoinedInfoSize != 0)
5693 if( parentJoinedInfoSize
5694 == currentJoinedInfoSize )
5696 parentJoinedInfo->addChildJoinedInfo(
5697 currentJoinedInfo );
5702 "Child joined info can't be added, port size mismatch %d with %d",
5703 parentJoinedInfoSize,
5704 currentJoinedInfoSize);
5705 log(
"%s\n", message.c_str());
5707 __FUNCTION__, __FILE__, __LINE__ );
5713 error(yyloc, message);
5719 parentJoinedInfo->addChildJoinedInfo(
5720 currentJoinedInfo );
5725 ctx->pushInterfaceJoinedInfo(currentJoinedInfo);
5733 #line 4019 "Parser.yy"
5735 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
5744 std::vector< std::string > nestedNames;
5748 currPortRef = nextPortRef;
5760 "No port %s found in view %s\n",
5762 view->getName().c_str());
5763 log(
"%s\n", message.c_str());
5765 __FUNCTION__, __FILE__, __LINE__ );
5771 error(yyloc, message);
5776 = ctx->getCurrentInterfaceJoinedInfo();
5779 connectibleFinder(nestedNames, port);
5785 std::list< PortSharedPtr > outPorts;
5786 currentJoinedInfo->getPorts(outPorts);
5788 if(!outPorts.empty())
5791 std::list< PortSharedPtr >::iterator it
5792 = std::find(outPorts.begin(), outPorts.end(),
5794 if(it != outPorts.end())
5797 "Port %s already exist in joined info",
5798 port->getName().c_str() );
5799 log(
"%s\n", message.c_str());
5801 __FUNCTION__, __FILE__, __LINE__ );
5807 error(yyloc, message);
5812 if(firstPort->getSize() == port->getSize())
5814 currentJoinedInfo->addPort(port);
5819 "Port %s can't be added, port size mismatch %d with %d",
5821 firstPort->getSize(),
5823 log(
"%s\n", message.c_str());
5825 __FUNCTION__, __FILE__, __LINE__ );
5831 error(yyloc, message);
5838 currentJoinedInfo->addPort(port);
5844 __FUNCTION__, __FILE__, __LINE__ );
5857 #line 4138 "Parser.yy"
5861 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
5866 ctx->getFactory()->create(portList);
5869 = ctx->getCurrentInterfaceJoinedInfo();
5871 for( std::vector<PortRefData *>::iterator it
5872 = portListData->mPortRefs.begin();
5873 it != portListData->mPortRefs.end(); ++it )
5876 std::vector< std::string > nestedNames;
5882 currPortRef = nextPortRef;
5896 "No port %s found in view %s\n",
5897 portNameData->
mName.c_str(),
5898 view->getName().c_str());
5899 log(
"%s\n", message.c_str());
5901 __FUNCTION__, __FILE__, __LINE__ );
5907 error(yyloc, message);
5913 connectibleFinder(nestedNames, port);
5918 portList->addChildPort(port);
5923 "Unable to connect port : %s",
5924 port->getName().c_str());
5925 log(
"%s\n", message.c_str());
5927 __FILE__, __LINE__ );
5933 error(yyloc, message);
5941 if(currentJoinedInfo->getSize() == portList->getSize())
5943 currentJoinedInfo->addPortList(portList);
5948 "Port size mismatch %d with %d",
5949 currentJoinedInfo->getSize(),
5950 portList->getSize());
5951 log(
"%s\n", message.c_str());
5953 __FUNCTION__, __FILE__, __LINE__ );
5959 error(yyloc, message);
5969 #line 4251 "Parser.yy"
5972 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
5975 connectElementToNet(
5982 __FUNCTION__, __FILE__, __LINE__ );
5984 error(yyloc, message);
5993 #line 4270 "Parser.yy"
5997 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
6002 for( std::vector<PortRefData *>::iterator it
6003 = portListData->mPortRefs.begin();
6004 it != portListData->mPortRefs.end(); ++it )
6007 std::vector< std::string > nestedNames;
6013 currPortRef = nextPortRef;
6028 portNameData->
mName.c_str());
6029 log(
"%s\n", message.c_str());
6031 __FUNCTION__, __FILE__, __LINE__ );
6037 error(yyloc, message);
6042 connectibleFinder(nestedNames, port);
6047 portList->addChildPort(port);
6052 "Unable to connect port : %s",
6053 port->getName().c_str());
6054 log(
"%s\n", message.c_str());
6056 __FILE__, __LINE__ );
6062 error(yyloc, message);
6071 = view->findInstance(
6072 instanceName->
mName );
6076 "Instance %s not known",
6077 instanceName->
mName.c_str() );
6078 log(
"%s\n", message.c_str());
6080 __FUNCTION__, __FILE__, __LINE__ );
6086 error(yyloc, message);
6089 if(!instanceName->
mIndices.empty())
6092 = instance->get(instanceName->
mIndices);
6096 = instance->findPortReference(topName);
6100 "No port ref %s found",
6101 portNameData->
mName.c_str());
6102 log(
"%s\n", message.c_str());
6104 __FUNCTION__, __FILE__, __LINE__ );
6110 error(yyloc, message);
6115 connectibleFinder(nestedNames, portRef);
6118 portRef = portRef->get(
6121 portList->addChildPortReference(portRef);
6126 "Unable to connect port ref : %s",
6127 portRef->getName().c_str());
6128 log(
"%s\n", message.c_str());
6130 __FILE__, __LINE__ );
6136 error(yyloc, message);
6143 portList->connect(ctx->getCurrentNet());
6148 __FUNCTION__, __FILE__, __LINE__ );
6150 error(yyloc, message);
6160 #line 4432 "Parser.yy"
6162 boost::scoped_ptr<NameData> globPortRef((
yysemantic_stack_[(2) - (2)].nameData));
6168 size_t netSize = net->getSize();
6179 "Unable to connect port : %s",
6180 port->getName().c_str());
6181 log(
"%s\n", message.c_str());
6183 __FILE__, __LINE__ );
6189 error(yyloc, message);
6193 std::vector< InstanceSharedPtr > leafInstances;
6195 std::vector< InstanceSharedPtr > instances;
6196 view->getInstances(instances);
6197 for( std::vector< InstanceSharedPtr >::iterator it
6198 = instances.begin(); it != instances.end(); ++it )
6201 == (*it)->getCompositionType() )
6203 leafInstances.push_back(*it);
6207 (*it)->getChildren(leafInstances);
6211 for( std::vector< InstanceSharedPtr >::iterator it
6212 = leafInstances.begin(); it != leafInstances.end(); ++it )
6215 = (*it)->findPortReference(name);
6217 && netSize == pRef->getSize() )
6226 "Unable to connect port : %s",
6227 pRef->getName().c_str());
6228 log(
"%s\n", message.c_str());
6230 __FILE__, __LINE__ );
6236 error(yyloc, message);
6247 #line 4537 "Parser.yy"
6256 #line 4547 "Parser.yy"
6265 #line 4553 "Parser.yy"
6274 #line 4562 "Parser.yy"
6283 #line 4574 "Parser.yy"
6292 #line 4580 "Parser.yy"
6305 log(
"Skipped creation of existing lib.\n");
6329 log(
"%s\n", message.c_str());
6331 __FUNCTION__, __FILE__, __LINE__ );
6337 error(yyloc, message);
6343 if(lib->getLevel() != level)
6346 "Level mismatch - old %d new %d\n",
6347 lib->getLevel(), level );
6348 log(
"%s\n", message.c_str());
6350 __FUNCTION__, __FILE__, __LINE__ );
6356 error(yyloc, message);
6361 if(lib->getIsExtern())
6363 log(
"Exising lib was extern .. changing\n");
6364 lib->setIsExtern(
false);
6372 ctx->getFactory()->create(lib);
6377 "Unable to create lib : %s",
6378 lib->getName().c_str());
6379 log(
"%s\n", message.c_str());
6381 __FILE__, __LINE__ );
6387 error(yyloc, message);
6395 lib->setLevel(level);
6396 lib->setParent(root);
6397 root->addLibrary(lib);
6398 log(
"Created lib %s level %d\n",
6399 lib->getName().c_str(), level );
6401 ctx->setCurrentLibrary(lib);
6402 ctx->pushStatusContainer(lib);
6415 #line 4697 "Parser.yy"
6426 #line 4708 "Parser.yy"
6438 #line 4715 "Parser.yy"
6450 #line 4727 "Parser.yy"
6459 #line 4748 "Parser.yy"
6465 (yyval.portDelay)->setDelay(
6467 (yyval.portDelay)->setAcLoad(
6475 #line 4780 "Parser.yy"
6484 #line 4792 "Parser.yy"
6491 ctx->getFactory()->create(logicalResponse);
6496 "Unable to create logicInput/logicOutput" );
6497 log(
"%s\n", message.c_str());
6499 __FILE__, __LINE__ );
6505 error(yyloc, message);
6509 ctx->setCurrentLogicalResponse(logicalResponse);
6511 = ctx->getCurrentApply();
6512 apply->addLogicResponse(logicalResponse);
6519 #line 4821 "Parser.yy"
6529 #line 4832 "Parser.yy"
6533 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(1) - (1)].portListData));
6538 = ctx->getCurrentLogicalResponse();
6541 ctx->getFactory()->create(portList);
6543 for( std::vector<PortRefData *>::iterator it
6544 = portListData->mPortRefs.begin();
6545 it != portListData->mPortRefs.end(); ++it )
6548 std::vector< std::string > nestedNames;
6554 currPortRef = nextPortRef;
6568 = ctx->getCurrentSimulate();
6570 = simulate->findPortListAlias(topName);
6574 "No port %s found in view/portListAlias\n",
6575 portNameData->
mName.c_str());
6576 log(
"%s\n", message.c_str());
6578 __FUNCTION__, __FILE__, __LINE__ );
6584 error(yyloc, message);
6591 connectibleFinder(nestedNames, port);
6596 portList->addChildPort(port);
6601 "Unable to connect port : %s",
6602 port->getName().c_str());
6603 log(
"%s\n", message.c_str());
6605 __FILE__, __LINE__ );
6611 error(yyloc, message);
6619 logicalResponse->setConnectedPortList(portList);
6627 #line 4925 "Parser.yy"
6629 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(1) - (1)].portRefData));
6638 std::vector< std::string > nestedNames;
6642 currPortRef = nextPortRef;
6655 "No port %s found in view %s\n",
6657 view->getName().c_str());
6658 log(
"%s\n", message.c_str());
6660 __FUNCTION__, __FILE__, __LINE__ );
6666 error(yyloc, message);
6671 = ctx->getCurrentLogicalResponse();
6674 connectibleFinder(nestedNames, port);
6679 logicalResponse->setConnectedPort(port);
6684 __FUNCTION__, __FILE__, __LINE__ );
6694 #line 4987 "Parser.yy"
6703 = ctx->getCurrentLogicalResponse();
6707 = ctx->getCurrentSimulate();
6709 = simulate->findPortListAlias(name);
6713 "No port %s found in view/portListAlias\n",
6715 log(
"%s\n", message.c_str());
6717 __FUNCTION__, __FILE__, __LINE__ );
6723 error(yyloc, message);
6728 logicalResponse->setConnectedPortListAlias(portListAlias);
6733 logicalResponse->setConnectedPort(port);
6741 #line 5031 "Parser.yy"
6748 ctx->getFactory()->create(logicElem);
6754 "Unable to create logicList" );
6755 log(
"%s\n", message.c_str());
6757 __FILE__, __LINE__ );
6763 error(yyloc, message);
6766 ctx->pushLogicElement(logicElem);
6767 ctx->incrementLogicElementDepth();
6774 #line 5058 "Parser.yy"
6778 = ctx->getCurrentLogicElement();
6779 ctx->popLogicElement();
6781 if(ctx->getLogicElementDepth() > 1 )
6783 parentLogicElem = ctx->getCurrentLogicElement();
6785 ctx->decrementLogicElementDepth();
6788 parentLogicElem->setRelationType(
6790 currentLogicElem->setRelationType(
6793 size_t parentLogicElemSize = parentLogicElem->getSize();
6794 size_t currentLogicElemSize = currentLogicElem->getSize();
6796 log(
"Parent LogicList Size :: %d\n",
6797 parentLogicElemSize);
6798 log(
"Current LogicList Size :: %d\n",
6799 currentLogicElemSize);
6804 if(parentLogicElemSize != 0)
6806 if(parentLogicElemSize == currentLogicElemSize)
6808 parentLogicElem->addChildLogicElement(currentLogicElem);
6813 "Child logicList can't be added, size mismatch %d with %d",
6814 parentLogicElemSize,
6815 currentLogicElemSize);
6816 log(
"%s\n", message.c_str());
6818 __FUNCTION__, __FILE__, __LINE__ );
6824 error(yyloc, message);
6830 parentLogicElem->addChildLogicElement(currentLogicElem);
6835 ctx->pushLogicElement(currentLogicElem);
6836 ctx->incrementLogicElementDepth();
6844 #line 5131 "Parser.yy"
6853 #line 5137 "Parser.yy"
6862 #line 5146 "Parser.yy"
6871 #line 5155 "Parser.yy"
6878 ctx->getFactory()->create(logicElem);
6884 "Unable to create logicOneOf" );
6885 log(
"%s\n", message.c_str());
6887 __FILE__, __LINE__ );
6893 error(yyloc, message);
6896 ctx->pushLogicElement(logicElem);
6897 ctx->incrementLogicElementDepth();
6904 #line 5182 "Parser.yy"
6908 = ctx->getCurrentLogicElement();
6909 ctx->popLogicElement();
6911 if(ctx->getLogicElementDepth() > 1 )
6913 parentLogicElem = ctx->getCurrentLogicElement();
6915 ctx->decrementLogicElementDepth();
6918 parentLogicElem->setRelationType(
6920 currentLogicElem->setRelationType(
6923 size_t parentLogicElemSize = parentLogicElem->getSize();
6924 size_t currentLogicElemSize = currentLogicElem->getSize();
6926 log(
"Parent LogicOneOf Size :: %d\n",
6927 parentLogicElemSize);
6928 log(
"Current LogicOneOf Size :: %d\n",
6929 currentLogicElemSize);
6934 if(parentLogicElemSize != 0)
6936 if(parentLogicElemSize == currentLogicElemSize)
6938 parentLogicElem->addChildLogicElement(currentLogicElem);
6943 "Child logictOneOf can't be added, size mismatch %d with %d",
6944 parentLogicElemSize,
6945 currentLogicElemSize);
6946 log(
"%s\n", message.c_str());
6948 __FUNCTION__, __FILE__, __LINE__ );
6954 error(yyloc, message);
6960 parentLogicElem->addChildLogicElement(currentLogicElem);
6965 ctx->pushLogicElement(currentLogicElem);
6966 ctx->incrementLogicElementDepth();
6974 #line 5249 "Parser.yy"
6981 = ctx->getCurrentLibrary();
6983 = lib->getSimulationInfo();
6987 "SimulatioInfo not found in %s library",
6988 lib->getName().c_str() );
6989 log(
"%s\n", message.c_str());
6991 __FUNCTION__, __FILE__, __LINE__ );
6997 error(yyloc, message);
7001 = simuInfo->findLogicValue(name);
7005 = ctx->getCurrentSimulate();
7009 = simulate->findWaveValue(name);
7013 "Wave Value %s not found",
7014 logicData->mName.c_str() );
7015 log(
"%s\n", message.c_str());
7017 __FUNCTION__, __FILE__, __LINE__ );
7023 error(yyloc, message);
7030 "Logic Value %s not found",
7032 log(
"%s\n", message.c_str());
7034 __FUNCTION__, __FILE__, __LINE__ );
7040 error(yyloc, message);
7047 ctx->getFactory()->create(singleElem);
7049 singleElem->setName(name);
7054 "Unable to create logic single element" );
7055 log(
"%s\n", message.c_str());
7057 __FILE__, __LINE__ );
7063 error(yyloc, message);
7067 = ctx->getCurrentLogicElement();
7068 logicElem->addChildLogicElement(singleElem);
7075 #line 5352 "Parser.yy"
7082 ctx->getFactory()->create(logicalResponse);
7087 "Unable to create logicOutput" );
7088 log(
"%s\n", message.c_str());
7090 __FILE__, __LINE__ );
7096 error(yyloc, message);
7100 ctx->setCurrentLogicalResponse(logicalResponse);
7102 = ctx->getCurrentApply();
7103 apply->addLogicResponse(logicalResponse);
7110 #line 5381 "Parser.yy"
7120 #line 5397 "Parser.yy"
7129 #line 5401 "Parser.yy"
7138 #line 5407 "Parser.yy"
7155 #line 5421 "Parser.yy"
7157 (yyval.logicRefData) = NULL;
7164 #line 5425 "Parser.yy"
7174 #line 5432 "Parser.yy"
7181 = ctx->getCurrentSimulationInfo();
7182 logicVal = simuInfo->findLogicValue(name);
7185 log(
"Found existing logic value\n");
7187 "Logic value %s already exists in simulation info\n",
7189 log(
"%s\n", message.c_str());
7191 __FUNCTION__, __FILE__, __LINE__ );
7197 error(yyloc, message);
7204 ctx->getFactory()->create(logicVal);
7209 "Unable to create Logic Value : %s", name.c_str());
7210 log(
"%s\n", message.c_str());
7212 __FILE__, __LINE__ );
7218 error(yyloc, message);
7221 logicVal->setName(name);
7222 if(!nameData->mOriginalName.empty())
7224 logicVal->setOriginalName(nameData->mOriginalName);
7226 logicVal->setParent(simuInfo);
7227 simuInfo->addLogicValue(logicVal);
7228 log(
"Created Logic Value %s\n", logicVal->getName().c_str());
7230 ctx->setCurrentLogicValue(logicVal);
7231 ctx->pushPropertyContainer(logicVal);
7238 #line 5490 "Parser.yy"
7244 boost::shared_ptr<LogicValueAttributes> attrib((
yysemantic_stack_[(6) - (5)].logicValueAttributes));
7245 logicVal->setAttributes(attrib);
7248 ctx->popPropertyContainer();
7255 #line 5504 "Parser.yy"
7257 (yyval.logicValueAttributes) = NULL;
7264 #line 5508 "Parser.yy"
7268 (yyval.logicValueAttributes)->setVoltageMap(data->mValues[0].get<
Value::MiNoMax>());
7275 #line 5514 "Parser.yy"
7279 (yyval.logicValueAttributes)->setCurrentMap(data->mValues[0].get<
Value::MiNoMax>());
7286 #line 5520 "Parser.yy"
7290 (yyval.logicValueAttributes)->setBooleanMap(val);
7297 #line 5526 "Parser.yy"
7300 std::list< LogicValueSharedPtr > logicValues;
7301 boost::scoped_ptr<LogicListData> logicListData((
yysemantic_stack_[(2) - (2)].logicListData));
7304 for( std::list<NameData *>::iterator it
7305 = logicListData->mNameDataList.begin();
7306 it != logicListData->mNameDataList.end(); it++ )
7313 = ctx->getCurrentSimulationInfo();
7314 logicVal = simuInfo->findLogicValue(name);
7318 "Logic Value %s not found",
7320 log(
"%s\n", message.c_str());
7322 __FUNCTION__, __FILE__, __LINE__ );
7328 error(yyloc, message);
7333 if(!logicValues.empty())
7335 std::list< LogicValueSharedPtr >::iterator logicIt
7336 = std::find(logicValues.begin(), logicValues.end(), logicVal);
7337 if(logicIt != logicValues.end())
7340 "Logic value %s already exist in compound list",
7342 log(
"%s\n", message.c_str());
7344 __FUNCTION__, __FILE__, __LINE__ );
7350 error(yyloc, message);
7355 logicValues.push_back(logicVal);
7360 logicValues.push_back(logicVal);
7364 (yyval.logicValueAttributes)->setCompoundLogicValues(logicValues);
7372 #line 5596 "Parser.yy"
7379 = ctx->getCurrentSimulationInfo();
7380 logicVal = simuInfo->findLogicValue(name);
7384 "Logic Value %s not found",
7386 log(
"%s\n", message.c_str());
7388 __FUNCTION__, __FILE__, __LINE__ );
7394 error(yyloc, message);
7400 (yyval.logicValueAttributes)->setWeakLogicValue(logicVal);
7408 #line 5627 "Parser.yy"
7415 = ctx->getCurrentSimulationInfo();
7416 logicVal = simuInfo->findLogicValue(name);
7420 "Logic Value %s not found",
7422 log(
"%s\n", message.c_str());
7424 __FUNCTION__, __FILE__, __LINE__ );
7430 error(yyloc, message);
7436 (yyval.logicValueAttributes)->setStrongLogicValue(logicVal);
7444 #line 5658 "Parser.yy"
7447 std::list< LogicValueSharedPtr > logicValues;
7448 boost::scoped_ptr<LogicListData> logicListData((
yysemantic_stack_[(2) - (2)].logicListData));
7451 for( std::list<NameData *>::iterator it
7452 = logicListData->mNameDataList.begin();
7453 it != logicListData->mNameDataList.end(); it++ )
7460 = ctx->getCurrentSimulationInfo();
7461 logicVal = simuInfo->findLogicValue(name);
7465 "Logic Value %s not found",
7467 log(
"%s\n", message.c_str());
7469 __FUNCTION__, __FILE__, __LINE__ );
7475 error(yyloc, message);
7480 if(!logicValues.empty())
7482 std::list< LogicValueSharedPtr >::iterator logicIt
7483 = std::find(logicValues.begin(), logicValues.end(), logicVal);
7484 if(logicIt != logicValues.end())
7487 "Logic value %s already exist in dominates list",
7489 log(
"%s\n", message.c_str());
7491 __FUNCTION__, __FILE__, __LINE__ );
7497 error(yyloc, message);
7502 logicValues.push_back(logicVal);
7507 logicValues.push_back(logicVal);
7511 (yyval.logicValueAttributes)->setDominatedLogicValues(logicValues);
7519 #line 5728 "Parser.yy"
7522 boost::scoped_ptr<LogicRefData> logicRefData((
yysemantic_stack_[(2) - (2)].logicRefData));
7523 std::string logicValName = logicRefData->mLogicName->mName;
7525 bool isLocalLib = (NULL == logicRefData->mLibraryName);
7528 libName = ctx->getCurrentLibrary()->getName();
7532 libName = logicRefData->mLibraryName->mName;
7535 = ctx->getRoot()->findLibrary(libName) ;
7539 "Library %s not found",
7541 log(
"%s\n", message.c_str());
7543 __FUNCTION__, __FILE__, __LINE__ );
7549 error(yyloc, message);
7554 = library->getSimulationInfo();
7558 "SimulatioInfo not found in %s library",
7559 library->getName().c_str() );
7560 log(
"%s\n", message.c_str());
7562 __FUNCTION__, __FILE__, __LINE__ );
7568 error(yyloc, message);
7571 logicVal = simuInfo->findLogicValue(logicValName);
7575 "Logic Value %s not found",
7576 logicValName.c_str() );
7577 log(
"%s\n", message.c_str());
7579 __FUNCTION__, __FILE__, __LINE__ );
7585 error(yyloc, message);
7597 (yyval.logicValueAttributes)->addLogicMap(logicMap);
7605 #line 5809 "Parser.yy"
7608 boost::scoped_ptr<LogicRefData> logicRefData((
yysemantic_stack_[(2) - (2)].logicRefData));
7609 std::string logicValName = logicRefData->mLogicName->mName;
7611 bool isLocalLib = (NULL == logicRefData->mLibraryName);
7614 libName = ctx->getCurrentLibrary()->getName();
7618 libName = logicRefData->mLibraryName->mName;
7621 = ctx->getRoot()->findLibrary(libName) ;
7625 "Library %s not found",
7627 log(
"%s\n", message.c_str());
7629 __FUNCTION__, __FILE__, __LINE__ );
7635 error(yyloc, message);
7640 = library->getSimulationInfo();
7644 "SimulatioInfo not found in %s library",
7645 library->getName().c_str() );
7646 log(
"%s\n", message.c_str());
7648 __FUNCTION__, __FILE__, __LINE__ );
7654 error(yyloc, message);
7657 logicVal = simuInfo->findLogicValue(logicValName);
7661 "Logic Value %s not found",
7662 logicValName.c_str() );
7663 log(
"%s\n", message.c_str());
7665 __FUNCTION__, __FILE__, __LINE__ );
7671 error(yyloc, message);
7683 (yyval.logicValueAttributes)->addLogicMap(logicMap);
7691 #line 5890 "Parser.yy"
7694 (yyval.logicValueAttributes)->setIsIsolated(
true);
7701 #line 5895 "Parser.yy"
7704 std::list< LogicValueSharedPtr > logicValues;
7705 boost::scoped_ptr<LogicListData> logicListData((
yysemantic_stack_[(2) - (2)].logicListData));
7708 for( std::list<NameData *>::iterator it
7709 = logicListData->mNameDataList.begin();
7710 it != logicListData->mNameDataList.end(); it++ )
7717 = ctx->getCurrentSimulationInfo();
7718 logicVal = simuInfo->findLogicValue(name);
7722 "Logic Value %s not found",
7724 log(
"%s\n", message.c_str());
7726 __FUNCTION__, __FILE__, __LINE__ );
7732 error(yyloc, message);
7737 if(!logicValues.empty())
7739 std::list< LogicValueSharedPtr >::iterator logicIt
7740 = std::find(logicValues.begin(), logicValues.end(), logicVal);
7741 if(logicIt != logicValues.end())
7744 "Logic value %s already exist in resolve list",
7746 log(
"%s\n", message.c_str());
7748 __FUNCTION__, __FILE__, __LINE__ );
7754 error(yyloc, message);
7759 logicValues.push_back(logicVal);
7764 logicValues.push_back(logicVal);
7768 (yyval.logicValueAttributes)->setResolvedLogicValues(logicValues);
7776 #line 5965 "Parser.yy"
7778 (yyval.logicValueAttributes) = (
yysemantic_stack_[(2) - (1)].logicValueAttributes);
7785 #line 5969 "Parser.yy"
7787 (yyval.logicValueAttributes) = (
yysemantic_stack_[(2) - (1)].logicValueAttributes);
7798 #line 5977 "Parser.yy"
7800 (yyval.logicValueAttributes) = (
yysemantic_stack_[(2) - (1)].logicValueAttributes);
7811 #line 5987 "Parser.yy"
7818 ctx->getFactory()->create(logicElem);
7824 "Unable to create logicWaveForm" );
7825 log(
"%s\n", message.c_str());
7827 __FILE__, __LINE__ );
7833 error(yyloc, message);
7836 if(ctx->getLogicElementDepth() == 0 )
7839 = ctx->getCurrentLogicalResponse();
7842 logicalResponse->setLogicWaveForm(logicElem);
7846 = ctx->getCurrentWaveValue();
7849 waveValue->setLogicWaveform(logicElem);
7852 ctx->pushLogicElement(logicElem);
7853 ctx->incrementLogicElementDepth();
7860 #line 6030 "Parser.yy"
7864 = ctx->getCurrentLogicElement();
7865 ctx->popLogicElement();
7867 if(ctx->getLogicElementDepth() > 1 )
7869 parentLogicElem = ctx->getCurrentLogicElement();
7871 ctx->decrementLogicElementDepth();
7874 parentLogicElem->setRelationType(
7876 currentLogicElem->setRelationType(
7890 parentLogicElem->addChildLogicElement(currentLogicElem);
7894 ctx->pushLogicElement(currentLogicElem);
7902 #line 6101 "Parser.yy"
7905 (yyval.nameData)->mIndices.push_back((
yysemantic_stack_[(6) - (4)].integerVal));
7908 (yyval.nameData)->mIndices.insert((yyval.nameData)->mIndices.end(),
7918 #line 6114 "Parser.yy"
7920 (yyval.arrayDimensions) = NULL;
7927 #line 6121 "Parser.yy"
7937 #line 6129 "Parser.yy"
7946 #line 6135 "Parser.yy"
7951 (yyval.valueData)->mValues.push_back(
Value(
7964 #line 6150 "Parser.yy"
7966 (yyval.valueData) = NULL;
7973 #line 6154 "Parser.yy"
7976 (yyval.valueData)->mValues.push_back(
Value(
7986 #line 6162 "Parser.yy"
7989 (yyval.valueData)->mValues.push_back(
Value(
7999 #line 6170 "Parser.yy"
8005 (yyval.valueData)->mValues.begin(), (yyval.valueData)->mValues.end() );
8015 #line 6183 "Parser.yy"
8024 #line 6189 "Parser.yy"
8033 #line 6193 "Parser.yy"
8042 #line 6199 "Parser.yy"
8051 #line 6203 "Parser.yy"
8057 (yyval.valueData)->mValues.push_back(
8066 #line 6215 "Parser.yy"
8085 (yyval.valueData)->mValues.push_back(
8096 #line 6242 "Parser.yy"
8105 #line 6246 "Parser.yy"
8107 (yyval.pairData) = NULL;
8114 #line 6250 "Parser.yy"
8116 (yyval.pairData) = NULL;
8123 #line 6263 "Parser.yy"
8130 ctx->getFactory()->create(joinedInfo);
8131 joinedInfo->setJoinedType(
8137 "Unable to create must joined info" );
8138 log(
"%s\n", message.c_str());
8140 __FILE__, __LINE__ );
8146 error(yyloc, message);
8149 if(ctx->getInterfaceJoinedInfoDepth() == 0 )
8151 ctx->getCurrentView()->addInterfaceJoinedInfo(joinedInfo);
8153 ctx->pushInterfaceJoinedInfo(joinedInfo);
8154 ctx->incrementInterfaceJoinedInfoDepth();
8161 #line 6295 "Parser.yy"
8165 = ctx->getCurrentInterfaceJoinedInfo();
8166 ctx->popInterfaceJoinedInfo();
8168 if(ctx->getInterfaceJoinedInfoDepth() > 1 )
8170 parentJoinedInfo = ctx->getCurrentInterfaceJoinedInfo();
8172 ctx->decrementInterfaceJoinedInfoDepth();
8173 if(parentJoinedInfo)
8175 parentJoinedInfo->setRelationType(
8177 currentJoinedInfo->setRelationType(
8180 size_t parentJoinedInfoSize = parentJoinedInfo->getSize();
8181 size_t currentJoinedInfoSize = currentJoinedInfo->getSize();
8183 log(
"Parent joined info Size :: %d\n",
8184 parentJoinedInfoSize );
8185 log(
"Current joined info Size :: %d\n",
8186 currentJoinedInfoSize );
8191 std::vector< InterfaceJoinedInfoSharedPtr > outJoinedInfos;
8192 parentJoinedInfo->getChildren(outJoinedInfos);
8194 std::list< PortSharedPtr > outPorts;
8195 parentJoinedInfo->getPorts(outPorts);
8197 std::list< PortListSharedPtr > outPortLists;
8198 parentJoinedInfo->getPortLists(outPortLists);
8200 if(parentJoinedInfoSize != 0)
8202 if( parentJoinedInfoSize
8203 == currentJoinedInfoSize )
8205 parentJoinedInfo->addChildJoinedInfo(
8206 currentJoinedInfo );
8211 "Child joined info can't be added, port size mismatch %d with %d",
8212 parentJoinedInfoSize,
8213 currentJoinedInfoSize);
8214 log(
"%s\n", message.c_str());
8216 __FUNCTION__, __FILE__, __LINE__ );
8222 error(yyloc, message);
8228 parentJoinedInfo->addChildJoinedInfo(
8229 currentJoinedInfo );
8234 ctx->pushInterfaceJoinedInfo(currentJoinedInfo);
8242 #line 6374 "Parser.yy"
8244 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
8253 std::vector< std::string > nestedNames;
8257 currPortRef = nextPortRef;
8269 "No port %s found in view %s\n",
8271 view->getName().c_str());
8272 log(
"%s\n", message.c_str());
8274 __FUNCTION__, __FILE__, __LINE__ );
8280 error(yyloc, message);
8285 = ctx->getCurrentInterfaceJoinedInfo();
8288 connectibleFinder(nestedNames, port);
8294 std::list< PortSharedPtr > outPorts;
8295 currentJoinedInfo->getPorts(outPorts);
8297 if(!outPorts.empty())
8300 std::list< PortSharedPtr >::iterator it
8301 = std::find(outPorts.begin(), outPorts.end(),
8303 if(it != outPorts.end())
8306 "Port %s already exist in mustJoin info",
8307 port->getName().c_str() );
8308 log(
"%s\n", message.c_str());
8310 __FUNCTION__, __FILE__, __LINE__ );
8316 error(yyloc, message);
8321 if(firstPort->getSize() == port->getSize())
8323 currentJoinedInfo->addPort(port);
8328 "Port %s can't be added, port size mismatch %d with %d",
8330 firstPort->getSize(),
8332 log(
"%s\n", message.c_str());
8334 __FUNCTION__, __FILE__, __LINE__ );
8340 error(yyloc, message);
8347 currentJoinedInfo->addPort(port);
8353 __FUNCTION__, __FILE__, __LINE__ );
8366 #line 6493 "Parser.yy"
8370 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
8375 ctx->getFactory()->create(portList);
8378 = ctx->getCurrentInterfaceJoinedInfo();
8380 for( std::vector<PortRefData *>::iterator it
8381 = portListData->mPortRefs.begin();
8382 it != portListData->mPortRefs.end(); ++it )
8385 std::vector< std::string > nestedNames;
8391 currPortRef = nextPortRef;
8405 "No port %s found in view %s\n",
8406 portNameData->
mName.c_str(),
8407 view->getName().c_str());
8408 log(
"%s\n", message.c_str());
8410 __FUNCTION__, __FILE__, __LINE__ );
8416 error(yyloc, message);
8422 connectibleFinder(nestedNames, port);
8427 portList->addChildPort(port);
8432 "Unable to connect port : %s",
8433 port->getName().c_str());
8434 log(
"%s\n", message.c_str());
8436 __FILE__, __LINE__ );
8442 error(yyloc, message);
8450 if(currentJoinedInfo->getSize() == portList->getSize())
8452 currentJoinedInfo->addPortList(portList);
8457 "Port size mismatch %d with %d",
8458 currentJoinedInfo->getSize(),
8459 portList->getSize());
8460 log(
"%s\n", message.c_str());
8462 __FUNCTION__, __FILE__, __LINE__ );
8468 error(yyloc, message);
8478 #line 6604 "Parser.yy"
8487 #line 6610 "Parser.yy"
8498 #line 6619 "Parser.yy"
8507 #line 6623 "Parser.yy"
8516 #line 6627 "Parser.yy"
8525 #line 6633 "Parser.yy"
8536 #line 6639 "Parser.yy"
8545 #line 6643 "Parser.yy"
8554 #line 6649 "Parser.yy"
8565 #line 6655 "Parser.yy"
8574 #line 6661 "Parser.yy"
8585 #line 6667 "Parser.yy"
8594 #line 6673 "Parser.yy"
8602 = ctx->getCurrentNetBundleContext();
8603 bool bExistingNetFound =
false;
8606 typedef std::vector<NetSharedPtr > NBList;
8608 bundle->getChildren(children);
8609 for(NBList::iterator it = children.begin();
8610 it != children.end(); it++ )
8612 if((*it)->getName() == name)
8614 bExistingNetFound =
true;
8620 net = view->findNet(name);
8621 bExistingNetFound =
false;
8623 if(bExistingNetFound)
8626 "View %s already contains a net of name %s\n",
8627 view->getName().c_str(),
8628 net->getName().c_str() );
8629 log(
"%s\n", message.c_str());
8631 __FUNCTION__, __FILE__, __LINE__ );
8637 error(yyloc, message);
8647 ctx->getFactory()->create(vectorNet);
8648 vectorNet->setName(name);
8649 vectorNet->constructChildren(
8657 "Unable to create net : %s",
8658 net->getName().c_str());
8659 log(
"%s\n", message.c_str());
8661 __FILE__, __LINE__ );
8667 error(yyloc, message);
8676 ctx->getFactory()->create(scalarNet);
8683 "Unable to create net : %s",
8684 net->getName().c_str());
8685 log(
"%s\n", message.c_str());
8687 __FILE__, __LINE__ );
8693 error(yyloc, message);
8699 net->setOriginalName(
8705 net->setParentCollection(bundle);
8706 bundle->addChild(net);
8707 log(
"Added net to existing bundle\n");
8711 ctx->pushCurrentNet(net);
8713 ctx->popCurrentNet();
8718 parentNet->addSubnet(currentNet);
8719 printf(
"Current net %s ",
8720 net->getName().c_str() );
8725 net->setParent(view);
8731 log(
"Created scalar net %s ",
8732 net->getName().c_str() );
8736 log(
"Created vector net %s with dimensions ",
8737 net->getName().c_str() );
8738 for( std::vector<size_t>::const_iterator it
8740 it != pNameData->
mIndices.end(); ++it )
8747 ctx->pushCurrentNet(net);
8748 ctx->pushPropertyContainer(net);
8755 #line 6828 "Parser.yy"
8763 currentNet->setAttributes(attrib);
8765 ctx->popCurrentNet();
8769 = ctx->getCurrentNetBundleContext();
8774 parentNet->addSubnet(currentNet);
8778 currentNet->setParentCollection(bundle);
8779 bundle->addChild(currentNet);
8781 log(
"Added net to existing bundle\n");
8787 parentNet->addSubnet(currentNet);
8791 view->addNet(currentNet);
8792 currentNet->setParent(view);
8802 #line 6872 "Parser.yy"
8804 (yyval.netAttributes) = NULL;
8811 #line 6876 "Parser.yy"
8814 (yyval.netAttributes)->setCriticality((
yysemantic_stack_[(2) - (2)].integerVal));
8821 #line 6881 "Parser.yy"
8825 (yyval.netAttributes)->setNetDelay(*netDelay);
8832 #line 6887 "Parser.yy"
8841 #line 6891 "Parser.yy"
8850 #line 6895 "Parser.yy"
8859 #line 6899 "Parser.yy"
8868 #line 6903 "Parser.yy"
8877 #line 6907 "Parser.yy"
8890 #line 6915 "Parser.yy"
8903 #line 6929 "Parser.yy"
8912 #line 6933 "Parser.yy"
8921 #line 6938 "Parser.yy"
8930 #line 6944 "Parser.yy"
8939 = ctx->getCurrentNetBundleContext();
8942 typedef std::vector<NetSharedPtr > NBList;
8944 bundle->getChildren(children);
8945 for(NBList::iterator it = children.begin();
8946 it != children.end(); it++ )
8948 if((*it)->getName() == name)
8956 net = view->findNet(name);
8960 log(
"Found existing net\n");
8962 "View %s already contains a net of name %s\n",
8963 view->getName().c_str(),
8964 net->getName().c_str() );
8966 __FUNCTION__, __FILE__, __LINE__ );
8972 error(yyloc, message);
8980 ctx->getFactory()->create(netBundle);
8981 ctx->pushNetBundleContext(netBundle);
8987 "Unable to create net bundle : %s",
8988 net->getName().c_str());
8989 log(
"%s\n", message.c_str());
8991 __FILE__, __LINE__ );
8997 error(yyloc, message);
9001 net->setParent(view);
9008 net->setParentCollection(bundle);
9009 bundle->addChild(net);
9010 log(
"Added net to existing bundle\n");
9016 log(
"Created net bundle %s\n",
9017 net->getName().c_str() );
9026 #line 7034 "Parser.yy"
9031 ctx->popNetBundleContext();
9038 #line 7047 "Parser.yy"
9042 = ctx->getCurrentNetBundleContext();
9051 #line 7055 "Parser.yy"
9055 = ctx->getCurrentNetBundleContext();
9064 #line 7065 "Parser.yy"
9067 (yyval.netDelay)->setDerivation(
9075 #line 7074 "Parser.yy"
9084 #line 7078 "Parser.yy"
9090 = ctx->getCurrentLogicElement();
9093 (yyval.netDelay)->setTransition(logicElem);
9101 #line 7090 "Parser.yy"
9107 = ctx->getCurrentLogicElement();
9110 (yyval.netDelay)->setTransition(logicElem);
9118 #line 7104 "Parser.yy"
9127 #line 7110 "Parser.yy"
9131 (yyval.netDelay)->setDelay(data->mValues[0].get<
Value::MiNoMax>());
9138 #line 7116 "Parser.yy"
9142 (yyval.netDelay)->setDelay(data->mValues[0].get<
Value::MiNoMax>());
9149 #line 7132 "Parser.yy"
9160 "No Net %s found in view %s\n",
9162 view->getName().c_str());
9163 log(
"%s\n", message.c_str());
9165 __FUNCTION__, __FILE__, __LINE__ );
9171 error(yyloc, message);
9177 = ctx->getCurrentEvent();
9186 #line 7180 "Parser.yy"
9195 #line 7184 "Parser.yy"
9204 #line 7211 "Parser.yy"
9212 (yyval.netRefData)->mParentNet = nData;
9213 (yyval.netRefData)->mView = nData->
mView;
9214 nData->
mView = NULL;
9221 (yyval.netRefData) = nData;
9236 #line 7240 "Parser.yy"
9238 (yyval.netRefData) = NULL;
9245 #line 7244 "Parser.yy"
9254 #line 7248 "Parser.yy"
9257 (yyval.netRefData)->mInstanceName = (
yysemantic_stack_[(1) - (1)].instanceRef)->mName;
9266 #line 7255 "Parser.yy"
9276 #line 7265 "Parser.yy"
9283 ctx->getFactory()->create(permutable);
9284 permutable->setIsNonPermutable(
true);
9289 "Unable to create Permutable" );
9290 log(
"%s\n", message.c_str());
9292 __FILE__, __LINE__ );
9298 error(yyloc, message);
9301 ctx->pushPermutable(permutable);
9302 ctx->incrementPermutableDepth();
9309 #line 7292 "Parser.yy"
9313 = ctx->getCurrentPermutable();
9314 ctx->popPermutable();
9316 if(ctx->getPermutableDepth() > 1 )
9318 parentPermutable = ctx->getCurrentPermutable();
9320 ctx->decrementPermutableDepth();
9321 if(parentPermutable)
9323 parentPermutable->setPermutableType(
9325 currentPermutable->setPermutableType(
9328 size_t parentPermutableSize = parentPermutable->getSize();
9329 size_t currentPermutableSize = currentPermutable->getSize();
9331 log(
"Parent permutable Size :: %d\n",
9332 parentPermutableSize );
9333 log(
"Current permutable Size :: %d\n",
9334 currentPermutableSize );
9335 std::vector< PermutableSharedPtr > outPermutables;
9336 parentPermutable->getChildren(outPermutables);
9337 std::vector< PortSharedPtr > outPorts;
9338 parentPermutable->getPorts(outPorts);
9340 if(!outPermutables.empty() || !outPorts.empty())
9342 if( parentPermutableSize
9343 == currentPermutableSize )
9345 parentPermutable->addChildPermutable(
9346 currentPermutable );
9351 "Child permutable can't be added, port size mismatch %d with %d",
9352 parentPermutableSize,
9353 currentPermutableSize);
9354 log(
"%s\n", message.c_str());
9356 __FUNCTION__, __FILE__, __LINE__ );
9362 error(yyloc, message);
9368 parentPermutable->addChildPermutable(
9369 currentPermutable );
9374 ctx->pushPermutable(currentPermutable);
9382 #line 7363 "Parser.yy"
9384 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
9394 "Permutable can not be used in this view type");
9395 log(
"%s\n", message.c_str());
9397 __FUNCTION__, __FILE__, __LINE__ );
9402 std::vector< std::string > nestedNames;
9406 currPortRef = nextPortRef;
9418 "No port %s found in view %s\n",
9420 view->getName().c_str());
9421 log(
"%s\n", message.c_str());
9423 __FUNCTION__, __FILE__, __LINE__ );
9429 error(yyloc, message);
9433 = ctx->getCurrentPermutable();
9436 connectibleFinder(nestedNames, port);
9442 std::vector< PortSharedPtr > outPorts;
9443 currentPermutable->getPorts(outPorts);
9445 if(!outPorts.empty())
9448 std::vector< PortSharedPtr >::iterator it
9449 = std::find(outPorts.begin(), outPorts.end(),
9451 if(it != outPorts.end())
9454 "Port %s already exist in permutable",
9455 port->getName().c_str() );
9456 log(
"%s\n", message.c_str());
9458 __FUNCTION__, __FILE__, __LINE__ );
9464 error(yyloc, message);
9469 if(firstPort->getSize() == port->getSize())
9471 currentPermutable->addPort(port);
9476 "Port %s can't be added, port size mismatch %d with %d",
9478 firstPort->getSize(),
9480 log(
"%s\n", message.c_str());
9482 __FUNCTION__, __FILE__, __LINE__ );
9488 error(yyloc, message);
9495 currentPermutable->addPort(port);
9501 __FUNCTION__, __FILE__, __LINE__ );
9511 #line 7494 "Parser.yy"
9520 #line 7498 "Parser.yy"
9529 #line 7509 "Parser.yy"
9538 #line 7513 "Parser.yy"
9547 #line 7519 "Parser.yy"
9552 (yyval.valueData)->mValues.push_back(
Value(
9565 #line 7534 "Parser.yy"
9567 (yyval.valueData) = NULL;
9574 #line 7538 "Parser.yy"
9586 #line 7545 "Parser.yy"
9598 #line 7552 "Parser.yy"
9604 (yyval.valueData)->mValues.begin(), (yyval.valueData)->mValues.end() );
9614 #line 7565 "Parser.yy"
9623 #line 7571 "Parser.yy"
9632 #line 7575 "Parser.yy"
9641 #line 7587 "Parser.yy"
9650 #line 7599 "Parser.yy"
9659 #line 7603 "Parser.yy"
9668 #line 7609 "Parser.yy"
9677 #line 7635 "Parser.yy"
9686 #line 7646 "Parser.yy"
9695 #line 7650 "Parser.yy"
9704 #line 7661 "Parser.yy"
9713 #line 7665 "Parser.yy"
9722 #line 7671 "Parser.yy"
9731 #line 7681 "Parser.yy"
9740 #line 7690 "Parser.yy"
9749 #line 7701 "Parser.yy"
9758 #line 7705 "Parser.yy"
9767 #line 7721 "Parser.yy"
9772 = ctx->getFactory();
9774 boost::scoped_ptr<ValueData> valueData((
yysemantic_stack_[(6) - (4)].valueData));
9781 factory->create(single);
9783 param->setName(nameData->mName);
9784 if(!nameData->mOriginalName.empty())
9786 param->setOriginalName(nameData->mOriginalName);
9788 param->setValue(valueData->mValues[0]);
9793 __FUNCTION__, __FILE__, __LINE__ );
9799 size_t arraySize = accumulate(
9800 nameData->mIndices.begin(),
9801 nameData->mIndices.end(), 1,
9802 std::multiplies<size_t>());
9803 if(valueData->mValues.size() != arraySize)
9806 "Size mismatch %d with %d", valueData->mValues.size(),
9807 nameData->mIndices.size() );
9808 log(
"%s\n", message.c_str());
9810 __FUNCTION__, __FILE__, __LINE__ );
9816 error(yyloc, message);
9822 factory->create(array);
9823 array->setName(nameData->mName);
9824 if(!nameData->mOriginalName.empty())
9826 array->setOriginalName(nameData->mOriginalName);
9828 array->constructChildren( factory,
9831 std::vector< ParameterSharedPtr > children;
9832 param->getChildren(children);
9833 std::vector< ParameterSharedPtr >::iterator it = children.begin();
9834 std::vector< ParameterSharedPtr >::iterator end = children.end();
9836 for(; it != end; ++it, i++ )
9838 (*it)->setValue(valueData->mValues[i]);
9844 __FUNCTION__, __FILE__, __LINE__ );
9851 = view->getParameterContext();
9852 view->getParameters()->set(
9853 context, nameData->mName, param );
9854 log(
"New param %s created for context %lu\n",
9855 nameData->mName.c_str(), context );
9862 #line 7813 "Parser.yy"
9864 (yyval.integerVal) = 0;
9871 #line 7820 "Parser.yy"
9882 #line 7835 "Parser.yy"
9889 ctx->getFactory()->create(pathDelay);
9894 "Unable to create pathDelay" );
9895 log(
"%s\n", message.c_str());
9897 __FILE__, __LINE__ );
9903 error(yyloc, message);
9906 ctx->setCurrentPathDelay(pathDelay);
9908 timing->addPathDelay(pathDelay);
9915 #line 7862 "Parser.yy"
9925 #line 7870 "Parser.yy"
9929 = ctx->getCurrentPathDelay();
9931 = ctx->getCurrentEvent();
9933 pathDelay->addEvent(event);
9941 #line 7883 "Parser.yy"
9946 = ctx->getCurrentPathDelay();
9954 #line 7897 "Parser.yy"
9963 #line 7903 "Parser.yy"
9970 ctx->getFactory()->create(permutable);
9971 permutable->setIsNonPermutable(
false);
9976 "Unable to create Permutable" );
9977 log(
"%s\n", message.c_str());
9979 __FILE__, __LINE__ );
9985 error(yyloc, message);
9988 if(ctx->getPermutableDepth() == 0 )
9990 ctx->getCurrentView()->addPermutable(permutable);
9992 ctx->pushPermutable(permutable);
9993 ctx->incrementPermutableDepth();
10000 #line 7934 "Parser.yy"
10004 = ctx->getCurrentPermutable();
10005 ctx->popPermutable();
10007 if(ctx->getPermutableDepth() > 1 )
10009 parentPermutable = ctx->getCurrentPermutable();
10011 ctx->decrementPermutableDepth();
10012 if(parentPermutable)
10014 parentPermutable->setPermutableType(
10016 currentPermutable->setPermutableType(
10019 size_t parentPermutableSize = parentPermutable->getSize();
10020 size_t currentPermutableSize = currentPermutable->getSize();
10022 log(
"Parent permutable Size :: %d\n",
10023 parentPermutableSize );
10024 log(
"Current permutable Size :: %d\n",
10025 currentPermutableSize );
10026 std::vector< PermutableSharedPtr > outPermutables;
10027 parentPermutable->getChildren(outPermutables);
10028 std::vector< PortSharedPtr > outPorts;
10029 parentPermutable->getPorts(outPorts);
10031 if(!outPermutables.empty() || !outPorts.empty())
10033 if( parentPermutableSize
10034 == currentPermutableSize )
10036 parentPermutable->addChildPermutable(
10037 currentPermutable );
10042 "Child permutable can't be added, port size mismatch %d with %d",
10043 parentPermutableSize,
10044 currentPermutableSize);
10045 log(
"%s\n", message.c_str());
10047 __FUNCTION__, __FILE__, __LINE__ );
10053 error(yyloc, message);
10059 parentPermutable->addChildPermutable(
10060 currentPermutable );
10065 ctx->pushPermutable(currentPermutable);
10073 #line 8005 "Parser.yy"
10075 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
10085 "Permutable can not be used in this view type");
10086 log(
"%s\n", message.c_str());
10088 __FUNCTION__, __FILE__, __LINE__ );
10093 std::vector< std::string > nestedNames;
10097 currPortRef = nextPortRef;
10109 "No port %s found in view %s\n",
10111 view->getName().c_str());
10112 log(
"%s\n", message.c_str());
10114 __FUNCTION__, __FILE__, __LINE__ );
10120 error(yyloc, message);
10124 = ctx->getCurrentPermutable();
10127 connectibleFinder(nestedNames, port);
10133 std::vector< PortSharedPtr > outPorts;
10134 currentPermutable->getPorts(outPorts);
10136 if(!outPorts.empty())
10139 std::vector< PortSharedPtr >::iterator it
10140 = std::find(outPorts.begin(), outPorts.end(),
10142 if(it != outPorts.end())
10145 "Port %s already exist in permutable",
10146 port->getName().c_str() );
10147 log(
"%s\n", message.c_str());
10149 __FUNCTION__, __FILE__, __LINE__ );
10155 error(yyloc, message);
10160 if(firstPort->getSize() == port->getSize())
10162 currentPermutable->addPort(port);
10167 "Port %s can't be added, port size mismatch %d with %d",
10169 firstPort->getSize(),
10171 log(
"%s\n", message.c_str());
10173 __FUNCTION__, __FILE__, __LINE__ );
10179 error(yyloc, message);
10186 currentPermutable->addPort(port);
10192 __FUNCTION__, __FILE__, __LINE__ );
10202 #line 8140 "Parser.yy"
10207 (yyval.valueData)->mValues.push_back(
Value(
10220 #line 8155 "Parser.yy"
10222 (yyval.valueData) = NULL;
10229 #line 8159 "Parser.yy"
10232 (yyval.valueData)->mValues.push_back(
Value(
10242 #line 8167 "Parser.yy"
10245 (yyval.valueData)->mValues.push_back(
Value(
10255 #line 8175 "Parser.yy"
10261 (yyval.valueData)->mValues.begin(), (yyval.valueData)->mValues.end() );
10262 (yyval.valueData)->mValues = (
yysemantic_stack_[(2) - (1)].valueData)->mValues;
10271 #line 8188 "Parser.yy"
10280 #line 8194 "Parser.yy"
10289 #line 8198 "Parser.yy"
10298 #line 8208 "Parser.yy"
10307 #line 8214 "Parser.yy"
10316 #line 8227 "Parser.yy"
10318 boost::scoped_ptr<NameData> pNameData((
yysemantic_stack_[(3) - (3)].nameData));
10325 = ctx->getCurrentPortBundleContext();
10326 bool bExistingPortFound =
false;
10329 typedef std::vector<PortSharedPtr > PBList;
10331 bundle->getChildren(children);
10332 for(PBList::iterator it = children.begin();
10333 it != children.end(); it++ )
10335 if((*it)->getName() == name)
10337 bExistingPortFound =
true;
10343 port = view->findPort(name);
10344 bExistingPortFound = port;
10346 if(bExistingPortFound)
10348 if(!ctx->getIsViewBeingLinked())
10350 log(
"Existing port %s already found..Ignoring\n",
10351 port->getName().c_str());
10354 "View %s already contains a port of name %s\n",
10355 view->getName().c_str(),
10356 port->getName().c_str() );
10357 log(
"%s\n", message.c_str());
10359 __FUNCTION__, __FILE__, __LINE__ );
10365 error(yyloc, message);
10377 ctx->getFactory()->create(vectorPort);
10378 vectorPort->setName(name);
10379 vectorPort->constructChildren(
10387 "Unable to create vector port : %s",
10388 port->getName().c_str());
10389 log(
"%s\n", message.c_str());
10391 __FILE__, __LINE__ );
10397 error(yyloc, message);
10406 ctx->getFactory()->create(scalarPort);
10408 port->setName(name);
10413 "Unable to create port : %s",
10414 port->getName().c_str());
10415 log(
"%s\n", message.c_str());
10417 __FILE__, __LINE__ );
10423 error(yyloc, message);
10429 port->setOriginalName(
10432 port->setParent(view);
10435 port->setParentCollection(bundle);
10436 bundle->addChild(port);
10437 log(
"Added port to existing bundle\n");
10441 view->addPort(port);
10445 log(
"Created scalar port %s ",
10446 port->getName().c_str() );
10450 log(
"Created vector port %s with dimensions ",
10451 port->getName().c_str() );
10452 for( std::vector<size_t>::const_iterator it
10454 it != pNameData->
mIndices.end(); ++it )
10461 ctx->setCurrentPort(port);
10462 ctx->pushPropertyContainer(port);
10469 #line 8374 "Parser.yy"
10474 boost::shared_ptr<PortAttributes> attrib((
yysemantic_stack_[(6) - (5)].portAttributes));
10475 ctx->getCurrentPort()->setAttributes(attrib);
10478 ctx->popPropertyContainer();
10485 #line 8387 "Parser.yy"
10487 (yyval.portAttributes) = NULL;
10494 #line 8391 "Parser.yy"
10503 #line 8395 "Parser.yy"
10508 (yyval.portAttributes)->setUnused(val);
10515 #line 8402 "Parser.yy"
10519 (yyval.portAttributes)->setPortDelay(*delay);
10526 #line 8408 "Parser.yy"
10531 (yyval.portAttributes)->setDesignator(val);
10538 #line 8415 "Parser.yy"
10544 (yyval.portAttributes)->setDcFaninLoad(val);
10551 #line 8423 "Parser.yy"
10557 (yyval.portAttributes)->setDcFanoutLoad(val);
10564 #line 8431 "Parser.yy"
10570 (yyval.portAttributes)->setDcMaxFanin(val);
10577 #line 8439 "Parser.yy"
10583 (yyval.portAttributes)->setDcMaxFanout(val);
10590 #line 8447 "Parser.yy"
10594 (yyval.portAttributes)->setAcLoad(data->mValues[0]);
10601 #line 8453 "Parser.yy"
10610 #line 8457 "Parser.yy"
10623 #line 8465 "Parser.yy"
10636 #line 8475 "Parser.yy"
10638 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(3) - (3)].portRefData));
10641 std::vector< std::string > nestedNames;
10647 currPortRef = nextPortRef;
10660 "No view %s found",
10662 log(
"%s\n", message.c_str());
10664 __FUNCTION__, __FILE__, __LINE__ );
10670 error(yyloc, message);
10679 "No port %s found",
10680 portNameData->
mName.c_str());
10681 log(
"%s\n", message.c_str());
10683 __FUNCTION__, __FILE__, __LINE__ );
10689 error(yyloc, message);
10694 connectibleFinder(nestedNames, port);
10699 ctx->setCurrentPort(port);
10700 ctx->pushPropertyContainer(port);
10705 __FUNCTION__, __FILE__, __LINE__ );
10714 = view->findInstance(
10715 instanceName->
mName );
10719 "Instance %s not known",
10720 instanceName->
mName.c_str() );
10721 log(
"%s\n", message.c_str());
10723 __FUNCTION__, __FILE__, __LINE__ );
10729 error(yyloc, message);
10732 if(!instanceName->
mIndices.empty())
10735 = instance->get(instanceName->
mIndices);
10739 = instance->findPortReference(topName);
10743 "No port ref %s found",
10744 portNameData->
mName.c_str());
10745 log(
"%s\n", message.c_str());
10747 __FUNCTION__, __FILE__, __LINE__ );
10753 error(yyloc, message);
10758 connectibleFinder(nestedNames, portRef);
10763 ctx->setCurrentPortRef(portRef);
10764 ctx->pushPropertyContainer(portRef);
10769 "Unable to connect port ref : %s",
10770 portRef->getName().c_str());
10771 log(
"%s\n", message.c_str());
10773 __FILE__, __LINE__ );
10779 error(yyloc, message);
10789 #line 8622 "Parser.yy"
10795 boost::shared_ptr<PortAttributes>
10798 = ctx->getCurrentPort();
10801 port->setAttributes(attrib);
10805 ctx->getCurrentPortRef()
10806 ->setAttributes(attrib);
10810 ctx->setCurrentPortRef(
10812 ctx->popPropertyContainer();
10819 #line 8649 "Parser.yy"
10821 (yyval.portAttributes) = NULL;
10828 #line 8653 "Parser.yy"
10833 (yyval.portAttributes)->setUnused(val);
10840 #line 8660 "Parser.yy"
10844 (yyval.portAttributes)->setPortDelay(*delay);
10851 #line 8666 "Parser.yy"
10856 (yyval.portAttributes)->setDesignator(val);
10863 #line 8673 "Parser.yy"
10869 (yyval.portAttributes)->setDcFaninLoad(val);
10876 #line 8681 "Parser.yy"
10882 (yyval.portAttributes)->setDcFanoutLoad(val);
10889 #line 8689 "Parser.yy"
10895 (yyval.portAttributes)->setDcMaxFanin(val);
10902 #line 8697 "Parser.yy"
10908 (yyval.portAttributes)->setDcMaxFanout(val);
10915 #line 8705 "Parser.yy"
10919 (yyval.portAttributes)->setAcLoad(data->mValues[0]);
10926 #line 8711 "Parser.yy"
10935 #line 8715 "Parser.yy"
10945 #line 8722 "Parser.yy"
10953 = ctx->getCurrentPortBundleContext();
10954 bool bExistingPortFound =
false;
10957 typedef std::vector<PortSharedPtr > PBList;
10959 bundle->getChildren(children);
10960 for(PBList::iterator it = children.begin();
10961 it != children.end(); it++ )
10963 if((*it)->getName() == name)
10965 bExistingPortFound =
true;
10971 port = view->findPort(name);
10972 bExistingPortFound = port;
10974 if(bExistingPortFound)
10976 if(!ctx->getIsViewBeingLinked())
10979 "View %s already contains a port of name %s\n",
10980 view->getName().c_str(),
10981 port->getName().c_str() );
10982 log(
"%s\n", message.c_str());
10984 __FUNCTION__, __FILE__, __LINE__ );
10990 error(yyloc, message);
10999 ctx->getFactory()->create(portBundle);
11000 ctx->pushPortBundleContext(portBundle);
11006 "Unable to create port bundle : %s",
11007 port->getName().c_str());
11008 log(
"%s\n", message.c_str());
11010 __FILE__, __LINE__ );
11016 error(yyloc, message);
11019 port->setName(name);
11020 if(!nameData->mOriginalName.empty())
11022 port->setOriginalName(nameData->mOriginalName);
11024 port->setParent(view);
11027 port->setParentCollection(bundle);
11028 bundle->addChild(port);
11029 log(
"Added port to existing bundle\n");
11033 view->addPort(port);
11035 log(
"Created port bundle %s\n",
11036 port->getName().c_str() );
11038 ctx->setCurrentPort(port);
11045 #line 8816 "Parser.yy"
11056 #line 8826 "Parser.yy"
11060 = ctx->getCurrentPortBundleContext();
11069 #line 8834 "Parser.yy"
11073 = ctx->getCurrentPortBundleContext();
11082 #line 8844 "Parser.yy"
11085 (yyval.portDelay)->setDerivation(
11095 #line 8854 "Parser.yy"
11106 #line 8860 "Parser.yy"
11117 #line 8866 "Parser.yy"
11123 = ctx->getCurrentLogicElement();
11126 (yyval.portDelay)->setTransition(logicElem);
11134 #line 8878 "Parser.yy"
11140 = ctx->getCurrentLogicElement();
11143 (yyval.portDelay)->setTransition(logicElem);
11151 #line 8900 "Parser.yy"
11162 "No port %s found in view %s\n",
11164 view->getName().c_str());
11165 log(
"%s\n", message.c_str());
11167 __FUNCTION__, __FILE__, __LINE__ );
11173 error(yyloc, message);
11179 = ctx->getCurrentEvent();
11180 event->addPort(port);
11188 #line 8954 "Parser.yy"
11197 #line 8958 "Parser.yy"
11206 #line 8964 "Parser.yy"
11215 #line 8970 "Parser.yy"
11225 #line 8975 "Parser.yy"
11236 #line 8981 "Parser.yy"
11239 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11240 ? (yyval.portInst)->mAttribute
11244 (yyval.portInst)->mAttribute->setUnused(val);
11251 #line 8991 "Parser.yy"
11254 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11255 ? (yyval.portInst)->mAttribute
11258 (yyval.portInst)->mAttribute->setPortDelay(*delay);
11265 #line 9000 "Parser.yy"
11268 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11269 ? (yyval.portInst)->mAttribute
11273 (yyval.portInst)->mAttribute->setDesignator(val);
11280 #line 9010 "Parser.yy"
11286 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11287 ? (yyval.portInst)->mAttribute
11289 (yyval.portInst)->mAttribute->setDcFaninLoad(val);
11296 #line 9021 "Parser.yy"
11302 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11303 ? (yyval.portInst)->mAttribute
11305 (yyval.portInst)->mAttribute->setDcFanoutLoad(val);
11312 #line 9032 "Parser.yy"
11318 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11319 ? (yyval.portInst)->mAttribute
11321 (yyval.portInst)->mAttribute->setDcMaxFanin(val);
11328 #line 9043 "Parser.yy"
11334 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11335 ? (yyval.portInst)->mAttribute
11337 (yyval.portInst)->mAttribute->setDcMaxFanout(val);
11344 #line 9054 "Parser.yy"
11348 (yyval.portInst)->mAttribute = ((yyval.portInst)->mAttribute)
11349 ? (yyval.portInst)->mAttribute
11351 (yyval.portInst)->mAttribute->setAcLoad(data->mValues[0]);
11358 #line 9063 "Parser.yy"
11367 #line 9067 "Parser.yy"
11377 #line 9072 "Parser.yy"
11387 #line 9087 "Parser.yy"
11396 #line 9093 "Parser.yy"
11398 (yyval.portListData) = NULL;
11405 #line 9097 "Parser.yy"
11408 (yyval.portListData)->mPortRefs.push_back((
yysemantic_stack_[(2) - (2)].portRefData));
11415 #line 9102 "Parser.yy"
11420 (yyval.portListData)->mPortRefs.push_back(portRef);
11427 #line 9111 "Parser.yy"
11435 ctx->getFactory()->create(portlistAlias);
11436 portlistAlias->setName(name);
11440 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(5) - (4)].portListData));
11445 ctx->getFactory()->create(portList);
11447 for( std::vector<PortRefData *>::iterator it
11448 = portListData->mPortRefs.begin();
11449 it != portListData->mPortRefs.end(); ++it )
11452 std::vector< std::string > nestedNames;
11458 currPortRef = nextPortRef;
11472 "No port %s found in view %s\n",
11473 portNameData->
mName.c_str(),
11474 view->getName().c_str());
11475 log(
"%s\n", message.c_str());
11477 __FUNCTION__, __FILE__, __LINE__ );
11483 error(yyloc, message);
11489 connectibleFinder(nestedNames, port);
11494 portList->addChildPort(port);
11499 "Unable to connect port : %s",
11500 port->getName().c_str());
11501 log(
"%s\n", message.c_str());
11503 __FILE__, __LINE__ );
11509 error(yyloc, message);
11517 portlistAlias->setPortList(portList);
11520 = ctx->getCurrentSimulate();
11523 simulate->addPortListAlias(portlistAlias);
11528 "Unable to add port list alias : %s",
11529 portlistAlias->getName().c_str());
11530 log(
"%s\n", message.c_str());
11532 __FILE__, __LINE__ );
11538 error(yyloc, message);
11548 #line 9235 "Parser.yy"
11557 #line 9239 "Parser.yy"
11566 #line 9246 "Parser.yy"
11575 #line 9272 "Parser.yy"
11583 (yyval.portRefData)->mParentPort = pData;
11584 (yyval.portRefData)->mView = pData->
mView;
11585 pData->
mView = NULL;
11592 (yyval.portRefData) = pData;
11607 #line 9301 "Parser.yy"
11609 (yyval.portRefData) = NULL;
11616 #line 9305 "Parser.yy"
11625 #line 9309 "Parser.yy"
11628 (yyval.portRefData)->mInstanceName = (
yysemantic_stack_[(1) - (1)].instanceRef)->mName;
11637 #line 9316 "Parser.yy"
11647 #line 9323 "Parser.yy"
11656 #line 9329 "Parser.yy"
11665 #line 9333 "Parser.yy"
11675 #line 9347 "Parser.yy"
11678 if(!nameData->mIndices.empty())
11681 "Property %s cannot be an array",
11682 nameData->mName.c_str() );
11683 log(
"%s\n", message.c_str());
11685 __FUNCTION__, __FILE__, __LINE__ );
11691 error(yyloc, message);
11699 ctx->getFactory()->create(property);
11704 "Unable to create Property : %s",
11705 nameData->mName.c_str());
11706 log(
"%s\n", message.c_str());
11708 __FILE__, __LINE__ );
11714 error(yyloc, message);
11717 property->setName(nameData->mName.c_str());
11718 if(!nameData->mOriginalName.empty())
11720 property->setOriginalName(nameData->mOriginalName);
11722 ctx->pushProperty(property);
11723 ctx->incrementPropertyDepth();
11730 #line 9396 "Parser.yy"
11735 = ctx->getCurrentProperty();
11736 ctx->popProperty();
11738 if(ctx->getPropertyDepth() > 1 )
11740 parentP = ctx->getCurrentProperty();
11742 ctx->decrementPropertyDepth();
11744 =ctx->getCurrentPropertyContainer();
11747 parentP->addChildProperty(
11748 currentP->getName(), currentP );
11752 if(ctx->getIsInInstance())
11755 ctx->pushProperty(currentP);
11761 container->setProperty(
11762 currentP->getName(), currentP );
11766 log(
"Property %s is being discarded\n",
11767 currentP->getName().c_str());
11777 #line 9440 "Parser.yy"
11780 if(value->mValues.size() > 1)
11783 "Property value cannot be an array" );
11784 log(
"%s\n", message.c_str());
11786 __FUNCTION__, __FILE__, __LINE__ );
11792 error(yyloc, message);
11796 ->setValue(value->mValues[0]);
11803 #line 9461 "Parser.yy"
11814 #line 9467 "Parser.yy"
11824 #line 9473 "Parser.yy"
11835 #line 9500 "Parser.yy"
11844 #line 9504 "Parser.yy"
11853 #line 9526 "Parser.yy"
11862 #line 9532 "Parser.yy"
11871 #line 9544 "Parser.yy"
11880 #line 9548 "Parser.yy"
11889 #line 9554 "Parser.yy"
11900 #line 9562 "Parser.yy"
11902 (yyval.nameData) =
new NameData();
11911 #line 9568 "Parser.yy"
11920 #line 9574 "Parser.yy"
11929 #line 9578 "Parser.yy"
11938 #line 9584 "Parser.yy"
11947 #line 9590 "Parser.yy"
11949 (yyval.logicListData) = NULL;
11956 #line 9594 "Parser.yy"
11959 (yyval.logicListData)->mNameDataList.push_back((
yysemantic_stack_[(2) - (2)].nameData));
11966 #line 9604 "Parser.yy"
11977 #line 9612 "Parser.yy"
11986 #line 9616 "Parser.yy"
11995 #line 9622 "Parser.yy"
12005 #line 9629 "Parser.yy"
12015 #line 9639 "Parser.yy"
12024 #line 9644 "Parser.yy"
12033 #line 9661 "Parser.yy"
12040 ctx->getFactory()->create(simulate);
12045 "Unable to create simulate" );
12046 log(
"%s\n", message.c_str());
12048 __FILE__, __LINE__ );
12054 error(yyloc, message);
12057 ctx->setCurrentSimulate(simulate);
12064 #line 9686 "Parser.yy"
12075 #line 9694 "Parser.yy"
12082 = ctx->getCurrentSimulate();
12086 simulate->setOriginalName((
yysemantic_stack_[(1) - (1)].nameData)->mOriginalName);
12100 #line 9717 "Parser.yy"
12104 = ctx->getCurrentSimulate();
12113 #line 9725 "Parser.yy"
12117 = ctx->getCurrentSimulate();
12126 #line 9735 "Parser.yy"
12133 ctx->getFactory()->create(simuInfo);
12138 "Unable to create simulation info" );
12139 log(
"%s\n", message.c_str());
12141 __FILE__, __LINE__ );
12147 error(yyloc, message);
12150 ctx->setCurrentSimulationInfo(simuInfo);
12152 lib->setSimulationInfo(simuInfo);
12159 #line 9762 "Parser.yy"
12162 ctx->setCurrentSimulationInfo(
12170 #line 9772 "Parser.yy"
12174 = ctx->getCurrentSimulationInfo();
12183 #line 9780 "Parser.yy"
12187 = ctx->getCurrentSimulationInfo();
12196 #line 9818 "Parser.yy"
12203 ctx->getFactory()->create(status);
12208 "Unable to create Status" );
12209 log(
"%s\n", message.c_str());
12211 __FILE__, __LINE__ );
12217 error(yyloc, message);
12220 ctx->setCurrentStatus(status);
12227 #line 9843 "Parser.yy"
12231 = ctx->getCurrentStatus();
12234 = ctx->getCurrentStatusContainer();
12237 container->addStatus(currentStatus);
12241 log(
"Status is being discarded\n");
12249 #line 9864 "Parser.yy"
12261 #line 9871 "Parser.yy"
12273 #line 9888 "Parser.yy"
12282 #line 9896 "Parser.yy"
12291 #line 9902 "Parser.yy"
12297 (yyval.valueData)->mValues.push_back(
Value(
12310 #line 9918 "Parser.yy"
12312 (yyval.valueData) = NULL;
12319 #line 9922 "Parser.yy"
12322 (yyval.valueData)->mValues.push_back(
Value(
12331 #line 9929 "Parser.yy"
12334 (yyval.valueData)->mValues.push_back(
Value(
12343 #line 9936 "Parser.yy"
12349 (yyval.valueData)->mValues.begin(), (yyval.valueData)->mValues.end() );
12350 (yyval.valueData)->mValues = (
yysemantic_stack_[(2) - (1)].valueData)->mValues;
12359 #line 9949 "Parser.yy"
12368 #line 9953 "Parser.yy"
12377 #line 9959 "Parser.yy"
12386 #line 9980 "Parser.yy"
12395 #line 9984 "Parser.yy"
12404 #line 10008 "Parser.yy"
12413 #line 10022 "Parser.yy"
12415 log(
"PRINT TECHNOLOGY \n");
12422 #line 10033 "Parser.yy"
12431 #line 10037 "Parser.yy"
12440 #line 10043 "Parser.yy"
12449 #line 10052 "Parser.yy"
12453 = ctx->getCurrentForbiddenEvent();
12455 = ctx->getCurrentEvent();
12457 forbiddenEvent->setStartTimeInterval(event);
12465 #line 10063 "Parser.yy"
12473 = ctx->getCurrentForbiddenEvent();
12475 = ctx->getCurrentEvent();
12477 event->setOffsetTime(val);
12478 forbiddenEvent->setStartTimeInterval(event);
12486 #line 10081 "Parser.yy"
12490 = ctx->getCurrentForbiddenEvent();
12492 = ctx->getCurrentEvent();
12494 forbiddenEvent->setEndTimeInterval(event);
12502 #line 10092 "Parser.yy"
12510 = ctx->getCurrentForbiddenEvent();
12512 = ctx->getCurrentEvent();
12514 event->setOffsetTime(val);
12515 forbiddenEvent->setEndTimeInterval(event);
12523 #line 10108 "Parser.yy"
12527 = ctx->getCurrentForbiddenEvent();
12532 forbiddenEvent->setDuration(val);
12539 #line 10121 "Parser.yy"
12560 #line 10139 "Parser.yy"
12567 ctx->getFactory()->create(timing);
12572 "Unable to create timing" );
12573 log(
"%s\n", message.c_str());
12575 __FILE__, __LINE__ );
12581 error(yyloc, message);
12584 ctx->setCurrentTiming(timing);
12591 #line 10164 "Parser.yy"
12602 #line 10172 "Parser.yy"
12607 = ctx->getCurrentTiming();
12608 timing->setDerivation(
12616 #line 10183 "Parser.yy"
12621 = ctx->getCurrentTiming();
12630 #line 10192 "Parser.yy"
12635 = ctx->getCurrentTiming();
12644 #line 10214 "Parser.yy"
12651 ctx->getFactory()->create(logicElem);
12657 "Unable to create transition" );
12658 log(
"%s\n", message.c_str());
12660 __FILE__, __LINE__ );
12666 error(yyloc, message);
12669 ctx->pushLogicElement(logicElem);
12670 ctx->incrementLogicElementDepth();
12677 #line 10284 "Parser.yy"
12686 #line 10290 "Parser.yy"
12688 (yyval.integerVal) = 1;
12695 #line 10294 "Parser.yy"
12697 (yyval.integerVal) = 2;
12704 #line 10298 "Parser.yy"
12706 (yyval.integerVal) = 3;
12713 #line 10302 "Parser.yy"
12715 (yyval.integerVal) = 4;
12722 #line 10306 "Parser.yy"
12724 (yyval.integerVal) = 5;
12731 #line 10310 "Parser.yy"
12733 (yyval.integerVal) = 6;
12740 #line 10314 "Parser.yy"
12742 (yyval.integerVal) = 7;
12749 #line 10318 "Parser.yy"
12751 (yyval.integerVal) = 8;
12758 #line 10322 "Parser.yy"
12760 (yyval.integerVal) = 9;
12767 #line 10326 "Parser.yy"
12769 (yyval.integerVal) = 10;
12776 #line 10330 "Parser.yy"
12778 (yyval.integerVal) = 11;
12785 #line 10334 "Parser.yy"
12787 (yyval.integerVal) = 12;
12794 #line 10338 "Parser.yy"
12796 (yyval.integerVal) = 13;
12803 #line 10342 "Parser.yy"
12805 (yyval.integerVal) = 14;
12812 #line 10346 "Parser.yy"
12814 (yyval.integerVal) = 15;
12821 #line 10350 "Parser.yy"
12823 (yyval.integerVal) = 16;
12830 #line 10359 "Parser.yy"
12832 (yyval.integerVal) = 1;
12839 #line 10365 "Parser.yy"
12849 #line 10369 "Parser.yy"
12861 #line 10378 "Parser.yy"
12870 #line 10382 "Parser.yy"
12879 #line 10386 "Parser.yy"
12888 #line 10390 "Parser.yy"
12897 #line 10409 "Parser.yy"
12906 #line 10415 "Parser.yy"
12913 view = cell->findView(name);
12914 bool isCellExtern = cell->getIsExtern();
12917 log(
"Found existing view\n");
12920 if(!view->getIsExtern())
12923 "View %s already exists in cell %s\n",
12924 name.c_str(), view->getName().c_str() );
12925 log(
"%s\n", message.c_str());
12927 __FUNCTION__, __FILE__, __LINE__ );
12929 __FILE__, __LINE__ );
12935 error(yyloc, message);
12940 log(
"Extern view %s already exists in %s\n",
12941 name.c_str(), cell->getName().c_str() );
12946 if(view->getIsExtern())
12948 log(
"Found extern view of this name\n");
12949 view->setIsExtern(
false);
12950 ctx->setIsViewBeingLinked(
true);
12954 log(
"View %s already found.. Ignoring\n",
12959 "View %s already exists in cell %s\n",
12960 name.c_str(), cell->getName().c_str() );
12961 log(
"%s\n", message.c_str());
12963 __FUNCTION__, __FILE__, __LINE__ );
12965 __FILE__, __LINE__ );
12971 error(yyloc, message);
12981 ctx->getFactory()->create(view);
12986 "Unable to create View : %s",
12987 view->getName().c_str());
12988 log(
"%s\n", message.c_str());
12990 __FILE__, __LINE__ );
12996 error(yyloc, message);
12999 view->setName(name);
13000 if(!nameData->mOriginalName.empty())
13002 view->setOriginalName(nameData->mOriginalName);
13004 view->setIsExtern(isCellExtern);
13005 view->setParent(cell);
13006 cell->addView(view);
13009 cell->getParent()->getName(),
13010 cell->getName(), view->getName() );
13013 linker->setExternView(viewNameSpec, view);
13014 log(
"Extern view %s saved in linker.\n",
13015 view->getName().c_str() );
13019 linker->linkUnresolved(viewNameSpec, view);
13021 log(
"Created view %s\n", view->getName().c_str());
13023 ctx->setCurrentView(view);
13024 log(
"View %s added\n",
13025 view->getName().c_str());
13026 ctx->pushPropertyContainer(view);
13027 ctx->pushStatusContainer(view);
13034 #line 10537 "Parser.yy"
13057 #line 10557 "Parser.yy"
13064 view->setInterfaceAttributes(attrib);
13072 #line 10569 "Parser.yy"
13084 #line 10577 "Parser.yy"
13099 #line 10607 "Parser.yy"
13108 #line 10611 "Parser.yy"
13117 #line 10633 "Parser.yy"
13134 #line 10647 "Parser.yy"
13136 (yyval.viewRefData) = NULL;
13143 #line 10651 "Parser.yy"
13152 #line 10657 "Parser.yy"
13159 "Warning::View types other than netlist are ignored");
13160 log(
"%s\n", message.c_str());
13181 #line 10683 "Parser.yy"
13190 #line 10687 "Parser.yy"
13199 #line 10691 "Parser.yy"
13208 #line 10695 "Parser.yy"
13217 #line 10699 "Parser.yy"
13226 #line 10703 "Parser.yy"
13235 #line 10707 "Parser.yy"
13244 #line 10711 "Parser.yy"
13253 #line 10715 "Parser.yy"
13262 #line 10719 "Parser.yy"
13271 #line 10725 "Parser.yy"
13280 #line 10731 "Parser.yy"
13289 #line 10737 "Parser.yy"
13299 ctx->getFactory()->create(waveValue);
13300 waveValue->setName(name);
13305 "Unable to create WaveValue" );
13306 log(
"%s\n", message.c_str());
13308 __FILE__, __LINE__ );
13314 error(yyloc, message);
13320 waveValue->setDeltaTimeDuration(val);
13323 = ctx->getCurrentSimulate();
13326 simulate->addWaveValue(waveValue);
13331 "Unable to add wave value : %s",
13332 waveValue->getName().c_str());
13333 log(
"%s\n", message.c_str());
13335 __FILE__, __LINE__ );
13341 error(yyloc, message);
13344 ctx->setCurrentWaveValue(waveValue);
13352 #line 10794 "Parser.yy"
13362 #line 10801 "Parser.yy"
13371 #line 10807 "Parser.yy"
13378 ctx->getFactory()->create(joinedInfo);
13379 joinedInfo->setJoinedType(
13385 "Unable to create weak joined info" );
13386 log(
"%s\n", message.c_str());
13388 __FILE__, __LINE__ );
13394 error(yyloc, message);
13397 if(ctx->getInterfaceJoinedInfoDepth() == 0 )
13399 ctx->getCurrentView()->addInterfaceJoinedInfo(joinedInfo);
13401 ctx->pushInterfaceJoinedInfo(joinedInfo);
13402 ctx->incrementInterfaceJoinedInfoDepth();
13409 #line 10839 "Parser.yy"
13413 = ctx->getCurrentInterfaceJoinedInfo();
13414 ctx->popInterfaceJoinedInfo();
13416 if(ctx->getInterfaceJoinedInfoDepth() > 1 )
13418 parentJoinedInfo = ctx->getCurrentInterfaceJoinedInfo();
13420 ctx->decrementInterfaceJoinedInfoDepth();
13421 if(parentJoinedInfo)
13423 parentJoinedInfo->setRelationType(
13425 currentJoinedInfo->setRelationType(
13428 size_t parentJoinedInfoSize = parentJoinedInfo->getSize();
13429 size_t currentJoinedInfoSize = currentJoinedInfo->getSize();
13431 log(
"Parent joined info Size :: %d\n",
13432 parentJoinedInfoSize );
13433 log(
"Current joined info Size :: %d\n",
13434 currentJoinedInfoSize );
13439 std::vector< InterfaceJoinedInfoSharedPtr > outJoinedInfos;
13440 parentJoinedInfo->getChildren(outJoinedInfos);
13442 std::list< PortSharedPtr > outPorts;
13443 parentJoinedInfo->getPorts(outPorts);
13445 std::list< PortListSharedPtr > outPortLists;
13446 parentJoinedInfo->getPortLists(outPortLists);
13448 if(parentJoinedInfoSize != 0)
13450 if( parentJoinedInfoSize
13451 == currentJoinedInfoSize )
13453 parentJoinedInfo->addChildJoinedInfo(
13454 currentJoinedInfo );
13459 "Child joined info can't be added, port size mismatch %d with %d",
13460 parentJoinedInfoSize,
13461 currentJoinedInfoSize);
13462 log(
"%s\n", message.c_str());
13464 __FUNCTION__, __FILE__, __LINE__ );
13470 error(yyloc, message);
13476 parentJoinedInfo->addChildJoinedInfo(
13477 currentJoinedInfo );
13482 ctx->pushInterfaceJoinedInfo(currentJoinedInfo);
13490 #line 10918 "Parser.yy"
13492 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
13501 std::vector< std::string > nestedNames;
13505 currPortRef = nextPortRef;
13517 "No port %s found in view %s\n",
13519 view->getName().c_str());
13520 log(
"%s\n", message.c_str());
13522 __FUNCTION__, __FILE__, __LINE__ );
13528 error(yyloc, message);
13533 = ctx->getCurrentInterfaceJoinedInfo();
13536 connectibleFinder(nestedNames, port);
13542 std::list< PortSharedPtr > outPorts;
13543 currentJoinedInfo->getPorts(outPorts);
13545 if(!outPorts.empty())
13548 std::list< PortSharedPtr >::iterator it
13549 = std::find(outPorts.begin(), outPorts.end(),
13551 if(it != outPorts.end())
13554 "Port %s already exist in weakJoined info",
13555 port->getName().c_str() );
13556 log(
"%s\n", message.c_str());
13558 __FUNCTION__, __FILE__, __LINE__ );
13564 error(yyloc, message);
13569 if(firstPort->getSize() == port->getSize())
13571 currentJoinedInfo->addPort(port);
13576 "Port %s can't be added, port size mismatch %d with %d",
13578 firstPort->getSize(),
13580 log(
"%s\n", message.c_str());
13582 __FUNCTION__, __FILE__, __LINE__ );
13588 error(yyloc, message);
13595 currentJoinedInfo->addPort(port);
13601 __FUNCTION__, __FILE__, __LINE__ );
13614 #line 11037 "Parser.yy"
13618 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
13623 ctx->getFactory()->create(portList);
13626 = ctx->getCurrentInterfaceJoinedInfo();
13628 for( std::vector<PortRefData *>::iterator it
13629 = portListData->mPortRefs.begin();
13630 it != portListData->mPortRefs.end(); ++it )
13633 std::vector< std::string > nestedNames;
13639 currPortRef = nextPortRef;
13653 "No port %s found in view %s\n",
13654 portNameData->
mName.c_str(),
13655 view->getName().c_str());
13656 log(
"%s\n", message.c_str());
13658 __FUNCTION__, __FILE__, __LINE__ );
13664 error(yyloc, message);
13670 connectibleFinder(nestedNames, port);
13675 portList->addChildPort(port);
13680 "Unable to connect port : %s",
13681 port->getName().c_str());
13682 log(
"%s\n", message.c_str());
13684 __FILE__, __LINE__ );
13690 error(yyloc, message);
13698 if(currentJoinedInfo->getSize() == portList->getSize())
13700 currentJoinedInfo->addPortList(portList);
13705 "Port size mismatch %d with %d",
13706 currentJoinedInfo->getSize(),
13707 portList->getSize());
13708 log(
"%s\n", message.c_str());
13710 __FUNCTION__, __FILE__, __LINE__ );
13716 error(yyloc, message);
13726 #line 11155 "Parser.yy"
13735 #line 11159 "Parser.yy"
13744 #line 11165 "Parser.yy"
13751 ctx->getFactory()->create(written);
13756 "Unable to create Written" );
13757 log(
"%s\n", message.c_str());
13759 __FILE__, __LINE__ );
13765 error(yyloc, message);
13768 ctx->setCurrentWritten(written);
13769 ctx->pushPropertyContainer(written);
13776 #line 11191 "Parser.yy"
13781 status->addWritten(written);
13783 ctx->popPropertyContainer();
13790 #line 11202 "Parser.yy"
13802 #line 11209 "Parser.yy"
13814 #line 11216 "Parser.yy"
13816 boost::scoped_ptr<PairStrData> data((
yysemantic_stack_[(2) - (2)].pairStrData));
13819 written->setProgramName(data->mFirst);
13820 written->setProgramVersion(data->mSecond);
13827 #line 11224 "Parser.yy"
13829 boost::scoped_ptr<PairStrData> data((
yysemantic_stack_[(2) - (2)].pairStrData));
13832 written->setDataOriginLocationName(data->mFirst);
13833 written->setDataOriginVersion(data->mSecond);
13840 #line 11233 "Parser.yy"
13852 #line 11240 "Parser.yy"
13864 #line 11249 "Parser.yy"
13873 #line 11255 "Parser.yy"
13882 #line 11261 "Parser.yy"
13891 #line 11267 "Parser.yy"
13901 #line 13902 "Parser.cc"
13917 if (0 <= yystate && yystate <=
yylast_
13918 &&
yycheck_[yystate] == yystate_stack_[0])
13935 yyerror_range[0] = yylloc;
13936 if (yyerrstatus_ == 3)
13949 yydestruct_ (
"Error: discarding", yytoken, &yylval, &yylloc);
13975 yystate = yystate_stack_[0];
13999 if (yystate_stack_.height () == 1)
14007 yystate = yystate_stack_[0];
14011 yyerror_range[1] = yylloc;
14037 yydestruct_ (
"Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
14042 while (yystate_stack_.height () != 1)
boost::shared_ptr< LogicValue > LogicValueSharedPtr
static const unsigned short int yytable_[]
Represents attributes of a Port or PortReference object.
stack< location_type > location_stack_type
location stack type.
void log(const char *fmt,...)
static const short int yypact_ninf_
boost::shared_ptr< Instance > InstanceSharedPtr
PortAttributes * mAttribute
boost::shared_ptr< StatusContainer > StatusContainerSharedPtr
location location_type
Symbol locations.
boost::shared_ptr< EdifContext > EdifContextSharedPtr
Represents attributes of a Net object.
PortRefData * mParentPort
boost::shared_ptr< NetAttributes > NetAttributesSharedPtr
LogicMapType mLogicMapType
boost::shared_ptr< ParameterArray > ParameterArraySharedPtr
boost::shared_ptr< ScalarPort > ScalarPortSharedPtr
#define YY_REDUCE_PRINT(Rule)
boost::shared_ptr< WaveValue > WaveValueSharedPtr
boost::shared_ptr< ScalarNet > ScalarNetSharedPtr
static const int yyterror_
boost::shared_ptr< PropertyContainer > PropertyContainerSharedPtr
boost::shared_ptr< LogicElement > LogicElementSharedPtr
boost::shared_ptr< PortBundle > PortBundleSharedPtr
boost::shared_ptr< Permutable > PermutableSharedPtr
Present a slice of the top of a stack.
This structure is for logicRef and libraryRef used in logicMapInput/logicMapOutput.
void setNominal(const Value::Number &inSource)
Represents the portDelay attribute on Port or PortReference.
virtual void error(const location_type &loc, const std::string &msg)
std::vector< size_t > mIndices
void setMax(const Value::Number &inSource)
std::vector< Value > mValues
stack< semantic_type > semantic_stack_type
Semantic value stack type.
boost::shared_ptr< Linker > LinkerSharedPtr
Represents the netDelay attribute of Net.
boost::shared_ptr< Parameter > ParameterSharedPtr
state_stack_type yystate_stack_
The state stack.
boost::shared_ptr< Written > WrittenSharedPtr
boost::shared_ptr< ObjectFactory > ObjectFactorySharedPtr
static const unsigned short int yydefact_[]
boost::shared_ptr< InstanceArray > InstanceArraySharedPtr
static const unsigned short int yystos_[]
For a state, its accessing symbol.
static const short int yycheck_[]
void setMin(const Value::Number &inSource)
void setAppendToUserDataBuffer(bool inAppendToBuffer)
void setAppendToBuffer(bool inAppendToBuffer)
boost::shared_ptr< Simulate > SimulateSharedPtr
boost::shared_ptr< Design > DesignSharedPtr
std::string getUserDataBuffer()
boost::shared_ptr< PortAttributes > PortAttributesSharedPtr
stack< state_type > state_stack_type
State stack type.
boost::shared_ptr< VectorPort > VectorPortSharedPtr
boost::shared_ptr< VectorNet > VectorNetSharedPtr
static const unsigned short int yyr1_[]
For a rule, its LHS.
The Error object thrown by different methods of EdifOM.
location_stack_type yylocation_stack_
The location stack.
boost::shared_ptr< LogicalResponse > LogicalResponseSharedPtr
boost::shared_ptr< Net > NetSharedPtr
static const int yyfinal_
#define YYLLOC_DEFAULT(Current, Rhs, N)
Represents the time in Universal Time Coordinate (year, month, day, hour, minute, second) ...
void push(const T &t)
Bison undocumented.
boost::shared_ptr< Library > LibrarySharedPtr
void yypop_(unsigned int n=1)
Pop n symbols the three stacks.
boost::shared_ptr< PortReference > PortReferenceSharedPtr
boost::shared_ptr< SimulationInfo > SimulationInfoSharedPtr
static const short int yypgoto_[]
boost::shared_ptr< ForbiddenEvent > ForbiddenEventSharedPtr
boost::shared_ptr< PortList > PortListSharedPtr
boost::shared_ptr< Apply > ApplySharedPtr
void saveContextData(const std::string &inName, const boost::any &inSource)
EdifContextSharedPtr getContext() const
Represents attributes of a view interface.
boost::shared_ptr< Event > EventSharedPtr
void resetUserDataBuffer()
virtual std::string yysyntax_error_(int yystate, int tok)
static const short int yydefgoto_[]
boost::shared_ptr< SingleParameter > SingleParameterSharedPtr
Scanner * getLexer() const
This class is used within simulationInfo construct to define a logic value to use for modeling...
boost::shared_ptr< InterfaceAttributes > InterfaceAttributesSharedPtr
semantic_stack_type yysemantic_stack_
The semantic value stack.
static const int yyempty_
static const short int yypact_[]
For a state, the index in yytable_ of its portion.
static const signed char yytable_ninf_
void yydestruct_(const char *yymsg, int yytype, semantic_type *yyvaluep, location_type *yylocationp)
Reclaim the memory associated to a symbol.
token_number_type yytranslate_(int t)
Convert a scanner token number t to a symbol number.
boost::shared_ptr< View > ViewSharedPtr
boost::shared_ptr< Cell > CellSharedPtr
static const int yyntokens_
void setParserError(const Error &inSource)
boost::shared_ptr< InterfaceJoinedInfo > InterfaceJoinedInfoSharedPtr
boost::shared_ptr< PortListAlias > PortListAliasSharedPtr
boost::shared_ptr< Port > PortSharedPtr
boost::shared_ptr< PathDelay > PathDelaySharedPtr
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
boost::shared_ptr< Property > PropertySharedPtr
boost::shared_ptr< SingleInstance > SingleInstanceSharedPtr
boost::shared_ptr< Timing > TimingSharedPtr
boost::shared_ptr< Status > StatusSharedPtr
boost::shared_ptr< NetBundle > NetBundleSharedPtr
std::string mOriginalName
std::string & getStreamName()
boost::shared_ptr< Root > RootSharedPtr
void setIsIdContext(bool inIsIdContext)
static const unsigned char yyr2_[]
For a rule, its RHS length.
void setCurrentLocation(const std::string &inFunction, const std::string &inFile, uint32_t inLine)