diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-01-27 11:15:12 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-01-27 14:10:25 +0100 |
commit | 8fed86b3ebb52cbf28ba2a561e67108e3a05a206 (patch) | |
tree | fcf618a327bf0185ba84454bfb3a91072814727b /idl | |
parent | 7e380a76e1f0faa90fdf8f0575053d4a1ca6e1de (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')
-rw-r--r-- | idl/source/prj/database.cxx | 15 |
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 ); |