diff options
Diffstat (limited to 'unoidl/source/sourceprovider-parser.y')
-rw-r--r-- | unoidl/source/sourceprovider-parser.y | 260 |
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); |