*****File: input.in*****
<FILE_BEG>
FILE = file.set
<FILE_END>
*****File: file.set*****
<FILE_LIBRARY_BEG>
FILE = file.lib
<FILE_LIBRARY_END>
<MYTAG_BEG>
MYTAG<1> = myvalue #from file.lib
MYTAG<2> = myothervalue #from file.lib
<MYTAG_END>
<MYOTHERTAG_BEG>
ID = 1 #Must be unique
TYPE = SOMESTRING
MYTAG_BELOW_ID = -1 #must correspond to one of the MYTAGs or 0 or -1
MYTAG_ABOVE_ID = 1 #must correspond to one of the MYTAGs or 0 or -1
<MYOTHERTAG_END>
<MYOTHERTAG_BEG>
ID = 2
TYPE = SOMEOTHERSTRING
MYTAG_BELOW_ID = 1 #must correspond to one of the MYTAGs or 0 or -1
MYTAG_ABOVE_ID = 0 #must correspond to one of the MYTAGs or 0 or -1
<MYOTHERTAG_END>
*****File: file.lib*****
<LIBITEM_BEG>
NAME = myvalue
SOMECOMPLEX = 2.0 0.0
SOMEOTHERCOMPLEX = 1.0 0.0
<LIBITEM_END>
<LIBITEM_BEG>
NAME = myothervalue
SOMECOMPLEX = 2.0 0.0
SOMEOTHERCOMPLEX = 1.0 0.0
<LIBITEM_END>
*****Goal: Fill the structures below*****
struct fileset
{
std::string filelibfilename;
std::map<int, std::string> mytagdata;
std::vector<myothertag> myothertagdata;
};
struct myothertag
{
std::string type;
int above, below, id;
};
KioqKipGaWxlOiBpbnB1dC5pbioqKioqCgo8RklMRV9CRUc+CiAgRklMRSA9IGZpbGUuc2V0CjxGSUxFX0VORD4KCioqKioqRmlsZTogZmlsZS5zZXQqKioqKgoKPEZJTEVfTElCUkFSWV9CRUc+CiAgRklMRSA9IGZpbGUubGliCjxGSUxFX0xJQlJBUllfRU5EPiAKCjxNWVRBR19CRUc+CiAgTVlUQUc8MT4gPSBteXZhbHVlICNmcm9tIGZpbGUubGliCiAgTVlUQUc8Mj4gPSBteW90aGVydmFsdWUgI2Zyb20gZmlsZS5saWIKPE1ZVEFHX0VORD4KCjxNWU9USEVSVEFHX0JFRz4KICBJRCA9IDEgI011c3QgYmUgdW5pcXVlCiAgVFlQRSA9IFNPTUVTVFJJTkcKICBNWVRBR19CRUxPV19JRCA9IC0xICNtdXN0IGNvcnJlc3BvbmQgdG8gb25lIG9mIHRoZSBNWVRBR3Mgb3IgMCBvciAtMQogIE1ZVEFHX0FCT1ZFX0lEID0gMSAjbXVzdCBjb3JyZXNwb25kIHRvIG9uZSBvZiB0aGUgTVlUQUdzIG9yIDAgb3IgLTEKPE1ZT1RIRVJUQUdfRU5EPgoKPE1ZT1RIRVJUQUdfQkVHPgogIElEID0gMgogIFRZUEUgPSBTT01FT1RIRVJTVFJJTkcKICBNWVRBR19CRUxPV19JRCA9IDEgI211c3QgY29ycmVzcG9uZCB0byBvbmUgb2YgdGhlIE1ZVEFHcyBvciAwIG9yIC0xCiAgTVlUQUdfQUJPVkVfSUQgPSAwICNtdXN0IGNvcnJlc3BvbmQgdG8gb25lIG9mIHRoZSBNWVRBR3Mgb3IgMCBvciAtMQo8TVlPVEhFUlRBR19FTkQ+CgoqKioqKkZpbGU6IGZpbGUubGliKioqKioKCjxMSUJJVEVNX0JFRz4KICBOQU1FID0gbXl2YWx1ZQogIFNPTUVDT01QTEVYID0gMi4wIDAuMCAKICBTT01FT1RIRVJDT01QTEVYID0gMS4wIDAuMAo8TElCSVRFTV9FTkQ+Cgo8TElCSVRFTV9CRUc+CiAgTkFNRSA9IG15b3RoZXJ2YWx1ZQogIFNPTUVDT01QTEVYID0gMi4wIDAuMCAKICBTT01FT1RIRVJDT01QTEVYID0gMS4wIDAuMAo8TElCSVRFTV9FTkQ+CgoqKioqKkdvYWw6IEZpbGwgdGhlIHN0cnVjdHVyZXMgYmVsb3cqKioqKgoKc3RydWN0IGZpbGVzZXQKewogIHN0ZDo6c3RyaW5nIGZpbGVsaWJmaWxlbmFtZTsKICBzdGQ6Om1hcDxpbnQsIHN0ZDo6c3RyaW5nPiBteXRhZ2RhdGE7CiAgc3RkOjp2ZWN0b3I8bXlvdGhlcnRhZz4gbXlvdGhlcnRhZ2RhdGE7Cn07CgpzdHJ1Y3QgbXlvdGhlcnRhZwp7CiAgc3RkOjpzdHJpbmcgdHlwZTsKICBpbnQgYWJvdmUsIGJlbG93LCBpZDsKfTs=