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
38c6a14b
Commit
38c6a14b
authored
Jan 23, 2008
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.5.4-20080123
parent
d37b4be3
Changes
30
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
338 additions
and
178 deletions
+338
-178
INSTALL
INSTALL
+2
-2
Makefile.in
Makefile.in
+4
-1
README
README
+2
-2
configure
configure
+1
-1
commands.doc
doc/commands.doc
+22
-1
config.doc
doc/config.doc
+8
-8
output.doc
doc/output.doc
+1
-1
qcstring.cpp
qtools/qcstring.cpp
+1
-1
qcstring.h
qtools/qcstring.h
+1
-0
scstring.cpp
qtools/scstring.cpp
+2
-2
commentcnv.l
src/commentcnv.l
+36
-3
commentscan.l
src/commentscan.l
+8
-0
config.l
src/config.l
+7
-5
defargs.l
src/defargs.l
+6
-1
definition.cpp
src/definition.cpp
+28
-11
docsets.cpp
src/docsets.cpp
+7
-4
doxygen.cpp
src/doxygen.cpp
+4
-2
filedef.cpp
src/filedef.cpp
+4
-1
fortrancode.l
src/fortrancode.l
+6
-6
fortranscanner.l
src/fortranscanner.l
+85
-71
groupdef.cpp
src/groupdef.cpp
+24
-16
groupdef.h
src/groupdef.h
+2
-2
index.cpp
src/index.cpp
+1
-1
pre.l
src/pre.l
+6
-6
pyscanner.l
src/pyscanner.l
+1
-1
scanner.l
src/scanner.l
+2
-1
util.cpp
src/util.cpp
+22
-1
vhdldocgen.cpp
src/vhdldocgen.cpp
+42
-25
vhdlscanner.l
src/vhdlscanner.l
+1
-0
Doxywizard.vcproj
winbuild/Doxywizard.vcproj
+2
-2
No files found.
INSTALL
View file @
38c6a14b
DOXYGEN Version 1.5.4-200801
01
DOXYGEN Version 1.5.4-200801
23
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
01
January 2008)
Dimitri van Heesch (
23
January 2008)
Makefile.in
View file @
38c6a14b
...
@@ -41,9 +41,12 @@ distclean: clean
...
@@ -41,9 +41,12 @@ distclean: clean
-
rm
-r
addon/doxywizard/Makefile
-
rm
-r
addon/doxywizard/Makefile
-
rm
-f
addon/doxywizard/Makefile.doxywizard
-
rm
-f
addon/doxywizard/Makefile.doxywizard
-
rm
-f
addon/doxywizard/doxywizard.pro
-
rm
-f
addon/doxywizard/doxywizard.pro
-
rm
-f
addon/doxywizard/obj/
*
.o
-
rm
-f
addon/doxywizard/moc/moc_
*
-
rm
-f
addon/doxywizard/moc/moc_
*
-
rm
-f
addon/doxywizard/config.cpp
-
rm
-f
addon/doxywizard/config.cpp
-
rm
-f
addon/doxywizard/lib
-
rm
-f
addon/doxywizard/objects
-
rm
-f
VERSION
-
rm
-f
packages/rpm/doxygen.spec
DATE
=
$(
shell
date
"+%B %Y"
)
DATE
=
$(
shell
date
"+%B %Y"
)
...
...
README
View file @
38c6a14b
DOXYGEN Version 1.5.4_200801
01
DOXYGEN Version 1.5.4_200801
23
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
01
January 2008)
Dimitri van Heesch (dimitri@stack.nl) (
23
January 2008)
configure
View file @
38c6a14b
...
@@ -20,7 +20,7 @@ doxygen_version_minor=5
...
@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision
=
4
doxygen_version_revision
=
4
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn
=
200801
01
doxygen_version_mmn
=
200801
23
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
...
doc/commands.doc
View file @
38c6a14b
...
@@ -88,6 +88,7 @@ documentation:
...
@@ -88,6 +88,7 @@ documentation:
\refitem cmdfcurlyclose \\f}
\refitem cmdfcurlyclose \\f}
\refitem cmdfile \\file
\refitem cmdfile \\file
\refitem cmdfn \\fn
\refitem cmdfn \\fn
\refitem cmdheaderfile \\headerfile
\refitem cmdhideinitializer \\hideinitializer
\refitem cmdhideinitializer \\hideinitializer
\refitem cmdhtmlinclude \\htmlinclude
\refitem cmdhtmlinclude \\htmlinclude
\refitem cmdhtmlonly \\htmlonly
\refitem cmdhtmlonly \\htmlonly
...
@@ -259,7 +260,9 @@ doxygen. Unrecognized commands are treated as normal text.
...
@@ -259,7 +260,9 @@ doxygen. Unrecognized commands are treated as normal text.
on the default include path (like \<X11/X.h\>). With the \<header-name\>
on the default include path (like \<X11/X.h\>). With the \<header-name\>
argument you can also specify how the include statement should look like,
argument you can also specify how the include statement should look like,
by adding either quotes or sharp brackets around the name.
by adding either quotes or sharp brackets around the name.
Sharp brackets are used if just the name is given.
Sharp brackets are used if just the name is given. Note that the
last two arguments can also specified using
the \ref cmdheaderfile "\\headerfile" command.
\par Example:
\par Example:
\verbinclude class.h
\verbinclude class.h
...
@@ -420,6 +423,24 @@ doxygen. Unrecognized commands are treated as normal text.
...
@@ -420,6 +423,24 @@ doxygen. Unrecognized commands are treated as normal text.
\sa section \ref cmdvar "\\var" and \ref cmdtypedef "\\typedef".
\sa section \ref cmdvar "\\var" and \ref cmdtypedef "\\typedef".
<hr>
\section cmdheaderfile \\headerfile <header-file> [<header-name>]
\addindex \\headerfile
Intended to be used for class, struct, or union documentation, where
the documentation is in front of the definition. The arguments of
this command are the same as the second and third argument of
\ref cmdclass "\\cmdclass".
The header-file name refers to the file that should by included by the
application to obtain the definition of the class, struct, or union.
The \<header-name\> argument can be used to overwrite the
name of the link that is used in the class documentation to something other
than \<header-file\>. This can be useful if the include name is not located
on the default include path (like \<X11/X.h\>). With the \<header-name\>
argument you can also specify how the include statement should look like,
by adding either quotes or sharp brackets around the name.
Sharp brackets are used if just the name is given.
<hr>
<hr>
\section cmdhideinitializer \\hideinitializer
\section cmdhideinitializer \\hideinitializer
...
...
doc/config.doc
View file @
38c6a14b
...
@@ -543,13 +543,13 @@ sources. Doxygen will then generate output that is tailored for VHDL.
...
@@ -543,13 +543,13 @@ sources. Doxygen will then generate output that is tailored for VHDL.
\anchor cfg_typedef_hides_struct
\anchor cfg_typedef_hides_struct
<dt>\c TYPEDEF_HIDES_STRUCT <dd>
<dt>\c TYPEDEF_HIDES_STRUCT <dd>
\addindex TYPEDEF_HIDES_STRUCT
\addindex TYPEDEF_HIDES_STRUCT
When \c TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct
(or union) is
When \c TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct
, union, or enum
documented as struct with the name of the typedef. So
is documented as struct, union, or enum with the name of the typedef. So
<code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct
<code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct
with name \c TypeT. When disabled the typedef will appear as a member of a file,
with name \c TypeT. When disabled the typedef will appear as a member of a file,
namespace, or class. And the struct will be named \c TypeS. This can typically
namespace, or class. And the struct will be named \c TypeS. This can typically
be useful for C code
where the coding convention is that all structs are
be useful for C code
in case the coding convention dictates that all compound
type
def'
ed
and
only
the
typedef
is
referenced
never
the
struct
's
name.
type
s are typedef'
ed
and
only
the
typedef
is
referenced
,
never
the
tag
name
.
</
dl
>
</
dl
>
...
@@ -1189,7 +1189,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
...
@@ -1189,7 +1189,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
on Windows.
on Windows.
The HTML Help Workshop contains a compiler that can convert all HTML output
The HTML Help Workshop contains a compiler that can convert all HTML output
generated by doxygen into a single comp
ressed HTML file (.chm). Compress
ed
generated by doxygen into a single comp
iled HTML file (.chm). Compil
ed
HTML files are now used as the Windows 98 help format, and will replace
HTML files are now used as the Windows 98 help format, and will replace
the old Windows help format (.hlp) on all Windows platforms in the future.
the old Windows help format (.hlp) on all Windows platforms in the future.
Compressed HTML files also contain an index, a table of contents,
Compressed HTML files also contain an index, a table of contents,
...
...
doc/output.doc
View file @
38c6a14b
...
@@ -39,7 +39,7 @@ The following output formats are \e directly supported by doxygen:
...
@@ -39,7 +39,7 @@ The following output formats are \e directly supported by doxygen:
The following output formats are \e indirectly supported by doxygen:
The following output formats are \e indirectly supported by doxygen:
<dl>
<dl>
<dt><b>Comp
ressed HTML
</b> (a.k.a. Windows 98 help)
<dt><b>Comp
iled HTML Help
</b> (a.k.a. Windows 98 help)
<dd>Generated by Microsoft's HTML Help workshop from the HTML output if
<dd>Generated by Microsoft's HTML Help workshop from the HTML output if
\c GENERATE_HTMLHELP is set to \c YES.
\c GENERATE_HTMLHELP is set to \c YES.
<dt><b>PostScript</b>
<dt><b>PostScript</b>
...
...
qtools/qcstring.cpp
View file @
38c6a14b
...
@@ -466,7 +466,7 @@ QCString QCString::simplifyWhiteSpace() const
...
@@ -466,7 +466,7 @@ QCString QCString::simplifyWhiteSpace() const
QCString
&
QCString
::
insert
(
uint
index
,
const
char
*
s
)
QCString
&
QCString
::
insert
(
uint
index
,
const
char
*
s
)
{
{
int
len
=
qstrlen
(
s
)
;
int
len
=
s
?
qstrlen
(
s
)
:
0
;
if
(
len
==
0
)
if
(
len
==
0
)
return
*
this
;
return
*
this
;
uint
olen
=
length
();
uint
olen
=
length
();
...
...
qtools/qcstring.h
View file @
38c6a14b
...
@@ -295,6 +295,7 @@ inline void QCString::duplicate( const char *str)
...
@@ -295,6 +295,7 @@ inline void QCString::duplicate( const char *str)
inline
QCString
&
QCString
::
duplicate
(
const
char
*
str
,
int
)
inline
QCString
&
QCString
::
duplicate
(
const
char
*
str
,
int
)
{
{
if
(
m_data
==
str
)
return
*
this
;
if
(
m_data
)
free
(
m_data
);
if
(
m_data
)
free
(
m_data
);
duplicate
(
str
);
duplicate
(
str
);
return
*
this
;
return
*
this
;
...
...
qtools/scstring.cpp
View file @
38c6a14b
...
@@ -84,6 +84,7 @@ SCString::~SCString()
...
@@ -84,6 +84,7 @@ SCString::~SCString()
SCString
&
SCString
::
assign
(
const
char
*
str
)
SCString
&
SCString
::
assign
(
const
char
*
str
)
{
{
if
(
m_data
==
str
)
return
*
this
;
if
(
m_data
)
free
(
m_data
);
if
(
m_data
)
free
(
m_data
);
duplicate
(
str
);
duplicate
(
str
);
return
*
this
;
return
*
this
;
...
@@ -562,8 +563,7 @@ SCString &SCString::replace( const QRegExp &rx, const char *str )
...
@@ -562,8 +563,7 @@ SCString &SCString::replace( const QRegExp &rx, const char *str )
QString
d
=
QString
::
fromLatin1
(
m_data
);
QString
d
=
QString
::
fromLatin1
(
m_data
);
QString
r
=
QString
::
fromLatin1
(
str
);
QString
r
=
QString
::
fromLatin1
(
str
);
d
.
replace
(
rx
,
r
);
d
.
replace
(
rx
,
r
);
operator
=
(
d
.
ascii
()
);
return
assign
(
d
.
ascii
());
return
*
this
;
}
}
long
SCString
::
toLong
(
bool
*
ok
)
const
long
SCString
::
toLong
(
bool
*
ok
)
const
...
...
src/commentcnv.l
View file @
38c6a14b
...
@@ -64,6 +64,7 @@ static bool g_inSpecialComment;
...
@@ -64,6 +64,7 @@ static bool g_inSpecialComment;
static QCString g_aliasString;
static QCString g_aliasString;
static int g_blockCount;
static int g_blockCount;
static int g_lastBlockContext;
static int g_lastBlockContext;
static bool g_PythonDocString;
static SrcLangExt g_lang;
static SrcLangExt g_lang;
...
@@ -273,6 +274,18 @@ void replaceComment(int offset);
...
@@ -273,6 +274,18 @@ void replaceComment(int offset);
<Scan>[^"'\/\n\\#\\-]* { /* eat anything that is not " / or \n */
<Scan>[^"'\/\n\\#\\-]* { /* eat anything that is not " / or \n */
copyToOutput(yytext,yyleng);
copyToOutput(yytext,yyleng);
}
}
<Scan>"\"\"\""! { /* start of python long comment */
if (g_lang!=SrcLangExt_Python)
{
REJECT;
}
else
{
g_PythonDocString = TRUE;
copyToOutput(yytext,yyleng);
BEGIN(CComment);
}
}
<Scan>"\"" { /* start of a string */
<Scan>"\"" { /* start of a string */
copyToOutput(yytext,yyleng);
copyToOutput(yytext,yyleng);
BEGIN(SkipString);
BEGIN(SkipString);
...
@@ -431,15 +444,34 @@ void replaceComment(int offset);
...
@@ -431,15 +444,34 @@ void replaceComment(int offset);
<CComment>"*"+[^*/\\@\n]* { /* stars without slashes */
<CComment>"*"+[^*/\\@\n]* { /* stars without slashes */
copyToOutput(yytext,yyleng);
copyToOutput(yytext,yyleng);
}
}
<CComment>"\"\"\"" { /* end of Python docstring */
if (g_lang!=SrcLangExt_Python)
{
REJECT;
}
else
{
g_PythonDocString = FALSE;
copyToOutput(yytext,yyleng);
BEGIN(Scan);
}
}
<CComment>\n { /* new line in comment */
<CComment>\n { /* new line in comment */
copyToOutput(yytext,yyleng);
copyToOutput(yytext,yyleng);
}
}
<CComment>"*"+"/" { /* end of C comment */
<CComment>"*"+"/" { /* end of C comment */
copyToOutput(yytext,yyleng);
if (g_lang==SrcLangExt_Python)
BEGIN(Scan);
{
REJECT;
}
else
{
copyToOutput(yytext,yyleng);
BEGIN(Scan);
}
}
}
<CComment>"\n"/[ \t]*[^#] { /* end of Python comment */
<CComment>"\n"/[ \t]*[^#] { /* end of Python comment */
if (g_lang!=SrcLangExt_Python)
if (g_lang!=SrcLangExt_Python
|| g_PythonDocString
)
{
{
REJECT;
REJECT;
}
}
...
@@ -646,6 +678,7 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf,const char *fileName)
...
@@ -646,6 +678,7 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf,const char *fileName)
g_skip = FALSE;
g_skip = FALSE;
g_fileName = fileName;
g_fileName = fileName;
g_lang = getLanguageFromFileName(fileName);
g_lang = getLanguageFromFileName(fileName);
g_PythonDocString = FALSE;
g_lineNr = 0;
g_lineNr = 0;
g_condStack.clear();
g_condStack.clear();
g_condStack.setAutoDelete(TRUE);
g_condStack.setAutoDelete(TRUE);
...
...
src/commentscan.l
View file @
38c6a14b
...
@@ -57,6 +57,7 @@ static bool handleWeakGroup(const QCString &);
...
@@ -57,6 +57,7 @@ static bool handleWeakGroup(const QCString &);
static bool handleNamespace(const QCString &);
static bool handleNamespace(const QCString &);
static bool handlePackage(const QCString &);
static bool handlePackage(const QCString &);
static bool handleClass(const QCString &);
static bool handleClass(const QCString &);
static bool handleHeaderFile(const QCString &);
static bool handleProtocol(const QCString &);
static bool handleProtocol(const QCString &);
static bool handleCategory(const QCString &);
static bool handleCategory(const QCString &);
static bool handleUnion(const QCString &);
static bool handleUnion(const QCString &);
...
@@ -134,6 +135,7 @@ static DocCmdMap docCmdMap[] =
...
@@ -134,6 +135,7 @@ static DocCmdMap docCmdMap[] =
{ "namespace", &handleNamespace, TRUE },
{ "namespace", &handleNamespace, TRUE },
{ "package", &handlePackage, TRUE },
{ "package", &handlePackage, TRUE },
{ "class", &handleClass, TRUE },
{ "class", &handleClass, TRUE },
{ "headerfile", &handleHeaderFile, TRUE },
{ "protocol", &handleProtocol, TRUE },
{ "protocol", &handleProtocol, TRUE },
{ "category", &handleCategory, TRUE },
{ "category", &handleCategory, TRUE },
{ "union", &handleUnion, TRUE },
{ "union", &handleUnion, TRUE },
...
@@ -1900,6 +1902,12 @@ static bool handleClass(const QCString &)
...
@@ -1900,6 +1902,12 @@ static bool handleClass(const QCString &)
return stop;
return stop;
}
}
static bool handleHeaderFile(const QCString &)
{
BEGIN( ClassDocArg2 );
return FALSE;
}
static bool handleProtocol(const QCString &)
static bool handleProtocol(const QCString &)
{ // Obj-C protocol
{ // Obj-C protocol
bool stop=makeStructuralIndicator(Entry::PROTOCOLDOC_SEC);
bool stop=makeStructuralIndicator(Entry::PROTOCOLDOC_SEC);
...
...
src/config.l
View file @
38c6a14b
...
@@ -1214,6 +1214,7 @@ void Config::check()
...
@@ -1214,6 +1214,7 @@ void Config::check()
filePatternList.append("*.dox");
filePatternList.append("*.dox");
filePatternList.append("*.py");
filePatternList.append("*.py");
filePatternList.append("*.f90");
filePatternList.append("*.f90");
filePatternList.append("*.f");
filePatternList.append("*.vhd");
filePatternList.append("*.vhd");
filePatternList.append("*.vhdl");
filePatternList.append("*.vhdl");
if (portable_fileSystemIsCaseSensitive())
if (portable_fileSystemIsCaseSensitive())
...
@@ -1234,6 +1235,7 @@ void Config::check()
...
@@ -1234,6 +1235,7 @@ void Config::check()
filePatternList.append("*.MM");
filePatternList.append("*.MM");
filePatternList.append("*.PY");
filePatternList.append("*.PY");
filePatternList.append("*.F90");
filePatternList.append("*.F90");
filePatternList.append("*.F");
filePatternList.append("*.VHD");
filePatternList.append("*.VHD");
filePatternList.append("*.VHDL");
filePatternList.append("*.VHDL");
}
}
...
@@ -1747,13 +1749,13 @@ void Config::create()
...
@@ -1747,13 +1749,13 @@ void Config::create()
TRUE
TRUE
);
);
cb = addBool( "TYPEDEF_HIDES_STRUCT",
cb = addBool( "TYPEDEF_HIDES_STRUCT",
"When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct
(or union) is
\n"
"When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct
, union, or enum
\n"
"
documented as struct
with the name of the typedef. So \n"
"
is documented as struct, union, or enum
with the name of the typedef. So \n"
"typedef struct TypeS {} TypeT, will appear in the documentation as a struct \n"
"typedef struct TypeS {} TypeT, will appear in the documentation as a struct \n"
"with name TypeT. When disabled the typedef will appear as a member of a file, \n"
"with name TypeT. When disabled the typedef will appear as a member of a file, \n"
"namespace, or class. And the struct will be named TypeS. This can typically \n"
"namespace, or class. And the struct will be named TypeS. This can typically \n"
"be useful for C code
where the coding convention is that all structs are
\n"
"be useful for C code
in case the coding convention dictates that all compound
\n"
"type
def'ed and only the typedef is referenced never the struct's
name.\n",
"type
s are typedef'ed and only the typedef is referenced, never the tag
name.\n",
FALSE
FALSE
);
);
//-----------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------
...
@@ -2305,7 +2307,7 @@ void Config::create()
...
@@ -2305,7 +2307,7 @@ void Config::create()
"GENERATE_HTMLHELP",
"GENERATE_HTMLHELP",
"If the GENERATE_HTMLHELP tag is set to YES, additional index files \n"
"If the GENERATE_HTMLHELP tag is set to YES, additional index files \n"
"will be generated that can be used as input for tools like the \n"
"will be generated that can be used as input for tools like the \n"
"Microsoft HTML help workshop to generate a comp
ress
ed HTML help file (.chm) \n"
"Microsoft HTML help workshop to generate a comp
il
ed HTML help file (.chm) \n"
"of the generated HTML documentation. \n",
"of the generated HTML documentation. \n",
FALSE
FALSE
);
);
...
...
src/defargs.l
View file @
38c6a14b
...
@@ -149,7 +149,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -149,7 +149,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
<ReadFuncArgPtr>{ID} {
<ReadFuncArgPtr>{ID} {
g_curArgName=yytext;
g_curArgName=yytext;
}
}
<ReadFuncArgPtr>")"{B}*"(" {
<ReadFuncArgPtr>")"{B}*"(" {
// function pointer
g_curArgTypeName+=yytext;
g_curArgTypeName+=yytext;
//g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
//g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
g_readArgContext = ReadFuncArgType;
g_readArgContext = ReadFuncArgType;
...
@@ -157,6 +157,11 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -157,6 +157,11 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
g_argRoundCount=0;
g_argRoundCount=0;
BEGIN( CopyArgRound2 );
BEGIN( CopyArgRound2 );
}
}
<ReadFuncArgPtr>")"/{B}*"[" { // pointer to fixed size array
g_curArgTypeName+=yytext;
//g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
BEGIN( ReadFuncArgType );
}
<ReadFuncArgPtr>")" { // redundant braces detected / remove them
<ReadFuncArgPtr>")" { // redundant braces detected / remove them
int i=g_curArgTypeName.findRev('('),l=g_curArgTypeName.length();
int i=g_curArgTypeName.findRev('('),l=g_curArgTypeName.length();
if (i!=-1)
if (i!=-1)
...
...
src/definition.cpp
View file @
38c6a14b
...
@@ -36,15 +36,12 @@
...
@@ -36,15 +36,12 @@
#include "htags.h"
#include "htags.h"
#include "parserintf.h"
#include "parserintf.h"
#include "marshal.h"
#include "marshal.h"
#include "debug.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
#define pclose _pclose
#endif
#define START_MARKER 0x4445465B // DEF[
#define START_MARKER 0x4445465B // DEF[
#define END_MARKER 0x4445465D // DEF]
#define END_MARKER 0x4445465D // DEF]
//-----------------------------------------------------------------------------------------
class
DefinitionImpl
class
DefinitionImpl
{
{
...
@@ -476,20 +473,33 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
...
@@ -476,20 +473,33 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
* stored in \a result. If FALSE is returned the code fragment could not be
* stored in \a result. If FALSE is returned the code fragment could not be
* found.
* found.
*
*
* The file is scanned for a opening bracket ('{') from \a startLine onward
.
* The file is scanned for a opening bracket ('{') from \a startLine onward
* The line actually containing the bracket is returned via startLine.
* The line actually containing the bracket is returned via startLine.
* The file is scanned for a closing bracket ('}') from \a endLine backward.
* The file is scanned for a closing bracket ('}') from \a endLine backward.
* The line actually containing the bracket is returned via endLine.
* The line actually containing the bracket is returned via endLine.
* Note that for VHDL code the bracket search is not done.
*/
*/
static
bool
readCodeFragment
(
const
char
*
fileName
,
static
bool
readCodeFragment
(
const
char
*
fileName
,
int
&
startLine
,
int
&
endLine
,
QCString
&
result
)
int
&
startLine
,
int
&
endLine
,
QCString
&
result
)
{
{
static
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
static
bool
vhdlOpt
=
Config_getBool
(
"OPTIMIZE_OUTPUT_VHDL"
);
static
bool
filterSourceFiles
=
Config_getBool
(
"FILTER_SOURCE_FILES"
);
//printf("readCodeFragment(%s,%d,%d)\n",fileName,startLine,endLine);
//printf("readCodeFragment(%s,%d,%d)\n",fileName,startLine,endLine);
if
(
fileName
==
0
||
fileName
[
0
]
==
0
)
return
FALSE
;
// not a valid file name
if
(
fileName
==
0
||
fileName
[
0
]
==
0
)
return
FALSE
;
// not a valid file name
QCString
cmd
=
getFileFilter
(
fileName
)
+
"
\"
"
+
fileName
+
"
\"
"
;
QCString
filter
=
getFileFilter
(
fileName
);
FILE
*
f
=
Config_getBool
(
"FILTER_SOURCE_FILES"
)
?
popen
(
cmd
,
"r"
)
:
fopen
(
fileName
,
"r"
);
FILE
*
f
=
0
;
bool
found
=
vhdlOpt
;
// for VHDL not bracket search is possible
bool
usePipe
=
!
filter
.
isEmpty
()
&&
filterSourceFiles
;
if
(
!
usePipe
)
// no filter given or wanted
{
f
=
fopen
(
fileName
,
"r"
);
}
else
// use filter
{
QCString
cmd
=
filter
+
"
\"
"
+
fileName
+
"
\"
"
;
Debug
::
print
(
Debug
::
ExtCmd
,
0
,
"Executing popen(`%s`)
\n
"
,
cmd
.
data
());
f
=
portable_popen
(
cmd
,
"r"
);
}
bool
found
=
vhdlOpt
;
// for VHDL no bracket search is possible
if
(
f
)
if
(
f
)
{
{
int
c
=
0
;
int
c
=
0
;
...
@@ -584,7 +594,14 @@ static bool readCodeFragment(const char *fileName,
...
@@ -584,7 +594,14 @@ static bool readCodeFragment(const char *fileName,
endLine
=
lineNr
-
1
;
endLine
=
lineNr
-
1
;
}
}
}
}
if
(
Config_getBool
(
"FILTER_SOURCE_FILES"
))
pclose
(
f
);
else
fclose
(
f
);
if
(
usePipe
)
{
portable_pclose
(
f
);
}
else
{
fclose
(
f
);
}
}
}
result
=
transcodeCharacterStringToUTF8
(
result
);
result
=
transcodeCharacterStringToUTF8
(
result
);
return
found
;
return
found
;
...
...
src/docsets.cpp
View file @
38c6a14b
...
@@ -62,8 +62,11 @@ void DocSets::initialize()
...
@@ -62,8 +62,11 @@ void DocSets::initialize()
"DOCSET_RESOURCES=$(DOCSET_CONTENTS)/Resources
\n
"
"DOCSET_RESOURCES=$(DOCSET_CONTENTS)/Resources
\n
"
"DOCSET_DOCUMENTS=$(DOCSET_RESOURCES)/Documents
\n
"
"DOCSET_DOCUMENTS=$(DOCSET_RESOURCES)/Documents
\n
"
"DOCSET_INSTALL=~/Library/Developer/Shared/Documentation/DocSets
\n
"
"DOCSET_INSTALL=~/Library/Developer/Shared/Documentation/DocSets
\n
"
"XCODE_INSTALL=$(shell xcode-select -print-path)
\n
"
"
\n
"
"
\n
"
"all: always
\n
"
"all: docset
\n
"
"
\n
"
"docset:
\n
"
"
\t
mkdir -p $(DOCSET_DOCUMENTS)
\n
"
"
\t
mkdir -p $(DOCSET_DOCUMENTS)
\n
"
"
\t
cp Nodes.xml $(DOCSET_RESOURCES)
\n
"
"
\t
cp Nodes.xml $(DOCSET_RESOURCES)
\n
"
"
\t
cp Tokens.xml $(DOCSET_RESOURCES)
\n
"
"
\t
cp Tokens.xml $(DOCSET_RESOURCES)
\n
"
...
@@ -74,16 +77,16 @@ void DocSets::initialize()
...
@@ -74,16 +77,16 @@ void DocSets::initialize()
"
\t
--exclude Info.plist
\\\n
"
"
\t
--exclude Info.plist
\\\n
"
"
\t
--exclude Makefile -c -f - .
\\\n
"
"
\t
--exclude Makefile -c -f - .
\\\n
"
"
\t
| (cd $(DOCSET_DOCUMENTS); tar xvf -)
\n
"
"
\t
| (cd $(DOCSET_DOCUMENTS); tar xvf -)
\n
"
"
\t
docsetutil index $(DOCSET_NAME)
\n
"
"
\t
$(XCODE_INSTALL)/usr/bin/
docsetutil index $(DOCSET_NAME)
\n
"
"
\t
rm -f $(DOCSET_DOCUMENTS)/Nodes.xml
\n
"
"
\t
rm -f $(DOCSET_DOCUMENTS)/Nodes.xml
\n
"
"
\t
rm -f $(DOCSET_DOCUMENTS)/Info.plist
\n
"
"
\t
rm -f $(DOCSET_DOCUMENTS)/Info.plist
\n
"
"
\t
rm -f $(DOCSET_DOCUMENTS)/Makefile
\n
"
"
\t
rm -f $(DOCSET_DOCUMENTS)/Makefile
\n
"
"
\t
rm -f $(DOCSET_RESOURCES)/Nodes.xml
\n
"
"
\t
rm -f $(DOCSET_RESOURCES)/Nodes.xml
\n
"
"
\t
rm -f $(DOCSET_RESOURCES)/Tokens.xml
\n
"
"
\t
rm -f $(DOCSET_RESOURCES)/Tokens.xml
\n
"
"
\n
"
"
\n
"
"install:
\n
"
"install:
docset
\n
"
"
\t
mkdir -p $(DOCSET_INSTALL)
\n
"
"
\t
mkdir -p $(DOCSET_INSTALL)
\n
"
"
\t
cp -
a
$(DOCSET_NAME) $(DOCSET_INSTALL)
\n
"
"
\t
cp -
R
$(DOCSET_NAME) $(DOCSET_INSTALL)
\n
"
"
\n
"
"
\n
"
"uninstall:
\n
"
"uninstall:
\n
"
"
\t
rm -rf $(DOCSET_INSTALL)
\n
"
"
\t
rm -rf $(DOCSET_INSTALL)
\n
"
...
...
src/doxygen.cpp
View file @
38c6a14b
...
@@ -734,7 +734,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
...
@@ -734,7 +734,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
{
// explicit request
{
// explicit request
QCString
text
;
QCString
text
;
text
.
sprintf
(
"Warning: the name `%s' supplied as "
text
.
sprintf
(
"Warning: the name `%s' supplied as "
"the
second argument in the
\\
class,
\\
struct, or
\\
union statement
"
,
"the
argument of the
\\
class,
\\
struct,
\\
union, or
\\
include command
"
,
root
->
includeFile
.
data
()
root
->
includeFile
.
data
()
);
);
if
(
ambig
)
// name is ambigious
if
(
ambig
)
// name is ambigious
...
@@ -8337,6 +8337,7 @@ void copyAndFilterFile(const char *fileName,BufStr &dest)
...
@@ -8337,6 +8337,7 @@ void copyAndFilterFile(const char *fileName,BufStr &dest)
else
else
{
{
QCString
cmd
=
filterName
+
"
\"
"
+
fileName
+
"
\"
"
;
QCString
cmd
=
filterName
+
"
\"
"
+
fileName
+
"
\"
"
;
Debug
::
print
(
Debug
::
ExtCmd
,
0
,
"Executing popen(`%s`)
\n
"
,
cmd
.
data
());
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
if
(
!
f
)
if
(
!
f
)
{
{
...
@@ -8884,7 +8885,8 @@ void initDoxygen()
...
@@ -8884,7 +8885,8 @@ void initDoxygen()
ParserInterface
*
defaultParser
=
new
CLanguageScanner
;
ParserInterface
*
defaultParser
=
new
CLanguageScanner
;
Doxygen
::
parserManager
=
new
ParserManager
(
defaultParser
);
Doxygen
::
parserManager
=
new
ParserManager
(
defaultParser
);
Doxygen
::
parserManager
->
registerParser
(
".py"
,
new
PythonLanguageScanner
);
Doxygen
::
parserManager
->
registerParser
(
".py"
,
new
PythonLanguageScanner
);
Doxygen
::
parserManager
->
registerParser
(
".f"
,
new
FortranLanguageScanner
);
Doxygen
::
parserManager
->
registerParser
(
".f90"
,
new
FortranLanguageScanner
);
Doxygen
::
parserManager
->
registerParser
(
".f90"
,
new
FortranLanguageScanner
);
Doxygen
::
parserManager
->
registerParser
(
".vhd"
,
new
VHDLLanguageScanner
);
Doxygen
::
parserManager
->
registerParser
(
".vhd"
,
new
VHDLLanguageScanner
);
...
...
src/filedef.cpp
View file @
38c6a14b
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "parserintf.h"
#include "parserintf.h"
#include "portable.h"
#include "portable.h"
#include "vhdldocgen.h"
#include "vhdldocgen.h"
#include "debug.h"
class
DevNullCodeDocInterface
:
public
CodeOutputInterface
class
DevNullCodeDocInterface
:
public
CodeOutputInterface
{
{
...
@@ -1336,7 +1337,9 @@ void FileDef::acquireFileVersion()
...
@@ -1336,7 +1337,9 @@ void FileDef::acquireFileVersion()
if
(
!
vercmd
.
isEmpty
())
if
(
!
vercmd
.
isEmpty
())
{
{
msg
(
"Version of %s : "
,
filepath
.
data
());
msg
(
"Version of %s : "
,
filepath
.
data
());
FILE
*
f
=
portable_popen
(
vercmd
+
"
\"
"
+
filepath
+
"
\"
"
,
"r"
);
QCString
cmd
=
vercmd
+
"
\"
"
+
filepath
+
"
\"
"
;
Debug
::
print
(
Debug
::
ExtCmd
,
0
,
"Executing popen(`%s`)
\n
"
,
cmd
.
data
());
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
if
(
!
f
)
if
(
!
f
)
{
{
err
(
"Error: could not execute %s
\n
"
,
vercmd
.
data
());
err
(
"Error: could not execute %s
\n
"
,
vercmd
.
data
());
...
...
src/fortrancode.l
View file @
38c6a14b
...
@@ -581,8 +581,8 @@ ARGS {BS}("("[^)]*")"){BS}
...
@@ -581,8 +581,8 @@ ARGS {BS}("("[^)]*")"){BS}
NUM_TYPE (complex|integer|logical|real)
NUM_TYPE (complex|integer|logical|real)
KIND {ARGS}
KIND {ARGS}
CHAR (CHARACTER{ARGS}?|CHARACTER{BS}"*"([0-9]+|{ARGS}))
CHAR (CHARACTER{ARGS}?|CHARACTER{BS}"*"(
{BS}
[0-9]+|{ARGS}))
TYPE_SPEC (({NUM_TYPE}(
"*"[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS
}PRECISION|{CHAR})
TYPE_SPEC (({NUM_TYPE}(
{BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{B
}PRECISION|{CHAR})
INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")"
INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")"
ATTR_SPEC (ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PRIVATE|PUBLIC|SAVE|TARGET)
ATTR_SPEC (ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PRIVATE|PUBLIC|SAVE|TARGET)
...
@@ -630,7 +630,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
...
@@ -630,7 +630,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
codifyLines(yytext);
codifyLines(yytext);
endFontClass();
endFontClass();
}
}
<Start>"end"
{BS}{COMMANDS}
/[ \t\n].* {
<Start>"end"
({BS_}{COMMANDS})?
/[ \t\n].* {
startFontClass("keyword");
startFontClass("keyword");
codifyLines(yytext);
codifyLines(yytext);
endFontClass();
endFontClass();
...
@@ -687,11 +687,11 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
...
@@ -687,11 +687,11 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
yy_pop_state();
yy_pop_state();
REJECT;
REJECT;
}
}
<Start>"end"
{BS}"module".*
{ // just reset currentModule, rest is done in following rule
<Start>"end"
({BS_}"module")?.*
{ // just reset currentModule, rest is done in following rule
currentModule=0;
currentModule=0;
REJECT;
REJECT;
}
}
<Start>"end"
{BS}("program"|"module"|"type"|"interface")
{ //
<Start>"end"
({BS_}("program"|"module"|"type"|"interface"))?
{ //
endUseScope();
endUseScope();
startFontClass("keyword");
startFontClass("keyword");
codifyLines(yytext);
codifyLines(yytext);
...
@@ -722,7 +722,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
...
@@ -722,7 +722,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE)
<Subprog>"\n" { codifyLines(yytext);
<Subprog>"\n" { codifyLines(yytext);
yy_pop_state();
yy_pop_state();
}
}
<Start>"end"
{BS}{SUBPROG}.*
{ // Fortran subroutine or function ends
<Start>"end"
({BS_}{SUBPROG})?
{ // Fortran subroutine or function ends
//cout << "===> end function " << yytext << endl;
//cout << "===> end function " << yytext << endl;
endUseScope();
endUseScope();
startFontClass("keyword");
startFontClass("keyword");
...
...
src/fortranscanner.l
View file @
38c6a14b
This diff is collapsed.
Click to expand it.
src/groupdef.cpp
View file @
38c6a14b
...
@@ -161,22 +161,32 @@ void GroupDef::addFile(const FileDef *def)
...
@@ -161,22 +161,32 @@ void GroupDef::addFile(const FileDef *def)
fileList
->
append
(
def
);
fileList
->
append
(
def
);
}
}
void
GroupDef
::
addClass
(
const
ClassDef
*
cd
)
bool
GroupDef
::
addClass
(
const
ClassDef
*
cd
)
{
{
if
(
cd
->
isHidden
())
return
;
if
(
cd
->
isHidden
())
return
FALSE
;
if
(
Config_getBool
(
"SORT_BRIEF_DOCS"
))
if
(
classSDict
->
find
(
cd
->
name
())
==
0
)
classSDict
->
inSort
(
cd
->
name
(),
cd
);
{
else
if
(
Config_getBool
(
"SORT_BRIEF_DOCS"
))
classSDict
->
append
(
cd
->
name
(),
cd
);
classSDict
->
inSort
(
cd
->
name
(),
cd
);
else
classSDict
->
append
(
cd
->
name
(),
cd
);
return
TRUE
;
}
return
FALSE
;
}
}
void
GroupDef
::
addNamespace
(
const
NamespaceDef
*
def
)
bool
GroupDef
::
addNamespace
(
const
NamespaceDef
*
def
)
{
{
if
(
def
->
isHidden
())
return
;
if
(
def
->
isHidden
())
return
FALSE
;
if
(
Config_getBool
(
"SORT_BRIEF_DOCS"
))
if
(
namespaceSDict
->
find
(
def
->
name
())
==
0
)
namespaceSDict
->
inSort
(
def
->
name
(),
def
);
{
else
if
(
Config_getBool
(
"SORT_BRIEF_DOCS"
))
namespaceSDict
->
append
(
def
->
name
(),
def
);
namespaceSDict
->
inSort
(
def
->
name
(),
def
);
else
namespaceSDict
->
append
(
def
->
name
(),
def
);
return
TRUE
;
}
return
FALSE
;
}
}
void
GroupDef
::
addDir
(
const
DirDef
*
def
)
void
GroupDef
::
addDir
(
const
DirDef
*
def
)
...
@@ -926,8 +936,7 @@ void addClassToGroups(Entry *root,ClassDef *cd)
...
@@ -926,8 +936,7 @@ void addClassToGroups(Entry *root,ClassDef *cd)
GroupDef
*
gd
=
0
;
GroupDef
*
gd
=
0
;
if
(
!
g
->
groupname
.
isEmpty
()
&&
(
gd
=
Doxygen
::
groupSDict
->
find
(
g
->
groupname
)))
if
(
!
g
->
groupname
.
isEmpty
()
&&
(
gd
=
Doxygen
::
groupSDict
->
find
(
g
->
groupname
)))
{
{
gd
->
addClass
(
cd
);
if
(
gd
->
addClass
(
cd
))
cd
->
makePartOfGroup
(
gd
);
cd
->
makePartOfGroup
(
gd
);
//printf("Compound %s: in group %s\n",cd->name().data(),s->data());
//printf("Compound %s: in group %s\n",cd->name().data(),s->data());
}
}
}
}
...
@@ -944,8 +953,7 @@ void addNamespaceToGroups(Entry *root,NamespaceDef *nd)
...
@@ -944,8 +953,7 @@ void addNamespaceToGroups(Entry *root,NamespaceDef *nd)
//printf("group `%s'\n",s->data());
//printf("group `%s'\n",s->data());
if
(
!
g
->
groupname
.
isEmpty
()
&&
(
gd
=
Doxygen
::
groupSDict
->
find
(
g
->
groupname
)))
if
(
!
g
->
groupname
.
isEmpty
()
&&
(
gd
=
Doxygen
::
groupSDict
->
find
(
g
->
groupname
)))
{
{
gd
->
addNamespace
(
nd
);
if
(
gd
->
addNamespace
(
nd
))
nd
->
makePartOfGroup
(
gd
);
nd
->
makePartOfGroup
(
gd
);
//printf("Namespace %s: in group %s\n",nd->name().data(),s->data());
//printf("Namespace %s: in group %s\n",nd->name().data(),s->data());
}
}
}
}
...
...
src/groupdef.h
View file @
38c6a14b
...
@@ -51,8 +51,8 @@ class GroupDef : public Definition
...
@@ -51,8 +51,8 @@ class GroupDef : public Definition
void
setGroupTitle
(
const
char
*
newtitle
);
void
setGroupTitle
(
const
char
*
newtitle
);
bool
hasGroupTitle
(
)
{
return
titleSet
;
}
bool
hasGroupTitle
(
)
{
return
titleSet
;
}
void
addFile
(
const
FileDef
*
def
);
void
addFile
(
const
FileDef
*
def
);
void
addClass
(
const
ClassDef
*
def
);
bool
addClass
(
const
ClassDef
*
def
);
void
addNamespace
(
const
NamespaceDef
*
def
);
bool
addNamespace
(
const
NamespaceDef
*
def
);
void
addGroup
(
const
GroupDef
*
def
);
void
addGroup
(
const
GroupDef
*
def
);
void
addParentGroup
(
const
GroupDef
*
def
);
void
addParentGroup
(
const
GroupDef
*
def
);
void
addPage
(
PageDef
*
def
);
void
addPage
(
PageDef
*
def
);
...
...
src/index.cpp
View file @
38c6a14b
...
@@ -2253,7 +2253,7 @@ void writePageIndex(OutputList &ol)
...
@@ -2253,7 +2253,7 @@ void writePageIndex(OutputList &ol)
}
}
}
}
endIndexHierarchy
(
ol
,
0
);
endIndexHierarchy
(
ol
,
0
);
Doxygen
::
indexList
.
decContentsDepth
();
//
Doxygen::indexList.decContentsDepth();
endFile
(
ol
);
endFile
(
ol
);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
}
}
...
...
src/pre.l
View file @
38c6a14b
...
@@ -1975,7 +1975,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -1975,7 +1975,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<SkipCComment,SkipVerbatim>. {
<SkipCComment,SkipVerbatim>. {
outputChar(*yytext);
outputChar(*yytext);
}
}
<CopyCComment>[^*
]+
{
<CopyCComment>[^*
a-z_A-Z]+
{
g_defLitText+=yytext;
g_defLitText+=yytext;
g_defText+=escapeAt(yytext);
g_defText+=escapeAt(yytext);
}
}
...
@@ -1989,10 +1989,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -1989,10 +1989,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_defLitText+=yytext;
g_defLitText+=yytext;
g_defText+=yytext;
g_defText+=yytext;
}
}
<CopyCComment>. {
g_defLitText+=yytext;
g_defText+=yytext;
}
<RemoveCComment>"*/" { BEGIN(g_lastCContext); }
<RemoveCComment>"*/" { BEGIN(g_lastCContext); }
<RemoveCComment>"//"
<RemoveCComment>"//"
<RemoveCComment>"/*"
<RemoveCComment>"/*"
...
@@ -2026,7 +2022,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -2026,7 +2022,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_quoteArg=TRUE;
g_quoteArg=TRUE;
g_defLitText+=yytext;
g_defLitText+=yytext;
}
}
<DefineText
>{ID}
{
<DefineText
,CopyCComment>{ID}
{
g_defLitText+=yytext;
g_defLitText+=yytext;
if (g_quoteArg)
if (g_quoteArg)
{
{
...
@@ -2059,6 +2055,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -2059,6 +2055,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
}
g_quoteArg=FALSE;
g_quoteArg=FALSE;
}
}
<CopyCComment>. {
g_defLitText+=yytext;
g_defText+=yytext;
}
<DefineText>\\[\r]?\n {
<DefineText>\\[\r]?\n {
g_defLitText+=yytext;
g_defLitText+=yytext;
outputChar('\n');
outputChar('\n');
...
...
src/pyscanner.l
View file @
38c6a14b
...
@@ -311,7 +311,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
...
@@ -311,7 +311,7 @@ static void handleCommentBlock(const QCString &doc,bool brief)
yyFileName, // file
yyFileName, // file
brief ? current->briefLine : current->docLine, // line of block start
brief ? current->briefLine : current->docLine, // line of block start
docBlockInBody ? FALSE : brief,
docBlockInBody ? FALSE : brief,
FALSE, //docBlockJavaStyle, // javadoc style
docBlockJavaStyle, // javadoc style // or FALSE,
docBlockInBody,
docBlockInBody,
protection,
protection,
position,
position,
...
...
src/scanner.l
View file @
38c6a14b
...
@@ -3143,7 +3143,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
...
@@ -3143,7 +3143,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
// -> omit typedef and use S_t as the struct name
// -> omit typedef and use S_t as the struct name
if (typedefHidesStruct &&
if (typedefHidesStruct &&
isTypedef &&
isTypedef &&
(current->spec&(Entry::Struct|Entry::Union)) &&
((current->spec&(Entry::Struct|Entry::Union)) ||
current->section==Entry::ENUM_SEC )&&
msType.stripWhiteSpace().isEmpty() &&
msType.stripWhiteSpace().isEmpty() &&
memspecEntry)
memspecEntry)
{
{
...
...
src/util.cpp
View file @
38c6a14b
...
@@ -1465,6 +1465,20 @@ static bool findOperator(const QCString &s,int i)
...
@@ -1465,6 +1465,20 @@ static bool findOperator(const QCString &s,int i)
return
TRUE
;
return
TRUE
;
}
}
static
bool
findOperator2
(
const
QCString
&
s
,
int
i
)
{
int
b
=
s
.
findRev
(
"operator"
,
i
);
if
(
b
==-
1
)
return
FALSE
;
// not found
b
+=
8
;
while
(
b
<
i
)
// check if there are only non-ascii
// characters in front of the operator
{
if
(
isId
((
uchar
)
s
.
at
(
b
)))
return
FALSE
;
b
++
;
}
return
TRUE
;
}
static
const
char
constScope
[]
=
{
'c'
,
'o'
,
'n'
,
's'
,
't'
,
':'
};
static
const
char
constScope
[]
=
{
'c'
,
'o'
,
'n'
,
's'
,
't'
,
':'
};
static
const
char
virtualScope
[]
=
{
'v'
,
'i'
,
'r'
,
't'
,
'u'
,
'a'
,
'l'
,
':'
};
static
const
char
virtualScope
[]
=
{
'v'
,
'i'
,
'r'
,
't'
,
'u'
,
'a'
,
'l'
,
':'
};
...
@@ -1599,7 +1613,12 @@ nextChar:
...
@@ -1599,7 +1613,12 @@ nextChar:
if
(
c
==
'*'
||
c
==
'&'
||
c
==
'@'
||
c
==
'$'
)
if
(
c
==
'*'
||
c
==
'&'
||
c
==
'@'
||
c
==
'$'
)
{
{
uint
rl
=
result
.
length
();
uint
rl
=
result
.
length
();
if
(
rl
>
0
&&
(
isId
(
result
.
at
(
rl
-
1
))
||
result
.
at
(
rl
-
1
)
==
'>'
))
result
+=
' '
;
if
((
rl
>
0
&&
(
isId
(
result
.
at
(
rl
-
1
))
||
result
.
at
(
rl
-
1
)
==
'>'
))
&&
(
c
!=
'*'
||
!
findOperator2
(
s
,
i
))
// avoid splitting operator* and operator->*
)
{
result
+=
' '
;
}
}
}
result
+=
c
;
result
+=
c
;
if
(
cliSupport
&&
(
c
==
'^'
||
c
==
'%'
)
&&
i
>
1
&&
isId
(
s
.
at
(
i
-
1
)))
result
+=
' '
;
// C++/CLI: Type^ name and Type% name
if
(
cliSupport
&&
(
c
==
'^'
||
c
==
'%'
)
&&
i
>
1
&&
isId
(
s
.
at
(
i
-
1
)))
result
+=
' '
;
// C++/CLI: Type^ name and Type% name
...
@@ -2141,6 +2160,7 @@ QCString fileToString(const char *name,bool filter)
...
@@ -2141,6 +2160,7 @@ QCString fileToString(const char *name,bool filter)
else
// filter the input
else
// filter the input
{
{
QCString
cmd
=
filterName
+
"
\"
"
+
name
+
"
\"
"
;
QCString
cmd
=
filterName
+
"
\"
"
+
name
+
"
\"
"
;
Debug
::
print
(
Debug
::
ExtCmd
,
0
,
"Executing popen(`%s`)
\n
"
,
cmd
.
data
());
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
FILE
*
f
=
portable_popen
(
cmd
,
"r"
);
if
(
!
f
)
if
(
!
f
)
{
{
...
@@ -6270,6 +6290,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
...
@@ -6270,6 +6290,7 @@ SrcLangExt getLanguageFromFileName(const QCString fileName)
extLookup
.
insert
(
".M"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".M"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".mm"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".mm"
,
new
int
(
SrcLangExt_ObjC
));
extLookup
.
insert
(
".py"
,
new
int
(
SrcLangExt_Python
));
extLookup
.
insert
(
".py"
,
new
int
(
SrcLangExt_Python
));
extLookup
.
insert
(
".f"
,
new
int
(
SrcLangExt_F90
));
extLookup
.
insert
(
".f90"
,
new
int
(
SrcLangExt_F90
));
extLookup
.
insert
(
".f90"
,
new
int
(
SrcLangExt_F90
));
extLookup
.
insert
(
".vhd"
,
new
int
(
SrcLangExt_VHDL
));
extLookup
.
insert
(
".vhd"
,
new
int
(
SrcLangExt_VHDL
));
extLookup
.
insert
(
".vhdl"
,
new
int
(
SrcLangExt_VHDL
));
extLookup
.
insert
(
".vhdl"
,
new
int
(
SrcLangExt_VHDL
));
...
...
src/vhdldocgen.cpp
View file @
38c6a14b
...
@@ -144,13 +144,13 @@ QCString* VhdlDocGen::findKeyWord(const QCString& word)
...
@@ -144,13 +144,13 @@ QCString* VhdlDocGen::findKeyWord(const QCString& word)
if
(
word
.
isEmpty
()
||
word
.
at
(
0
)
==
'\0'
)
return
0
;
if
(
word
.
isEmpty
()
||
word
.
at
(
0
)
==
'\0'
)
return
0
;
//printf("VhdlDocGen::findKeyWord(%s)\n",word.data());
//printf("VhdlDocGen::findKeyWord(%s)\n",word.data());
if
(
g_vhdlKeyDict0
.
find
(
word
))
if
(
g_vhdlKeyDict0
.
find
(
word
.
lower
()
))
return
&
g_vhdlkeyword
;
return
&
g_vhdlkeyword
;
if
(
g_vhdlKeyDict1
.
find
(
word
))
if
(
g_vhdlKeyDict1
.
find
(
word
.
lower
()
))
return
&
g_vhdltype
;
return
&
g_vhdltype
;
if
(
g_vhdlKeyDict2
.
find
(
word
))
if
(
g_vhdlKeyDict2
.
find
(
word
.
lower
()
))
return
&
g_vhdllogic
;
return
&
g_vhdllogic
;
return
0
;
return
0
;
...
@@ -832,21 +832,23 @@ bool VhdlDocGen::getSigTypeName(QList<QCString>& ql, const char* str,QCString& b
...
@@ -832,21 +832,23 @@ bool VhdlDocGen::getSigTypeName(QList<QCString>& ql, const char* str,QCString& b
bool
VhdlDocGen
::
getSigName
(
QList
<
QCString
>&
ql
,
bool
VhdlDocGen
::
getSigName
(
QList
<
QCString
>&
ql
,
const
char
*
str
,
QCString
&
buffer
)
const
char
*
str
,
QCString
&
buffer
)
{
{
int
len
,
j
,
ll
,
index
;
int
j
,
ll
,
index
;
char
*
signal
=
"signal "
;
char
*
signal
=
"signal "
;
QCString
qmem
;
QCString
qmem
;
QCString
temp
(
str
);
QCString
temp
(
str
);
QCString
st
(
str
);
QCString
st
(
str
);
QRegExp
semi
(
","
);
//QRegExp semi(",");
QRegExp
r
(
":"
);
//QRegExp r(":");
j
=
r
.
match
(
temp
.
data
(),
0
,
&
len
);
// colon position
j
=
temp
.
find
(
':'
);
if
(
j
<
0
)
return
FALSE
;
// no input definition
if
(
j
<
0
)
return
FALSE
;
// no input definition
st
=
st
.
left
(
j
);
st
=
st
.
left
(
j
);
// name only
index
=
st
.
find
(
signal
,
0
,
FALSE
);
index
=
st
.
find
(
signal
,
0
,
FALSE
);
if
(
index
>
-
1
)
if
(
index
>
-
1
)
// found "signal "
{
{
qmem
=
st
.
remove
(
index
,
strlen
(
signal
));
qmem
=
st
.
remove
(
index
,
strlen
(
signal
));
// strip it
temp
=
qmem
;
temp
=
qmem
;
st
=
qmem
;
st
=
qmem
;
}
}
...
@@ -855,56 +857,71 @@ bool VhdlDocGen::getSigName(QList<QCString>& ql,
...
@@ -855,56 +857,71 @@ bool VhdlDocGen::getSigName(QList<QCString>& ql,
qmem
=
temp
;
qmem
=
temp
;
}
}
ll
=
s
emi
.
match
(
st
.
data
(),
0
,
&
len
);
ll
=
s
t
.
find
(
','
);
if
(
ll
>
0
)
if
(
ll
>
0
)
// multiple names
{
{
while
(
TRUE
)
while
(
TRUE
)
{
{
st
=
st
.
left
(
ll
);
st
=
st
.
left
(
ll
).
stripWhiteSpace
();
// one name
QCString
*
sig
=
new
QCString
(
st
);
QCString
*
sig
=
new
QCString
(
st
);
ql
.
insert
(
0
,
sig
);
ql
.
insert
(
0
,
sig
);
qmem
=
qmem
.
right
(
qmem
.
length
()
-
ll
-
1
);
qmem
=
qmem
.
right
(
qmem
.
length
()
-
ll
-
1
);
// strip from list
st
=
qmem
;
st
=
qmem
;
// remainder
ll
=
s
emi
.
match
(
st
.
data
(),
0
,
&
len
);
ll
=
s
t
.
find
(
','
);
if
(
ll
<
0
)
if
(
ll
<
0
)
// last name
{
{
ll
=
r
.
match
(
st
.
data
(),
0
,
&
len
);
ll
=
st
.
find
(
':'
);
st
=
st
.
left
(
ll
);
st
=
st
.
left
(
ll
)
.
stripWhiteSpace
()
;
ql
.
insert
(
0
,
new
QCString
(
st
));
ql
.
insert
(
0
,
new
QCString
(
st
));
break
;
break
;
}
}
}
}
}
}
else
else
// single name
{
{
st
=
st
.
left
(
j
);
st
=
st
.
stripWhiteSpace
(
);
ql
.
insert
(
0
,
new
QCString
(
st
));
ql
.
insert
(
0
,
new
QCString
(
st
));
}
}
QCString
*
qdir
=
new
QCString
(
str
);
QCString
*
qdir
=
new
QCString
(
str
);
st
=
qdir
->
mid
(
j
+
1
);
st
=
qdir
->
mid
(
j
+
1
);
// part after :
//st=st.lower();
st
=
st
.
lower
().
stripWhiteSpace
();
st
=
st
.
stripWhiteSpace
();
*
qdir
=
st
;
*
qdir
=
st
;
ql
.
insert
(
0
,
qdir
);
ql
.
insert
(
0
,
qdir
);
if
(
st
.
stripPrefix
(
"inout"
))
if
(
st
.
stripPrefix
(
"inout"
))
{
{
buffer
+=
"inout"
;
buffer
+=
"inout"
;
return
TRUE
;
return
TRUE
;
}
}
if
(
st
.
stripPrefix
(
"INOUT"
))
{
buffer
+=
"inout"
;
return
TRUE
;
}
if
(
st
.
stripPrefix
(
"out"
))
if
(
st
.
stripPrefix
(
"out"
))
{
{
buffer
+=
"out"
;
buffer
+=
"out"
;
return
TRUE
;
return
TRUE
;
}
}
if
(
st
.
stripPrefix
(
"OUT"
))
{
buffer
+=
"out"
;
return
TRUE
;
}
if
(
st
.
stripPrefix
(
"in"
))
if
(
st
.
stripPrefix
(
"in"
))
{
{
buffer
+=
"in"
;
buffer
+=
"in"
;
return
TRUE
;
return
TRUE
;
}
}
if
(
st
.
stripPrefix
(
"IN"
))
{
buffer
+=
"in"
;
return
TRUE
;
}
return
FALSE
;
return
FALSE
;
}
}
...
...
src/vhdlscanner.l
View file @
38c6a14b
...
@@ -247,6 +247,7 @@ void addSignals(const char* str,int line, Entry *e,const char *comment=0)
...
@@ -247,6 +247,7 @@ void addSignals(const char* str,int line, Entry *e,const char *comment=0)
for (int k=1;k<count;k++)
for (int k=1;k<count;k++)
{
{
printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data());
Entry *pTemp=new Entry;
Entry *pTemp=new Entry;
initEntry(pTemp);
initEntry(pTemp);
pTemp->startLine = line;
pTemp->startLine = line;
...
...
winbuild/Doxywizard.vcproj
View file @
38c6a14b
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
/>
/>
<Tool
<Tool
Name=
"VCLinkerTool"
Name=
"VCLinkerTool"
AdditionalDependencies=
"$(QTDIR)\lib\qt-mt.lib $(QTDIR)\lib\qtmain.lib iconv.lib ws2_32.lib winmm.lib
imm32
.lib"
AdditionalDependencies=
"$(QTDIR)\lib\qt-mt.lib $(QTDIR)\lib\qtmain.lib iconv.lib ws2_32.lib winmm.lib
gdi32.lib imm32.lib advapi32.lib comdlg32.lib shell32.lib winspool
.lib"
OutputFile=
"..\bin\Debug\doxywizard.exe"
OutputFile=
"..\bin\Debug\doxywizard.exe"
LinkIncremental=
"2"
LinkIncremental=
"2"
GenerateManifest=
"false"
GenerateManifest=
"false"
...
@@ -158,7 +158,7 @@
...
@@ -158,7 +158,7 @@
/>
/>
<Tool
<Tool
Name=
"VCLinkerTool"
Name=
"VCLinkerTool"
AdditionalDependencies=
"$(QTDIR)\lib\qt-mt.lib $(QTDIR)\lib\qtmain.lib iconv.lib ws2_32.lib winmm.lib
imm32
.lib"
AdditionalDependencies=
"$(QTDIR)\lib\qt-mt.lib $(QTDIR)\lib\qtmain.lib iconv.lib ws2_32.lib winmm.lib
gdi32.lib imm32.lib advapi32.lib comdlg32.lib shell32.lib winspool
.lib"
OutputFile=
"..\bin\doxywizard.exe"
OutputFile=
"..\bin\doxywizard.exe"
LinkIncremental=
"1"
LinkIncremental=
"1"
GenerateManifest=
"false"
GenerateManifest=
"false"
...
...
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