summaryrefslogtreecommitdiff
path: root/idl/source
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2022-01-27 11:15:12 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-01-27 14:10:25 +0100
commit8fed86b3ebb52cbf28ba2a561e67108e3a05a206 (patch)
treefcf618a327bf0185ba84454bfb3a91072814727b /idl/source
parent7e380a76e1f0faa90fdf8f0575053d4a1ca6e1de (diff)
add some more TypeWhichId annotations
and update the idl compiler to cope with namespaced class names Change-Id: I7b5242f872e358bc3c5584f543767719172aac83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129026 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'idl/source')
-rw-r--r--idl/source/prj/database.cxx15
1 files changed, 13 insertions, 2 deletions
diff --git a/idl/source/prj/database.cxx b/idl/source/prj/database.cxx
index dc4cecb34895..4b0a58424558 100644
--- a/idl/source/prj/database.cxx
+++ b/idl/source/prj/database.cxx
@@ -174,8 +174,19 @@ bool SvIdlDataBase::ReadIdFile( std::string_view rOFileName )
if( !rTok.IsChar() || rTok.GetChar() != '<')
throw SvParseException( "expected '<'", rTok );
rTok = aTokStm.GetToken_Next();
- if( !rTok.IsIdentifier() )
- throw SvParseException( "expected identifier", rTok );
+ if (rTok.IsChar() && rTok.GetChar() == ':')
+ {
+ // add support for "::avmedia::MediaItem" namespaced identifier
+ rTok = aTokStm.GetToken_Next();
+ if( !rTok.IsChar() || rTok.GetChar() != ':')
+ throw SvParseException( "expected ':'", rTok );
+ // the lexer reads "avmedia::MediaItem" as an identifier
+ rTok = aTokStm.GetToken_Next();
+ if( !rTok.IsIdentifier() )
+ throw SvParseException( "expected identifier", rTok );
+ }
+ else if( !rTok.IsIdentifier() )
+ throw SvParseException( "expected identifier", rTok );
rTok = aTokStm.GetToken_Next();
if( !rTok.IsChar() || rTok.GetChar() != '>')
throw SvParseException( "expected '<'", rTok );