Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
8389c41f
Commit
8389c41f
authored
Jul 13, 2014
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #193 from codemaximus/csprops
Added support for C# property accessors visibility modifiers
parents
070c3554
54ac45bd
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
98 additions
and
6 deletions
+98
-6
context.cpp
src/context.cpp
+27
-3
entry.h
src/entry.h
+4
-0
memberdef.cpp
src/memberdef.cpp
+43
-3
memberdef.h
src/memberdef.h
+4
-0
scanner.l
src/scanner.l
+4
-0
xmlgen.cpp
src/xmlgen.cpp
+16
-0
No files found.
src/context.cpp
View file @
8389c41f
...
...
@@ -2766,7 +2766,11 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
addProperty
(
"isExplicit"
,
this
,
&
Private
::
isExplicit
);
addProperty
(
"isMutable"
,
this
,
&
Private
::
isMutable
);
addProperty
(
"isGettable"
,
this
,
&
Private
::
isGettable
);
addProperty
(
"isPrivateGettable"
,
this
,
&
Private
::
isPrivateGettable
);
addProperty
(
"isProtectedGettable"
,
this
,
&
Private
::
isProtectedGettable
);
addProperty
(
"isSettable"
,
this
,
&
Private
::
isSettable
);
addProperty
(
"isPrivateSettable"
,
this
,
&
Private
::
isPrivateSettable
);
addProperty
(
"isProtectedSettable"
,
this
,
&
Private
::
isProtectedSettable
);
addProperty
(
"isReadable"
,
this
,
&
Private
::
isReadable
);
addProperty
(
"isWritable"
,
this
,
&
Private
::
isWritable
);
addProperty
(
"isAddable"
,
this
,
&
Private
::
isAddable
);
...
...
@@ -2855,8 +2859,12 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
m_cache
.
propertyAttrs
.
reset
(
TemplateList
::
alloc
());
if
(
md
&&
md
->
isProperty
())
{
if
(
md
->
isGettable
())
m_cache
.
propertyAttrs
->
append
(
"get"
);
if
(
md
->
isSettable
())
m_cache
.
propertyAttrs
->
append
(
"set"
);
if
(
md
->
isGettable
())
m_cache
.
propertyAttrs
->
append
(
"get"
);
if
(
md
->
isPrivateGettable
())
m_cache
.
propertyAttrs
->
append
(
"private get"
);
if
(
md
->
isProtectedGettable
())
m_cache
.
propertyAttrs
->
append
(
"protected get"
);
if
(
md
->
isSettable
())
m_cache
.
propertyAttrs
->
append
(
"set"
);
if
(
md
->
isPrivateSettable
())
m_cache
.
propertyAttrs
->
append
(
"private set"
);
if
(
md
->
isProtectedSettable
())
m_cache
.
propertyAttrs
->
append
(
"protected set"
);
}
m_cache
.
eventAttrs
.
reset
(
TemplateList
::
alloc
());
if
(
md
&&
md
->
isEvent
())
...
...
@@ -2948,12 +2956,28 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
}
TemplateVariant
isGettable
()
const
{
return
m_memberDef
->
isSettable
();
return
m_memberDef
->
isGettable
();
}
TemplateVariant
isPrivateGettable
()
const
{
return
m_memberDef
->
isPrivateGettable
();
}
TemplateVariant
isProtectedGettable
()
const
{
return
m_memberDef
->
isProtectedGettable
();
}
TemplateVariant
isSettable
()
const
{
return
m_memberDef
->
isSettable
();
}
TemplateVariant
isPrivateSettable
()
const
{
return
m_memberDef
->
isPrivateSettable
();
}
TemplateVariant
isProtectedSettable
()
const
{
return
m_memberDef
->
isProtectedSettable
();
}
TemplateVariant
isReadable
()
const
{
return
m_memberDef
->
isReadable
();
...
...
src/entry.h
View file @
8389c41f
...
...
@@ -135,6 +135,10 @@ class Entry
static
const
uint64
Singleton
=
(
1ULL
<<
14
);
// UNO IDL
// member specifiers (add new items to the beginning)
static
const
uint64
PrivateGettable
=
(
1ULL
<<
20
);
// C# private getter
static
const
uint64
ProtectedGettable
=
(
1ULL
<<
21
);
// C# protected getter
static
const
uint64
PrivateSettable
=
(
1ULL
<<
22
);
// C# private setter
static
const
uint64
ProtectedSettable
=
(
1ULL
<<
23
);
// C# protected setter
static
const
uint64
Inline
=
(
1ULL
<<
24
);
static
const
uint64
Explicit
=
(
1ULL
<<
25
);
static
const
uint64
Mutable
=
(
1ULL
<<
26
);
...
...
src/memberdef.cpp
View file @
8389c41f
...
...
@@ -1729,15 +1729,27 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol
.
docify
(
" [implementation]"
);
ol
.
endTypewriter
();
}
bool
extractPrivate
=
Config_getBool
(
"EXTRACT_PRIVATE"
);
if
(
isProperty
()
&&
(
isSettable
()
||
isGettable
()))
if
(
isProperty
()
&&
(
isSettable
()
||
isGettable
()
||
isPrivateSettable
()
||
isPrivateGettable
()
||
isProtectedSettable
()
||
isProtectedGettable
()))
{
ol
.
writeLatexSpacing
();
ol
.
startTypewriter
();
ol
.
docify
(
" ["
);
QStrList
sl
;
if
(
isGettable
())
sl
.
append
(
"get"
);
if
(
isSettable
())
sl
.
append
(
"set"
);
if
(
isGettable
())
sl
.
append
(
"get"
);
if
(
isProtectedGettable
())
sl
.
append
(
"protected get"
);
if
(
isSettable
())
sl
.
append
(
"set"
);
if
(
isProtectedSettable
())
sl
.
append
(
"protected set"
);
if
(
extractPrivate
)
{
if
(
isPrivateGettable
())
sl
.
append
(
"private get"
);
if
(
isPrivateSettable
())
sl
.
append
(
"private set"
);
}
const
char
*
s
=
sl
.
first
();
while
(
s
)
{
...
...
@@ -1940,6 +1952,7 @@ void MemberDef::getLabels(QStrList &sl,Definition *container) const
//ol.docify(" [");
SrcLangExt
lang
=
getLanguage
();
bool
optVhdl
=
lang
==
SrcLangExt_VHDL
;
bool
extractPrivate
=
Config_getBool
(
"EXTRACT_PRIVATE"
);
if
(
optVhdl
)
{
sl
.
append
(
VhdlDocGen
::
trTypeString
(
getMemberSpecifiers
()));
...
...
@@ -1955,7 +1968,14 @@ void MemberDef::getLabels(QStrList &sl,Definition *container) const
if
(
isMutable
())
sl
.
append
(
"mutable"
);
if
(
isStatic
())
sl
.
append
(
"static"
);
if
(
isGettable
())
sl
.
append
(
"get"
);
if
(
isProtectedGettable
())
sl
.
append
(
"protected get"
);
if
(
isSettable
())
sl
.
append
(
"set"
);
if
(
isProtectedSettable
())
sl
.
append
(
"protected set"
);
if
(
extractPrivate
)
{
if
(
isPrivateGettable
())
sl
.
append
(
"private get"
);
if
(
isPrivateSettable
())
sl
.
append
(
"private set"
);
}
if
(
isAddable
())
sl
.
append
(
"add"
);
if
(
!
isUNOProperty
()
&&
isRemovable
())
sl
.
append
(
"remove"
);
if
(
isRaisable
())
sl
.
append
(
"raise"
);
...
...
@@ -4193,11 +4213,31 @@ bool MemberDef::isGettable() const
return
(
m_impl
->
memSpec
&
Entry
::
Gettable
)
!=
0
;
}
bool
MemberDef
::
isPrivateGettable
()
const
{
return
(
m_impl
->
memSpec
&
Entry
::
PrivateGettable
)
!=
0
;
}
bool
MemberDef
::
isProtectedGettable
()
const
{
return
(
m_impl
->
memSpec
&
Entry
::
ProtectedGettable
)
!=
0
;
}
bool
MemberDef
::
isSettable
()
const
{
return
(
m_impl
->
memSpec
&
Entry
::
Settable
)
!=
0
;
}
bool
MemberDef
::
isPrivateSettable
()
const
{
return
(
m_impl
->
memSpec
&
Entry
::
PrivateSettable
)
!=
0
;
}
bool
MemberDef
::
isProtectedSettable
()
const
{
return
(
m_impl
->
memSpec
&
Entry
::
ProtectedSettable
)
!=
0
;
}
bool
MemberDef
::
isAddable
()
const
{
return
(
m_impl
->
memSpec
&
Entry
::
Addable
)
!=
0
;
...
...
src/memberdef.h
View file @
8389c41f
...
...
@@ -123,7 +123,11 @@ class MemberDef : public Definition
bool
isExplicit
()
const
;
bool
isMutable
()
const
;
bool
isGettable
()
const
;
bool
isPrivateGettable
()
const
;
bool
isProtectedGettable
()
const
;
bool
isSettable
()
const
;
bool
isPrivateSettable
()
const
;
bool
isProtectedSettable
()
const
;
bool
isReadable
()
const
;
bool
isWritable
()
const
;
bool
isAddable
()
const
;
...
...
src/scanner.l
View file @
8389c41f
...
...
@@ -6129,6 +6129,10 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
BEGIN(FindMembers);
}
}
<CSAccessorDecl>"private "{BN}*"set" { if (curlyCount==0) current->spec |= Entry::PrivateSettable; }
<CSAccessorDecl>"protected "{BN}*"set" { if (curlyCount==0) current->spec |= Entry::ProtectedSettable; }
<CSAccessorDecl>"private "{BN}*"get" { if (curlyCount==0) current->spec |= Entry::PrivateGettable; }
<CSAccessorDecl>"protected "{BN}*"get" { if (curlyCount==0) current->spec |= Entry::ProtectedGettable; }
<CSAccessorDecl>"set" { if (curlyCount==0) current->spec |= Entry::Settable; }
<CSAccessorDecl>"get" { if (curlyCount==0) current->spec |= Entry::Gettable; }
<CSAccessorDecl>"add" { if (curlyCount==0) current->spec |= Entry::Addable; }
...
...
src/xmlgen.cpp
View file @
8389c41f
...
...
@@ -727,10 +727,26 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
if
(
md
->
isGettable
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
t
<<
" privategettable=
\"
"
;
if
(
md
->
isPrivateGettable
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
t
<<
" protectedgettable=
\"
"
;
if
(
md
->
isProtectedGettable
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
t
<<
" settable=
\"
"
;
if
(
md
->
isSettable
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
t
<<
" privatesettable=
\"
"
;
if
(
md
->
isPrivateSettable
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
t
<<
" protectedsettable=
\"
"
;
if
(
md
->
isProtectedSettable
())
t
<<
"yes"
;
else
t
<<
"no"
;
t
<<
"
\"
"
;
if
(
md
->
isAssign
()
||
md
->
isCopy
()
||
md
->
isRetain
()
||
md
->
isStrong
()
||
md
->
isWeak
())
{
t
<<
" accessor=
\"
"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment