21#include <rtl/ustring.hxx>
27#include <sourceprovider-parser.hxx>
31struct SourceProviderScannerData;
52 std::vector<unoidl::EnumTypeEntity::Member>
members;
61 bool published,
const OUString & theBaseName,
65 { assert(theBaseName.isEmpty() != theBaseEntity.is()); }
69 std::vector<unoidl::PlainStructTypeEntity::Member>
members;
84 std::vector<unoidl::PolymorphicStructTypeTemplateEntity::Member>
members;
93 bool published,
const OUString & theBaseName,
97 { assert(theBaseName.isEmpty() != theBaseEntity.is()); }
101 std::vector<unoidl::ExceptionTypeEntity::Member>
members;
113 std::vector<OUString>&& theAnnotations):
115 { assert(theEntity.is()); }
144 OUString
const & name);
159 OUString
const & name,
161 bool direct,
bool optional,
bool outerOptional,
162 std::set<OUString> * seen)
const;
166 std::u16string_view interfaceName, OUString
const & memberName,
167 bool checkOptional)
const;
171 OUString
const & directBaseName, OUString
const & name,
177 OUString
const & name,
187 std::vector<unoidl::ConstantGroupEntity::Member>
members;
214 std::vector< OUString >&& theAnnotations):
228 bool published, OUString theBase):
251 std::vector<unoidl::AccumulationBasedServiceEntity::Property>
267 { assert(theKind <=
KIND_LOCAL); assert(externalEntity.is()); }
272 { assert(localPad.is()); }
std::vector< unoidl::AccumulationBasedServiceEntity::Property > directProperties
virtual ~SourceProviderAccumulationBasedServiceEntityPad() noexcept override
std::vector< unoidl::AnnotatedReference > directMandatoryBaseInterfaces
SourceProviderAccumulationBasedServiceEntityPad(bool published)
std::vector< unoidl::AnnotatedReference > directMandatoryBaseServices
std::vector< unoidl::AnnotatedReference > directOptionalBaseServices
std::vector< unoidl::AnnotatedReference > directOptionalBaseInterfaces
std::vector< unoidl::ConstantGroupEntity::Member > members
SourceProviderConstantGroupEntityPad(bool published)
virtual ~SourceProviderConstantGroupEntityPad() noexcept override
SourceProviderEntityPad(bool published)
virtual ~SourceProviderEntityPad() override
SourceProviderEnumTypeEntityPad(bool published)
virtual ~SourceProviderEnumTypeEntityPad() noexcept override
std::vector< unoidl::EnumTypeEntity::Member > members
std::vector< unoidl::ExceptionTypeEntity::Member > members
rtl::Reference< unoidl::ExceptionTypeEntity > const baseEntity
virtual ~SourceProviderExceptionTypeEntityPad() noexcept override
SourceProviderExceptionTypeEntityPad(bool published, const OUString &theBaseName, rtl::Reference< unoidl::ExceptionTypeEntity > const &theBaseEntity)
std::vector< unoidl::InterfaceTypeEntity::Attribute > directAttributes
std::vector< unoidl::InterfaceTypeEntity::Method > directMethods
bool addOptionalBaseMembers(YYLTYPE location, yyscan_t yyscanner, SourceProviderScannerData *data, OUString const &name, rtl::Reference< unoidl::InterfaceTypeEntity > const &entity)
virtual ~SourceProviderInterfaceTypeEntityPad() noexcept override
std::map< OUString, BaseKind > allBases
bool addBase(YYLTYPE location, yyscan_t yyscanner, SourceProviderScannerData *data, OUString const &directBaseName, OUString const &name, rtl::Reference< unoidl::InterfaceTypeEntity > const &entity, bool direct, bool optional)
std::vector< DirectBase > directMandatoryBases
bool addDirectMember(YYLTYPE location, yyscan_t yyscanner, SourceProviderScannerData *data, OUString const &name)
bool checkMemberClashes(YYLTYPE location, yyscan_t yyscanner, SourceProviderScannerData *data, std::u16string_view interfaceName, OUString const &memberName, bool checkOptional) const
std::vector< DirectBase > directOptionalBases
@ BASE_INDIRECT_MANDATORY
SourceProviderInterfaceTypeEntityPad(bool published, bool theSingleBase)
bool addDirectBase(YYLTYPE location, yyscan_t yyscanner, SourceProviderScannerData *data, DirectBase const &base, bool optional)
bool checkBaseClashes(YYLTYPE location, yyscan_t yyscanner, SourceProviderScannerData *data, OUString const &name, rtl::Reference< unoidl::InterfaceTypeEntity > const &entity, bool direct, bool optional, bool outerOptional, std::set< OUString > *seen) const
std::map< OUString, Member > allMembers
rtl::Reference< unoidl::PlainStructTypeEntity > const baseEntity
SourceProviderPlainStructTypeEntityPad(bool published, const OUString &theBaseName, rtl::Reference< unoidl::PlainStructTypeEntity > const &theBaseEntity)
std::vector< unoidl::PlainStructTypeEntity::Member > members
virtual ~SourceProviderPlainStructTypeEntityPad() noexcept override
SourceProviderPolymorphicStructTypeTemplateEntityPad(bool published)
std::vector< OUString > typeParameters
virtual ~SourceProviderPolymorphicStructTypeTemplateEntityPad() noexcept override
std::vector< unoidl::PolymorphicStructTypeTemplateEntity::Member > members
SourceProviderSingleInterfaceBasedServiceEntityPad(bool published, OUString theBase)
std::vector< Constructor > constructors
virtual ~SourceProviderSingleInterfaceBasedServiceEntityPad() noexcept override
bool parse(OUString const &uri, SourceProviderScannerData *data)
int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
unoidl::detail::SourceProviderScannerData * yyget_extra(yyscan_t yyscanner)
int yylex_init_extra(unoidl::detail::SourceProviderScannerData *user_defined, yyscan_t *yyscanner)
int yylex_destroy(yyscan_t yyscanner)
rtl::Reference< unoidl::Entity > entity
@ KIND_PUBLISHED_INTERFACE_DECL
SourceProviderEntity(rtl::Reference< SourceProviderEntityPad > const &localPad)
SourceProviderEntity(Kind theKind)
rtl::Reference< SourceProviderEntityPad > pad
SourceProviderEntity(Kind theKind, rtl::Reference< unoidl::Entity > const &externalEntity)
std::vector< OUString > annotations
rtl::Reference< unoidl::InterfaceTypeEntity > entity
DirectBase(OUString theName, rtl::Reference< unoidl::InterfaceTypeEntity > const &theEntity, std::vector< OUString > &&theAnnotations)
Member(OUString theMandatory)
std::set< OUString > optional
rtl::Reference< unoidl::Manager > manager
std::map< OUString, SourceProviderEntity > entities
void setSource(void const *address, sal_uInt64 size)
std::vector< OUString > modules
SourceProviderScannerData(rtl::Reference< unoidl::Manager > theManager)
char const * sourcePosition
Parameter(OUString theName, SourceProviderType theType, bool theRest)
std::vector< Parameter > parameters
std::vector< OUString > exceptions
std::vector< OUString > annotations
Constructor(OUString theName, std::vector< OUString > &&theAnnotations)