summaryrefslogtreecommitdiff
path: root/unoidl/source/sourceprovider-parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'unoidl/source/sourceprovider-parser.y')
-rw-r--r--unoidl/source/sourceprovider-parser.y260
1 files changed, 77 insertions, 183 deletions
diff --git a/unoidl/source/sourceprovider-parser.y b/unoidl/source/sourceprovider-parser.y
index 945ebea0f488..1a662d7f2e0b 100644
--- a/unoidl/source/sourceprovider-parser.y
+++ b/unoidl/source/sourceprovider-parser.y
@@ -262,9 +262,7 @@ unoidl::detail::SourceProviderEntity * findEntity_(
assert(name != 0);
OUString n;
if (!name->startsWith(".", &n)) {
- for (std::vector<OUString>::reverse_iterator i(data->modules.rbegin());
- i != data->modules.rend(); ++i)
- {
+ for (auto i(data->modules.rbegin()); i != data->modules.rend(); ++i) {
n = *i + "." + *name;
std::map<OUString, unoidl::detail::SourceProviderEntity>::iterator j(
data->entities.find(n));
@@ -837,12 +835,9 @@ bool checkInstantiatedPolymorphicStructTypeArgument(
if (type.type
== unoidl::detail::SourceProviderType::TYPE_INSTANTIATED_POLYMORPHIC_STRUCT)
{
- for (std::vector<unoidl::detail::SourceProviderType>::const_iterator i(
- type.subtypes.begin());
- i != type.subtypes.end(); ++i)
- {
- if (checkInstantiatedPolymorphicStructTypeArgument(*i, name)
- || i->getName() == name) // no need to worry about typedef
+ for (auto & i: type.subtypes) {
+ if (checkInstantiatedPolymorphicStructTypeArgument(i, name)
+ || i.getName() == name) // no need to worry about typedef
{
return true;
}
@@ -1329,11 +1324,8 @@ structMember:
dynamic_cast<unoidl::detail::SourceProviderPlainStructTypeEntityPad *>(
ent->pad.get());
if (p1 != 0) {
- for (std::vector<unoidl::PlainStructTypeEntity::Member>::iterator i(
- p1->members.begin());
- i != p1->members.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: p1->members) {
+ if (id == i.name) {
error(
@3, yyscanner,
("plain struct type " + data->currentName
@@ -1344,9 +1336,7 @@ structMember:
}
if (p1->baseEntity.is()) {
OUString baseName(p1->baseName);
- for (rtl::Reference<unoidl::PlainStructTypeEntity> baseEnt(
- p1->baseEntity);;)
- {
+ for (auto baseEnt(p1->baseEntity);;) {
if (nameHasSameIdentifierAs(baseName, id)) {
error(
@3, yyscanner,
@@ -1356,11 +1346,8 @@ structMember:
+ baseName));
YYERROR;
}
- for (std::vector<unoidl::PlainStructTypeEntity::Member>::const_iterator i(
- baseEnt->getDirectMembers().begin());
- i != baseEnt->getDirectMembers().end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: baseEnt->getDirectMembers()) {
+ if (id == i.name) {
error(
@3, yyscanner,
("plain struct type " + data->currentName
@@ -1403,11 +1390,8 @@ structMember:
p2 = dynamic_cast<unoidl::detail::SourceProviderPolymorphicStructTypeTemplateEntityPad *>(
ent->pad.get());
if (p2 != 0) {
- for (std::vector<unoidl::PolymorphicStructTypeTemplateEntity::Member>::iterator i(
- p2->members.begin());
- i != p2->members.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: p2->members) {
+ if (id == i.name) {
error(
@3, yyscanner,
("polymorphic struct type template "
@@ -1425,11 +1409,8 @@ structMember:
= dynamic_cast<unoidl::detail::SourceProviderExceptionTypeEntityPad *>(
ent->pad.get());
assert(p3 != 0);
- for (std::vector<unoidl::ExceptionTypeEntity::Member>::iterator i(
- p3->members.begin());
- i != p3->members.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: p3->members) {
+ if (id == i.name) {
error(
@3, yyscanner,
("exception type " + data->currentName
@@ -1440,9 +1421,7 @@ structMember:
}
if (p3->baseEntity.is()) {
OUString baseName(p3->baseName);
- for (rtl::Reference<unoidl::ExceptionTypeEntity> baseEnt(
- p3->baseEntity);;)
- {
+ for (auto baseEnt(p3->baseEntity);;) {
if (nameHasSameIdentifierAs(baseName, id)) {
error(
@3, yyscanner,
@@ -1452,11 +1431,8 @@ structMember:
+ baseName));
YYERROR;
}
- for (std::vector<unoidl::ExceptionTypeEntity::Member>::const_iterator i(
- baseEnt->getDirectMembers().begin());
- i != baseEnt->getDirectMembers().end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: baseEnt->getDirectMembers()) {
+ if (id == i.name) {
error(
@3, yyscanner,
("exception type " + data->currentName
@@ -1613,18 +1589,12 @@ interfaceDefn:
}
}
std::vector<unoidl::AnnotatedReference> mbases;
- for (std::vector<unoidl::detail::SourceProviderInterfaceTypeEntityPad::DirectBase>::const_iterator
- i(pad->directMandatoryBases.begin());
- i != pad->directMandatoryBases.end(); ++i)
- {
- mbases.emplace_back(i->name, i->annotations);
+ for (auto & i: pad->directMandatoryBases) {
+ mbases.emplace_back(i.name, i.annotations);
}
std::vector<unoidl::AnnotatedReference> obases;
- for (std::vector<unoidl::detail::SourceProviderInterfaceTypeEntityPad::DirectBase>::const_iterator
- i(pad->directOptionalBases.begin());
- i != pad->directOptionalBases.end(); ++i)
- {
- obases.emplace_back(i->name, i->annotations);
+ for (auto & i: pad->directOptionalBases) {
+ obases.emplace_back(i.name, i.annotations);
}
ent->entity = new unoidl::InterfaceTypeEntity(
pad->isPublished(), mbases, obases, pad->directAttributes,
@@ -1886,11 +1856,8 @@ methodParam:
default:
break;
}
- for (std::vector<unoidl::InterfaceTypeEntity::Method::Parameter>::iterator
- i(pad->directMethods.back().parameters.begin());
- i != pad->directMethods.back().parameters.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: pad->directMethods.back().parameters) {
+ if (id == i.name) {
error(
@5, yyscanner,
("interface type " + data->currentName + " direct method "
@@ -2374,20 +2341,14 @@ singleInterfaceBasedServiceDefn:
assert(pad != 0);
std::vector<unoidl::SingleInterfaceBasedServiceEntity::Constructor> ctors;
if ($7) {
- for (std::vector<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad::Constructor>::iterator
- i(pad->constructors.begin());
- i != pad->constructors.end(); ++i)
- {
+ for (auto & i: pad->constructors) {
std::vector<unoidl::SingleInterfaceBasedServiceEntity::Constructor::Parameter> parms;
- for (std::vector<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad::Constructor::Parameter>::iterator
- j(i->parameters.begin());
- j != i->parameters.end(); ++j)
- {
- parms.emplace_back(j->name, j->type.getName(), j->rest);
+ for (auto & j: i.parameters) {
+ parms.emplace_back(j.name, j.type.getName(), j.rest);
}
ctors.push_back(
unoidl::SingleInterfaceBasedServiceEntity::Constructor(
- i->name, parms, i->exceptions, i->annotations));
+ i.name, parms, i.exceptions, i.annotations));
}
} else {
assert(pad->constructors.empty());
@@ -2419,11 +2380,8 @@ ctor:
rtl::Reference<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad>
pad(getCurrentPad<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad>(
data));
- for (std::vector<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad::Constructor>::iterator
- i(pad->constructors.begin());
- i != pad->constructors.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: pad->constructors) {
+ if (id == i.name) {
error(
@2, yyscanner,
("single-interface--based service " + data->currentName
@@ -2447,15 +2405,14 @@ ctor:
pad->constructors.back().exceptions = *$7;
delete $7;
}
- for (std::vector<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad::Constructor>::iterator
- i(pad->constructors.begin());
- i != pad->constructors.end() - 1; ++i)
+ for (auto i(pad->constructors.begin()); i != pad->constructors.end() - 1;
+ ++i)
{
if (i->parameters.size()
== pad->constructors.back().parameters.size())
{
bool same = true;
- for (std::vector<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad::Constructor::Parameter>::iterator
+ for (auto
j(i->parameters.begin()),
k(pad->constructors.back().parameters.begin());
j != i->parameters.end(); ++j, ++k)
@@ -2549,11 +2506,8 @@ ctorParam:
+ " rest parameter must be last parameter"));
YYERROR;
}
- for (std::vector<unoidl::detail::SourceProviderSingleInterfaceBasedServiceEntityPad::Constructor::Parameter>::iterator
- i(pad->constructors.back().parameters.begin());
- i != pad->constructors.back().parameters.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: pad->constructors.back().parameters) {
+ if (id == i.name) {
error(
@6, yyscanner,
("single-interface--based service " + data->currentName
@@ -2665,10 +2619,8 @@ serviceBase:
std::vector<unoidl::AnnotatedReference> & v(
opt
? pad->directOptionalBaseServices : pad->directMandatoryBaseServices);
- for (std::vector<unoidl::AnnotatedReference>::iterator i(v.begin());
- i != v.end(); ++i)
- {
- if (name == i->name) {
+ for (auto & i: v) {
+ if (name == i.name) {
error(
@4, yyscanner,
("accumulation-based service " + data->currentName
@@ -2744,10 +2696,8 @@ serviceInterfaceBase:
opt
? pad->directOptionalBaseInterfaces
: pad->directMandatoryBaseInterfaces);
- for (std::vector<unoidl::AnnotatedReference>::iterator i(v.begin());
- i != v.end(); ++i)
- {
- if (name == i->name) {
+ for (auto & i: v) {
+ if (name == i.name) {
error(
@4, yyscanner,
("accumulation-based service " + data->currentName
@@ -2833,11 +2783,8 @@ serviceProperty:
rtl::Reference<unoidl::detail::SourceProviderAccumulationBasedServiceEntityPad>
pad(getCurrentPad<unoidl::detail::SourceProviderAccumulationBasedServiceEntityPad>(
data));
- for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::iterator
- i(pad->directProperties.begin());
- i != pad->directProperties.end(); ++i)
- {
- if (id == i->name) {
+ for (auto & i: pad->directProperties) {
+ if (id == i.name) {
error(
@4, yyscanner,
("accumulation-based service " + data->currentName
@@ -3522,12 +3469,9 @@ primaryExpr:
unoidl::detail::SourceProviderEnumTypeEntityPad * p1 = dynamic_cast<
unoidl::detail::SourceProviderEnumTypeEntityPad *>(pad.get());
if (p1 != 0) {
- for (std::vector<unoidl::EnumTypeEntity::Member>::const_iterator
- j(p1->members.begin());
- j != p1->members.end(); ++j)
- {
- if (j->name == name) {
- v = unoidl::ConstantValue(j->value);
+ for (auto & j: p1->members) {
+ if (j.name == name) {
+ v = unoidl::ConstantValue(j.value);
found = true;
break;
}
@@ -3538,12 +3482,9 @@ primaryExpr:
unoidl::detail::SourceProviderConstantGroupEntityPad *>(
pad.get());
if (p2 != 0) {
- for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
- j(p2->members.begin());
- j != p2->members.end(); ++j)
- {
- if (j->name == name) {
- v = j->value;
+ for (auto & j: p2->members) {
+ if (j.name == name) {
+ v = j.value;
found = true;
break;
}
@@ -3571,12 +3512,9 @@ primaryExpr:
static_cast<unoidl::ConstantGroupEntity *>(
ent->entity.get())->
getMembers());
- for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator j(
- mems.begin());
- j != mems.end(); ++j)
- {
- if (j->name == id) {
- v = j->value;
+ for (auto & j: mems) {
+ if (j.name == id) {
+ v = j.value;
found = true;
unpub
= !static_cast<unoidl::ConstantGroupEntity *>(
@@ -3591,12 +3529,9 @@ primaryExpr:
unoidl::detail::SourceProviderConstantGroupEntityPad *>(
ent->pad.get());
if (pad != 0) {
- for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator j(
- pad->members.begin());
- j != pad->members.end(); ++j)
- {
- if (j->name == id) {
- v = j->value;
+ for (auto & j: pad->members) {
+ if (j.name == id) {
+ v = j.value;
found = true;
unpub = !ent->pad->isPublished();
break;
@@ -4083,10 +4018,7 @@ OUString SourceProviderType::getName() const {
case unoidl::detail::SourceProviderType::TYPE_INSTANTIATED_POLYMORPHIC_STRUCT:
{
OUString n(name + "<");
- for (std::vector<SourceProviderType>::const_iterator i(
- subtypes.begin());
- i != subtypes.end(); ++i)
- {
+ for (auto i(subtypes.begin()); i != subtypes.end(); ++i) {
if (i != subtypes.begin()) {
n += ",";
}
@@ -4105,8 +4037,7 @@ bool SourceProviderType::equals(SourceProviderType const & other) const {
{
return false;
}
- for (std::vector<SourceProviderType>::const_iterator
- i(subtypes.begin()), j(other.subtypes.begin());
+ for (auto i(subtypes.begin()), j(other.subtypes.begin());
i != subtypes.end(); ++i, ++j)
{
if (!i->equals(*j)) {
@@ -4204,11 +4135,8 @@ bool SourceProviderInterfaceTypeEntityPad::checkBaseClashes(
}
}
if (direct || !optional) {
- for (std::vector<unoidl::AnnotatedReference>::const_iterator j(
- entity->getDirectMandatoryBases().begin());
- j != entity->getDirectMandatoryBases().end(); ++j)
- {
- OUString n("." + j->name);
+ for (auto & j: entity->getDirectMandatoryBases()) {
+ OUString n("." + j.name);
unoidl::detail::SourceProviderEntity const * p;
if (findEntity(location, yyscanner, data, true, &n, &p, 0, 0)
== FOUND_ERROR)
@@ -4235,11 +4163,8 @@ bool SourceProviderInterfaceTypeEntityPad::checkBaseClashes(
return false;
}
}
- for (std::vector<unoidl::AnnotatedReference>::const_iterator j(
- entity->getDirectOptionalBases().begin());
- j != entity->getDirectOptionalBases().end(); ++j)
- {
- OUString n("." + j->name);
+ for (auto & j: entity->getDirectOptionalBases()) {
+ OUString n("." + j.name);
unoidl::detail::SourceProviderEntity const * p;
if (findEntity(location, yyscanner, data, true, &n, &p, 0, 0)
== FOUND_ERROR)
@@ -4266,23 +4191,17 @@ bool SourceProviderInterfaceTypeEntityPad::checkBaseClashes(
return false;
}
}
- for (std::vector<unoidl::InterfaceTypeEntity::Attribute>::const_iterator
- j(entity->getDirectAttributes().begin());
- j != entity->getDirectAttributes().end(); ++j)
- {
+ for (auto & j: entity->getDirectAttributes()) {
if (!checkMemberClashes(
- location, yyscanner, data, name, j->name,
+ location, yyscanner, data, name, j.name,
!outerOptional))
{
return false;
}
}
- for (std::vector<unoidl::InterfaceTypeEntity::Method>::const_iterator
- j(entity->getDirectMethods().begin());
- j != entity->getDirectMethods().end(); ++j)
- {
+ for (auto & j: entity->getDirectMethods()) {
if (!checkMemberClashes(
- location, yyscanner, data, name, j->name,
+ location, yyscanner, data, name, j.name,
!outerOptional))
{
return false;
@@ -4311,11 +4230,8 @@ bool SourceProviderInterfaceTypeEntityPad::checkMemberClashes(
return false;
}
} else if (checkOptional) {
- for (std::set<OUString>::const_iterator j(
- i->second.optional.begin());
- j != i->second.optional.end(); ++j)
- {
- if (*j != interfaceName) {
+ for (auto & j: i->second.optional) {
+ if (j != interfaceName) {
error(
location, yyscanner,
("interface type " + data->currentName
@@ -4347,11 +4263,8 @@ bool SourceProviderInterfaceTypeEntityPad::addBase(
p.first->second = kind;
}
if (!optional && !seen) {
- for (std::vector<unoidl::AnnotatedReference>::const_iterator i(
- entity->getDirectMandatoryBases().begin());
- i != entity->getDirectMandatoryBases().end(); ++i)
- {
- OUString n("." + i->name);
+ for (auto & i: entity->getDirectMandatoryBases()) {
+ OUString n("." + i.name);
unoidl::detail::SourceProviderEntity const * q;
if (findEntity(location, yyscanner, data, true, &n, &q, 0, 0)
== FOUND_ERROR)
@@ -4376,11 +4289,9 @@ bool SourceProviderInterfaceTypeEntityPad::addBase(
return false;
}
}
- for (std::vector<unoidl::AnnotatedReference>::const_iterator i(
- entity->getDirectOptionalBases().begin());
- i != entity->getDirectOptionalBases().end(); ++i)
+ for (auto & i: entity->getDirectOptionalBases())
{
- OUString n("." + i->name);
+ OUString n("." + i.name);
unoidl::detail::SourceProviderEntity const * q;
if (findEntity(location, yyscanner, data, true, &n, &q, 0, 0)
== FOUND_ERROR)
@@ -4405,19 +4316,13 @@ bool SourceProviderInterfaceTypeEntityPad::addBase(
return false;
}
}
- for (std::vector<unoidl::InterfaceTypeEntity::Attribute>::const_iterator
- i(entity->getDirectAttributes().begin());
- i != entity->getDirectAttributes().end(); ++i)
- {
+ for (auto & i: entity->getDirectAttributes()) {
allMembers.insert(
- std::map<OUString, Member>::value_type(i->name, Member(name)));
+ std::map<OUString, Member>::value_type(i.name, Member(name)));
}
- for (std::vector<unoidl::InterfaceTypeEntity::Method>::const_iterator i(
- entity->getDirectMethods().begin());
- i != entity->getDirectMethods().end(); ++i)
- {
+ for (auto & i: entity->getDirectMethods()) {
allMembers.insert(
- std::map<OUString, Member>::value_type(i->name, Member(name)));
+ std::map<OUString, Member>::value_type(i.name, Member(name)));
}
}
return true;
@@ -4429,11 +4334,8 @@ bool SourceProviderInterfaceTypeEntityPad::addOptionalBaseMembers(
rtl::Reference<unoidl::InterfaceTypeEntity> const & entity)
{
assert(entity.is());
- for (std::vector<unoidl::AnnotatedReference>::const_iterator i(
- entity->getDirectMandatoryBases().begin());
- i != entity->getDirectMandatoryBases().end(); ++i)
- {
- OUString n("." + i->name);
+ for (auto & i: entity->getDirectMandatoryBases()) {
+ OUString n("." + i.name);
unoidl::detail::SourceProviderEntity const * p;
if (findEntity(location, yyscanner, data, true, &n, &p, 0, 0)
== FOUND_ERROR)
@@ -4457,27 +4359,19 @@ bool SourceProviderInterfaceTypeEntityPad::addOptionalBaseMembers(
return false;
}
}
- for (std::vector<unoidl::InterfaceTypeEntity::Attribute>::const_iterator i(
- entity->getDirectAttributes().begin());
- i != entity->getDirectAttributes().end(); ++i)
- {
+ for (auto & i: entity->getDirectAttributes()) {
Member & m(
allMembers.insert(
- std::map<OUString, Member>::value_type(
- i->name, Member("")))
+ std::map<OUString, Member>::value_type(i.name, Member("")))
.first->second);
if (m.mandatory.isEmpty()) {
m.optional.insert(name);
}
}
- for (std::vector<unoidl::InterfaceTypeEntity::Method>::const_iterator i(
- entity->getDirectMethods().begin());
- i != entity->getDirectMethods().end(); ++i)
- {
+ for (auto & i: entity->getDirectMethods()) {
Member & m(
allMembers.insert(
- std::map<OUString, Member>::value_type(
- i->name, Member("")))
+ std::map<OUString, Member>::value_type(i.name, Member("")))
.first->second);
if (m.mandatory.isEmpty()) {
m.optional.insert(name);