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
74cc4d70
Commit
74cc4d70
authored
Dec 15, 1999
by
mueller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mods for doxygen-0.49-991117
parent
5576fbf6
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
7878 additions
and
7662 deletions
+7878
-7662
INSTALL
INSTALL
+4
-4
Makefile.in
Makefile.in
+3
-1
README
README
+2
-2
VERSION
VERSION
+1
-1
commands.doc
doc/commands.doc
+2
-5
config.doc
doc/config.doc
+6
-9
faq.doc
doc/faq.doc
+19
-0
history.doc
doc/history.doc
+0
-16
index.doc
doc/index.doc
+1
-0
language.doc
doc/language.doc
+0
-14
todo.doc
doc/todo.doc
+36
-0
code.cpp
src/code.cpp
+214
-163
code.l
src/code.l
+136
-85
config.cpp
src/config.cpp
+1
-11
config.l
src/config.l
+1
-11
debug.cpp
src/debug.cpp
+7
-0
debug.h
src/debug.h
+6
-4
doxygen.cpp
src/doxygen.cpp
+168
-176
filename.cpp
src/filename.cpp
+8
-4
groupdef.cpp
src/groupdef.cpp
+1
-0
htmlgen.cpp
src/htmlgen.cpp
+10
-7
index.cpp
src/index.cpp
+23
-20
memberdef.cpp
src/memberdef.cpp
+1
-1
namespacedef.cpp
src/namespacedef.cpp
+1
-1
pre.cpp
src/pre.cpp
+140
-136
pre.l
src/pre.l
+19
-15
scanner.cpp
src/scanner.cpp
+6957
-6930
scanner.l
src/scanner.l
+9
-8
tag.cpp
src/tag.cpp
+5
-1
tag.l
src/tag.l
+5
-1
translator_nl.h
src/translator_nl.h
+44
-27
translator_se.h
src/translator_se.h
+36
-1
util.cpp
src/util.cpp
+12
-8
No files found.
INSTALL
View file @
74cc4d70
DOXYGEN Version 0.49-9911
06
DOXYGEN Version 0.49-9911
17
CONTENTS
CONTENTS
--------
--------
...
@@ -15,8 +15,8 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
...
@@ -15,8 +15,8 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
1. Unpack the archive, unless you already have:
1. Unpack the archive, unless you already have:
gunzip doxygen-0.49-9911
06
.src.tar.gz # uncompress the archive
gunzip doxygen-0.49-9911
17
.src.tar.gz # uncompress the archive
tar xf doxygen-0.49-9911
06
.src.tar # unpack it
tar xf doxygen-0.49-9911
17
.src.tar # unpack it
2. Run the configure script:
2. Run the configure script:
...
@@ -234,4 +234,4 @@ The latest version of doxygen can be obtained at
...
@@ -234,4 +234,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (
06
November 1999)
Dimitri van Heesch (
17
November 1999)
Makefile.in
View file @
74cc4d70
...
@@ -21,7 +21,9 @@ install:
...
@@ -21,7 +21,9 @@ install:
$(INSTTOOL)
-d
$(INSTALL)
/bin
$(INSTTOOL)
-d
$(INSTALL)
/bin
$(INSTTOOL)
-d
$(INSTALL)
/doc/doxygen
$(INSTTOOL)
-d
$(INSTALL)
/doc/doxygen
$(INSTTOOL)
-d
$(INSTALL)
/doc/doxygen
$(INSTTOOL)
-d
$(INSTALL)
/doc/doxygen
$(INSTTOOL)
-m
755 bin/doxy
*
$(INSTALL)
/bin
$(INSTTOOL)
-m
755 bin/doxygen
$(INSTALL)
/bin
$(INSTTOOL)
-m
755 bin/doxytag
$(INSTALL)
/bin
$(INSTTOOL)
-m
755 bin/doxysearch
$(INSTALL)
/bin
cp
-r
doc
$(INSTALL)
/doc/doxygen
cp
-r
doc
$(INSTALL)
/doc/doxygen
cp
-r
examples
$(INSTALL)
/doc/doxygen
cp
-r
examples
$(INSTALL)
/doc/doxygen
echo
"DOXYGEN =
$(INSTALL)
"
>
$(INSTALL)
/doc/doxygen/doc/Makefile
echo
"DOXYGEN =
$(INSTALL)
"
>
$(INSTALL)
/doc/doxygen/doc/Makefile
...
...
README
View file @
74cc4d70
DOXYGEN Version 0.49-9911
06
DOXYGEN Version 0.49-9911
17
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (
06
November 1999)
Dimitri van Heesch (
17
November 1999)
VERSION
View file @
74cc4d70
0.49-9911
06
0.49-9911
17
doc/commands.doc
View file @
74cc4d70
...
@@ -1057,10 +1057,8 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -1057,10 +1057,8 @@ Doxygen. Unrecognized commands are treated as normal text.
The second argument specifies the file name of the image.
The second argument specifies the file name of the image.
Doxygen will look for files in the paths (or files) that you specified
Doxygen will look for files in the paths (or files) that you specified
after the \ref cfg_image_path "IMAGE_PATH" tag and filter those files through the patterns
after the \ref cfg_image_path "IMAGE_PATH" tag.
you specified after the \ref cfg_image_patterns "IMAGE_PATTERNS" tag.
If the image is found it will be copied to the correct output directory.
If the image is found it
will be copied to the correct output directory.
If the image name contains spaces you'll have to put quotes (") around it.
If the image name contains spaces you'll have to put quotes (") around it.
The third argument can be used to specify the width or height of the
The third argument can be used to specify the width or height of the
...
@@ -1083,7 +1081,6 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -1083,7 +1081,6 @@ Doxygen. Unrecognized commands are treated as normal text.
\verbatim
\verbatim
IMAGE_PATH = my_image_dir
IMAGE_PATH = my_image_dir
IMAGE_PATTERNS = *.eps *.gif *.jpg
\endverbatim
\endverbatim
\warning The image format for HTML is limited to what your
\warning The image format for HTML is limited to what your
...
...
doc/config.doc
View file @
74cc4d70
...
@@ -88,7 +88,6 @@ followed by the descriptions of the tags grouped by category.
...
@@ -88,7 +88,6 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_html_output
HTML_OUTPUT
<
li
>
\
refitem
cfg_html_output
HTML_OUTPUT
<
li
>
\
refitem
cfg_html_stylesheet
HTML_STYLESHEET
<
li
>
\
refitem
cfg_html_stylesheet
HTML_STYLESHEET
<
li
>
\
refitem
cfg_image_path
IMAGE_PATH
<
li
>
\
refitem
cfg_image_path
IMAGE_PATH
<
li
>
\
refitem
cfg_image_patterns
IMAGE_PATTERNS
<
li
>
\
refitem
cfg_include_path
INCLUDE_PATH
<
li
>
\
refitem
cfg_include_path
INCLUDE_PATH
<
li
>
\
refitem
cfg_inherit_docs
INHERIT_DOCS
<
li
>
\
refitem
cfg_inherit_docs
INHERIT_DOCS
<
li
>
\
refitem
cfg_inline_info
INLINE_INFO
<
li
>
\
refitem
cfg_inline_info
INLINE_INFO
...
@@ -115,6 +114,7 @@ followed by the descriptions of the tags grouped by category.
...
@@ -115,6 +114,7 @@ followed by the descriptions of the tags grouped by category.
<
li
>
\
refitem
cfg_searchengine
SEARCHENGINE
<
li
>
\
refitem
cfg_searchengine
SEARCHENGINE
<
li
>
\
refitem
cfg_source_browser
SOURCE_BROWSER
<
li
>
\
refitem
cfg_source_browser
SOURCE_BROWSER
<
li
>
\
refitem
cfg_strip_from_path
STRIP_FROM_PATH
<
li
>
\
refitem
cfg_strip_from_path
STRIP_FROM_PATH
<
li
>
\
refitem
cfg_tab_size
TAB_SIZE
<
li
>
\
refitem
cfg_tagfiles
TAGFILES
<
li
>
\
refitem
cfg_tagfiles
TAGFILES
<
li
>
\
refitem
cfg_verbatim_headers
VERBATIM_HEADERS
<
li
>
\
refitem
cfg_verbatim_headers
VERBATIM_HEADERS
<
li
>
\
refitem
cfg_warnings
WARNINGS
<
li
>
\
refitem
cfg_warnings
WARNINGS
...
@@ -314,6 +314,11 @@ followed by the descriptions of the tags grouped by category.
...
@@ -314,6 +314,11 @@ followed by the descriptions of the tags grouped by category.
If
the
\
c
INLINE_INFO
tag
is
set
to
\
c
YES
(
the
default
)
then
a
tag
[
inline
]
If
the
\
c
INLINE_INFO
tag
is
set
to
\
c
YES
(
the
default
)
then
a
tag
[
inline
]
is
inserted
in
the
documentation
for
inline
members
.
is
inserted
in
the
documentation
for
inline
members
.
\
anchor
cfg_tab_size
<
dt
>\
c
TAB_SIZE
<
dd
>
the
TAB_SIZE
tag
can
be
used
to
set
the
number
of
spaces
in
a
tab
.
Doxygen
uses
this
value
to
replace
tabs
by
spaces
in
code
fragments
.
</
dl
>
</
dl
>
\
subsection
config_input
Input
related
options
\
subsection
config_input
Input
related
options
...
@@ -382,14 +387,6 @@ followed by the descriptions of the tags grouped by category.
...
@@ -382,14 +387,6 @@ followed by the descriptions of the tags grouped by category.
directories
that
contain
images
that
are
to
be
included
in
the
directories
that
contain
images
that
are
to
be
included
in
the
documentation
(
see
the
\
ref
cmdimage
"\image"
command
).
documentation
(
see
the
\
ref
cmdimage
"\image"
command
).
\
anchor
cfg_image_patterns
<
dt
>\
c
IMAGE_PATTERNS
<
dd
>
\
addindex
IMAGE_PATTERNS
If
the
value
of
the
\
c
IMAGE_PATH
tag
contains
directories
,
you
can
use
the
\
c
IMAGE_PATTERNS
tag
to
specify
one
or
more
wildcard
pattern
(
like
*.
gif
and
*.
eps
)
to
filter
out
the
image
files
in
the
directories
.
If
left
blank
all
files
are
included
.
\
anchor
cfg_input_filter
\
anchor
cfg_input_filter
<
dt
>\
c
INPUT_FILTER
<
dd
>
<
dt
>\
c
INPUT_FILTER
<
dd
>
\
addindex
INPUT_FILTER
\
addindex
INPUT_FILTER
...
...
doc/faq.doc
View file @
74cc4d70
...
@@ -56,6 +56,25 @@ as <code>PREPROCESSING = YES</code>.
...
@@ -56,6 +56,25 @@ as <code>PREPROCESSING = YES</code>.
Look at section \ref preprocessing for the answer.
Look at section \ref preprocessing for the answer.
<li><b>How can I change what's after the <code>#include</code> in class documentation?</b>
You can document your class like
\verbatim
/*! \class MyClassName include.h path/include.h
*
* Docs for MyClassName
*/
\endverbatim
To make doxygen put <br><br>
<code>
#include <path/include.h>
</code>
in the documentation of the class MyClassName regardless of the name of the actual
header file in which the definition of MyClassName is contained.
</ol>
</ol>
*/
*/
doc/history.doc
View file @
74cc4d70
...
@@ -14,24 +14,8 @@
...
@@ -14,24 +14,8 @@
*
*
*/
*/
/*! \page history Doxygen History
/*! \page history Doxygen History
<h3>TODO/Wish list</h3>
<ul>
<li>Add support for grouping members, and document then as a group.
<li>Support for K&R-style function arguments.
<li>More ouput formats: suggested are info format and RTF format.
<li>Split long lists in an index to a set of smaller lists.
<li>Add a nice graphical front-end for creating and modifying the
configuration file (it should be flexible enough to quickly add new options).
<li>Improve the search index generation, so it uses less memory and
is easier to get running.
<li>Generate code metrics (Anyone know a good book about code metrics?)
<li>Add features that you think are missing... So if you know any that are
not yet listed here, please let me know.
</ul>
<h3>Features scheduled for version 1.0</h3>
<h3>Features scheduled for version 1.0</h3>
<ul>
<ul>
<li>Include LaTeX style formulas in LaTeX and HTML output (in HTML as a gif).
<li>Include LaTeX style formulas in LaTeX and HTML output (in HTML as a gif).
...
...
doc/index.doc
View file @
74cc4d70
...
@@ -184,6 +184,7 @@ Patrick Alberts,
...
@@ -184,6 +184,7 @@ Patrick Alberts,
Jacques Tremblay,
Jacques Tremblay,
John Sturton,
John Sturton,
Moshe Kruger,
Moshe Kruger,
David Wong,
and many others for suggestions, patches and bug reports.
and many others for suggestions, patches and bug reports.
</ul>
</ul>
*/
*/
...
...
doc/language.doc
View file @
74cc4d70
...
@@ -100,18 +100,6 @@ Here is a list of the languages and their current maintainers:
...
@@ -100,18 +100,6 @@ Here is a list of the languages and their current maintainers:
borco@NOSPAM.borco-ei.eng.hokudai.ac.jp</a>
borco@NOSPAM.borco-ei.eng.hokudai.ac.jp</a>
</TD>
</TD>
</TR>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Polish
</TD>
<TD>
Piotr Piatkowski
</TD>
<TD>
<a href="mailto:kompas@NOSPAM.ceti.com.pl">
kompas@NOSPAM.ceti.com.pl</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TR BGCOLOR="#ffffff">
<TD>
<TD>
Italian
Italian
...
@@ -209,8 +197,6 @@ Here is a list of the languages and their current maintainers:
...
@@ -209,8 +197,6 @@ Here is a list of the languages and their current maintainers:
\hline
\hline
Romanian & Ionutz Borcoman & {\tt borco@borco-ei.eng.hokudai.ac.jp} \\
Romanian & Ionutz Borcoman & {\tt borco@borco-ei.eng.hokudai.ac.jp} \\
\hline
\hline
Polish & Piotr Piatkowski & {\tt kompas@ceti.com.pl} \\
\hline
Italian & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} \\
Italian & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} \\
& Alessandro Falappa & {\tt a.falappa@flashnet.it} \\
& Alessandro Falappa & {\tt a.falappa@flashnet.it} \\
\hline
\hline
...
...
doc/todo.doc
0 → 100644
View file @
74cc4d70
/******************************************************************************
*
* $Id$
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* All output generated with Doxygen is not covered by this license.
*
*/
/*! \page todo Doxygen TODO's
<h3>TODO/Wish list</h3>
<ul>
<li>Expand namespaces in the file docs with the contents that are
specific to the file (maybe also expand the classes inside a namespace).
<li>Add support for grouping members, and document then as a group.
<li>Support for K&R-style function arguments.
<li>More output formats: suggested are info format and RTF format.
<li>Split long lists in an index to a set of smaller lists.
<li>Add a nice graphical front-end for creating and modifying the
configuration file (it should be flexible enough to quickly add new options).
<li>Improve the search index generation, so it uses less memory and
is easier to get running.
<li>Generate code metrics (Anyone know a good book about code metrics?)
<li>Add features that you think are missing... So if you know any that are
not yet listed here, please let me know.
</ul>
*/
src/code.cpp
View file @
74cc4d70
...
@@ -1201,6 +1201,97 @@ static int anchorCount;
...
@@ -1201,6 +1201,97 @@ static int anchorCount;
static
FileDef
*
sourceFileDef
;
static
FileDef
*
sourceFileDef
;
static
QCString
lastVariable
;
static
QCString
lastVariable
;
// start a new line of code, inserting a line number if sourceFileDef
// is TRUE. If a definition starts at the current line, then the line
// number is linked to the documentation of that definition.
static
void
startCodeLine
(
OutputList
&
ol
)
{
if
(
sourceFileDef
)
{
QCString
lineNumber
,
lineAnchor
;
lineNumber
.
sprintf
(
"%05d "
,
yyLineNr
);
lineAnchor
.
sprintf
(
"l%05d"
,
yyLineNr
);
Definition
*
d
=
sourceFileDef
->
getSourceDefinition
(
yyLineNr
);
QCString
anchor
=
sourceFileDef
->
getSourceAnchor
(
yyLineNr
);
if
(
d
&&
d
->
isLinkableInProject
())
{
ol
.
startCodeAnchor
(
lineAnchor
);
ol
.
writeCodeLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
,
lineNumber
);
ol
.
endCodeAnchor
();
}
else
{
ol
.
codify
(
lineNumber
);
}
}
ol
.
startCodeLine
();
}
// write a code fragment `text' that may span multiple lines, inserting
// line numbers for each line.
static
void
codifyLines
(
char
*
text
)
{
char
*
p
=
text
,
*
sp
=
p
;
char
c
;
bool
done
=
FALSE
;
while
(
!
done
)
{
sp
=
p
;
while
((
c
=*
p
++
)
&&
c
!=
'\n'
);
if
(
c
==
'\n'
)
{
yyLineNr
++
;
*
(
p
-
1
)
=
'\0'
;
code
->
codify
(
sp
);
code
->
endCodeLine
();
if
(
yyLineNr
<
inputLines
)
{
startCodeLine
(
*
code
);
}
}
else
{
code
->
codify
(
sp
);
done
=
TRUE
;
}
}
}
// writes a link to a fragment `text' that may span multiple lines, inserting
// line numbers for each line. If `text' contains newlines, the link will be
// split into multiple links with the same destination, one for each line.
static
void
writeMultiLineCodeLink
(
OutputList
&
ol
,
const
char
*
ref
,
const
char
*
file
,
const
char
*
anchor
,
const
char
*
text
)
{
bool
done
=
FALSE
;
QCString
ts
=
text
;
char
*
p
=
ts
.
data
();
while
(
!
done
)
{
char
*
sp
=
p
;
char
c
;
while
((
c
=*
p
++
)
&&
c
!=
'\n'
);
if
(
c
==
'\n'
)
{
yyLineNr
++
;
*
(
p
-
1
)
=
'\0'
;
ol
.
writeCodeLink
(
ref
,
file
,
anchor
,
sp
);
ol
.
endCodeLine
();
if
(
yyLineNr
<
inputLines
)
{
startCodeLine
(
ol
);
}
}
else
{
ol
.
writeCodeLink
(
ref
,
file
,
anchor
,
sp
);
done
=
TRUE
;
}
}
}
static
void
addType
()
static
void
addType
()
{
{
if
(
name
==
"const"
)
{
name
.
resize
(
0
);
return
;
}
if
(
name
==
"const"
)
{
name
.
resize
(
0
);
return
;
}
...
@@ -1258,7 +1349,7 @@ static void addParameter()
...
@@ -1258,7 +1349,7 @@ static void addParameter()
}
}
}
}
static
void
generateClassLink
(
OutputList
&
ol
,
c
onst
c
har
*
clName
)
static
void
generateClassLink
(
OutputList
&
ol
,
char
*
clName
)
{
{
QCString
className
=
clName
;
QCString
className
=
clName
;
if
(
className
.
length
()
==
0
)
return
;
if
(
className
.
length
()
==
0
)
return
;
...
@@ -1280,11 +1371,12 @@ static void generateClassLink(OutputList &ol,const char *clName)
...
@@ -1280,11 +1371,12 @@ static void generateClassLink(OutputList &ol,const char *clName)
anchorCount
++
;
anchorCount
++
;
}
}
}
}
ol
.
writeCodeLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
className
);
//ol.writeCodeLink(cd->getReference(),cd->getOutputFileBase(),0,className);
writeMultiLineCodeLink
(
ol
,
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
className
);
}
}
else
else
{
{
ol
.
codify
(
clName
);
codifyLines
(
clName
);
}
}
}
}
...
@@ -1323,8 +1415,10 @@ static bool getLink(const char *className,
...
@@ -1323,8 +1415,10 @@ static bool getLink(const char *className,
if
(
d
)
if
(
d
)
{
{
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data());
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data());
result
.
writeCodeLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
//result.writeCodeLink(d->getReference(),d->getOutputFileBase(),
md
->
anchor
(),
text
?
text
:
memberName
);
// md->anchor(),text ? text : memberName);
writeMultiLineCodeLink
(
result
,
d
->
getReference
(),
d
->
getOutputFileBase
(),
md
->
anchor
(),
text
?
text
:
memberName
);
return
TRUE
;
return
TRUE
;
}
}
}
}
...
@@ -1346,7 +1440,7 @@ static ClassDef *stripClassName(const char *s)
...
@@ -1346,7 +1440,7 @@ static ClassDef *stripClassName(const char *s)
}
}
static
void
generateMemberLink
(
OutputList
&
ol
,
const
char
*
varName
,
static
void
generateMemberLink
(
OutputList
&
ol
,
const
char
*
varName
,
c
onst
c
har
*
memName
)
char
*
memName
)
{
{
//printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
//printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
// varName,memName,classScope.data());
// varName,memName,classScope.data());
...
@@ -1393,7 +1487,7 @@ static void generateMemberLink(OutputList &ol,const char *varName,
...
@@ -1393,7 +1487,7 @@ static void generateMemberLink(OutputList &ol,const char *varName,
}
}
else
else
{
{
ol
.
codify
(
memName
);
codifyLines
(
memName
);
}
}
return
;
return
;
}
}
...
@@ -1420,34 +1514,51 @@ static void generateMemberLink(OutputList &ol,const char *varName,
...
@@ -1420,34 +1514,51 @@ static void generateMemberLink(OutputList &ol,const char *varName,
MemberName
*
mmn
=
memberNameDict
[
memName
];
MemberName
*
mmn
=
memberNameDict
[
memName
];
if
(
mmn
)
if
(
mmn
)
{
{
MemberNameIterator
mmni
(
*
mmn
);
MemberNameIterator
mmni
(
*
mmn
);
MemberDef
*
mmd
;
MemberDef
*
mmd
;
for
(;(
mmd
=
mmni
.
current
());
++
mmni
)
for
(;(
mmd
=
mmni
.
current
());
++
mmni
)
{
if
(
mmd
->
memberClass
()
==
mcd
)
{
{
ol
.
writeCodeLink
(
mcd
->
getReference
(),
mcd
->
getOutputFileBase
(),
if
(
mmd
->
memberClass
()
==
mcd
)
mmd
->
anchor
(),
memName
);
{
return
;
//ol.writeCodeLink(mcd->getReference(),mcd->getOutputFileBase(),
// mmd->anchor(),memName);
writeMultiLineCodeLink
(
ol
,
mcd
->
getReference
(),
mcd
->
getOutputFileBase
(),
mmd
->
anchor
(),
memName
);
return
;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
ol
.
codify
(
memName
);
codifyLines
(
memName
);
return
;
return
;
}
}
static
void
generateFunctionLink
(
OutputList
&
ol
,
const
char
*
funcName
)
static
QCString
removeWhiteSpace
(
const
char
*
s
)
{
QCString
result
;
if
(
s
)
{
const
char
*
p
=
s
;
int
c
;
while
((
c
=*
p
++
))
{
if
(
c
!=
' '
&&
c
!=
'\n'
&&
c
!=
'\r'
&&
c
!=
'\t'
)
result
+=
c
;
}
}
return
result
;
}
static
void
generateFunctionLink
(
OutputList
&
ol
,
char
*
funcName
)
{
{
OutputList
result
(
&
ol
);
OutputList
result
(
&
ol
);
CodeClassDef
*
ccd
=
0
;
CodeClassDef
*
ccd
=
0
;
QCString
locScope
=
classScope
.
copy
();
QCString
locScope
=
classScope
.
copy
();
QCString
locFunc
=
funcName
;
QCString
locFunc
=
removeWhiteSpace
(
funcName
)
;
int
i
=
locFunc
.
findRev
(
"::"
);
int
i
=
locFunc
.
findRev
(
"::"
);
if
(
i
>
0
)
if
(
i
>
0
)
{
{
...
@@ -1475,7 +1586,7 @@ static void generateFunctionLink(OutputList &ol,const char *funcName)
...
@@ -1475,7 +1586,7 @@ static void generateFunctionLink(OutputList &ol,const char *funcName)
}
}
else
else
{
{
ol
.
codify
(
funcName
);
codifyLines
(
funcName
);
}
}
return
;
return
;
}
}
...
@@ -1490,66 +1601,6 @@ static int countLines()
...
@@ -1490,66 +1601,6 @@ static int countLines()
return
count
;
return
count
;
}
}
static
void
startCodeLine
()
{
if
(
sourceFileDef
)
{
QCString
lineNumber
,
lineAnchor
;
lineNumber
.
sprintf
(
"%05d "
,
yyLineNr
);
lineAnchor
.
sprintf
(
"l%05d"
,
yyLineNr
);
//MemberDef *md = sourceFileDef->getSourceDefinition(yyLineNr);
//Definition *d=0;
//if (md)
//{
// d=md->memberClass();
// if (!d) d=md->getFileDef();
//}
//if (md && d)
Definition
*
d
=
sourceFileDef
->
getSourceDefinition
(
yyLineNr
);
QCString
anchor
=
sourceFileDef
->
getSourceAnchor
(
yyLineNr
);
if
(
d
&&
d
->
isLinkableInProject
())
{
code
->
startCodeAnchor
(
lineAnchor
);
code
->
writeCodeLink
(
d
->
getReference
(),
d
->
getOutputFileBase
(),
anchor
,
lineNumber
);
code
->
endCodeAnchor
();
}
else
{
code
->
codify
(
lineNumber
);
}
}
code
->
startCodeLine
();
}
static
void
codifyLines
(
char
*
text
)
{
char
*
p
=
text
,
*
sp
=
p
;
char
c
;
bool
done
=
FALSE
;
while
(
!
done
)
{
sp
=
p
;
while
((
c
=*
p
++
)
&&
c
!=
'\n'
);
if
(
c
==
'\n'
)
{
yyLineNr
++
;
*
(
p
-
1
)
=
'\0'
;
code
->
codify
(
sp
);
code
->
endCodeLine
();
if
(
yyLineNr
<
inputLines
)
{
startCodeLine
();
}
}
else
{
code
->
codify
(
sp
);
done
=
TRUE
;
}
}
}
/* -----------------------------------------------------------------
/* -----------------------------------------------------------------
*/
*/
#undef YY_INPUT
#undef YY_INPUT
...
@@ -1749,7 +1800,7 @@ YY_DECL
...
@@ -1749,7 +1800,7 @@ YY_DECL
register
char
*
yy_cp
,
*
yy_bp
;
register
char
*
yy_cp
,
*
yy_bp
;
register
int
yy_act
;
register
int
yy_act
;
#line 5
02
"code.l"
#line 5
53
"code.l"
...
@@ -1858,12 +1909,12 @@ do_action: /* This label is used only to access EOF actions. */
...
@@ -1858,12 +1909,12 @@ do_action: /* This label is used only to access EOF actions. */
{
/* beginning of action switch */
{
/* beginning of action switch */
case
1
:
case
1
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
04
"code.l"
#line 5
55
"code.l"
YY_BREAK
YY_BREAK
case
2
:
case
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
05
"code.l"
#line 5
56
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
BEGIN
(
ReadInclude
);
BEGIN
(
ReadInclude
);
...
@@ -1871,7 +1922,7 @@ YY_RULE_SETUP
...
@@ -1871,7 +1922,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
3
:
case
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
09
"code.l"
#line 5
60
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
//code->codify(yytext);
//code->codify(yytext);
...
@@ -1880,7 +1931,7 @@ YY_RULE_SETUP
...
@@ -1880,7 +1931,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
4
:
case
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
14
"code.l"
#line 5
65
"code.l"
{
{
//FileInfo *f;
//FileInfo *f;
bool
ambig
;
bool
ambig
;
...
@@ -1903,7 +1954,7 @@ YY_RULE_SETUP
...
@@ -1903,7 +1954,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
5
:
case
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
33
"code.l"
#line 5
84
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
BEGIN
(
SkipCPP
)
;
BEGIN
(
SkipCPP
)
;
...
@@ -1911,21 +1962,21 @@ YY_RULE_SETUP
...
@@ -1911,21 +1962,21 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
6
:
case
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
37
"code.l"
#line 5
88
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
7
:
case
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
40
"code.l"
#line 5
91
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
8
:
case
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
43
"code.l"
#line 5
94
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
BEGIN
(
Body
)
;
BEGIN
(
Body
)
;
...
@@ -1933,14 +1984,14 @@ YY_RULE_SETUP
...
@@ -1933,14 +1984,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
9
:
case
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
47
"code.l"
#line 5
98
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
10
:
case
10
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
550
"code.l"
#line
601
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
curlyCount
++
;
curlyCount
++
;
...
@@ -1949,7 +2000,7 @@ YY_RULE_SETUP
...
@@ -1949,7 +2000,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
11
:
case
11
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
555
"code.l"
#line
606
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
inClass
=
FALSE
;
inClass
=
FALSE
;
...
@@ -1962,7 +2013,7 @@ YY_RULE_SETUP
...
@@ -1962,7 +2013,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
12
:
case
12
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
564
"code.l"
#line
615
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
BEGIN
(
Body
);
BEGIN
(
Body
);
...
@@ -1970,7 +2021,7 @@ YY_RULE_SETUP
...
@@ -1970,7 +2021,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
13
:
case
13
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
568
"code.l"
#line
619
"code.l"
{
{
addType
();
addType
();
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
...
@@ -1978,7 +2029,7 @@ YY_RULE_SETUP
...
@@ -1978,7 +2029,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
14
:
case
14
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
572
"code.l"
#line
623
"code.l"
{
{
ccd
.
name
=
yytext
;
ccd
.
name
=
yytext
;
addType
();
addType
();
...
@@ -1987,7 +2038,7 @@ YY_RULE_SETUP
...
@@ -1987,7 +2038,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
15
:
case
15
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
577
"code.l"
#line
628
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
BEGIN
(
Bases
);
BEGIN
(
Bases
);
...
@@ -1995,7 +2046,7 @@ YY_RULE_SETUP
...
@@ -1995,7 +2046,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
16
:
case
16
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
581
"code.l"
#line
632
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
curlyCount
++
;
curlyCount
++
;
...
@@ -2012,35 +2063,35 @@ YY_RULE_SETUP
...
@@ -2012,35 +2063,35 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
17
:
case
17
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
594
"code.l"
#line
645
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
18
:
case
18
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
597
"code.l"
#line
648
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
19
:
case
19
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
00
"code.l"
#line 6
51
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
20
:
case
20
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
03
"code.l"
#line 6
54
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
21
:
case
21
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
06
"code.l"
#line 6
57
"code.l"
{
{
//printf("%s:addBase(%s)\n",ccd.name.data(),yytext);
//printf("%s:addBase(%s)\n",ccd.name.data(),yytext);
ccd
.
bases
.
inSort
(
yytext
);
ccd
.
bases
.
inSort
(
yytext
);
...
@@ -2049,7 +2100,7 @@ YY_RULE_SETUP
...
@@ -2049,7 +2100,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
22
:
case
22
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
11
"code.l"
#line 6
62
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
sharpCount
=
1
;
sharpCount
=
1
;
...
@@ -2058,7 +2109,7 @@ YY_RULE_SETUP
...
@@ -2058,7 +2109,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
23
:
case
23
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
16
"code.l"
#line 6
67
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
++
sharpCount
;
++
sharpCount
;
...
@@ -2066,7 +2117,7 @@ YY_RULE_SETUP
...
@@ -2066,7 +2117,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
24
:
case
24
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
20
"code.l"
#line 6
71
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
if
(
--
sharpCount
<=
0
)
if
(
--
sharpCount
<=
0
)
...
@@ -2075,7 +2126,7 @@ YY_RULE_SETUP
...
@@ -2075,7 +2126,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
25
:
case
25
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
25
"code.l"
#line 6
76
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
...
@@ -2085,7 +2136,7 @@ case 26:
...
@@ -2085,7 +2136,7 @@ case 26:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
30
"code.l"
#line 6
81
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
name
.
resize
(
0
);
type
.
resize
(
0
);
name
.
resize
(
0
);
type
.
resize
(
0
);
...
@@ -2093,7 +2144,7 @@ YY_RULE_SETUP
...
@@ -2093,7 +2144,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
27
:
case
27
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
34
"code.l"
#line 6
85
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
name
.
resize
(
0
);
type
.
resize
(
0
);
name
.
resize
(
0
);
type
.
resize
(
0
);
...
@@ -2108,7 +2159,7 @@ YY_RULE_SETUP
...
@@ -2108,7 +2159,7 @@ YY_RULE_SETUP
*/
*/
case
28
:
case
28
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 6
45
"code.l"
#line 6
96
"code.l"
{
{
generateClassLink
(
*
code
,
yytext
);
generateClassLink
(
*
code
,
yytext
);
//codifyLines(yytext);
//codifyLines(yytext);
...
@@ -2118,7 +2169,7 @@ YY_RULE_SETUP
...
@@ -2118,7 +2169,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
29
:
case
29
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
651
"code.l"
#line
702
"code.l"
{
{
addType
();
addType
();
//if (type.length()==0)
//if (type.length()==0)
...
@@ -2134,7 +2185,7 @@ YY_RULE_SETUP
...
@@ -2134,7 +2185,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
30
:
case
30
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
663
"code.l"
#line
714
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
lastStringContext
=
YY_START
;
lastStringContext
=
YY_START
;
...
@@ -2143,21 +2194,21 @@ YY_RULE_SETUP
...
@@ -2143,21 +2194,21 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
31
:
case
31
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
668
"code.l"
#line
719
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
32
:
case
32
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
671
"code.l"
#line
722
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
33
:
case
33
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
674
"code.l"
#line
725
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
BEGIN
(
lastStringContext
);
BEGIN
(
lastStringContext
);
...
@@ -2165,14 +2216,14 @@ YY_RULE_SETUP
...
@@ -2165,14 +2216,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
34
:
case
34
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
678
"code.l"
#line
729
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
35
:
case
35
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
681
"code.l"
#line
732
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
name
.
resize
(
0
);
type
.
resize
(
0
);
name
.
resize
(
0
);
type
.
resize
(
0
);
...
@@ -2180,14 +2231,14 @@ YY_RULE_SETUP
...
@@ -2180,14 +2231,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
36
:
case
36
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
685
"code.l"
#line
736
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
37
:
case
37
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
688
"code.l"
#line
739
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
BEGIN
(
MemberCall
);
BEGIN
(
MemberCall
);
...
@@ -2195,7 +2246,7 @@ YY_RULE_SETUP
...
@@ -2195,7 +2246,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
38
:
case
38
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
692
"code.l"
#line
743
"code.l"
{
{
if
(
name
.
length
()
>
0
)
if
(
name
.
length
()
>
0
)
generateMemberLink
(
*
code
,
name
,
yytext
);
generateMemberLink
(
*
code
,
name
,
yytext
);
...
@@ -2208,7 +2259,7 @@ YY_RULE_SETUP
...
@@ -2208,7 +2259,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
39
:
case
39
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
01
"code.l"
#line 7
52
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
type
.
resize
(
0
);
type
.
resize
(
0
);
...
@@ -2218,7 +2269,7 @@ YY_RULE_SETUP
...
@@ -2218,7 +2269,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
40
:
case
40
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
07
"code.l"
#line 7
58
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
if
(
type
.
length
()
>
0
)
if
(
type
.
length
()
>
0
)
...
@@ -2230,14 +2281,14 @@ YY_RULE_SETUP
...
@@ -2230,14 +2281,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
41
:
case
41
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
15
"code.l"
#line 7
66
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
42
:
case
42
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
18
"code.l"
#line 7
69
"code.l"
{
{
addParmType
();
addParmType
();
parmName
=
yytext
;
parmName
=
yytext
;
...
@@ -2246,7 +2297,7 @@ YY_RULE_SETUP
...
@@ -2246,7 +2297,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
43
:
case
43
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
23
"code.l"
#line 7
74
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
addParameter
();
addParameter
();
...
@@ -2255,7 +2306,7 @@ YY_RULE_SETUP
...
@@ -2255,7 +2306,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
44
:
case
44
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
28
"code.l"
#line 7
79
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
bracketCount
++
;
bracketCount
++
;
...
@@ -2263,7 +2314,7 @@ YY_RULE_SETUP
...
@@ -2263,7 +2314,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
45
:
case
45
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
32
"code.l"
#line 7
83
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
if
(
--
bracketCount
<=
0
)
if
(
--
bracketCount
<=
0
)
...
@@ -2274,7 +2325,7 @@ YY_RULE_SETUP
...
@@ -2274,7 +2325,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
46
:
case
46
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
39
"code.l"
#line 7
90
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
bracketCount
=
0
;
bracketCount
=
0
;
...
@@ -2287,7 +2338,7 @@ YY_RULE_SETUP
...
@@ -2287,7 +2338,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
47
:
case
47
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 7
48
"code.l"
#line 7
99
"code.l"
{
{
addParameter
();
addParameter
();
parmType
.
resize
(
0
);
parmName
.
resize
(
0
);
parmType
.
resize
(
0
);
parmName
.
resize
(
0
);
...
@@ -2300,7 +2351,7 @@ YY_RULE_SETUP
...
@@ -2300,7 +2351,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
48
:
case
48
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
757
"code.l"
#line
808
"code.l"
{
{
addParameter
();
addParameter
();
parmType
.
resize
(
0
);
parmName
.
resize
(
0
);
parmType
.
resize
(
0
);
parmName
.
resize
(
0
);
...
@@ -2312,7 +2363,7 @@ YY_RULE_SETUP
...
@@ -2312,7 +2363,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
49
:
case
49
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
765
"code.l"
#line
816
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
curlyCount
++
;
curlyCount
++
;
...
@@ -2321,7 +2372,7 @@ YY_RULE_SETUP
...
@@ -2321,7 +2372,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
50
:
case
50
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
770
"code.l"
#line
821
"code.l"
{
{
generateClassLink
(
*
code
,
yytext
);
generateClassLink
(
*
code
,
yytext
);
}
}
...
@@ -2331,14 +2382,14 @@ case 51:
...
@@ -2331,14 +2382,14 @@ case 51:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line
773
"code.l"
#line
824
"code.l"
{
{
generateFunctionLink
(
*
code
,
yytext
);
generateFunctionLink
(
*
code
,
yytext
);
}
}
YY_BREAK
YY_BREAK
case
52
:
case
52
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
776
"code.l"
#line
827
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
args
=
yytext
;
args
=
yytext
;
...
@@ -2347,7 +2398,7 @@ YY_RULE_SETUP
...
@@ -2347,7 +2398,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
53
:
case
53
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
781
"code.l"
#line
832
"code.l"
{
{
if
(
args
.
length
()
>
0
)
if
(
args
.
length
()
>
0
)
generateMemberLink
(
*
code
,
args
,
yytext
);
generateMemberLink
(
*
code
,
args
,
yytext
);
...
@@ -2359,7 +2410,7 @@ YY_RULE_SETUP
...
@@ -2359,7 +2410,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
54
:
case
54
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
789
"code.l"
#line
840
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
args
=
yytext
;
args
=
yytext
;
...
@@ -2367,21 +2418,21 @@ YY_RULE_SETUP
...
@@ -2367,21 +2418,21 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
55
:
case
55
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
793
"code.l"
#line
844
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
56
:
case
56
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
796
"code.l"
#line
847
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
57
:
case
57
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
799
"code.l"
#line
850
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
BEGIN
(
lastCContext
)
;
BEGIN
(
lastCContext
)
;
...
@@ -2389,7 +2440,7 @@ YY_RULE_SETUP
...
@@ -2389,7 +2440,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
58
:
case
58
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
03
"code.l"
#line 8
54
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
BEGIN
(
lastCContext
)
;
BEGIN
(
lastCContext
)
;
...
@@ -2400,49 +2451,49 @@ case 59:
...
@@ -2400,49 +2451,49 @@ case 59:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
07
"code.l"
#line 8
58
"code.l"
{
{
yyLineNr
+=
QCString
(
yytext
).
contains
(
'\n'
);
yyLineNr
+=
QCString
(
yytext
).
contains
(
'\n'
);
}
}
YY_BREAK
YY_BREAK
case
60
:
case
60
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
10
"code.l"
#line 8
61
"code.l"
{
{
yyLineNr
+=
QCString
(
yytext
).
contains
(
'\n'
);
yyLineNr
+=
QCString
(
yytext
).
contains
(
'\n'
);
code
->
endCodeLine
();
code
->
endCodeLine
();
if
(
yyLineNr
<
inputLines
)
if
(
yyLineNr
<
inputLines
)
{
{
startCodeLine
();
startCodeLine
(
*
code
);
}
}
BEGIN
(
lastSpecialCContext
);
BEGIN
(
lastSpecialCContext
);
}
}
YY_BREAK
YY_BREAK
case
61
:
case
61
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
19
"code.l"
#line 8
70
"code.l"
{
{
BEGIN
(
lastSpecialCContext
);
BEGIN
(
lastSpecialCContext
);
}
}
YY_BREAK
YY_BREAK
case
62
:
case
62
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
22
"code.l"
#line 8
73
"code.l"
YY_BREAK
YY_BREAK
case
63
:
case
63
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
23
"code.l"
#line 8
74
"code.l"
YY_BREAK
YY_BREAK
case
64
:
case
64
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
24
"code.l"
#line 8
75
"code.l"
{
yyLineNr
++
;
}
{
yyLineNr
++
;
}
YY_BREAK
YY_BREAK
case
65
:
case
65
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 8
25
"code.l"
#line 8
76
"code.l"
YY_BREAK
YY_BREAK
/*
/*
...
@@ -2471,31 +2522,31 @@ YY_RULE_SETUP
...
@@ -2471,31 +2522,31 @@ YY_RULE_SETUP
*/
*/
case
66
:
case
66
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
850
"code.l"
#line
901
"code.l"
{
// remove special one-line comment
{
// remove special one-line comment
yyLineNr
+=
((
QCString
)
yytext
).
contains
(
'\n'
);
yyLineNr
+=
((
QCString
)
yytext
).
contains
(
'\n'
);
code
->
endCodeLine
();
code
->
endCodeLine
();
if
(
yyLineNr
<
inputLines
)
if
(
yyLineNr
<
inputLines
)
{
{
startCodeLine
();
startCodeLine
(
*
code
);
}
}
}
}
YY_BREAK
YY_BREAK
case
67
:
case
67
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
858
"code.l"
#line
909
"code.l"
{
// remove special one-line comment
{
// remove special one-line comment
yyLineNr
++
;
yyLineNr
++
;
code
->
endCodeLine
();
code
->
endCodeLine
();
if
(
yyLineNr
<
inputLines
)
if
(
yyLineNr
<
inputLines
)
{
{
startCodeLine
();
startCodeLine
(
*
code
);
}
}
}
}
YY_BREAK
YY_BREAK
case
68
:
case
68
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
866
"code.l"
#line
917
"code.l"
{
// strip special one-line comment
{
// strip special one-line comment
char
c
[
2
];
c
[
0
]
=
'\n'
;
c
[
1
]
=
0
;
char
c
[
2
];
c
[
0
]
=
'\n'
;
c
[
1
]
=
0
;
codifyLines
(
c
);
codifyLines
(
c
);
...
@@ -2506,7 +2557,7 @@ case 69:
...
@@ -2506,7 +2557,7 @@ case 69:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line
870
"code.l"
#line
921
"code.l"
{
{
lastSpecialCContext
=
YY_START
;
lastSpecialCContext
=
YY_START
;
yyLineNr
++
;
yyLineNr
++
;
...
@@ -2518,7 +2569,7 @@ case 70:
...
@@ -2518,7 +2569,7 @@ case 70:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line
875
"code.l"
#line
926
"code.l"
{
// special C comment block at a new line
{
// special C comment block at a new line
lastSpecialCContext
=
YY_START
;
lastSpecialCContext
=
YY_START
;
BEGIN
(
RemoveSpecialCComment
);
BEGIN
(
RemoveSpecialCComment
);
...
@@ -2529,7 +2580,7 @@ case 71:
...
@@ -2529,7 +2580,7 @@ case 71:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
3
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
3
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line
879
"code.l"
#line
930
"code.l"
{
// special C comment block half way a line
{
// special C comment block half way a line
lastSpecialCContext
=
YY_START
;
lastSpecialCContext
=
YY_START
;
BEGIN
(
RemoveSpecialCComment
);
BEGIN
(
RemoveSpecialCComment
);
...
@@ -2537,7 +2588,7 @@ YY_RULE_SETUP
...
@@ -2537,7 +2588,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
72
:
case
72
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
883
"code.l"
#line
934
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
lastCContext
=
YY_START
;
lastCContext
=
YY_START
;
...
@@ -2546,7 +2597,7 @@ YY_RULE_SETUP
...
@@ -2546,7 +2597,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
73
:
case
73
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
888
"code.l"
#line
939
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
lastCContext
=
YY_START
;
lastCContext
=
YY_START
;
...
@@ -2555,14 +2606,14 @@ YY_RULE_SETUP
...
@@ -2555,14 +2606,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
74
:
case
74
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
893
"code.l"
#line
944
"code.l"
{
{
codifyLines
(
yytext
);
codifyLines
(
yytext
);
}
}
YY_BREAK
YY_BREAK
case
75
:
case
75
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
896
"code.l"
#line
947
"code.l"
{
{
code
->
codify
(
yytext
);
code
->
codify
(
yytext
);
}
}
...
@@ -2578,7 +2629,7 @@ YY_RULE_SETUP
...
@@ -2578,7 +2629,7 @@ YY_RULE_SETUP
*/
*/
case
76
:
case
76
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 9
09
"code.l"
#line 9
60
"code.l"
ECHO
;
ECHO
;
YY_BREAK
YY_BREAK
case
YY_STATE_EOF
(
INITIAL
):
case
YY_STATE_EOF
(
INITIAL
):
...
@@ -3477,7 +3528,7 @@ int main()
...
@@ -3477,7 +3528,7 @@ int main()
return
0
;
return
0
;
}
}
#endif
#endif
#line 9
09
"code.l"
#line 9
60
"code.l"
/*@ ----------------------------------------------------------------------------
/*@ ----------------------------------------------------------------------------
...
@@ -3500,7 +3551,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
...
@@ -3500,7 +3551,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
bool
exBlock
,
const
char
*
exName
,
FileDef
*
fd
)
bool
exBlock
,
const
char
*
exName
,
FileDef
*
fd
)
{
{
code
=
new
OutputList
(
&
ol
);
code
=
new
OutputList
(
&
ol
);
if
(
s
.
length
()
==
0
)
return
;
if
(
s
.
isEmpty
()
)
return
;
inputString
=
s
;
inputString
=
s
;
inputPosition
=
0
;
inputPosition
=
0
;
inputLines
=
countLines
();
inputLines
=
countLines
();
...
@@ -3513,7 +3564,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
...
@@ -3513,7 +3564,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
exampleName
=
exName
;
exampleName
=
exName
;
sourceFileDef
=
fd
;
sourceFileDef
=
fd
;
exampleFile
=
convertSlashes
(
exampleName
,
TRUE
)
+
"-example"
;
exampleFile
=
convertSlashes
(
exampleName
,
TRUE
)
+
"-example"
;
startCodeLine
();
startCodeLine
(
*
code
);
type
.
resize
(
0
);
type
.
resize
(
0
);
name
.
resize
(
0
);
name
.
resize
(
0
);
args
.
resize
(
0
);
args
.
resize
(
0
);
...
...
src/code.l
View file @
74cc4d70
...
@@ -109,6 +109,97 @@ static int anchorCount;
...
@@ -109,6 +109,97 @@ static int anchorCount;
static FileDef *sourceFileDef;
static FileDef *sourceFileDef;
static QCString lastVariable;
static QCString lastVariable;
// start a new line of code, inserting a line number if sourceFileDef
// is TRUE. If a definition starts at the current line, then the line
// number is linked to the documentation of that definition.
static void startCodeLine(OutputList &ol)
{
if (sourceFileDef)
{
QCString lineNumber,lineAnchor;
lineNumber.sprintf("%05d ",yyLineNr);
lineAnchor.sprintf("l%05d",yyLineNr);
Definition *d = sourceFileDef->getSourceDefinition(yyLineNr);
QCString anchor = sourceFileDef->getSourceAnchor(yyLineNr);
if (d && d->isLinkableInProject())
{
ol.startCodeAnchor(lineAnchor);
ol.writeCodeLink(d->getReference(),d->getOutputFileBase(),
anchor,lineNumber);
ol.endCodeAnchor();
}
else
{
ol.codify(lineNumber);
}
}
ol.startCodeLine();
}
// write a code fragment `text' that may span multiple lines, inserting
// line numbers for each line.
static void codifyLines(char *text)
{
char *p=text,*sp=p;
char c;
bool done=FALSE;
while (!done)
{
sp=p;
while ((c=*p++) && c!='\n');
if (c=='\n')
{
yyLineNr++;
*(p-1)='\0';
code->codify(sp);
code->endCodeLine();
if (yyLineNr<inputLines)
{
startCodeLine(*code);
}
}
else
{
code->codify(sp);
done=TRUE;
}
}
}
// writes a link to a fragment `text' that may span multiple lines, inserting
// line numbers for each line. If `text' contains newlines, the link will be
// split into multiple links with the same destination, one for each line.
static void writeMultiLineCodeLink(OutputList &ol,
const char *ref,const char *file,
const char *anchor,const char *text)
{
bool done=FALSE;
QCString ts = text;
char *p=ts.data();
while (!done)
{
char *sp=p;
char c;
while ((c=*p++) && c!='\n');
if (c=='\n')
{
yyLineNr++;
*(p-1)='\0';
ol.writeCodeLink(ref,file,anchor,sp);
ol.endCodeLine();
if (yyLineNr<inputLines)
{
startCodeLine(ol);
}
}
else
{
ol.writeCodeLink(ref,file,anchor,sp);
done=TRUE;
}
}
}
static void addType()
static void addType()
{
{
if (name=="const") { name.resize(0); return; }
if (name=="const") { name.resize(0); return; }
...
@@ -166,7 +257,7 @@ static void addParameter()
...
@@ -166,7 +257,7 @@ static void addParameter()
}
}
}
}
static void generateClassLink(OutputList &ol,c
onst c
har *clName)
static void generateClassLink(OutputList &ol,char *clName)
{
{
QCString className=clName;
QCString className=clName;
if (className.length()==0) return;
if (className.length()==0) return;
...
@@ -188,11 +279,12 @@ static void generateClassLink(OutputList &ol,const char *clName)
...
@@ -188,11 +279,12 @@ static void generateClassLink(OutputList &ol,const char *clName)
anchorCount++;
anchorCount++;
}
}
}
}
ol.writeCodeLink(cd->getReference(),cd->getOutputFileBase(),0,className);
//ol.writeCodeLink(cd->getReference(),cd->getOutputFileBase(),0,className);
writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),0,className);
}
}
else
else
{
{
ol.codify
(clName);
codifyLines
(clName);
}
}
}
}
...
@@ -231,8 +323,10 @@ static bool getLink(const char *className,
...
@@ -231,8 +323,10 @@ static bool getLink(const char *className,
if (d)
if (d)
{
{
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data());
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data());
result.writeCodeLink(d->getReference(),d->getOutputFileBase(),
//result.writeCodeLink(d->getReference(),d->getOutputFileBase(),
md->anchor(),text ? text : memberName);
// md->anchor(),text ? text : memberName);
writeMultiLineCodeLink(result,d->getReference(),d->getOutputFileBase(),
md->anchor(),text ? text : memberName);
return TRUE;
return TRUE;
}
}
}
}
...
@@ -254,7 +348,7 @@ static ClassDef *stripClassName(const char *s)
...
@@ -254,7 +348,7 @@ static ClassDef *stripClassName(const char *s)
}
}
static void generateMemberLink(OutputList &ol,const char *varName,
static void generateMemberLink(OutputList &ol,const char *varName,
c
onst c
har *memName)
char *memName)
{
{
//printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
//printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
// varName,memName,classScope.data());
// varName,memName,classScope.data());
...
@@ -301,7 +395,7 @@ static void generateMemberLink(OutputList &ol,const char *varName,
...
@@ -301,7 +395,7 @@ static void generateMemberLink(OutputList &ol,const char *varName,
}
}
else
else
{
{
ol.codify
(memName);
codifyLines
(memName);
}
}
return;
return;
}
}
...
@@ -328,34 +422,51 @@ static void generateMemberLink(OutputList &ol,const char *varName,
...
@@ -328,34 +422,51 @@ static void generateMemberLink(OutputList &ol,const char *varName,
MemberName *mmn=memberNameDict[memName];
MemberName *mmn=memberNameDict[memName];
if (mmn)
if (mmn)
{
{
MemberNameIterator mmni(*mmn);
MemberNameIterator mmni(*mmn);
MemberDef *mmd;
MemberDef *mmd;
for (;(mmd=mmni.current());++mmni)
for (;(mmd=mmni.current());++mmni)
{
if (mmd->memberClass()==mcd)
{
{
ol.writeCodeLink(mcd->getReference(),mcd->getOutputFileBase(),
if (mmd->memberClass()==mcd)
mmd->anchor(),memName);
{
return;
//ol.writeCodeLink(mcd->getReference(),mcd->getOutputFileBase(),
// mmd->anchor(),memName);
writeMultiLineCodeLink(ol,mcd->getReference(),
mcd->getOutputFileBase(),mmd->anchor(),memName);
return;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
ol.codify
(memName);
codifyLines
(memName);
return;
return;
}
}
static void generateFunctionLink(OutputList &ol,const char *funcName)
static QCString removeWhiteSpace(const char *s)
{
QCString result;
if (s)
{
const char *p=s;
int c;
while ((c=*p++))
{
if (c!=' ' && c!='\n' && c!='\r' && c!='\t') result+=c;
}
}
return result;
}
static void generateFunctionLink(OutputList &ol,char *funcName)
{
{
OutputList result(&ol);
OutputList result(&ol);
CodeClassDef *ccd=0;
CodeClassDef *ccd=0;
QCString locScope=classScope.copy();
QCString locScope=classScope.copy();
QCString locFunc=
funcName
;
QCString locFunc=
removeWhiteSpace(funcName)
;
int i=locFunc.findRev("::");
int i=locFunc.findRev("::");
if (i>0)
if (i>0)
{
{
...
@@ -383,7 +494,7 @@ static void generateFunctionLink(OutputList &ol,const char *funcName)
...
@@ -383,7 +494,7 @@ static void generateFunctionLink(OutputList &ol,const char *funcName)
}
}
else
else
{
{
ol.codify
(funcName);
codifyLines
(funcName);
}
}
return;
return;
}
}
...
@@ -398,66 +509,6 @@ static int countLines()
...
@@ -398,66 +509,6 @@ static int countLines()
return count;
return count;
}
}
static void startCodeLine()
{
if (sourceFileDef)
{
QCString lineNumber,lineAnchor;
lineNumber.sprintf("%05d ",yyLineNr);
lineAnchor.sprintf("l%05d",yyLineNr);
//MemberDef *md = sourceFileDef->getSourceDefinition(yyLineNr);
//Definition *d=0;
//if (md)
//{
// d=md->memberClass();
// if (!d) d=md->getFileDef();
//}
//if (md && d)
Definition *d = sourceFileDef->getSourceDefinition(yyLineNr);
QCString anchor = sourceFileDef->getSourceAnchor(yyLineNr);
if (d && d->isLinkableInProject())
{
code->startCodeAnchor(lineAnchor);
code->writeCodeLink(d->getReference(),d->getOutputFileBase(),
anchor,lineNumber);
code->endCodeAnchor();
}
else
{
code->codify(lineNumber);
}
}
code->startCodeLine();
}
static void codifyLines(char *text)
{
char *p=text,*sp=p;
char c;
bool done=FALSE;
while (!done)
{
sp=p;
while ((c=*p++) && c!='\n');
if (c=='\n')
{
yyLineNr++;
*(p-1)='\0';
code->codify(sp);
code->endCodeLine();
if (yyLineNr<inputLines)
{
startCodeLine();
}
}
else
{
code->codify(sp);
done=TRUE;
}
}
}
/* -----------------------------------------------------------------
/* -----------------------------------------------------------------
*/
*/
#undef YY_INPUT
#undef YY_INPUT
...
@@ -812,7 +863,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
...
@@ -812,7 +863,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
code->endCodeLine();
code->endCodeLine();
if (yyLineNr<inputLines)
if (yyLineNr<inputLines)
{
{
startCodeLine();
startCodeLine(
*code
);
}
}
BEGIN(lastSpecialCContext);
BEGIN(lastSpecialCContext);
}
}
...
@@ -852,7 +903,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
...
@@ -852,7 +903,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
code->endCodeLine();
code->endCodeLine();
if (yyLineNr<inputLines)
if (yyLineNr<inputLines)
{
{
startCodeLine();
startCodeLine(
*code
);
}
}
}
}
<*>^{B}*"//"[!/][^\n]*\n { // remove special one-line comment
<*>^{B}*"//"[!/][^\n]*\n { // remove special one-line comment
...
@@ -860,7 +911,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
...
@@ -860,7 +911,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
code->endCodeLine();
code->endCodeLine();
if (yyLineNr<inputLines)
if (yyLineNr<inputLines)
{
{
startCodeLine();
startCodeLine(
*code
);
}
}
}
}
<*>"//"[!/][^\n]*\n { // strip special one-line comment
<*>"//"[!/][^\n]*\n { // strip special one-line comment
...
@@ -928,7 +979,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
...
@@ -928,7 +979,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
bool exBlock, const char *exName,FileDef *fd)
bool exBlock, const char *exName,FileDef *fd)
{
{
code = new OutputList(&ol);
code = new OutputList(&ol);
if (s.
length()==0
) return;
if (s.
isEmpty()
) return;
inputString = s;
inputString = s;
inputPosition = 0;
inputPosition = 0;
inputLines = countLines();
inputLines = countLines();
...
@@ -941,7 +992,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
...
@@ -941,7 +992,7 @@ void parseCode(OutputList &ol,const char *className,const QCString &s,
exampleName = exName;
exampleName = exName;
sourceFileDef = fd;
sourceFileDef = fd;
exampleFile = convertSlashes(exampleName,TRUE)+"-example";
exampleFile = convertSlashes(exampleName,TRUE)+"-example";
startCodeLine();
startCodeLine(
*code
);
type.resize(0);
type.resize(0);
name.resize(0);
name.resize(0);
args.resize(0);
args.resize(0);
...
...
src/config.cpp
View file @
74cc4d70
...
@@ -3170,7 +3170,7 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -3170,7 +3170,7 @@ void writeTemplateConfig(QFile *f,bool sl)
if
(
!
sl
)
if
(
!
sl
)
{
{
t
<<
"
\n
"
;
t
<<
"
\n
"
;
t
<<
"# the TAB_SIZE tag can be used to set the number of spaces in a tab
\n
"
;
t
<<
"# the TAB_SIZE tag can be used to set the number of spaces in a tab
.
\n
"
;
t
<<
"# Doxygen uses this value to replace tabs by spaces in code fragments.
\n
"
;
t
<<
"# Doxygen uses this value to replace tabs by spaces in code fragments.
\n
"
;
t
<<
"
\n
"
;
t
<<
"
\n
"
;
}
}
...
@@ -3259,16 +3259,6 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -3259,16 +3259,6 @@ void writeTemplateConfig(QFile *f,bool sl)
}
}
t
<<
"IMAGE_PATH =
\n
"
;
t
<<
"IMAGE_PATH =
\n
"
;
if
(
!
sl
)
if
(
!
sl
)
{
t
<<
"
\n
"
;
t
<<
"# If the value of the IMAGE_PATH tag contains directories, you can use the
\n
"
;
t
<<
"# IMAGE_PATTERNS tag to specify one or more wildcard pattern (like *.gif
\n
"
;
t
<<
"# and *.eps) to filter out the image files in the directories. If left
\n
"
;
t
<<
"# blank all files are included.
\n
"
;
t
<<
"
\n
"
;
}
t
<<
"IMAGE_PATTERNS =
\n
"
;
if
(
!
sl
)
{
{
t
<<
"
\n
"
;
t
<<
"
\n
"
;
t
<<
"# The INPUT_FILTER tag can be used to specify a program that doxygen should
\n
"
;
t
<<
"# The INPUT_FILTER tag can be used to specify a program that doxygen should
\n
"
;
...
...
src/config.l
View file @
74cc4d70
...
@@ -707,7 +707,7 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -707,7 +707,7 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
if (!sl)
{
{
t << "\n";
t << "\n";
t << "# the TAB_SIZE tag can be used to set the number of spaces in a tab\n";
t << "# the TAB_SIZE tag can be used to set the number of spaces in a tab
.
\n";
t << "# Doxygen uses this value to replace tabs by spaces in code fragments.\n";
t << "# Doxygen uses this value to replace tabs by spaces in code fragments.\n";
t << "\n";
t << "\n";
}
}
...
@@ -796,16 +796,6 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -796,16 +796,6 @@ void writeTemplateConfig(QFile *f,bool sl)
}
}
t << "IMAGE_PATH =\n";
t << "IMAGE_PATH =\n";
if (!sl)
if (!sl)
{
t << "\n";
t << "# If the value of the IMAGE_PATH tag contains directories, you can use the\n";
t << "# IMAGE_PATTERNS tag to specify one or more wildcard pattern (like *.gif \n";
t << "# and *.eps) to filter out the image files in the directories. If left \n";
t << "# blank all files are included.\n";
t << "\n";
}
t << "IMAGE_PATTERNS =\n";
if (!sl)
{
{
t << "\n";
t << "\n";
t << "# The INPUT_FILTER tag can be used to specify a program that doxygen should\n";
t << "# The INPUT_FILTER tag can be used to specify a program that doxygen should\n";
...
...
src/debug.cpp
View file @
74cc4d70
...
@@ -43,6 +43,8 @@ static int labelToEnumValue(const char *l)
...
@@ -43,6 +43,8 @@ static int labelToEnumValue(const char *l)
return
Debug
::
Functions
;
return
Debug
::
Functions
;
else
if
(
label
==
"Variables"
)
else
if
(
label
==
"Variables"
)
return
Debug
::
Variables
;
return
Debug
::
Variables
;
else
if
(
label
==
"Preprocessor"
)
return
Debug
::
Preprocessor
;
else
else
return
0
;
return
0
;
}
}
...
@@ -61,3 +63,8 @@ void Debug::setPriority(int p)
...
@@ -61,3 +63,8 @@ void Debug::setPriority(int p)
{
{
curPrio
=
p
;
curPrio
=
p
;
}
}
bool
Debug
::
isFlagSet
(
DebugMask
mask
)
{
return
(
curMask
&
mask
)
!=
0
;
}
src/debug.h
View file @
74cc4d70
...
@@ -21,14 +21,16 @@
...
@@ -21,14 +21,16 @@
class
Debug
class
Debug
{
{
public
:
public
:
enum
DebugMask
{
Quiet
=
0x00000000
,
enum
DebugMask
{
Quiet
=
0x00000000
,
FindMembers
=
0x00000001
,
FindMembers
=
0x00000001
,
Functions
=
0x00000002
,
Functions
=
0x00000002
,
Variables
=
0x00000004
Variables
=
0x00000004
,
Preprocessor
=
0x00000008
};
};
static
void
print
(
DebugMask
mask
,
int
prio
,
const
char
*
fmt
,...);
static
void
print
(
DebugMask
mask
,
int
prio
,
const
char
*
fmt
,...);
static
void
setFlag
(
const
char
*
label
);
static
void
setFlag
(
const
char
*
label
);
static
void
clearFlag
(
const
char
*
label
);
static
void
clearFlag
(
const
char
*
label
);
static
bool
isFlagSet
(
DebugMask
mask
);
static
void
setPriority
(
int
p
);
static
void
setPriority
(
int
p
);
private
:
private
:
...
...
src/doxygen.cpp
View file @
74cc4d70
...
@@ -207,8 +207,8 @@ void buildFileList(Entry *root)
...
@@ -207,8 +207,8 @@ void buildFileList(Entry *root)
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
root
->
name
,
ambig
);
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
root
->
name
,
ambig
);
if
(
fd
&&
!
ambig
)
if
(
fd
&&
!
ambig
)
{
{
if
((
root
->
doc
.
length
()
>
0
&&
fd
->
documentation
())
||
if
((
root
->
doc
.
length
()
>
0
&&
!
fd
->
documentation
().
isEmpty
())
||
(
root
->
brief
.
length
()
>
0
&&
fd
->
briefDescription
()))
(
root
->
brief
.
length
()
>
0
&&
!
fd
->
briefDescription
().
isEmpty
()))
{
{
warn
(
"Warning: file %s already documented
\n
"
warn
(
"Warning: file %s already documented
\n
"
" skipping documentation in file %s at line %d
\n
"
,
" skipping documentation in file %s at line %d
\n
"
,
...
@@ -262,54 +262,61 @@ void buildFileList(Entry *root)
...
@@ -262,54 +262,61 @@ void buildFileList(Entry *root)
void
addIncludeFile
(
ClassDef
*
cd
,
FileDef
*
ifd
,
Entry
*
root
)
void
addIncludeFile
(
ClassDef
*
cd
,
FileDef
*
ifd
,
Entry
*
root
)
{
{
//printf(">>>>>> includeFile=%s\n",root->includeFile.data());
if
(
(
!
root
->
doc
.
isEmpty
()
||
!
root
->
brief
.
isEmpty
()
||
bool
ambig
;
Config
::
extractAllFlag
FileDef
*
fd
=
0
;
)
&&
root
->
protection
!=
Private
// see if we need to include a verbatim copy of the header file
//printf("root->includeFile=%s\n",root->includeFile.data());
if
(
!
root
->
includeFile
.
isNull
()
&&
(
fd
=
findFileDef
(
&
inputNameDict
,
root
->
includeFile
,
ambig
))
==
0
)
)
{
// explicit request
{
warn
(
"Warning: the name `%s' supplied as "
//printf(">>>>>> includeFile=%s\n",root->includeFile.data());
"the second argument in the
\\
class statement in file "
"%s at line %d "
,
bool
ambig
;
root
->
includeFile
.
data
(),
FileDef
*
fd
=
0
;
root
->
fileName
.
data
(),
// see if we need to include a verbatim copy of the header file
root
->
startLine
);
//printf("root->includeFile=%s\n",root->includeFile.data());
if
(
ambig
)
// name is ambigious
if
(
!
root
->
includeFile
.
isNull
()
&&
{
(
fd
=
findFileDef
(
&
inputNameDict
,
root
->
includeFile
,
ambig
))
==
0
warn
(
"matches the following input files:
\n
"
);
)
showFileDefMatches
(
&
inputNameDict
,
root
->
includeFile
);
{
// explicit request
warn
(
"Please use a more specific name by "
warn
(
"Warning: the name `%s' supplied as "
"including a (larger) part of the path!
\n
"
);
"the second argument in the
\\
class statement in file "
"%s at line %d "
,
root
->
includeFile
.
data
(),
root
->
fileName
.
data
(),
root
->
startLine
);
if
(
ambig
)
// name is ambigious
{
warn
(
"matches the following input files:
\n
"
);
showFileDefMatches
(
&
inputNameDict
,
root
->
includeFile
);
warn
(
"Please use a more specific name by "
"including a (larger) part of the path!
\n
"
);
}
else
// name is not an input file
warn
(
"is not an input file
\n
"
);
}
}
else
// name is not an input file
else
if
(
root
->
includeFile
.
isEmpty
()
&&
ifd
&&
warn
(
"is not an input file
\n
"
);
// see if the file extension makes sense
}
guessSection
(
ifd
->
name
())
==
Entry
::
HEADER_SEC
)
else
if
(
root
->
includeFile
.
isEmpty
()
&&
ifd
&&
{
// implicit assumption
// see if the file extension makes sense
fd
=
ifd
;
guessSection
(
ifd
->
name
())
==
Entry
::
HEADER_SEC
)
}
{
// implicit assumption
fd
=
ifd
;
// if a file is found, we mark it for verbatim inclusion.
}
if
(
fd
)
// if a file is found, we mark it for verbatim inclusion.
if
(
fd
)
{
//printf("fd->name()=%s fd->absFilePath()=%s\n",fd->name().data(),
// fd->absFilePath().data());
// set include file definition
cd
->
setIncludeFile
(
fd
);
// set include supplied name
cd
->
setIncludeName
(
root
->
includeName
);
if
(
cd
->
name
().
find
(
'@'
)
==-
1
)
fd
->
setIncludeName
(
cd
->
getOutputFileBase
()
+
"-include"
);
if
(
includeDict
[
fd
->
absFilePath
()]
==
0
)
// include not inserted earlier
{
{
includeFiles
.
inSort
(
fd
);
//printf("fd->name()=%s fd->absFilePath()=%s\n",fd->name().data(),
includeDict
.
insert
(
fd
->
absFilePath
(),
fd
);
// fd->absFilePath().data());
// set include file definition
cd
->
setIncludeFile
(
fd
);
// set include supplied name
cd
->
setIncludeName
(
root
->
includeName
);
if
(
cd
->
name
().
find
(
'@'
)
==-
1
)
fd
->
setIncludeName
(
cd
->
getOutputFileBase
()
+
"-include"
);
if
(
includeDict
[
fd
->
absFilePath
()]
==
0
)
// include not inserted earlier
{
includeFiles
.
inSort
(
fd
);
includeDict
.
insert
(
fd
->
absFilePath
(),
fd
);
}
}
}
}
}
}
}
...
@@ -322,8 +329,8 @@ void extractNamespaceName(const QCString &scopeName,
...
@@ -322,8 +329,8 @@ void extractNamespaceName(const QCString &scopeName,
{
{
QCString
clName
=
scopeName
.
copy
();
QCString
clName
=
scopeName
.
copy
();
QCString
nsName
;
QCString
nsName
;
if
(
clName
.
length
()
>
0
&&
namespaceDict
[
clName
])
if
(
clName
.
length
()
>
0
&&
namespaceDict
[
clName
]
&&
getClass
(
clName
)
==
0
)
{
// the whole name is a namespace
{
// the whole name is a namespace
(and not a class)
namespaceName
=
clName
.
copy
();
namespaceName
=
clName
.
copy
();
className
.
resize
(
0
);
className
.
resize
(
0
);
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
//printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(),
...
@@ -332,9 +339,9 @@ void extractNamespaceName(const QCString &scopeName,
...
@@ -332,9 +339,9 @@ void extractNamespaceName(const QCString &scopeName,
}
}
int
i
,
p
=
clName
.
length
()
-
2
;
int
i
,
p
=
clName
.
length
()
-
2
;
while
(
p
>=
0
&&
(
i
=
clName
.
findRev
(
"::"
,
p
))
!=-
1
)
while
(
p
>=
0
&&
(
i
=
clName
.
findRev
(
"::"
,
p
))
!=-
1
)
// see if the first part is a namespace
// see if the first part is a namespace
(and not a class)
{
{
if
(
i
>
0
&&
namespaceDict
[
clName
.
left
(
i
)])
if
(
i
>
0
&&
namespaceDict
[
clName
.
left
(
i
)]
&&
getClass
(
clName
.
left
(
i
))
==
0
)
{
{
namespaceName
=
clName
.
left
(
i
);
namespaceName
=
clName
.
left
(
i
);
className
=
clName
.
right
(
clName
.
length
()
-
i
-
2
);
className
=
clName
.
right
(
clName
.
length
()
-
i
-
2
);
...
@@ -445,9 +452,7 @@ void buildClassList(Entry *root)
...
@@ -445,9 +452,7 @@ void buildClassList(Entry *root)
cd
->
addSectionsToDefinition
(
root
->
anchors
);
cd
->
addSectionsToDefinition
(
root
->
anchors
);
cd
->
setName
(
fullName
);
// change name to match docs
cd
->
setName
(
fullName
);
// change name to match docs
}
}
if
(
cd
->
includeFile
()
==
0
&&
if
(
cd
->
includeFile
()
==
0
)
(
!
root
->
doc
.
isEmpty
()
||
!
root
->
brief
.
isEmpty
())
)
{
{
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
root
->
fileName
,
ambig
);
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
root
->
fileName
,
ambig
);
cd
->
setFileDef
(
fd
);
cd
->
setFileDef
(
fd
);
...
@@ -498,8 +503,7 @@ void buildClassList(Entry *root)
...
@@ -498,8 +503,7 @@ void buildClassList(Entry *root)
cd
->
setFileDef
(
ifd
);
cd
->
setFileDef
(
ifd
);
if
(
!
root
->
doc
.
isEmpty
()
||
!
root
->
brief
.
isEmpty
())
addIncludeFile
(
cd
,
ifd
,
root
);
addIncludeFile
(
cd
,
ifd
,
root
);
// if the class is not in a namespace then we insert
// if the class is not in a namespace then we insert
// it in the file definition
// it in the file definition
...
@@ -1458,13 +1462,13 @@ void findFriends()
...
@@ -1458,13 +1462,13 @@ void findFriends()
// function is actually a friend.
// function is actually a friend.
{
{
mergeArguments
(
mmd
->
argumentList
(),
fmd
->
argumentList
());
mergeArguments
(
mmd
->
argumentList
(),
fmd
->
argumentList
());
if
(
fmd
->
documentation
())
if
(
!
fmd
->
documentation
().
isEmpty
())
mmd
->
setDocumentation
(
fmd
->
documentation
());
mmd
->
setDocumentation
(
fmd
->
documentation
());
else
if
(
mmd
->
documentation
())
else
if
(
!
mmd
->
documentation
().
isEmpty
())
fmd
->
setDocumentation
(
mmd
->
documentation
());
fmd
->
setDocumentation
(
mmd
->
documentation
());
if
(
!
mmd
->
briefDescription
()
&&
fmd
->
briefDescription
())
if
(
mmd
->
briefDescription
().
isEmpty
()
&&
!
fmd
->
briefDescription
().
isEmpty
())
mmd
->
setBriefDescription
(
fmd
->
briefDescription
());
mmd
->
setBriefDescription
(
fmd
->
briefDescription
());
else
if
(
mmd
->
briefDescription
()
&&
!
fmd
->
briefDescription
())
else
if
(
!
mmd
->
briefDescription
().
isEmpty
()
&&
!
fmd
->
briefDescription
().
isEmpty
())
fmd
->
setBriefDescription
(
mmd
->
briefDescription
());
fmd
->
setBriefDescription
(
mmd
->
briefDescription
());
if
(
mmd
->
getBodyLine
()
==-
1
&&
fmd
->
getBodyLine
()
!=-
1
)
if
(
mmd
->
getBodyLine
()
==-
1
&&
fmd
->
getBodyLine
()
!=-
1
)
mmd
->
setBodyLine
(
fmd
->
getBodyLine
());
mmd
->
setBodyLine
(
fmd
->
getBodyLine
());
...
@@ -1532,6 +1536,102 @@ void transferFunctionDocumentation()
...
@@ -1532,6 +1536,102 @@ void transferFunctionDocumentation()
}
}
}
}
//----------------------------------------------------------------------
bool
findBaseClassRelation
(
Entry
*
root
,
ClassDef
*
cd
,
const
char
*
scopePrefix
,
bool
insertUndocumented
)
{
// The base class could ofcouse also be a non-nested class
QList
<
BaseInfo
>
*
baseList
=
root
->
extends
;
BaseInfo
*
bi
=
baseList
->
first
();
bool
foundAny
=
FALSE
;
while
(
bi
)
// for each base class
{
QCString
baseClassName
=
removeRedundantWhiteSpace
(
scopePrefix
+
bi
->
name
);
ClassDef
*
baseClass
=
getClass
(
baseClassName
);
//printf("baseClass %s of %s found (%s and %s)\n",
// baseClassName.data(),
// root->name.data(),
// (bi->prot==Private)?"private":((bi->prot==Protected)?"protected":"public"),
// (bi->virt==Normal)?"normal":"virtual"
// );
int
i
;
QCString
templSpec
;
if
(
baseClass
==
0
&&
(
i
=
baseClassName
.
find
(
'<'
))
!=-
1
)
// base class has template specifiers
{
// TODO: here we should try to find the correct template specialization
// but for now, we only look for the unspecializated base class.
templSpec
=
baseClassName
.
right
(
baseClassName
.
length
()
-
i
);
baseClassName
=
baseClassName
.
left
(
i
);
baseClass
=
getClass
(
baseClassName
);
//printf("baseClass=%s templSpec=%s\n",
// baseClassName.data(),templSpec.data());
}
bool
found
=
baseClass
!=
0
;
NamespaceDef
*
nd
=
cd
->
getNamespace
();
if
(
!
found
)
{
FileDef
*
fd
=
cd
->
getFileDef
();
if
(
fd
)
{
// look for the using statement in this file in which the
// class was found
NamespaceList
*
nl
=
fd
->
getUsedNamespaces
();
if
(
nl
)
// try to prepend any of the using namespace scopes.
{
NamespaceListIterator
nli
(
*
nl
);
NamespaceDef
*
nd
;
for
(
nli
.
toFirst
()
;
(
nd
=
nli
.
current
())
&&
!
found
;
++
nli
)
{
found
=
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
))
!=
0
;
}
}
}
if
(
!
found
&&
nd
)
// class is inside a namespace
{
NamespaceList
*
nl
=
nd
->
getUsedNamespaces
();
found
=
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
))
!=
0
;
if
(
nl
)
// try to prepend any of the using namespace scopes.
{
NamespaceListIterator
nli
(
*
nl
);
NamespaceDef
*
nd
;
for
(
nli
.
toFirst
()
;
(
nd
=
nli
.
current
())
&&
!
found
;
++
nli
)
{
found
=
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
))
!=
0
;
}
}
}
}
if
(
found
)
{
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
baseClass
->
insertSuperClass
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
foundAny
=
TRUE
;
}
else
if
(
insertUndocumented
)
{
//printf(">>> Undocumented base class = %s\n",bi->name.data());
baseClass
=
new
ClassDef
(
baseClassName
,
ClassDef
::
Class
);
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
baseClass
->
insertSuperClass
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// the undocumented base was found in this file
baseClass
->
insertUsedFile
(
root
->
fileName
);
// add class to the list
classList
.
inSort
(
baseClass
);
//printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data());
//classDict.insert(resolveDefines(bi->name),baseClass);
classDict
.
insert
(
bi
->
name
,
baseClass
);
}
bi
=
baseList
->
next
();
}
return
foundAny
;
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------
// Computes the base and super classes for each class in the tree
// Computes the base and super classes for each class in the tree
...
@@ -1564,127 +1664,19 @@ void computeClassRelations(Entry *root)
...
@@ -1564,127 +1664,19 @@ void computeClassRelations(Entry *root)
// with the same name!)
// with the same name!)
if
(
root
->
extends
->
count
()
>
0
)
// there are base classes
if
(
root
->
extends
->
count
()
>
0
)
// there are base classes
{
{
QCString
scopePrefix
;
Entry
*
p
=
root
->
parent
;
Entry
*
p
=
root
->
parent
;
bool
found
=
FALSE
;
bool
found
=
FALSE
;
// For nested classes the base class could also be nested!
// For nested classes (or classes inside namespaces) the base class
// could also be nested (or inside a namespace)!
// To find the correct scope, we try to prepend the scope to the base
// To find the correct scope, we try to prepend the scope to the base
// name, starting with the largest, most inner scope.
// name, starting with the largest, most inner scope.
while
(
p
->
section
&
Entry
::
SCOPE_MASK
&&
!
found
)
while
(
p
&&
p
->
section
&
Entry
::
SCOPE_MASK
&&
{
!
(
found
=
findBaseClassRelation
(
root
,
cd
,
p
->
name
+
"::"
,
FALSE
)))
scopePrefix
=
p
->
name
+
"::"
;
p
=
p
->
parent
;
QList
<
BaseInfo
>
*
baseList
=
root
->
extends
;
// For classes with global scope the same search is preformed
BaseInfo
*
bi
=
baseList
->
first
();
while
(
bi
&&
!
found
)
// for each base class
{
QCString
cName
=
removeRedundantWhiteSpace
(
scopePrefix
+
bi
->
name
);
//printf("Base class %s\n",cName.data());
ClassDef
*
baseClass
=
getClass
(
cName
);
if
(
baseClass
&&
cName
!=
cd
->
name
())
// base class is documented
{
//printf("Adding!\n");
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
);
// add this class as super class to the base class
baseClass
->
insertSuperClass
(
cd
,
bi
->
prot
,
bi
->
virt
);
found
=
TRUE
;
}
//else // base class not documented
//{
// warn("Warning: Base class %s referred to in file %s at line %d is not "
// "documented\n",s->data(),root->fileName.data(),root->startLine);
//}
bi
=
baseList
->
next
();
}
p
=
p
->
parent
;
}
if
(
!
found
)
if
(
!
found
)
{
{
// The base class could ofcouse also be a non-nested class
findBaseClassRelation
(
root
,
cd
,
0
,
TRUE
);
QList
<
BaseInfo
>
*
baseList
=
root
->
extends
;
BaseInfo
*
bi
=
baseList
->
first
();
while
(
bi
)
// for each base class
{
QCString
baseClassName
=
removeRedundantWhiteSpace
(
bi
->
name
);
ClassDef
*
baseClass
=
getClass
(
baseClassName
);
//printf("baseClass %s of %s found (%s and %s)\n",
// baseClassName.data(),
// bName.data(),
// (bi->prot==Private)?"private":((bi->prot==Protected)?"protected":"public"),
// (bi->virt==Normal)?"normal":"virtual"
// );
int
i
;
QCString
templSpec
;
if
(
baseClass
==
0
&&
(
i
=
baseClassName
.
find
(
'<'
))
!=-
1
)
// base class has template specifiers
{
// TODO: here we should try to find the correct template specialization
// but for now, we only look for the unspecializated base class.
baseClassName
=
baseClassName
.
left
(
i
);
baseClass
=
getClass
(
baseClassName
);
templSpec
=
bi
->
name
.
right
(
bi
->
name
.
length
()
-
i
);
}
bool
found
=
baseClass
!=
0
;
NamespaceDef
*
nd
=
cd
->
getNamespace
();
if
(
!
found
)
{
FileDef
*
fd
=
cd
->
getFileDef
();
if
(
fd
)
{
// look for the using statement in this file in which the
// class was found
NamespaceList
*
nl
=
fd
->
getUsedNamespaces
();
if
(
nl
)
// try to prepend any of the using namespace scopes.
{
NamespaceListIterator
nli
(
*
nl
);
NamespaceDef
*
nd
;
for
(
nli
.
toFirst
()
;
(
nd
=
nli
.
current
())
&&
!
found
;
++
nli
)
{
found
=
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
));
}
}
}
if
(
!
found
&&
nd
)
// class is inside a namespace
{
NamespaceList
*
nl
=
nd
->
getUsedNamespaces
();
found
=
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
));
if
(
nl
)
// try to prepend any of the using namespace scopes.
{
NamespaceListIterator
nli
(
*
nl
);
NamespaceDef
*
nd
;
for
(
nli
.
toFirst
()
;
(
nd
=
nli
.
current
())
&&
!
found
;
++
nli
)
{
found
=
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
));
}
}
}
}
if
(
found
)
{
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
baseClass
->
insertSuperClass
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
}
else
{
//printf(">>> Undocumented base class = %s\n",bi->name.data());
baseClass
=
new
ClassDef
(
baseClassName
,
ClassDef
::
Class
);
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
baseClass
->
insertSuperClass
(
cd
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// the undocumented base was found in this file
baseClass
->
insertUsedFile
(
root
->
fileName
);
// add class to the list
classList
.
inSort
(
baseClass
);
//printf("ClassDict.insert(%s)\n",resolveDefines(fullName).data());
//classDict.insert(resolveDefines(bi->name),baseClass);
classDict
.
insert
(
bi
->
name
,
baseClass
);
}
bi
=
baseList
->
next
();
}
}
// class not nested
}
// class not nested
}
// class has no base classes
}
// class has no base classes
}
// else class is already found
}
// else class is already found
...
@@ -3429,7 +3421,7 @@ void generateSources()
...
@@ -3429,7 +3421,7 @@ void generateSources()
while
(
fn
)
while
(
fn
)
{
{
FileDef
*
fd
=
fn
->
first
();
FileDef
*
fd
=
fn
->
first
();
while
(
fd
)
while
(
fd
&&
!
fd
->
isReference
()
)
{
{
msg
(
"Generating source listing for file %s...
\n
"
,
fd
->
name
().
data
());
msg
(
"Generating source listing for file %s...
\n
"
,
fd
->
name
().
data
());
fd
->
writeSource
(
*
outputList
);
fd
->
writeSource
(
*
outputList
);
...
...
src/filename.cpp
View file @
74cc4d70
...
@@ -60,6 +60,7 @@ void FileName::generateDiskNames()
...
@@ -60,6 +60,7 @@ void FileName::generateDiskNames()
while
(
fd
&&
fd
->
isReference
())
fd
=
next
();
while
(
fd
&&
fd
->
isReference
())
fd
=
next
();
char
c
=
fd
->
path
.
at
(
i
);
char
c
=
fd
->
path
.
at
(
i
);
if
(
c
==
'/'
)
j
=
i
;
// remember last position of dirname
if
(
c
==
'/'
)
j
=
i
;
// remember last position of dirname
fd
=
next
();
while
(
fd
&&
!
found
)
while
(
fd
&&
!
found
)
{
{
if
(
!
fd
->
isReference
())
if
(
!
fd
->
isReference
())
...
@@ -67,8 +68,8 @@ void FileName::generateDiskNames()
...
@@ -67,8 +68,8 @@ void FileName::generateDiskNames()
//printf("i=%d fd->path=`%s' fd->name=`%s'\n",i,fd->path.data(),fd->name().data());
//printf("i=%d fd->path=`%s' fd->name=`%s'\n",i,fd->path.data(),fd->name().data());
if
(
i
==
(
int
)
fd
->
path
.
length
())
if
(
i
==
(
int
)
fd
->
path
.
length
())
{
{
warning
(
"Warning: Input file %s found multiple times!
\n
"
//
warning("Warning: Input file %s found multiple times!\n"
" The generated documentation for this file may not be correct!
\n
"
,
fd
->
absFilePath
().
data
());
//
" The generated documentation for this file may not be correct!\n",fd->absFilePath().data());
found
=
TRUE
;
found
=
TRUE
;
}
}
else
if
(
fd
->
path
[
i
]
!=
c
)
else
if
(
fd
->
path
[
i
]
!=
c
)
...
@@ -84,8 +85,11 @@ void FileName::generateDiskNames()
...
@@ -84,8 +85,11 @@ void FileName::generateDiskNames()
while
(
fd
)
while
(
fd
)
{
{
//printf("fd->setName(%s)\n",(fd->path.right(fd->path.length()-j-1)+name).data());
//printf("fd->setName(%s)\n",(fd->path.right(fd->path.length()-j-1)+name).data());
fd
->
setName
(
fd
->
path
.
right
(
fd
->
path
.
length
()
-
j
-
1
)
+
name
);
if
(
!
fd
->
isReference
())
fd
->
diskname
=
convertSlashes
(
fd
->
name
());
{
fd
->
setName
(
fd
->
path
.
right
(
fd
->
path
.
length
()
-
j
-
1
)
+
name
);
fd
->
diskname
=
convertSlashes
(
fd
->
name
());
}
fd
=
next
();
fd
=
next
();
}
}
}
}
...
...
src/groupdef.cpp
View file @
74cc4d70
...
@@ -93,6 +93,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -93,6 +93,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
startTextLink
(
0
,
"_details"
);
ol
.
startTextLink
(
0
,
"_details"
);
parseText
(
ol
,
theTranslator
->
trMore
());
parseText
(
ol
,
theTranslator
->
trMore
());
ol
.
endTextLink
();
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Latex
);
}
}
if
(
fileList
->
count
()
>
0
)
if
(
fileList
->
count
()
>
0
)
...
...
src/htmlgen.cpp
View file @
74cc4d70
...
@@ -124,11 +124,14 @@ void HtmlGenerator::writeFooter(int part,bool external)
...
@@ -124,11 +124,14 @@ void HtmlGenerator::writeFooter(int part,bool external)
t
<<
"<hr><address><small>"
;
t
<<
"<hr><address><small>"
;
else
else
t
<<
substitute
(
t
<<
substitute
(
substitute
(
substitute
(
substitute
(
footer
,
"$title"
,
lastTitle
),
substitute
(
"$datetime"
,
dateToString
(
TRUE
)
substitute
(
footer
,
"$title"
,
lastTitle
),
"$datetime"
,
dateToString
(
TRUE
)
),
"$date"
,
dateToString
(
FALSE
)
),
),
"$d
ate"
,
dateToString
(
FALSE
)
"$d
oxygenversion"
,
versionString
);
);
break
;
break
;
case
1
:
case
1
:
...
@@ -663,7 +666,7 @@ void HtmlGenerator::endIndexList()
...
@@ -663,7 +666,7 @@ void HtmlGenerator::endIndexList()
void
HtmlGenerator
::
startAlphabeticalIndexList
()
void
HtmlGenerator
::
startAlphabeticalIndexList
()
{
{
t
<<
"<table width=95% border=0 cellspacing=0 cellpadding=0>"
<<
endl
;
t
<<
"<table
align=center
width=95% border=0 cellspacing=0 cellpadding=0>"
<<
endl
;
}
}
void
HtmlGenerator
::
endAlphabeticalIndexList
()
void
HtmlGenerator
::
endAlphabeticalIndexList
()
...
@@ -684,9 +687,9 @@ void HtmlGenerator::writeImage(const char *name,const char *,const char *)
...
@@ -684,9 +687,9 @@ void HtmlGenerator::writeImage(const char *name,const char *,const char *)
int
i
;
int
i
;
if
((
i
=
baseName
.
findRev
(
'/'
))
!=-
1
||
(
i
=
baseName
.
findRev
(
'\\'
))
!=-
1
)
if
((
i
=
baseName
.
findRev
(
'/'
))
!=-
1
||
(
i
=
baseName
.
findRev
(
'\\'
))
!=-
1
)
{
{
baseName
=
baseName
.
right
(
baseName
.
length
()
-
i
);
baseName
=
baseName
.
right
(
baseName
.
length
()
-
i
-
1
);
}
}
t
<<
"<img src=
"
<<
name
<<
" alt=
\"
"
<<
baseName
<<
"
\"
>"
<<
endl
;
t
<<
"<img src=
\"
"
<<
name
<<
"
\
"
alt=
\"
"
<<
baseName
<<
"
\"
>"
<<
endl
;
}
}
void
HtmlGenerator
::
startMemberDoc
(
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
)
void
HtmlGenerator
::
startMemberDoc
(
const
char
*
,
const
char
*
,
const
char
*
,
const
char
*
)
...
...
src/index.cpp
View file @
74cc4d70
...
@@ -358,7 +358,7 @@ void writeFileIndex(OutputList &ol)
...
@@ -358,7 +358,7 @@ void writeFileIndex(OutputList &ol)
fd
->
name
()
fd
->
name
()
);
);
ol
.
docify
(
" ("
);
ol
.
docify
(
" ("
);
if
(
fd
->
briefDescription
())
if
(
!
fd
->
briefDescription
().
isEmpty
())
{
{
OutputList
briefOutput
(
&
ol
);
OutputList
briefOutput
(
&
ol
);
parseDoc
(
briefOutput
,
0
,
0
,
parseDoc
(
briefOutput
,
0
,
0
,
...
@@ -421,24 +421,27 @@ void writeSourceIndex(OutputList &ol)
...
@@ -421,24 +421,27 @@ void writeSourceIndex(OutputList &ol)
FileDef
*
fd
=
fn
->
first
();
FileDef
*
fd
=
fn
->
first
();
while
(
fd
)
while
(
fd
)
{
{
if
(
!
started
)
if
(
!
fd
->
isReference
())
{
started
=
TRUE
;
ol
.
startItemList
();
}
ol
.
writeListItem
();
QCString
path
;
if
(
Config
::
fullPathNameFlag
)
{
path
=
stripFromPath
(
fd
->
getPath
().
copy
());
}
if
(
!
path
.
isEmpty
())
ol
.
docify
(
path
);
ol
.
writeObjectLink
(
0
,
fd
->
sourceName
(),
0
,
fd
->
name
());
ol
.
writeString
(
"
\n
"
);
if
(
Config
::
generateHtml
&&
Config
::
htmlHelpFlag
)
{
{
HtmlHelp
::
getInstance
()
->
addContentsItem
(
if
(
!
started
)
fd
->
name
(),
fd
->
sourceName
());
{
started
=
TRUE
;
ol
.
startItemList
();
}
ol
.
writeListItem
();
QCString
path
;
if
(
Config
::
fullPathNameFlag
)
{
path
=
stripFromPath
(
fd
->
getPath
().
copy
());
}
if
(
!
path
.
isEmpty
())
ol
.
docify
(
path
);
ol
.
writeObjectLink
(
0
,
fd
->
sourceName
(),
0
,
fd
->
name
());
ol
.
writeString
(
"
\n
"
);
if
(
Config
::
generateHtml
&&
Config
::
htmlHelpFlag
)
{
HtmlHelp
::
getInstance
()
->
addContentsItem
(
fd
->
name
(),
fd
->
sourceName
());
}
}
}
fd
=
fn
->
next
();
fd
=
fn
->
next
();
}
}
...
@@ -497,7 +500,7 @@ void writeNamespaceIndex(OutputList &ol)
...
@@ -497,7 +500,7 @@ void writeNamespaceIndex(OutputList &ol)
{
{
ol
.
writeStartAnnoItem
(
"namespace"
,
nd
->
getOutputFileBase
(),
0
,
nd
->
name
());
ol
.
writeStartAnnoItem
(
"namespace"
,
nd
->
getOutputFileBase
(),
0
,
nd
->
name
());
ol
.
docify
(
" ("
);
ol
.
docify
(
" ("
);
if
(
nd
->
briefDescription
())
if
(
!
nd
->
briefDescription
().
isEmpty
())
{
{
OutputList
briefOutput
(
&
ol
);
OutputList
briefOutput
(
&
ol
);
parseDoc
(
briefOutput
,
nd
->
name
(),
0
,
parseDoc
(
briefOutput
,
nd
->
name
(),
0
,
...
@@ -570,7 +573,7 @@ void writeAnnotatedClassList(OutputList &ol)
...
@@ -570,7 +573,7 @@ void writeAnnotatedClassList(OutputList &ol)
}
}
ol
.
writeStartAnnoItem
(
type
,
cd
->
getOutputFileBase
(),
0
,
cd
->
name
());
ol
.
writeStartAnnoItem
(
type
,
cd
->
getOutputFileBase
(),
0
,
cd
->
name
());
ol
.
docify
(
" ("
);
ol
.
docify
(
" ("
);
if
(
cd
->
briefDescription
())
if
(
!
cd
->
briefDescription
().
isEmpty
())
{
{
OutputList
briefOutput
(
&
ol
);
OutputList
briefOutput
(
&
ol
);
parseDoc
(
briefOutput
,
cd
->
name
(),
0
,
parseDoc
(
briefOutput
,
cd
->
name
(),
0
,
...
...
src/memberdef.cpp
View file @
74cc4d70
...
@@ -991,8 +991,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,const char *sco
...
@@ -991,8 +991,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,const char *sco
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
writeString
(
" "
);
ol
.
writeString
(
" "
);
ol
.
enableAll
();
ol
.
enableAll
();
ol
.
endDescTableTitle
();
ol
.
endDoxyAnchor
();
ol
.
endDoxyAnchor
();
ol
.
endDescTableTitle
();
//ol.newParagraph();
//ol.newParagraph();
ol
.
startDescTableData
();
ol
.
startDescTableData
();
...
...
src/namespacedef.cpp
View file @
74cc4d70
...
@@ -73,7 +73,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -73,7 +73,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if
(
Config
::
genTagFile
.
length
()
>
0
)
tagFile
<<
"%"
<<
name
()
<<
":
\n
"
;
if
(
Config
::
genTagFile
.
length
()
>
0
)
tagFile
<<
"%"
<<
name
()
<<
":
\n
"
;
OutputList
briefOutput
(
&
ol
);
OutputList
briefOutput
(
&
ol
);
if
(
briefDescription
())
if
(
!
briefDescription
().
isEmpty
())
{
{
parseDoc
(
briefOutput
,
name
(),
0
,
briefDescription
());
parseDoc
(
briefOutput
,
name
(),
0
,
briefDescription
());
ol
+=
briefOutput
;
ol
+=
briefOutput
;
...
...
src/pre.cpp
View file @
74cc4d70
...
@@ -1014,6 +1014,7 @@ char *yytext;
...
@@ -1014,6 +1014,7 @@ char *yytext;
#include "message.h"
#include "message.h"
#include "util.h"
#include "util.h"
#include "defargs.h"
#include "defargs.h"
#include "debug.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
#define popen _popen
...
@@ -1022,7 +1023,7 @@ char *yytext;
...
@@ -1022,7 +1023,7 @@ char *yytext;
#define YY_NEVER_INTERACTIVE 1
#define YY_NEVER_INTERACTIVE 1
#define DUMP_OUTPUT
0
// set this to one to see what the preprocessor
#define DUMP_OUTPUT
1
// set this to one to see what the preprocessor
// produces.
// produces.
#define SHOW_INCLUDES 0 // set this to one to list all parsed include files
#define SHOW_INCLUDES 0 // set this to one to list all parsed include files
...
@@ -2005,7 +2006,7 @@ YY_DECL
...
@@ -2005,7 +2006,7 @@ YY_DECL
register
char
*
yy_cp
,
*
yy_bp
;
register
char
*
yy_cp
,
*
yy_bp
;
register
int
yy_act
;
register
int
yy_act
;
#line 86
4
"pre.l"
#line 86
5
"pre.l"
...
@@ -2114,17 +2115,17 @@ do_action: /* This label is used only to access EOF actions. */
...
@@ -2114,17 +2115,17 @@ do_action: /* This label is used only to access EOF actions. */
{
/* beginning of action switch */
{
/* beginning of action switch */
case
1
:
case
1
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 86
6
"pre.l"
#line 86
7
"pre.l"
YY_BREAK
YY_BREAK
case
2
:
case
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 86
7
"pre.l"
#line 86
8
"pre.l"
YY_BREAK
YY_BREAK
case
3
:
case
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 86
8
"pre.l"
#line 86
9
"pre.l"
YY_BREAK
YY_BREAK
/*
/*
...
@@ -2142,7 +2143,7 @@ YY_RULE_SETUP
...
@@ -2142,7 +2143,7 @@ YY_RULE_SETUP
*/
*/
case
4
:
case
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 88
2
"pre.l"
#line 88
3
"pre.l"
{
BEGIN
(
Command
);
}
{
BEGIN
(
Command
);
}
YY_BREAK
YY_BREAK
case
5
:
case
5
:
...
@@ -2150,7 +2151,7 @@ case 5:
...
@@ -2150,7 +2151,7 @@ case 5:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 88
3
"pre.l"
#line 88
4
"pre.l"
{
{
outputArray
(
yytext
,
yyleng
);
outputArray
(
yytext
,
yyleng
);
BEGIN
(
CopyLine
);
BEGIN
(
CopyLine
);
...
@@ -2163,7 +2164,7 @@ YY_RULE_SETUP
...
@@ -2163,7 +2164,7 @@ YY_RULE_SETUP
*/
*/
case
6
:
case
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 89
2
"pre.l"
#line 89
3
"pre.l"
{
{
Define
*
def
=
0
;
Define
*
def
=
0
;
//printf("Search for define %s\n",yytext);
//printf("Search for define %s\n",yytext);
...
@@ -2197,7 +2198,7 @@ YY_RULE_SETUP
...
@@ -2197,7 +2198,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
7
:
case
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 92
2
"pre.l"
#line 92
3
"pre.l"
{
{
Define
*
def
=
0
;
Define
*
def
=
0
;
//printf("Search for define %s\n",yytext);
//printf("Search for define %s\n",yytext);
...
@@ -2222,14 +2223,14 @@ YY_RULE_SETUP
...
@@ -2222,14 +2223,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
8
:
case
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 94
3
"pre.l"
#line 94
4
"pre.l"
{
{
outputChar
(
*
yytext
);
outputChar
(
*
yytext
);
}
}
YY_BREAK
YY_BREAK
case
9
:
case
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 94
6
"pre.l"
#line 94
7
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
BEGIN
(
Start
);
BEGIN
(
Start
);
...
@@ -2238,7 +2239,7 @@ YY_RULE_SETUP
...
@@ -2238,7 +2239,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
10
:
case
10
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 95
1
"pre.l"
#line 95
2
"pre.l"
{
{
defArgsStr
+=
'('
;
defArgsStr
+=
'('
;
roundCount
++
;
roundCount
++
;
...
@@ -2246,7 +2247,7 @@ YY_RULE_SETUP
...
@@ -2246,7 +2247,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
11
:
case
11
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 95
5
"pre.l"
#line 95
6
"pre.l"
{
{
defArgsStr
+=
')'
;
defArgsStr
+=
')'
;
roundCount
--
;
roundCount
--
;
...
@@ -2274,7 +2275,7 @@ YY_RULE_SETUP
...
@@ -2274,7 +2275,7 @@ YY_RULE_SETUP
*/
*/
case
12
:
case
12
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 9
79
"pre.l"
#line 9
80
"pre.l"
{
{
defArgsStr
+=*
yytext
;
defArgsStr
+=*
yytext
;
BEGIN
(
ReadString
);
BEGIN
(
ReadString
);
...
@@ -2282,7 +2283,7 @@ YY_RULE_SETUP
...
@@ -2282,7 +2283,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
13
:
case
13
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 98
3
"pre.l"
#line 98
4
"pre.l"
{
{
yyLineNr
++
;
yyLineNr
++
;
outputChar
(
'\n'
);
outputChar
(
'\n'
);
...
@@ -2290,28 +2291,28 @@ YY_RULE_SETUP
...
@@ -2290,28 +2291,28 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
14
:
case
14
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 98
7
"pre.l"
#line 98
8
"pre.l"
{
{
defArgsStr
+=
"@@"
;
defArgsStr
+=
"@@"
;
}
}
YY_BREAK
YY_BREAK
case
15
:
case
15
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 99
0
"pre.l"
#line 99
1
"pre.l"
{
{
defArgsStr
+=*
yytext
;
defArgsStr
+=*
yytext
;
}
}
YY_BREAK
YY_BREAK
case
16
:
case
16
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 99
3
"pre.l"
#line 99
4
"pre.l"
{
{
defArgsStr
+=
yytext
;
defArgsStr
+=
yytext
;
}
}
YY_BREAK
YY_BREAK
case
17
:
case
17
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 99
6
"pre.l"
#line 99
7
"pre.l"
{
{
defArgsStr
+=*
yytext
;
defArgsStr
+=*
yytext
;
BEGIN
(
FindDefineArgs
);
BEGIN
(
FindDefineArgs
);
...
@@ -2319,21 +2320,21 @@ YY_RULE_SETUP
...
@@ -2319,21 +2320,21 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
18
:
case
18
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 100
0
"pre.l"
#line 100
1
"pre.l"
{
{
defArgsStr
+=
yytext
;
defArgsStr
+=
yytext
;
}
}
YY_BREAK
YY_BREAK
case
19
:
case
19
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 100
3
"pre.l"
#line 100
4
"pre.l"
{
{
defArgsStr
+=*
yytext
;
defArgsStr
+=*
yytext
;
}
}
YY_BREAK
YY_BREAK
case
20
:
case
20
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 100
6
"pre.l"
#line 100
7
"pre.l"
{
{
if
(
Config
::
macroExpansionFlag
)
if
(
Config
::
macroExpansionFlag
)
BEGIN
(
IncludeID
);
BEGIN
(
IncludeID
);
...
@@ -2341,14 +2342,14 @@ YY_RULE_SETUP
...
@@ -2341,14 +2342,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
21
:
case
21
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 101
0
"pre.l"
#line 101
1
"pre.l"
{
{
BEGIN
(
Include
);
BEGIN
(
Include
);
}
}
YY_BREAK
YY_BREAK
case
22
:
case
22
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 101
3
"pre.l"
#line 101
4
"pre.l"
{
{
//printf("!!!DefName\n");
//printf("!!!DefName\n");
BEGIN
(
DefName
);
BEGIN
(
DefName
);
...
@@ -2359,7 +2360,7 @@ case 23:
...
@@ -2359,7 +2360,7 @@ case 23:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
5
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
5
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 101
7
"pre.l"
#line 101
8
"pre.l"
{
{
incrLevel
();
incrLevel
();
guardExpr
.
resize
(
0
);
guardExpr
.
resize
(
0
);
...
@@ -2371,7 +2372,7 @@ case 24:
...
@@ -2371,7 +2372,7 @@ case 24:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
5
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
5
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 102
2
"pre.l"
#line 102
3
"pre.l"
{
{
//printf("Pre.l: ifdef\n");
//printf("Pre.l: ifdef\n");
incrLevel
();
incrLevel
();
...
@@ -2384,7 +2385,7 @@ case 25:
...
@@ -2384,7 +2385,7 @@ case 25:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
6
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
6
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 102
8
"pre.l"
#line 102
9
"pre.l"
{
{
incrLevel
();
incrLevel
();
guardExpr
=
"! "
;
guardExpr
=
"! "
;
...
@@ -2396,7 +2397,7 @@ case 26:
...
@@ -2396,7 +2397,7 @@ case 26:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
6
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
6
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 103
3
"pre.l"
#line 103
4
"pre.l"
{
{
incrLevel
();
incrLevel
();
guardExpr
=
"! "
;
guardExpr
=
"! "
;
...
@@ -2408,7 +2409,7 @@ case 27:
...
@@ -2408,7 +2409,7 @@ case 27:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
2
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
2
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 103
8
"pre.l"
#line 103
9
"pre.l"
{
{
incrLevel
();
incrLevel
();
guardExpr
.
resize
(
0
);
guardExpr
.
resize
(
0
);
...
@@ -2420,7 +2421,7 @@ case 28:
...
@@ -2420,7 +2421,7 @@ case 28:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 104
3
"pre.l"
#line 104
4
"pre.l"
{
{
if
(
!
otherCaseDone
())
if
(
!
otherCaseDone
())
{
{
...
@@ -2439,7 +2440,7 @@ case 29:
...
@@ -2439,7 +2440,7 @@ case 29:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 105
5
"pre.l"
#line 105
6
"pre.l"
{
{
//printf("else levelGuard[%d]=%d\n",level-1,levelGuard[level-1]);
//printf("else levelGuard[%d]=%d\n",level-1,levelGuard[level-1]);
if
(
otherCaseDone
())
if
(
otherCaseDone
())
...
@@ -2456,7 +2457,7 @@ YY_RULE_SETUP
...
@@ -2456,7 +2457,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
30
:
case
30
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 106
8
"pre.l"
#line 106
9
"pre.l"
{
{
BEGIN
(
UndefName
);
BEGIN
(
UndefName
);
}
}
...
@@ -2466,7 +2467,7 @@ case 31:
...
@@ -2466,7 +2467,7 @@ case 31:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 107
1
"pre.l"
#line 107
2
"pre.l"
{
{
if
(
!
otherCaseDone
())
if
(
!
otherCaseDone
())
{
{
...
@@ -2480,7 +2481,7 @@ case 32:
...
@@ -2480,7 +2481,7 @@ case 32:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
5
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
5
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 107
8
"pre.l"
#line 107
9
"pre.l"
{
{
//printf("Pre.l: #endif\n");
//printf("Pre.l: #endif\n");
decrLevel
();
decrLevel
();
...
@@ -2488,7 +2489,7 @@ YY_RULE_SETUP
...
@@ -2488,7 +2489,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
33
:
case
33
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 108
2
"pre.l"
#line 108
3
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
BEGIN
(
Start
);
BEGIN
(
Start
);
...
@@ -2497,24 +2498,24 @@ YY_RULE_SETUP
...
@@ -2497,24 +2498,24 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
34
:
case
34
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 108
7
"pre.l"
#line 108
8
"pre.l"
{
// unknown directive
{
// unknown directive
BEGIN
(
IgnoreLine
);
BEGIN
(
IgnoreLine
);
}
}
YY_BREAK
YY_BREAK
case
35
:
case
35
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 109
0
"pre.l"
#line 109
1
"pre.l"
YY_BREAK
YY_BREAK
case
36
:
case
36
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 109
1
"pre.l"
#line 109
2
"pre.l"
YY_BREAK
YY_BREAK
case
37
:
case
37
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 109
2
"pre.l"
#line 109
3
"pre.l"
{
{
Define
*
def
;
Define
*
def
;
if
((
def
=
isDefined
(
yytext
)))
if
((
def
=
isDefined
(
yytext
)))
...
@@ -2527,7 +2528,7 @@ YY_RULE_SETUP
...
@@ -2527,7 +2528,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
38
:
case
38
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 110
1
"pre.l"
#line 110
2
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
guardExpr
+=
' '
;
guardExpr
+=
' '
;
...
@@ -2539,7 +2540,7 @@ case 39:
...
@@ -2539,7 +2540,7 @@ case 39:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
7
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
7
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 110
6
"pre.l"
#line 110
7
"pre.l"
{
{
BEGIN
(
DefinedExpr2
);
BEGIN
(
DefinedExpr2
);
}
}
...
@@ -2549,19 +2550,19 @@ case 40:
...
@@ -2549,19 +2550,19 @@ case 40:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
7
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
7
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 11
09
"pre.l"
#line 11
10
"pre.l"
{
{
BEGIN
(
DefinedExpr1
);
BEGIN
(
DefinedExpr1
);
}
}
YY_BREAK
YY_BREAK
case
41
:
case
41
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 111
2
"pre.l"
#line 111
3
"pre.l"
{
guardExpr
+=*
yytext
;
}
{
guardExpr
+=*
yytext
;
}
YY_BREAK
YY_BREAK
case
42
:
case
42
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 111
3
"pre.l"
#line 111
4
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
yyLineNr
++
;
yyLineNr
++
;
...
@@ -2583,12 +2584,12 @@ YY_RULE_SETUP
...
@@ -2583,12 +2584,12 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
43
:
case
43
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 113
1
"pre.l"
#line 113
2
"pre.l"
{
yyLineNr
++
;
outputChar
(
'\n'
);
}
{
yyLineNr
++
;
outputChar
(
'\n'
);
}
YY_BREAK
YY_BREAK
case
44
:
case
44
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 113
2
"pre.l"
#line 113
3
"pre.l"
{
{
if
(
isDefined
(
yytext
))
if
(
isDefined
(
yytext
))
guardExpr
+=
" 1L "
;
guardExpr
+=
" 1L "
;
...
@@ -2600,7 +2601,7 @@ YY_RULE_SETUP
...
@@ -2600,7 +2601,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
45
:
case
45
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 114
0
"pre.l"
#line 114
1
"pre.l"
{
{
if
(
isDefined
(
yytext
))
if
(
isDefined
(
yytext
))
guardExpr
+=
" 1L "
;
guardExpr
+=
" 1L "
;
...
@@ -2611,7 +2612,7 @@ YY_RULE_SETUP
...
@@ -2611,7 +2612,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
46
:
case
46
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 114
7
"pre.l"
#line 114
8
"pre.l"
{
// should not happen, handle anyway
{
// should not happen, handle anyway
ifcount
=
0
;
ifcount
=
0
;
BEGIN
(
SkipCPPBlock
);
BEGIN
(
SkipCPPBlock
);
...
@@ -2619,19 +2620,19 @@ YY_RULE_SETUP
...
@@ -2619,19 +2620,19 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
47
:
case
47
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 115
1
"pre.l"
#line 115
2
"pre.l"
{
{
BEGIN
(
Guard
);
BEGIN
(
Guard
);
}
}
YY_BREAK
YY_BREAK
case
48
:
case
48
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 115
4
"pre.l"
#line 115
5
"pre.l"
YY_BREAK
YY_BREAK
case
49
:
case
49
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 115
5
"pre.l"
#line 115
6
"pre.l"
{
BEGIN
(
SkipCommand
);
}
{
BEGIN
(
SkipCommand
);
}
YY_BREAK
YY_BREAK
case
50
:
case
50
:
...
@@ -2639,12 +2640,12 @@ case 50:
...
@@ -2639,12 +2640,12 @@ case 50:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 115
6
"pre.l"
#line 115
7
"pre.l"
{
BEGIN
(
SkipLine
);
}
{
BEGIN
(
SkipLine
);
}
YY_BREAK
YY_BREAK
case
51
:
case
51
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 115
7
"pre.l"
#line 115
8
"pre.l"
YY_BREAK
YY_BREAK
case
52
:
case
52
:
...
@@ -2652,7 +2653,7 @@ case 52:
...
@@ -2652,7 +2653,7 @@ case 52:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 115
8
"pre.l"
#line 115
9
"pre.l"
{
{
incrLevel
();
incrLevel
();
ifcount
++
;
ifcount
++
;
...
@@ -2661,7 +2662,7 @@ YY_RULE_SETUP
...
@@ -2661,7 +2662,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
53
:
case
53
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 116
3
"pre.l"
#line 116
4
"pre.l"
{
{
//printf("Else! ifcount=%d otherCaseDone=%d\n",ifcount,otherCaseDone());
//printf("Else! ifcount=%d otherCaseDone=%d\n",ifcount,otherCaseDone());
if
(
ifcount
==
0
&&
!
otherCaseDone
())
if
(
ifcount
==
0
&&
!
otherCaseDone
())
...
@@ -2677,7 +2678,7 @@ case 54:
...
@@ -2677,7 +2678,7 @@ case 54:
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
yy_c_buf_p
=
yy_cp
=
yy_bp
+
4
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 117
2
"pre.l"
#line 117
3
"pre.l"
{
{
if
(
ifcount
==
0
)
if
(
ifcount
==
0
)
{
{
...
@@ -2696,7 +2697,7 @@ YY_RULE_SETUP
...
@@ -2696,7 +2697,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
55
:
case
55
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 118
7
"pre.l"
#line 118
8
"pre.l"
{
{
decrLevel
();
decrLevel
();
if
(
--
ifcount
<
0
)
if
(
--
ifcount
<
0
)
...
@@ -2708,7 +2709,7 @@ YY_RULE_SETUP
...
@@ -2708,7 +2709,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
56
:
case
56
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 119
5
"pre.l"
#line 119
6
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
yyLineNr
++
;
yyLineNr
++
;
...
@@ -2717,29 +2718,29 @@ YY_RULE_SETUP
...
@@ -2717,29 +2718,29 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
57
:
case
57
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 120
0
"pre.l"
#line 120
1
"pre.l"
{
// unknown directive
{
// unknown directive
BEGIN
(
SkipLine
);
BEGIN
(
SkipLine
);
}
}
YY_BREAK
YY_BREAK
case
58
:
case
58
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 120
3
"pre.l"
#line 120
4
"pre.l"
YY_BREAK
YY_BREAK
case
59
:
case
59
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 120
4
"pre.l"
#line 120
5
"pre.l"
YY_BREAK
YY_BREAK
case
60
:
case
60
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 120
5
"pre.l"
#line 120
6
"pre.l"
YY_BREAK
YY_BREAK
case
61
:
case
61
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 120
6
"pre.l"
#line 120
7
"pre.l"
{
{
lastCPPContext
=
YY_START
;
lastCPPContext
=
YY_START
;
BEGIN
(
RemoveCPPComment
);
BEGIN
(
RemoveCPPComment
);
...
@@ -2747,7 +2748,7 @@ YY_RULE_SETUP
...
@@ -2747,7 +2748,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
62
:
case
62
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 121
0
"pre.l"
#line 121
1
"pre.l"
{
{
lastCContext
=
YY_START
;
lastCContext
=
YY_START
;
BEGIN
(
RemoveCComment
);
BEGIN
(
RemoveCComment
);
...
@@ -2755,7 +2756,7 @@ YY_RULE_SETUP
...
@@ -2755,7 +2756,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
63
:
case
63
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 121
4
"pre.l"
#line 121
5
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
yyLineNr
++
;
yyLineNr
++
;
...
@@ -2767,7 +2768,7 @@ case 64:
...
@@ -2767,7 +2768,7 @@ case 64:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 12
19
"pre.l"
#line 12
20
"pre.l"
{
{
roundCount
=
0
;
roundCount
=
0
;
defArgsStr
=
yytext
;
defArgsStr
=
yytext
;
...
@@ -2777,7 +2778,7 @@ YY_RULE_SETUP
...
@@ -2777,7 +2778,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
65
:
case
65
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 122
5
"pre.l"
#line 122
6
"pre.l"
{
{
readIncludeFile
(
expandMacro
(
yytext
));
readIncludeFile
(
expandMacro
(
yytext
));
BEGIN
(
Start
);
BEGIN
(
Start
);
...
@@ -2785,7 +2786,7 @@ YY_RULE_SETUP
...
@@ -2785,7 +2786,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
66
:
case
66
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 12
29
"pre.l"
#line 12
30
"pre.l"
{
{
QCString
incName
=
yytext
;
QCString
incName
=
yytext
;
//int l=incName.length();
//int l=incName.length();
...
@@ -2806,7 +2807,7 @@ case 67:
...
@@ -2806,7 +2807,7 @@ case 67:
yy_c_buf_p
=
yy_cp
-=
1
;
yy_c_buf_p
=
yy_cp
-=
1
;
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_DO_BEFORE_ACTION
;
/* set up yytext again */
YY_RULE_SETUP
YY_RULE_SETUP
#line 124
3
"pre.l"
#line 124
4
"pre.l"
{
{
//printf("Define() `%s'\n",yytext);
//printf("Define() `%s'\n",yytext);
argDict
=
new
QDict
<
int
>
(
31
);
argDict
=
new
QDict
<
int
>
(
31
);
...
@@ -2821,7 +2822,7 @@ YY_RULE_SETUP
...
@@ -2821,7 +2822,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
68
:
case
68
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 125
4
"pre.l"
#line 125
5
"pre.l"
{
{
//printf("Define `%s'\n",yytext);
//printf("Define `%s'\n",yytext);
argDict
=
0
;
argDict
=
0
;
...
@@ -2838,7 +2839,7 @@ YY_RULE_SETUP
...
@@ -2838,7 +2839,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
69
:
case
69
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 126
7
"pre.l"
#line 126
8
"pre.l"
{
{
argDict
=
0
;
argDict
=
0
;
defArgs
=
-
1
;
defArgs
=
-
1
;
...
@@ -2889,17 +2890,17 @@ YY_RULE_SETUP
...
@@ -2889,17 +2890,17 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
70
:
case
70
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 131
4
"pre.l"
#line 131
5
"pre.l"
{
defArgsStr
+=
yytext
;
}
{
defArgsStr
+=
yytext
;
}
YY_BREAK
YY_BREAK
case
71
:
case
71
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 131
5
"pre.l"
#line 131
6
"pre.l"
{
defArgsStr
+=
yytext
;
}
{
defArgsStr
+=
yytext
;
}
YY_BREAK
YY_BREAK
case
72
:
case
72
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 131
6
"pre.l"
#line 131
7
"pre.l"
{
{
defArgsStr
+=
yytext
;
defArgsStr
+=
yytext
;
QCString
tmp
=
(
QCString
)
"#define "
+
defName
+
defArgsStr
;
QCString
tmp
=
(
QCString
)
"#define "
+
defName
+
defArgsStr
;
...
@@ -2910,7 +2911,7 @@ YY_RULE_SETUP
...
@@ -2910,7 +2911,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
73
:
case
73
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 132
3
"pre.l"
#line 132
4
"pre.l"
{
{
//printf("Define addArg(%s)\n",yytext);
//printf("Define addArg(%s)\n",yytext);
QCString
argName
=
yytext
;
QCString
argName
=
yytext
;
...
@@ -2924,7 +2925,7 @@ YY_RULE_SETUP
...
@@ -2924,7 +2925,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
74
:
case
74
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 133
3
"pre.l"
#line 133
4
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'*'
);
outputChar
(
'/'
);
outputChar
(
'*'
);
defText
+=
' '
;
defText
+=
' '
;
...
@@ -2934,7 +2935,7 @@ YY_RULE_SETUP
...
@@ -2934,7 +2935,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
75
:
case
75
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 13
39
"pre.l"
#line 13
40
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
lastCPPContext
=
YY_START
;
lastCPPContext
=
YY_START
;
...
@@ -2943,7 +2944,7 @@ YY_RULE_SETUP
...
@@ -2943,7 +2944,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
76
:
case
76
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 134
4
"pre.l"
#line 134
5
"pre.l"
{
{
outputChar
(
'*'
);
outputChar
(
'/'
);
outputChar
(
'*'
);
outputChar
(
'/'
);
BEGIN
(
lastCContext
);
BEGIN
(
lastCContext
);
...
@@ -2951,28 +2952,28 @@ YY_RULE_SETUP
...
@@ -2951,28 +2952,28 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
77
:
case
77
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 134
8
"pre.l"
#line 134
9
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
}
}
YY_BREAK
YY_BREAK
case
78
:
case
78
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 135
1
"pre.l"
#line 135
2
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'*'
);
outputChar
(
'/'
);
outputChar
(
'*'
);
}
}
YY_BREAK
YY_BREAK
case
79
:
case
79
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 135
4
"pre.l"
#line 135
5
"pre.l"
{
{
outputArray
(
yytext
,
yyleng
);
outputArray
(
yytext
,
yyleng
);
}
}
YY_BREAK
YY_BREAK
case
80
:
case
80
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 135
7
"pre.l"
#line 135
8
"pre.l"
{
{
yyLineNr
++
;
yyLineNr
++
;
outputChar
(
'\n'
);
outputChar
(
'\n'
);
...
@@ -2980,44 +2981,44 @@ YY_RULE_SETUP
...
@@ -2980,44 +2981,44 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
81
:
case
81
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 136
1
"pre.l"
#line 136
2
"pre.l"
{
{
outputChar
(
*
yytext
);
outputChar
(
*
yytext
);
}
}
YY_BREAK
YY_BREAK
case
82
:
case
82
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 136
4
"pre.l"
#line 136
5
"pre.l"
{
BEGIN
(
lastCContext
);
}
{
BEGIN
(
lastCContext
);
}
YY_BREAK
YY_BREAK
case
83
:
case
83
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 136
5
"pre.l"
#line 136
6
"pre.l"
YY_BREAK
YY_BREAK
case
84
:
case
84
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 136
6
"pre.l"
#line 136
7
"pre.l"
YY_BREAK
YY_BREAK
case
85
:
case
85
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 136
7
"pre.l"
#line 136
8
"pre.l"
YY_BREAK
YY_BREAK
case
86
:
case
86
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 136
8
"pre.l"
#line 136
9
"pre.l"
{
yyLineNr
++
;
outputChar
(
'\n'
);
}
{
yyLineNr
++
;
outputChar
(
'\n'
);
}
YY_BREAK
YY_BREAK
case
87
:
case
87
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 13
69
"pre.l"
#line 13
70
"pre.l"
YY_BREAK
YY_BREAK
case
88
:
case
88
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 137
0
"pre.l"
#line 137
1
"pre.l"
{
{
unput
(
*
yytext
);
unput
(
*
yytext
);
BEGIN
(
lastCPPContext
);
BEGIN
(
lastCPPContext
);
...
@@ -3025,62 +3026,62 @@ YY_RULE_SETUP
...
@@ -3025,62 +3026,62 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
89
:
case
89
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 137
4
"pre.l"
#line 137
5
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'*'
);
outputChar
(
'/'
);
outputChar
(
'*'
);
}
}
YY_BREAK
YY_BREAK
case
90
:
case
90
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 137
7
"pre.l"
#line 137
8
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
}
}
YY_BREAK
YY_BREAK
case
91
:
case
91
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 138
0
"pre.l"
#line 138
1
"pre.l"
{
{
outputArray
(
yytext
,
yyleng
);
outputArray
(
yytext
,
yyleng
);
}
}
YY_BREAK
YY_BREAK
case
92
:
case
92
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 138
3
"pre.l"
#line 138
4
"pre.l"
{
{
outputChar
(
*
yytext
);
outputChar
(
*
yytext
);
}
}
YY_BREAK
YY_BREAK
case
93
:
case
93
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 138
6
"pre.l"
#line 138
7
"pre.l"
YY_BREAK
YY_BREAK
case
94
:
case
94
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 138
7
"pre.l"
#line 138
8
"pre.l"
YY_BREAK
YY_BREAK
case
95
:
case
95
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 138
8
"pre.l"
#line 138
9
"pre.l"
YY_BREAK
YY_BREAK
case
96
:
case
96
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 13
89
"pre.l"
#line 13
90
"pre.l"
YY_BREAK
YY_BREAK
case
97
:
case
97
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 139
0
"pre.l"
#line 139
1
"pre.l"
{
{
quoteArg
=
TRUE
;
quoteArg
=
TRUE
;
}
}
YY_BREAK
YY_BREAK
case
98
:
case
98
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 139
3
"pre.l"
#line 139
4
"pre.l"
{
{
if
(
quoteArg
)
if
(
quoteArg
)
{
{
...
@@ -3116,7 +3117,7 @@ YY_RULE_SETUP
...
@@ -3116,7 +3117,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
99
:
case
99
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 142
5
"pre.l"
#line 142
6
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
defText
+=
' '
;
yyLineNr
++
;
defText
+=
' '
;
yyLineNr
++
;
...
@@ -3124,7 +3125,7 @@ YY_RULE_SETUP
...
@@ -3124,7 +3125,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
100
:
case
100
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 14
29
"pre.l"
#line 14
30
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
Define
*
def
=
0
;
Define
*
def
=
0
;
...
@@ -3162,46 +3163,46 @@ YY_RULE_SETUP
...
@@ -3162,46 +3163,46 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
101
:
case
101
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 146
3
"pre.l"
#line 146
4
"pre.l"
{
defText
+=
' '
;
}
{
defText
+=
' '
;
}
YY_BREAK
YY_BREAK
case
102
:
case
102
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 146
4
"pre.l"
#line 146
5
"pre.l"
{
defText
+=
"##"
;
}
{
defText
+=
"##"
;
}
YY_BREAK
YY_BREAK
case
103
:
case
103
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 146
5
"pre.l"
#line 146
6
"pre.l"
{
defText
+=
"@@"
;
}
{
defText
+=
"@@"
;
}
YY_BREAK
YY_BREAK
case
104
:
case
104
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 146
6
"pre.l"
#line 146
7
"pre.l"
{
defText
+=
*
yytext
;
{
defText
+=
*
yytext
;
BEGIN
(
SkipDoubleQuote
);
BEGIN
(
SkipDoubleQuote
);
}
}
YY_BREAK
YY_BREAK
case
105
:
case
105
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 14
69
"pre.l"
#line 14
70
"pre.l"
{
defText
+=
*
yytext
;
{
defText
+=
*
yytext
;
BEGIN
(
SkipSingleQuote
);
BEGIN
(
SkipSingleQuote
);
}
}
YY_BREAK
YY_BREAK
case
106
:
case
106
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 147
2
"pre.l"
#line 147
3
"pre.l"
{
defText
+=
yytext
;
}
{
defText
+=
yytext
;
}
YY_BREAK
YY_BREAK
case
107
:
case
107
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 147
3
"pre.l"
#line 147
4
"pre.l"
{
defText
+=
yytext
;
}
{
defText
+=
yytext
;
}
YY_BREAK
YY_BREAK
case
108
:
case
108
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 147
4
"pre.l"
#line 147
5
"pre.l"
{
{
defText
+=
*
yytext
;
defText
+=
*
yytext
;
BEGIN
(
DefineText
);
BEGIN
(
DefineText
);
...
@@ -3209,14 +3210,14 @@ YY_RULE_SETUP
...
@@ -3209,14 +3210,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
109
:
case
109
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 147
8
"pre.l"
#line 147
9
"pre.l"
{
{
defText
+=
yytext
;
defText
+=
yytext
;
}
}
YY_BREAK
YY_BREAK
case
110
:
case
110
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 148
1
"pre.l"
#line 148
2
"pre.l"
{
{
defText
+=
*
yytext
;
defText
+=
*
yytext
;
BEGIN
(
DefineText
);
BEGIN
(
DefineText
);
...
@@ -3224,17 +3225,17 @@ YY_RULE_SETUP
...
@@ -3224,17 +3225,17 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
111
:
case
111
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 148
5
"pre.l"
#line 148
6
"pre.l"
{
defText
+=
*
yytext
;
}
{
defText
+=
*
yytext
;
}
YY_BREAK
YY_BREAK
case
112
:
case
112
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 148
6
"pre.l"
#line 148
7
"pre.l"
{
defText
+=
*
yytext
;
}
{
defText
+=
*
yytext
;
}
YY_BREAK
YY_BREAK
case
113
:
case
113
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 148
7
"pre.l"
#line 148
8
"pre.l"
{
defText
+=
*
yytext
;
}
{
defText
+=
*
yytext
;
}
YY_BREAK
YY_BREAK
case
YY_STATE_EOF
(
INITIAL
):
case
YY_STATE_EOF
(
INITIAL
):
...
@@ -3264,7 +3265,7 @@ case YY_STATE_EOF(UndefName):
...
@@ -3264,7 +3265,7 @@ case YY_STATE_EOF(UndefName):
case
YY_STATE_EOF
(
IgnoreLine
):
case
YY_STATE_EOF
(
IgnoreLine
):
case
YY_STATE_EOF
(
FindDefineArgs
):
case
YY_STATE_EOF
(
FindDefineArgs
):
case
YY_STATE_EOF
(
ReadString
):
case
YY_STATE_EOF
(
ReadString
):
#line 148
8
"pre.l"
#line 148
9
"pre.l"
{
{
//printf("End of include file\n");
//printf("End of include file\n");
//printf("Include stack depth=%d\n",includeStack.count());
//printf("Include stack depth=%d\n",includeStack.count());
...
@@ -3293,7 +3294,7 @@ case YY_STATE_EOF(ReadString):
...
@@ -3293,7 +3294,7 @@ case YY_STATE_EOF(ReadString):
YY_BREAK
YY_BREAK
case
114
:
case
114
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 151
3
"pre.l"
#line 151
4
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'*'
);
outputChar
(
'/'
);
outputChar
(
'*'
);
lastCContext
=
YY_START
;
lastCContext
=
YY_START
;
...
@@ -3302,7 +3303,7 @@ YY_RULE_SETUP
...
@@ -3302,7 +3303,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
115
:
case
115
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 151
8
"pre.l"
#line 151
9
"pre.l"
{
{
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
outputChar
(
'/'
);
lastCPPContext
=
YY_START
;
lastCPPContext
=
YY_START
;
...
@@ -3311,7 +3312,7 @@ YY_RULE_SETUP
...
@@ -3311,7 +3312,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
116
:
case
116
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 152
3
"pre.l"
#line 152
4
"pre.l"
{
{
outputChar
(
'\n'
);
outputChar
(
'\n'
);
yyLineNr
++
;
yyLineNr
++
;
...
@@ -3319,14 +3320,14 @@ YY_RULE_SETUP
...
@@ -3319,14 +3320,14 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
117
:
case
117
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 152
7
"pre.l"
#line 152
8
"pre.l"
{
{
outputChar
(
*
yytext
);
outputChar
(
*
yytext
);
}
}
YY_BREAK
YY_BREAK
case
118
:
case
118
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 153
1
"pre.l"
#line 153
2
"pre.l"
ECHO
;
ECHO
;
YY_BREAK
YY_BREAK
...
@@ -4208,7 +4209,7 @@ int main()
...
@@ -4208,7 +4209,7 @@ int main()
return
0
;
return
0
;
}
}
#endif
#endif
#line 153
1
"pre.l"
#line 153
2
"pre.l"
/*@ ----------------------------------------------------------------------------
/*@ ----------------------------------------------------------------------------
...
@@ -4308,9 +4309,9 @@ void cleanupPreprocessor()
...
@@ -4308,9 +4309,9 @@ void cleanupPreprocessor()
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
output
)
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
output
)
{
{
#if DUMP_OUTPUT
//
#if DUMP_OUTPUT
uint
orgOffset
=
output
.
curPos
();
uint
orgOffset
=
output
.
curPos
();
#endif
//
#endif
outputBuf
=&
output
;
outputBuf
=&
output
;
includeStack
.
setAutoDelete
(
TRUE
);
includeStack
.
setAutoDelete
(
TRUE
);
...
@@ -4446,20 +4447,23 @@ void preprocessFile(const char *fileName,BufStr &output)
...
@@ -4446,20 +4447,23 @@ void preprocessFile(const char *fileName,BufStr &output)
else
else
pclose
(
preYYin
);
pclose
(
preYYin
);
#if DUMP_OUTPUT
//#if DUMP_OUTPUT
char
*
orgPos
=
output
.
data
()
+
orgOffset
;
if
(
Debug
::
isFlagSet
(
Debug
::
Preprocessor
))
char
*
newPos
=
output
.
data
()
+
output
.
curPos
();
printf
(
"Resulting size: %d bytes
\n
"
,
newPos
-
orgPos
);
int
line
=
1
;
printf
(
"---------
\n
00001 "
);
while
(
orgPos
<
newPos
)
{
{
putchar
(
*
orgPos
);
char
*
orgPos
=
output
.
data
()
+
orgOffset
;
if
(
*
orgPos
==
'\n'
)
printf
(
"%05d "
,
++
line
);
char
*
newPos
=
output
.
data
()
+
output
.
curPos
();
orgPos
++
;
printf
(
"Preprocessor output (size: %d bytes):
\n
"
,
newPos
-
orgPos
);
int
line
=
1
;
printf
(
"---------
\n
00001 "
);
while
(
orgPos
<
newPos
)
{
putchar
(
*
orgPos
);
if
(
*
orgPos
==
'\n'
)
printf
(
"%05d "
,
++
line
);
orgPos
++
;
}
printf
(
"
\n
---------
\n
"
);
}
}
printf
(
"
\n
---------
\n
"
);
//#endif
#endif
}
}
extern
"C"
{
// some bogus code to keep the compiler happy
extern
"C"
{
// some bogus code to keep the compiler happy
...
...
src/pre.l
View file @
74cc4d70
...
@@ -40,6 +40,7 @@
...
@@ -40,6 +40,7 @@
#include "message.h"
#include "message.h"
#include "util.h"
#include "util.h"
#include "defargs.h"
#include "defargs.h"
#include "debug.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
#define popen _popen
...
@@ -48,7 +49,7 @@
...
@@ -48,7 +49,7 @@
#define YY_NEVER_INTERACTIVE 1
#define YY_NEVER_INTERACTIVE 1
#define DUMP_OUTPUT
0
// set this to one to see what the preprocessor
#define DUMP_OUTPUT
1
// set this to one to see what the preprocessor
// produces.
// produces.
#define SHOW_INCLUDES 0 // set this to one to list all parsed include files
#define SHOW_INCLUDES 0 // set this to one to list all parsed include files
...
@@ -1627,9 +1628,9 @@ void cleanupPreprocessor()
...
@@ -1627,9 +1628,9 @@ void cleanupPreprocessor()
void preprocessFile(const char *fileName,BufStr &output)
void preprocessFile(const char *fileName,BufStr &output)
{
{
#if DUMP_OUTPUT
//
#if DUMP_OUTPUT
uint orgOffset=output.curPos();
uint orgOffset=output.curPos();
#endif
//
#endif
outputBuf=&output;
outputBuf=&output;
includeStack.setAutoDelete(TRUE);
includeStack.setAutoDelete(TRUE);
...
@@ -1765,20 +1766,23 @@ void preprocessFile(const char *fileName,BufStr &output)
...
@@ -1765,20 +1766,23 @@ void preprocessFile(const char *fileName,BufStr &output)
else
else
pclose(preYYin);
pclose(preYYin);
#if DUMP_OUTPUT
//#if DUMP_OUTPUT
char *orgPos=output.data()+orgOffset;
if (Debug::isFlagSet(Debug::Preprocessor))
char *newPos=output.data()+output.curPos();
printf("Resulting size: %d bytes\n",newPos-orgPos);
int line=1;
printf("---------\n00001 ");
while (orgPos<newPos)
{
{
putchar(*orgPos);
char *orgPos=output.data()+orgOffset;
if (*orgPos=='\n') printf("%05d ",++line);
char *newPos=output.data()+output.curPos();
orgPos++;
printf("Preprocessor output (size: %d bytes):\n",newPos-orgPos);
int line=1;
printf("---------\n00001 ");
while (orgPos<newPos)
{
putchar(*orgPos);
if (*orgPos=='\n') printf("%05d ",++line);
orgPos++;
}
printf("\n---------\n");
}
}
printf("\n---------\n");
//#endif
#endif
}
}
extern "C" { // some bogus code to keep the compiler happy
extern "C" { // some bogus code to keep the compiler happy
...
...
src/scanner.cpp
View file @
74cc4d70
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/scanner.l
View file @
74cc4d70
...
@@ -127,7 +127,6 @@ static bool inBugBlock;
...
@@ -127,7 +127,6 @@ static bool inBugBlock;
static bool inWarningBlock;
static bool inWarningBlock;
static bool inParBlock;
static bool inParBlock;
static bool firstSeeArg;
static bool firstSeeArg;
static bool javaDocSee;
static char afterDocTerminator;
static char afterDocTerminator;
static int tmpDocType;
static int tmpDocType;
static QCString sectionLabel;
static QCString sectionLabel;
...
@@ -200,7 +199,6 @@ static void initParser()
...
@@ -200,7 +199,6 @@ static void initParser()
inWarningBlock = FALSE;
inWarningBlock = FALSE;
inParBlock = FALSE;
inParBlock = FALSE;
firstSeeArg = FALSE;
firstSeeArg = FALSE;
javaDocSee = FALSE;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
...
@@ -707,8 +705,12 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
...
@@ -707,8 +705,12 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
}
}
else
else
{
{
warn("Warning: image file %s is not found. ",fileName);
result=fileName;
warn("Check your IMAGE_PATH\n");
if (result.left(5)!="http:")
{
warn("Warning: image file %s is not found in IMAGE_PATH: "
"assuming external image. ",fileName);
}
}
}
return result;
return result;
}
}
...
@@ -1243,7 +1245,6 @@ VAR [vV][aA][rR]
...
@@ -1243,7 +1245,6 @@ VAR [vV][aA][rR]
if (inBlock()) endBlock();
if (inBlock()) endBlock();
inSeeBlock=TRUE;
inSeeBlock=TRUE;
//firstSeeArg=TRUE;
//firstSeeArg=TRUE;
//javaDocSee=!strcmp(yytext,"@see");
outDoc->startDescList();
outDoc->startDescList();
//outDoc->writeBoldString("See also: ");
//outDoc->writeBoldString("See also: ");
outDoc->startBold();
outDoc->startBold();
...
@@ -1439,8 +1440,8 @@ VAR [vV][aA][rR]
...
@@ -1439,8 +1440,8 @@ VAR [vV][aA][rR]
<DocImage>[lL][aA][tT][eE][xX] {
<DocImage>[lL][aA][tT][eE][xX] {
BEGIN(DocLatexImageName);
BEGIN(DocLatexImageName);
}
}
<DocHtmlImageName>{FILE}
{
<DocHtmlImageName>{FILE}
|{URLMASK}
{
curImageName = findAndCopyImage(
yytext
,IT_Html);
curImageName = findAndCopyImage(
stripQuotes(yytext)
,IT_Html);
if (!curImageName.isEmpty())
if (!curImageName.isEmpty())
{
{
storeOutputListState();
storeOutputListState();
...
@@ -1451,7 +1452,7 @@ VAR [vV][aA][rR]
...
@@ -1451,7 +1452,7 @@ VAR [vV][aA][rR]
BEGIN(DocScan);
BEGIN(DocScan);
}
}
<DocLatexImageName>{FILE} {
<DocLatexImageName>{FILE} {
curImageName = findAndCopyImage(
yytext
,IT_Latex);
curImageName = findAndCopyImage(
stripQuotes(yytext)
,IT_Latex);
if (curImageName.isEmpty())
if (curImageName.isEmpty())
BEGIN(DocScan);
BEGIN(DocScan);
else
else
...
...
src/tag.cpp
View file @
74cc4d70
...
@@ -1939,7 +1939,11 @@ void parseTagFile(const char *fileName)
...
@@ -1939,7 +1939,11 @@ void parseTagFile(const char *fileName)
{
{
FILE
*
f
=
fopen
(
fileName
,
"r"
);
FILE
*
f
=
fopen
(
fileName
,
"r"
);
QFileInfo
fi
(
fileName
);
QFileInfo
fi
(
fileName
);
if
(
!
f
||
!
fi
.
exists
());
if
(
!
f
||
!
fi
.
exists
())
{
if
(
f
)
fclose
(
f
);
return
;
}
tagName
=
fi
.
fileName
();
tagName
=
fi
.
fileName
();
tagYYin
=
f
;
tagYYin
=
f
;
...
...
src/tag.l
View file @
74cc4d70
...
@@ -260,7 +260,11 @@ void parseTagFile(const char *fileName)
...
@@ -260,7 +260,11 @@ void parseTagFile(const char *fileName)
{
{
FILE *f=fopen(fileName,"r");
FILE *f=fopen(fileName,"r");
QFileInfo fi(fileName);
QFileInfo fi(fileName);
if (!f || !fi.exists());
if (!f || !fi.exists())
{
if (f) fclose(f);
return;
}
tagName = fi.fileName();
tagName = fi.fileName();
tagYYin = f;
tagYYin = f;
...
...
src/translator_nl.h
View file @
74cc4d70
...
@@ -259,7 +259,7 @@ class TranslatorDutch : public Translator
...
@@ -259,7 +259,7 @@ class TranslatorDutch : public Translator
// new since 0.49-990425
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
virtual
QCString
trCompoundReference
(
const
char
*
clName
,
QCString
trCompoundReference
(
const
char
*
clName
,
ClassDef
::
CompoundType
compType
)
ClassDef
::
CompoundType
compType
)
// used as the title of the HTML page of a class/struct/union
// used as the title of the HTML page of a class/struct/union
{
{
...
@@ -274,14 +274,14 @@ class TranslatorDutch : public Translator
...
@@ -274,14 +274,14 @@ class TranslatorDutch : public Translator
result
+=
" Referentie"
;
result
+=
" Referentie"
;
return
result
;
return
result
;
}
}
virtual
QCString
trFileReference
(
const
char
*
fileName
)
QCString
trFileReference
(
const
char
*
fileName
)
// used as the title of the HTML page of a file
// used as the title of the HTML page of a file
{
{
QCString
result
=
fileName
;
QCString
result
=
fileName
;
result
+=
" File Referentie"
;
result
+=
" File Referentie"
;
return
result
;
return
result
;
}
}
virtual
QCString
trNamespaceReference
(
const
char
*
namespaceName
)
QCString
trNamespaceReference
(
const
char
*
namespaceName
)
// used as the title of the HTML page of a namespace
// used as the title of the HTML page of a namespace
{
{
QCString
result
=
namespaceName
;
QCString
result
=
namespaceName
;
...
@@ -290,29 +290,29 @@ class TranslatorDutch : public Translator
...
@@ -290,29 +290,29 @@ class TranslatorDutch : public Translator
}
}
// these are for the member sections of a class, struct or union
// these are for the member sections of a class, struct or union
virtual
QCString
trPublicMembers
()
QCString
trPublicMembers
()
{
return
"Public Members"
;
}
{
return
"Public Members"
;
}
virtual
QCString
trPublicSlots
()
QCString
trPublicSlots
()
{
return
"Public Slots"
;
}
{
return
"Public Slots"
;
}
virtual
QCString
trSignals
()
QCString
trSignals
()
{
return
"Signals"
;
}
{
return
"Signals"
;
}
virtual
QCString
trStaticPublicMembers
()
QCString
trStaticPublicMembers
()
{
return
"Static Public Members"
;
}
{
return
"Static Public Members"
;
}
virtual
QCString
trProtectedMembers
()
QCString
trProtectedMembers
()
{
return
"Protected Members"
;
}
{
return
"Protected Members"
;
}
virtual
QCString
trProtectedSlots
()
QCString
trProtectedSlots
()
{
return
"Protected Slots"
;
}
{
return
"Protected Slots"
;
}
virtual
QCString
trStaticProtectedMembers
()
QCString
trStaticProtectedMembers
()
{
return
"Static Protected Members"
;
}
{
return
"Static Protected Members"
;
}
virtual
QCString
trPrivateMembers
()
QCString
trPrivateMembers
()
{
return
"Private Members"
;
}
{
return
"Private Members"
;
}
virtual
QCString
trPrivateSlots
()
QCString
trPrivateSlots
()
{
return
"Private Slots"
;
}
{
return
"Private Slots"
;
}
virtual
QCString
trStaticPrivateMembers
()
QCString
trStaticPrivateMembers
()
{
return
"Static Private Members"
;
}
{
return
"Static Private Members"
;
}
// end of member sections
// end of member sections
virtual
QCString
trWriteList
(
int
numEntries
)
QCString
trWriteList
(
int
numEntries
)
{
{
// this function is used to produce a comma-separated list of items.
// this function is used to produce a comma-separated list of items.
// use generateMarker(i) to indicate where item i should be put.
// use generateMarker(i) to indicate where item i should be put.
...
@@ -336,35 +336,35 @@ class TranslatorDutch : public Translator
...
@@ -336,35 +336,35 @@ class TranslatorDutch : public Translator
return
result
;
return
result
;
}
}
virtual
QCString
trInheritsList
(
int
numEntries
)
QCString
trInheritsList
(
int
numEntries
)
// used in class documentation to produce a list of base classes,
// used in class documentation to produce a list of base classes,
// if class diagrams are disabled.
// if class diagrams are disabled.
{
{
return
"Erft over van "
+
trWriteList
(
numEntries
)
+
"."
;
return
"Erft over van "
+
trWriteList
(
numEntries
)
+
"."
;
}
}
virtual
QCString
trInheritedByList
(
int
numEntries
)
QCString
trInheritedByList
(
int
numEntries
)
// used in class documentation to produce a list of super classes,
// used in class documentation to produce a list of super classes,
// if class diagrams are disabled.
// if class diagrams are disabled.
{
{
return
"Wordt overgeërfd door "
+
trWriteList
(
numEntries
)
+
"."
;
return
"Wordt overgeërfd door "
+
trWriteList
(
numEntries
)
+
"."
;
}
}
virtual
QCString
trReimplementedFromList
(
int
numEntries
)
QCString
trReimplementedFromList
(
int
numEntries
)
// used in member documentation blocks to produce a list of
// used in member documentation blocks to produce a list of
// members that are hidden by this one.
// members that are hidden by this one.
{
{
return
"Nieuwe implementatie van "
+
trWriteList
(
numEntries
)
+
"."
;
return
"Nieuwe implementatie van "
+
trWriteList
(
numEntries
)
+
"."
;
}
}
virtual
QCString
trReimplementedInList
(
int
numEntries
)
QCString
trReimplementedInList
(
int
numEntries
)
{
{
// used in member documentation blocks to produce a list of
// used in member documentation blocks to produce a list of
// all member that overwrite the implementation of this member.
// all member that overwrite the implementation of this member.
return
"Opnieuw geïmplementeerd in "
+
trWriteList
(
numEntries
)
+
"."
;
return
"Opnieuw geïmplementeerd in "
+
trWriteList
(
numEntries
)
+
"."
;
}
}
virtual
QCString
trNamespaceMembers
()
QCString
trNamespaceMembers
()
// This is put above each page as a link to all members of namespaces.
// This is put above each page as a link to all members of namespaces.
{
return
"Namespace Members"
;
}
{
return
"Namespace Members"
;
}
virtual
QCString
trNamespaceMemberDescription
(
bool
extractAll
)
QCString
trNamespaceMemberDescription
(
bool
extractAll
)
// This is an introduction to the page with all namespace members
// This is an introduction to the page with all namespace members
{
{
QCString
result
=
"Hier is een lijst van alle "
;
QCString
result
=
"Hier is een lijst van alle "
;
...
@@ -376,11 +376,11 @@ class TranslatorDutch : public Translator
...
@@ -376,11 +376,11 @@ class TranslatorDutch : public Translator
result
+=
"de namespaces waartoe ze behoren:"
;
result
+=
"de namespaces waartoe ze behoren:"
;
return
result
;
return
result
;
}
}
virtual
QCString
trNamespaceIndex
()
QCString
trNamespaceIndex
()
// This is used in LaTeX as the title of the chapter with the
// This is used in LaTeX as the title of the chapter with the
// index of all namespaces.
// index of all namespaces.
{
return
"Namespace Index"
;
}
{
return
"Namespace Index"
;
}
virtual
QCString
trNamespaceDocumentation
()
QCString
trNamespaceDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// This is used in LaTeX as the title of the chapter containing
// the documentation of all namespaces.
// the documentation of all namespaces.
{
return
"Namespace Documentatie"
;
}
{
return
"Namespace Documentatie"
;
}
...
@@ -392,7 +392,7 @@ class TranslatorDutch : public Translator
...
@@ -392,7 +392,7 @@ class TranslatorDutch : public Translator
/*! This is put at the bottom of a class documentation page and is
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
* followed by a list of files that were used to generate the page.
*/
*/
virtual
QCString
trGeneratedFromFiles
(
ClassDef
::
CompoundType
compType
,
QCString
trGeneratedFromFiles
(
ClassDef
::
CompoundType
compType
,
bool
single
)
bool
single
)
{
// here s is one of " Class", " Struct" or " Union"
{
// here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
// single is true implies a single file
...
@@ -412,7 +412,7 @@ class TranslatorDutch : public Translator
...
@@ -412,7 +412,7 @@ class TranslatorDutch : public Translator
/*! This is in the (quick) index as a link to the alphabetical compound
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
* list.
*/
*/
virtual
QCString
trAlphabeticalList
()
QCString
trAlphabeticalList
()
{
return
"Alphabetical List"
;
}
{
return
"Alphabetical List"
;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
...
@@ -420,19 +420,36 @@ class TranslatorDutch : public Translator
...
@@ -420,19 +420,36 @@ class TranslatorDutch : public Translator
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
/*! This is used as the heading text for the retval command. */
virtual
QCString
trReturnValues
()
QCString
trReturnValues
()
{
return
"Retour waarden"
;
}
{
return
"Retour waarden"
;
}
/*! This is in the (quick) index as a link to the main page (index.html)
/*! This is in the (quick) index as a link to the main page (index.html)
*/
*/
virtual
QCString
trMainPage
()
QCString
trMainPage
()
{
return
"Hoofd Pagina"
;
}
{
return
"Hoofd Pagina"
;
}
/*! This is used in references to page that are put in the LaTeX
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
* documentation. It should be an abbreviation of the word page.
*/
*/
virtual
QCString
trPageAbbreviation
()
QCString
trPageAbbreviation
()
{
return
"p."
;
}
{
return
"p."
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991106
//////////////////////////////////////////////////////////////////////////
QCString
trSources
()
{
return
"Sources"
;
}
QCString
trDefinedAtLineInSourceFile
()
{
return
"De definitie bevindt zich op regel @0 in de file @1."
;
}
QCString
trDefinedInSourceFile
()
{
return
"De definitie bevindt zich in de file @0."
;
}
};
};
#endif
#endif
src/translator_se.h
View file @
74cc4d70
...
@@ -53,7 +53,7 @@ Problem!
...
@@ -53,7 +53,7 @@ Problem!
===================================================================================
===================================================================================
1999/09/01
1999/09/01
* Det verkar som om "namnrymd" r en hyggligt vedertagen svensk versttning
* Det verkar som om "namnrymd" r en hyggligt vedertagen svensk versttning
av "nam
ne
pace", s jag kr med det frn och med nu.
av "nam
es
pace", s jag kr med det frn och med nu.
* "interface" heter numera "grnssnitt"
* "interface" heter numera "grnssnitt"
*/
*/
...
@@ -538,6 +538,41 @@ class TranslatorSwedish : public Translator
...
@@ -538,6 +538,41 @@ class TranslatorSwedish : public Translator
{
{
return
"Alfabetisk lista"
;
return
"Alfabetisk lista"
;
}
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
virtual
QCString
trReturnValues
()
{
return
"Returvrden"
;
}
/*! This is in the (quick) index as a link to the main page (index.html)
*/
virtual
QCString
trMainPage
()
{
return
"Huvudsida"
;
}
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual
QCString
trPageAbbreviation
()
{
return
"s."
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
virtual
QCString
trSources
()
{
return
"Kllor"
;
}
virtual
QCString
trDefinedAtLineInSourceFile
()
{
return
"Definition p rad @0 i filen @1."
;
}
virtual
QCString
trDefinedInSourceFile
()
{
return
"Definition i filen @0."
;
}
};
};
#endif
#endif
src/util.cpp
View file @
74cc4d70
...
@@ -320,8 +320,8 @@ void writeExample(OutputList &ol,ExampleList *el)
...
@@ -320,8 +320,8 @@ void writeExample(OutputList &ol,ExampleList *el)
QCString
exampleLine
=
theTranslator
->
trWriteList
(
el
->
count
());
QCString
exampleLine
=
theTranslator
->
trWriteList
(
el
->
count
());
bool
latexEnabled
=
ol
.
isEnabled
(
OutputGenerator
::
Latex
);
bool
latexEnabled
=
ol
.
isEnabled
(
OutputGenerator
::
Latex
);
bool
manEnabled
=
ol
.
isEnabled
(
OutputGenerator
::
Html
);
bool
manEnabled
=
ol
.
isEnabled
(
OutputGenerator
::
Man
);
bool
htmlEnabled
=
ol
.
isEnabled
(
OutputGenerator
::
Man
);
bool
htmlEnabled
=
ol
.
isEnabled
(
OutputGenerator
::
Html
);
QRegExp
marker
(
"@[0-9]+"
);
QRegExp
marker
(
"@[0-9]+"
);
int
index
=
0
,
newIndex
,
matchLen
;
int
index
=
0
,
newIndex
,
matchLen
;
// now replace all markers in inheritLine with links to the classes
// now replace all markers in inheritLine with links to the classes
...
@@ -624,21 +624,25 @@ QCString fileToString(const char *name)
...
@@ -624,21 +624,25 @@ QCString fileToString(const char *name)
QFileInfo
fi
(
name
);
QFileInfo
fi
(
name
);
if
(
!
fi
.
exists
()
||
!
fi
.
isFile
())
if
(
!
fi
.
exists
()
||
!
fi
.
isFile
())
{
{
err
(
"Error: file `%s' not found
\n
"
,
name
);
warn
(
"Error: file `%s' not found
\n
"
,
name
);
exit
(
1
)
;
return
""
;
}
}
f
.
setName
(
name
);
f
.
setName
(
name
);
fileOpened
=
f
.
open
(
IO_ReadOnly
);
fileOpened
=
f
.
open
(
IO_ReadOnly
);
}
}
if
(
!
fileOpened
)
if
(
!
fileOpened
)
{
{
err
(
"Error: cannot open file `%s' for reading
\n
"
,
name
);
warn
(
"Error: cannot open file `%s' for reading
\n
"
,
name
);
exit
(
1
)
;
return
""
;
}
}
int
fsize
=
f
.
size
();
int
fsize
=
f
.
size
();
QCString
contents
(
fsize
+
1
);
QCString
contents
(
fsize
+
2
);
f
.
readBlock
(
contents
.
data
(),
fsize
);
f
.
readBlock
(
contents
.
data
(),
fsize
);
contents
[
fsize
]
=
'\0'
;
if
(
fsize
==
0
||
contents
[
fsize
-
1
]
==
'\n'
)
contents
[
fsize
]
=
'\0'
;
else
contents
[
fsize
]
=
'\n'
;
contents
[
fsize
+
1
]
=
'\0'
;
f
.
close
();
f
.
close
();
return
contents
;
return
contents
;
}
}
...
...
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