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
e952dab5
Commit
e952dab5
authored
Nov 15, 2002
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3-rc1
parent
c400bd43
Changes
27
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
325 additions
and
83 deletions
+325
-83
INSTALL
INSTALL
+4
-3
README
README
+2
-2
VERSION
VERSION
+1
-1
doxmlintf.h
addon/doxmlparser/include/doxmlintf.h
+1
-1
doxmlintf.h
addon/doxmlparser/src/doxmlintf.h
+1
-1
config.doc
doc/config.doc
+69
-3
doxysearch_usage.doc
doc/doxysearch_usage.doc
+1
-1
features.doc
doc/features.doc
+2
-1
htmlcmds.doc
doc/htmlcmds.doc
+3
-2
language.doc
doc/language.doc
+1
-1
class.h
examples/class.h
+1
-1
example.cfg
examples/example.cfg
+10
-10
page.doc
examples/page.doc
+3
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+9
-3
config.l
src/config.l
+9
-1
docparser.cpp
src/docparser.cpp
+14
-1
doctokenizer.l
src/doctokenizer.l
+9
-3
doxygen.cpp
src/doxygen.cpp
+3
-1
filedef.cpp
src/filedef.cpp
+7
-1
htmlgen.cpp
src/htmlgen.cpp
+2
-0
mangen.cpp
src/mangen.cpp
+0
-1
namespacedef.cpp
src/namespacedef.cpp
+7
-1
pre.l
src/pre.l
+9
-9
scanner.l
src/scanner.l
+63
-23
translator_sr.h
src/translator_sr.h
+14
-4
util.cpp
src/util.cpp
+79
-6
No files found.
INSTALL
View file @
e952dab5
DOXYGEN Version 1.
2.18-20021106
DOXYGEN Version 1.
3-rc1
Please read the installation section of the manual for instructions.
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
06
November 2002)
Dimitri van Heesch (
15
November 2002)
README
View file @
e952dab5
DOXYGEN Version 1.
2.18_20021106
DOXYGEN Version 1.
3_rc1
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
06
November 2002)
Dimitri van Heesch (dimitri@stack.nl) (
15
November 2002)
VERSION
View file @
e952dab5
1.
2.18-20021106
1.
3-rc1
addon/doxmlparser/include/doxmlintf.h
View file @
e952dab5
...
...
@@ -20,7 +20,7 @@
* \brief The interface to the object model provided by the XML parser
* library.
*
* To start using this library one calls createObjectModel and then
* To start using this library one calls createObjectModel
()
and then
* uses the returned IDoxygen interface to read doxygen generated
* XML output and navigate through the information contained in it.
*
...
...
addon/doxmlparser/src/doxmlintf.h
View file @
e952dab5
...
...
@@ -20,7 +20,7 @@
* \brief The interface to the object model provided by the XML parser
* library.
*
* To start using this library one calls createObjectModel and then
* To start using this library one calls createObjectModel
()
and then
* uses the returned IDoxygen interface to read doxygen generated
* XML output and navigate through the information contained in it.
*
...
...
doc/config.doc
View file @
e952dab5
...
...
@@ -101,6 +101,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_file_patterns
FILE_PATTERNS
\
refitem
cfg_filter_source_files
FILTER_SOURCE_FILES
\
refitem
cfg_full_path_names
FULL_PATH_NAMES
\
refitem
cfg_generate_autogen_def
GENERATE_AUTOGEN_DEF
\
refitem
cfg_generate_buglist
GENERATE_BUGLIST
\
refitem
cfg_generate_chi
GENERATE_CHI
\
refitem
cfg_generate_todolist
GENERATE_DEPRECIATELIST
...
...
@@ -109,6 +110,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_generate_latex
GENERATE_LATEX
\
refitem
cfg_generate_legend
GENERATE_LEGEND
\
refitem
cfg_generate_man
GENERATE_MAN
\
refitem
cfg_generate_perlmod
GENERATE_PERLMOD
\
refitem
cfg_generate_rtf
GENERATE_RTF
\
refitem
cfg_generate_tagfile
GENERATE_TAGFILE
\
refitem
cfg_generate_testlist
GENERATE_TESTLIST
...
...
@@ -119,6 +121,7 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_have_dot
HAVE_DOT
\
refitem
cfg_hhc_location
HHC_LOCATION
\
refitem
cfg_hide_friend_compounds
HIDE_FRIEND_COMPOUNDS
\
refitem
cfg_hide_in_body_docs
HIDE_IN_BODY_DOCS
\
refitem
cfg_hide_scope_names
HIDE_SCOPE_NAMES
\
refitem
cfg_hide_undoc_classes
HIDE_UNDOC_CLASSES
\
refitem
cfg_hide_undoc_members
HIDE_UNDOC_MEMBERS
...
...
@@ -160,6 +163,9 @@ followed by the descriptions of the tags grouped by category.
\
refitem
cfg_paper_type
PAPER_TYPE
\
refitem
cfg_pdf_hyperlinks
PDF_HYPERLINKS
\
refitem
cfg_perl_path
PERL_PATH
\
refitem
cfg_perlmod_latex
PERLMOD_LATEX
\
refitem
cfg_perlmod_pretty
PERLMOD_PRETTY
\
refitem
cfg_perlmod_makevar_prefix
PERLMOD_MAKEVAR_PREFIX
\
refitem
cfg_predefined
PREDEFINED
\
refitem
cfg_project_name
PROJECT_NAME
\
refitem
cfg_project_number
PROJECT_NUMBER
...
...
@@ -291,6 +297,14 @@ followed by the descriptions of the tags grouped by category.
If
set
to
\
c
NO
(
the
default
)
these
declarations
will
be
included
in
the
documentation
.
\
anchor
cfg_hide_in_body_docs
<
dt
>\
c
HIDE_IN_BODY_DOCS
<
dd
>
\
addindex
HIDE_IN_BODY_DOCS
If
the
\
c
HIDE_IN_BODY_DOCS
tag
is
set
to
\
c
YES
,
Doxygen
will
hide
any
documentation
blocks
found
inside
the
body
of
a
function
.
If
set
to
\
c
NO
(
the
default
)
these
blocks
will
be
appended
to
the
function
's detailed documentation block.
\anchor cfg_brief_member_desc
<dt>\c BRIEF_MEMBER_DESC <dd>
\addindex BRIEF_MEMBER_DESC
...
...
@@ -1150,26 +1164,78 @@ EXTRA_PACKAGES = times
<
dt
>\
c
GENERATE_XML
<
dd
>
\
addindex
GENERATE_XML
If the
GENERATE_XML tag is set to
YES Doxygen will
If
the
\
c
GENERATE_XML
tag
is
set
to
\
c
YES
Doxygen
will
generate
an
XML
file
that
captures
the
structure
of
the
code
including
all
documentation
.
\
anchor
cfg_xml_schema
<
dt
>\
c
XML_SCHEMA
<
dd
>
\
addindex
XML_SCHEMA
The XML_SCHEMA tag can be used to specify an XML schema,
The
\
c
XML_SCHEMA
tag
can
be
used
to
specify
an
XML
schema
,
which
can
be
used
by
a
validating
XML
parser
to
check
the
syntax
of
the
XML
files
.
\
anchor
cfg_xml_dtd
<
dt
>\
c
XML_DTD
<
dd
>
\
addindex
XML_DTD
The XML_DTD tag can be used to specify an XML DTD,
The
\
c
XML_DTD
tag
can
be
used
to
specify
an
XML
DTD
,
which
can
be
used
by
a
validating
XML
parser
to
check
the
syntax
of
the
XML
files
.
</
dl
>
\
section
autogen_output
AUTOGEN_DEF
related
options
\
anchor
cfg_generate_autogen_def
<
dl
>
<
dt
>\
c
GENERATE_AUTOGEN_DEF
<
dd
>
\
addindex
GENERATE_AUTOGEN_DEF
If
the
\
c
GENERATE_AUTOGEN_DEF
tag
is
set
to
\
c
YES
Doxygen
will
generate
an
AutoGen
Definitions
(
see
http
://
autogen
.
sf
.
net
)
file
that
captures
the
structure
of
the
code
including
all
documentation
.
Note
that
this
feature
is
still
experimental
and
incomplete
at
the
moment
.
</
dl
>
\
section
perlmod_output
PERLMOD
related
options
\
anchor
cfg_generate_perlmod
<
dl
>
<
dt
>\
c
GENERATE_PERLMOD
<
dd
>
\
addindex
GENERATE_PERLMOD
If
the
\
c
GENERATE_PERLMOD
tag
is
set
to
\
c
YES
Doxygen
will
generate
a
Perl
module
file
that
captures
the
structure
of
the
code
including
all
documentation
.
Note
that
this
feature
is
still
experimental
and
incomplete
at
the
moment
.
\
anchor
cfg_perlmod_latex
<
dt
>\
c
PERLMOD_LATEX
<
dd
>
\
addindex
PERLMOD_LATEX
If
the
\
c
PERLMOD_LATEX
tag
is
set
to
\
c
YES
Doxygen
will
generate
the
necessary
Makefile
rules
,
Perl
scripts
and
LaTeX
code
to
be
able
to
generate
PDF
and
DVI
output
from
the
Perl
module
output
.
\
anchor
cfg_perlmod_pretty
<
dt
>\
c
PERLMOD_PRETTY
<
dd
>
\
addindex
PERLMOD_PRETTY
If
the
\
c
PERLMOD_PRETTY
tag
is
set
to
\
c
YES
the
Perl
module
output
will
be
nicely
formatted
so
it
can
be
parsed
by
a
human
reader
.
This
is
useful
if
you
want
to
understand
what
is
going
on
.
On
the
other
hand
,
if
this
tag
is
set
to
\
c
NO
the
size
of
the
Perl
module
output
will
be
much
smaller
and
Perl
will
parse
it
just
the
same
.
\
anchor
cfg_perlmod_makevar_prefix
<
dt
>\
c
PERLMOD_MAKEVAR_PREFIX
<
dd
>
\
addindex
PERLMOD_MAKEVAR_PREFIX
The
names
of
the
make
variables
in
the
generated
doxyrules
.
make
file
are
prefixed
with
the
string
contained
in
\
c
PERLMOD_MAKEVAR_PREFIX
.
This
is
useful
so
different
doxyrules
.
make
files
included
by
the
same
Makefile
don
't overwrite each other'
s
variables
.
</
dl
>
\
section
config_prepro
Preprocessor
related
options
\
anchor
cfg_enable_preprocessing
<
dl
>
...
...
doc/doxysearch_usage.doc
View file @
e952dab5
...
...
@@ -131,7 +131,7 @@ This can be done by carefully following these steps:
\par Note:
Doxytag requires quite a large amount of memory to
generate the search index (about 30 MB on my Linux box)!
The resulting index file requires about 3 MB space on your disk.
The resulting index file requires about 3 MB
of
space on your disk.
<li>Edit the shell script <code>search.cgi</code> with a text editor.
...
...
doc/features.doc
View file @
e952dab5
...
...
@@ -21,7 +21,8 @@
<li>Requires very little overhead from the writer of the documentation.
Plain text will do, but for more fancy or structured output HTML tags
and/or some of doxygen's special commands can be used.
<li>Supports C++, Java, (Corba, Microsoft, and KDE-DCOP) Java, IDL and C sources.
<li>Supports C/C++, Java, (Corba, Microsoft, and KDE-DCOP) Java,
IDL, and to some extent C# and PHP sources.
<li>Supports documentation of files, namespaces, classes, structs, unions,
templates, variables, functions, typedefs, enums and defines.
<li>JavaDoc (1.1), Qt-Doc, and KDOC compatible.
...
...
doc/htmlcmds.doc
View file @
e952dab5
...
...
@@ -17,8 +17,9 @@
/*! \page htmlcmds HTML Commands
Here is a list of all HTML commands that may be used inside the
documentation. Note that all attributes of a HTML tag are ignored
(the HREF and NAME attributes for the A tag are the only exception).
documentation. Note that all attributes of a HTML tag are passed on to
the HTML output only (the HREF and NAME attributes for the A tag are the
only exception).
<ul>
<li><tt>\<A HREF="..."\></tt> Starts a HTML hyper-link (HTML only).
...
...
doc/language.doc
View file @
e952dab5
...
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
Currently (version 1.
2.18-20021020
), 28 languages
Currently (version 1.
3pre1
), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
...
...
examples/class.h
View file @
e952dab5
...
...
@@ -2,7 +2,7 @@
class
Test
{
}
}
;
/*! \class Test class.h "inc/class.h"
* \brief This is a test class.
...
...
examples/example.cfg
View file @
e952dab5
examples/page.doc
View file @
e952dab5
/*! \page page1 A documentation page
Leading text.
\section sec An example section
This page contains the subsections \ref subsection1 and \ref subsection2.
For more info see
section
\ref page2.
For more info see
page
\ref page2.
\subsection subsection1 The first subsection
Text.
\subsection subsection2 The second subsection
...
...
packages/rpm/doxygen.spec
View file @
e952dab5
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.
2.18_20021106
Version: 1.
3_rc1
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
e952dab5
...
...
@@ -727,7 +727,13 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType
if
(
!
briefDescription
().
isEmpty
()
&&
Config_getBool
(
"REPEAT_BRIEF"
)
&&
!
documentation
().
isEmpty
())
{
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
newParagraph
();
ol
.
enableAll
();
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
writeString
(
"
\n\n
"
);
ol
.
popGeneratorState
();
}
// write documentation
if
(
!
documentation
().
isEmpty
())
...
...
@@ -1032,14 +1038,12 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
.
endDotGraph
(
usageImplGraph
);
if
(
Config_getBool
(
"GENERATE_LEGEND"
))
{
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
writeString
(
"<center><font size=
\"
2
\"
>["
);
ol
.
startHtmlLink
(
"graph_legend"
+
Doxygen
::
htmlFileExtension
);
ol
.
docify
(
theTranslator
->
trLegend
());
ol
.
endHtmlLink
();
ol
.
writeString
(
"]</font></center>"
);
ol
.
popGeneratorState
();
}
ol
.
popGeneratorState
();
}
...
...
@@ -1051,11 +1055,13 @@ void ClassDef::writeDocumentation(OutputList &ol)
/* && !Config_getBool("INLINE_INHERITED_MEMB") */
)
{
ol
.
pushGeneratorState
();
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
startTextLink
(
m_memListFileName
,
0
);
ol
.
parseText
(
theTranslator
->
trListOfAllMembers
());
ol
.
endTextLink
();
ol
.
enableAll
();
ol
.
popGeneratorState
();
}
ol
.
endTextBlock
();
...
...
src/config.l
View file @
e952dab5
...
...
@@ -1404,6 +1404,14 @@ void Config::create()
"documentation. \n",
FALSE
);
cb = addBool(
"HIDE_IN_BODY_DOCS",
"If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any \n"
"documentation blocks found inside the body of a function. \n"
"If set to NO (the default) these blocks will be appended to the \n"
"function's detailed documentation block. \n",
FALSE
);
cb = addBool(
"BRIEF_MEMBER_DESC",
"If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will \n"
...
...
src/docparser.cpp
View file @
e952dab5
...
...
@@ -423,7 +423,11 @@ static bool findDocsForMemberOrCompound(const char *commandName,
NamespaceDef
*
nd
=
0
;
GroupDef
*
gd
=
0
;
PageInfo
*
pi
=
0
;
bool
found
=
getDefs
(
g_context
.
latin1
(),
name
.
latin1
(),
args
,
md
,
cd
,
fd
,
nd
,
gd
,
FALSE
,
0
,
TRUE
);
bool
found
=
getDefs
(
g_context
.
find
(
'.'
)
==-
1
?
g_context
.
latin1
()
:
""
,
// `find('.') is a hack to detect files
name
.
latin1
(),
args
.
isEmpty
()
?
0
:
args
.
latin1
(),
md
,
cd
,
fd
,
nd
,
gd
,
FALSE
,
0
,
TRUE
);
if
(
found
&&
md
)
{
*
pDoc
=
md
->
documentation
();
...
...
@@ -4371,6 +4375,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
// pretty print the result
PrintDocVisitor
*
v
=
new
PrintDocVisitor
;
root
->
accept
(
v
);
delete
v
;
}
checkUndocumentedParams
();
...
...
@@ -4413,6 +4418,14 @@ DocNode *validatingParseText(const char *input)
DocText
*
txt
=
new
DocText
;
txt
->
parse
();
if
(
Debug
::
isFlagSet
(
Debug
::
PrintTree
))
{
// pretty print the result
PrintDocVisitor
*
v
=
new
PrintDocVisitor
;
txt
->
accept
(
v
);
delete
v
;
}
delete
g_token
;
return
txt
;
...
...
src/doctokenizer.l
View file @
e952dab5
...
...
@@ -319,7 +319,7 @@ HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
g_token->name=yytext;
return TK_URL;
}
<St_Para>[a-z_A-Z0-9.-]+"@"[a-z_A-Z0-9.-]+ {
<St_Para>[a-z_A-Z0-9.-]+"@"[a-z_A-Z0-9
-]+"."[a-z_A-Z0-9
.-]+ {
g_token->name=yytext;
return TK_URL;
}
...
...
@@ -383,6 +383,9 @@ HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
<St_Para,St_Text>{WORD1} |
<St_Para,St_Text>{WORD2} { /* function call */
if (yytext[0]=='%') // strip % if present
g_token->name = &yytext[1];
else
g_token->name = yytext;
return TK_WORD;
...
...
@@ -465,6 +468,9 @@ HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
}
<St_TitleN>{WORD1} |
<St_TitleN>{WORD2} { /* word */
if (yytext[0]=='%') // strip % if present
g_token->name = &yytext[1];
else
g_token->name = yytext;
return TK_WORD;
}
...
...
src/doxygen.cpp
View file @
e952dab5
...
...
@@ -4556,7 +4556,7 @@ static void findMember(Entry *root,
warn_cont
(
"%s "
,
md
->
typeString
());
}
warn_cont
(
"%s::%s%s
\n
"
,
cd
->
name
().
data
(),
cd
->
qualifiedNameWithTemplateParameters
().
data
(),
md
->
name
().
data
(),
md
->
argsString
());
}
}
...
...
@@ -7806,6 +7806,7 @@ void generateOutput()
msg
(
"Generating group index...
\n
"
);
writeGroupIndex
(
*
outputList
);
//msg("Generating package index...\n");
//generatePackageDocs();
...
...
@@ -7831,6 +7832,7 @@ void generateOutput()
generateSearchIndex
();
msg
(
"Generating style sheet...
\n
"
);
//printf("writing style info\n");
outputList
->
writeStyleInfo
(
0
);
// write first part
outputList
->
disableAllBut
(
OutputGenerator
::
Latex
);
outputList
->
parseText
(
...
...
src/filedef.cpp
View file @
e952dab5
...
...
@@ -122,7 +122,13 @@ void FileDef::writeDetailedDocumentation(OutputList &ol)
if
(
!
briefDescription
().
isEmpty
()
&&
Config_getBool
(
"REPEAT_BRIEF"
)
&&
!
documentation
().
isEmpty
())
{
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
newParagraph
();
ol
.
enableAll
();
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
writeString
(
"
\n\n
"
);
ol
.
popGeneratorState
();
}
if
(
!
documentation
().
isEmpty
())
{
...
...
src/htmlgen.cpp
View file @
e952dab5
...
...
@@ -313,10 +313,12 @@ void HtmlGenerator::endProjectNumber()
void
HtmlGenerator
::
writeStyleInfo
(
int
part
)
{
//printf("writeStyleInfo(%d)\n",part);
if
(
part
==
0
)
{
if
(
Config_getString
(
"HTML_STYLESHEET"
).
isEmpty
())
// write default style sheet
{
//printf("write doxygen.css\n");
startPlainFile
(
"doxygen.css"
);
// alternative, cooler looking titles
...
...
src/mangen.cpp
View file @
e952dab5
...
...
@@ -619,6 +619,5 @@ void ManGenerator::printDoc(DocNode *n)
ManDocVisitor
*
visitor
=
new
ManDocVisitor
(
t
,
*
this
);
n
->
accept
(
visitor
);
delete
visitor
;
t
<<
endl
;
}
src/namespacedef.cpp
View file @
e952dab5
...
...
@@ -207,7 +207,13 @@ void NamespaceDef::writeDetailedDocumentation(OutputList &ol)
if
(
!
briefDescription
().
isEmpty
()
&&
Config_getBool
(
"REPEAT_BRIEF"
)
&&
!
documentation
().
isEmpty
())
{
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
newParagraph
();
ol
.
enableAll
();
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
writeString
(
"
\n\n
"
);
ol
.
popGeneratorState
();
}
if
(
!
documentation
().
isEmpty
())
{
...
...
src/pre.l
View file @
e952dab5
...
...
@@ -971,11 +971,11 @@ static void readIncludeFile(const QCString &inc)
g_includeStack.push(fs);
// set the scanner to the include file
//
TODO: Enable this to d
eal with file changes due to
//
D
eal with file changes due to
// #include's within { .. } blocks
//
QCString lineStr;
//
lineStr.sprintf("# 1 \"%s\" 1\n",g_yyFileName.data());
//
outputArray(lineStr.data(),lineStr.length());
QCString lineStr;
lineStr.sprintf("# 1 \"%s\" 1\n",g_yyFileName.data());
outputArray(lineStr.data(),lineStr.length());
//fprintf(stderr,"Switching to include file %s\n",incFileName.data());
preYYin=f;
...
...
@@ -1624,9 +1624,9 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(SkipCPPComment);
}
<SkipCComment>"*/" {
outputChar('*');outputChar('/');
if (--g_commentCount<=0)
{
outputChar('*');outputChar('/');
BEGIN(g_lastCContext);
}
}
...
...
@@ -1803,11 +1803,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
setFileName(fs->fileName.copy());
//fprintf(stderr,"######## FileName %s\n",g_yyFileName.data());
//
TODO: Enable this to d
eal with file changes due to
//
D
eal with file changes due to
// #include's within { .. } blocks
//
QCString lineStr;
//
lineStr.sprintf("# %d \"%s\" 2",g_yyLineNr,g_yyFileName.data());
//
outputArray(lineStr.data(),lineStr.length());
QCString lineStr;
lineStr.sprintf("# %d \"%s\" 2",g_yyLineNr,g_yyFileName.data());
outputArray(lineStr.data(),lineStr.length());
delete fs; fs=0;
}
...
...
src/scanner.l
View file @
e952dab5
...
...
@@ -657,6 +657,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
%x GetCallType
%x JavaImport
%x CSAccessorDecl
%x PreLineCtrl
%%
...
...
@@ -1356,6 +1357,17 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current->bodyLine = yyLineNr;
BEGIN( Define );
}
<FindMembers>{B}*"#"{B}+[0-9]+{B}+/"\"" { /* line control directive */
yyLineNr = atoi(&yytext[1]);
BEGIN( PreLineCtrl );
}
<PreLineCtrl>"\""[^\n\"]*"\"" {
strncpy(yyFileName,stripQuotes(yytext),4096);
}
<PreLineCtrl>. {}
<PreLineCtrl>\n {
BEGIN(FindMembers);
}
<SkipCPP>.
<SkipCPP>\\[\r]*"\n"[\r]* { yyLineNr++ ; }
<SkipCPP>[\r]*\n[\r]* { yyLineNr++ ;
...
...
@@ -2587,6 +2599,14 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
else
{
if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
!current->doc.isEmpty())
{
// copy documentation found inside the body
// to the previous item
previous->doc += current->doc;
current->doc.resize(0);
}
previous->endBodyLine=yyLineNr;
BEGIN( lastCurlyContext ) ;
}
...
...
@@ -2943,16 +2963,12 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
//printf("Start doc block at %d\n",yyLineNr);
removeSlashes=(yytext[1]=='/');
tmpDocType=-1;
if (YY_START==ReadBody)
{
current->doc+="\n\n";
}
else
if (YY_START!=SkipCurly)
{
current->doc.resize(0);
}
current->docLine = yyLineNr;
current->docFile = yyFileName;
}
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
{
...
...
@@ -2978,27 +2994,27 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
if (!Config_getBool("JAVADOC_AUTOBRIEF")) // use the Qt style
{
tmpDocType=-1;
if (YY_START==ReadBody)
if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
YY_START==SkipCurly) // inside body
{
current->doc+="\n\n";
}
else
{
current->doc.resize(0);
}
current->docLine = yyLineNr;
current->docFile = yyFileName;
}
BEGIN( Doc );
}
else // Use the javadoc style
{
if (YY_START==ReadBody)
if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
YY_START==SkipCurly) // inside body
{
tmpDocType=-1;
current->doc+="\n\n";
lastDocContext = ReadBody;
current->docLine = yyLineNr;
current->docFile = yyFileName;
lastDocContext = SkipCurly;
BEGIN( Doc );
}
else
...
...
@@ -3014,10 +3030,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
}
}
<FindMembers,FindFields,MemberSpec,FuncQual,Operator,ClassVar,Bases>"//!" {
<FindMembers,FindFields,MemberSpec,SkipCurly,FuncQual,Operator,ClassVar,Bases>"//!" {
if (YY_START!=SkipCurly)
{
current->brief.resize(0);
current->briefFile=yyFileName;
current->briefLine=yyLineNr;
}
tmpDocType=-1;
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
...
...
@@ -3030,10 +3049,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
BEGIN( LineDoc );
}
<FindMembers,FindFields,MemberSpec,FuncQual,Operator,ClassVar,Bases>"///"/[^/] {
<FindMembers,FindFields,MemberSpec,SkipCurly,FuncQual,Operator,ClassVar,Bases>"///"/[^/] {
if (YY_START!=SkipCurly)
{
current->brief.resize(0);
current->briefFile=yyFileName;
current->briefLine=yyLineNr;
}
tmpDocType=-1;
lastDocContext = YY_START;
if (current_root->section & Entry::SCOPE_MASK)
...
...
@@ -4089,6 +4111,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
else
{
current->brief += " ";
if (!current->doc.isEmpty())
{
current->doc += "<p>";
}
yyLineNr++ ;
}
}
...
...
@@ -4194,6 +4220,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<LineDoc>[\n\r]+{B}*"//"[!/] { lineCount(); }
<LineDoc>\n {
yyLineNr++;
if (!Config_getBool("HIDE_IN_BODY_DOCS") &&
lastDocContext==SkipCurly) // inside body
{
if (!previous->doc.isEmpty())
{
previous->doc+="<p>";
}
previous->doc += current->brief;
current->brief.resize(0);
}
BEGIN( lastDocContext );
}
<DefLineDoc>\n {
...
...
@@ -4318,6 +4354,10 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
checkDocs();
current->doc += "\n\n";
//printf("End of docs at line %d\n",yyLineNr);
if (lastDocContext==SkipCurly && Config_getBool("HIDE_IN_BODY_DOCS"))
{
current->doc.resize(0);
}
BEGIN( lastDocContext );
}
<JavaDoc>"*/" {
...
...
src/translator_sr.h
View file @
e952dab5
...
...
@@ -272,7 +272,7 @@ private:
result
+=
"èlanova klasa"
;
}
result
+=
" sa linkovima na "
;
if
(
!
extractAll
)
if
(
extractAll
)
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
...
...
@@ -331,7 +331,7 @@ private:
/*! This is an introduction to the page with the list of related pages */
virtual
QCString
trRelatedPagesDescription
()
{
return
decode
(
"Spisak svih slèinih stranica:"
);
}
{
return
decode
(
"Spisak svih sliènih stranica:"
);
}
/*! This is an introduction to the page with the list of class/file groups */
virtual
QCString
trModulesDescription
()
...
...
@@ -945,11 +945,11 @@ private:
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
return
decode
(
"Èlan"
);
return
decode
(
"Èla
nov
i"
);
}
else
{
return
decode
(
"Javni èlan"
);
return
decode
(
"Javni èla
nov
i"
);
}
}
virtual
QCString
trStaticPublicAttribs
()
...
...
@@ -1403,7 +1403,17 @@ private:
return
decode
(
"Sadr¾aj"
);
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.17
//////////////////////////////////////////////////////////////////////////
/*! Used as the header of the list of item that have been
* flagged deprecated
*/
virtual
QCString
trDeprecatedList
()
{
return
decode
(
"Spisak zastarelih funkcija èlanica"
);
}
};
...
...
src/util.cpp
View file @
e952dab5
...
...
@@ -308,7 +308,7 @@ void writePageRef(OutputDocInterface &od,const char *cn,const char *mn)
QCString
generateMarker
(
int
id
)
{
QCString
result
;
result
.
sprintf
(
"@%d
\n
"
,
id
);
result
.
sprintf
(
"@%d"
,
id
);
return
result
;
}
...
...
@@ -1228,7 +1228,69 @@ static QCString trimTemplateSpecifiers(
return
result
;
}
// removes the (one and only) occurrence of name:: from s.
/*!
* @param pattern pattern to look for
* @param s string to search in
* @param p position to start
* @param len resulting pattern length
* @returns position on which string is found, or -1 if not found
*/
static
int
findScopePattern
(
const
QCString
&
pattern
,
const
QCString
&
s
,
int
p
,
int
*
len
)
{
int
sl
=
s
.
length
();
int
pl
=
pattern
.
length
();
int
sp
=
0
;
*
len
=
0
;
while
(
p
<
sl
)
{
sp
=
p
;
// start of match
int
pp
=
0
;
// pattern position
while
(
p
<
sl
&&
pp
<
pl
)
{
if
(
s
.
at
(
p
)
==
'<'
)
// skip template arguments while matching
{
int
bc
=
1
;
//printf("skipping pos=%d c=%c\n",p,s.at(p));
p
++
;
while
(
p
<
sl
)
{
if
(
s
.
at
(
p
)
==
'<'
)
bc
++
;
else
if
(
s
.
at
(
p
)
==
'>'
)
{
bc
--
;
if
(
bc
==
0
)
{
p
++
;
break
;
}
}
//printf("skipping pos=%d c=%c\n",p,s.at(p));
p
++
;
}
}
else
if
(
s
.
at
(
p
)
==
pattern
.
at
(
pp
))
{
//printf("match at position p=%d pp=%d c=%c\n",p,pp,s.at(p));
p
++
;
pp
++
;
}
else
// no match
{
//printf("restarting at %d c=%c pat=%s\n",p,s.at(p),pattern.data());
p
=
sp
+
1
;
break
;
}
}
if
(
pp
==
pl
)
// whole pattern matches
{
*
len
=
p
-
sp
;
return
sp
;
}
}
return
-
1
;
}
static
QCString
trimScope
(
const
QCString
&
name
,
const
QCString
&
s
)
{
int
scopeOffset
=
name
.
length
();
...
...
@@ -1239,11 +1301,11 @@ static QCString trimScope(const QCString &name,const QCString &s)
QCString
scope
=
name
.
left
(
scopeOffset
)
+
"::"
;
//printf("Trying with scope=`%s'\n",scope.data());
int
i
,
p
=
0
;
while
((
i
=
result
.
find
(
scope
,
p
))
!=-
1
)
// for each occurrence
int
i
,
p
=
0
,
l
;
while
((
i
=
findScopePattern
(
scope
,
result
,
p
,
&
l
))
!=-
1
)
// for each occurrence
{
tmp
+=
result
.
mid
(
p
,
i
-
p
);
// add part before pattern
p
=
i
+
scope
.
length
()
;
p
=
i
+
l
;
}
tmp
+=
result
.
right
(
result
.
length
()
-
p
);
// add trailing part
...
...
@@ -1462,6 +1524,17 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
stripIrrelevantConstVolatile
(
srcAType
);
stripIrrelevantConstVolatile
(
dstAType
);
// strip typename keyword
if
(
strncmp
(
srcAType
,
"typename "
,
9
)
==
0
)
{
srcAType
=
srcAType
.
right
(
srcAType
.
length
()
-
9
);
}
if
(
strncmp
(
dstAType
,
"typename "
,
9
)
==
0
)
{
dstAType
=
dstAType
.
right
(
dstAType
.
length
()
-
9
);
}
srcAType
=
removeRedundantWhiteSpace
(
srcAType
);
dstAType
=
removeRedundantWhiteSpace
(
dstAType
);
...
...
@@ -2146,7 +2219,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
}
}
}
//printf("found %d candidate members\n",members.count());
if
(
members
.
count
()
!=
1
&&
!
strcmp
(
args
,
"()"
))
{
// no exact match found, but if args="()" an arbitrary
...
...
@@ -2167,6 +2239,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
md
=
mn
->
prev
();
}
}
//printf("found %d candidate members\n",members.count());
if
(
members
.
count
()
==
1
||
currentFile
!=
0
)
{
md
=
members
.
first
();
...
...
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