summaryrefslogtreecommitdiffstats
path: root/src/code.l
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2000-02-20 17:34:13 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2000-02-20 17:34:13 (GMT)
commitb76d4ee1ec41101fffbef5d33c5a2ea70a6c6e54 (patch)
treef122ed1db8000e070cab7f8ad4c4af87b89adbe5 /src/code.l
parent8cc2d754b7ad3e3e88f4c1bb92878d8f517076e6 (diff)
downloadDoxygen-b76d4ee1ec41101fffbef5d33c5a2ea70a6c6e54.zip
Doxygen-b76d4ee1ec41101fffbef5d33c5a2ea70a6c6e54.tar.gz
Doxygen-b76d4ee1ec41101fffbef5d33c5a2ea70a6c6e54.tar.bz2
+ The graphical class hierarchy was not properly generated when
template classes were used. + Template specialization could not be documented using the \class command. This is now fixed. Example: /*! * \class T<A,int> * My template specialization of template T. */ + Fixed a bug when parsing M$-IDL code, containing helpstring("bla") attributes. The attributes of a method are no longer shown in the documentation (the attributes of method arguments still visible however). + Improved the search algorithm that tries to connect classes with their base classes. It should now (hopefully) work correct in all cases where nested classes and/or namespaces are used. + Fixed a scanner problem that could cause doxygen to get confused after parsing struct initializers. + the DOTFONTPATH environment variable is now automatically set for Windows. This should make any "missing doxfont.ttf" messages disappear. + the extra LaTeX packages specified with EXTRA_PACKAGES can now also be used when generating formulas for HTML. + The documentation of a parameters that is part of a member definition, is now used in the documentation as well. + Fixed a HTML output bug in the class/file group-pages. + Links to example files generated with \link ... \endlink where not correct. + made the bullet list generation more robust. A space is now required after the - sign. A list can now start a paragraph. + the configure script now detects whether or not dot is installed. + The VERBATIM_HEADERS option didn't have any effect any more. It should now works again as advertised. + The IGNORE_PREFIX option can now also deal with a list of prefixes. + @verbatim ... @endverbatim blocks did not work. + new option SHOW_INCLUDE_FILES, which can be set to NO to turn of the list of include files that is generated for each documented file. + new option STRIP_CODE_COMMENTS, which can be set to NO to keep any special comment blocks in the generated code fragments.
Diffstat (limited to 'src/code.l')
-rw-r--r--src/code.l120
1 files changed, 74 insertions, 46 deletions
diff --git a/src/code.l b/src/code.l
index 39750ce..c0c26af 100644
--- a/src/code.l
+++ b/src/code.l
@@ -885,64 +885,92 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
<RemoveSpecialCComment>"//"|"/*"
<RemoveSpecialCComment>\n { g_yyLineNr++; }
<RemoveSpecialCComment>.
- /*
-<SkipSpecialComment>"//"
-<SkipSpecialComment>[ \t]*"* /" {
- BEGIN( lastDContext ) ;
- }
-<SkipSpecialComment>[ \t]*"* /"[ \t\n]*"\n"/"/ *" {
- //g_code->codify("\n");
- //QCString lineText=yytext;
- //g_yyLineNr+=lineText.contains('\n');
- BEGIN( lastDContext ) ;
- }
-<SkipSpecialComment>.
-<SkipSpecialComment>\n {
- codifyLines(yytext);
- }
-<SkipSpecialCxxComment>.* /\n {
- codifyLines(yytext);
- BEGIN( lastDContext ) ;
- }
-<SkipSpecialCxxComment>.
-<SkipSpecialCxxComment>\n {
- codifyLines(yytext);
- }
- */
<*>\n({B}*"//"[!/][^\n]*\n)* { // remove special one-line comment
- g_yyLineNr+=((QCString)yytext).contains('\n');
- g_code->endCodeLine();
- if (g_yyLineNr<g_inputLines)
- {
- startCodeLine(*g_code);
- }
+ if (Config::stripCommentsFlag)
+ {
+ g_yyLineNr+=((QCString)yytext).contains('\n');
+ g_code->endCodeLine();
+ if (g_yyLineNr<g_inputLines)
+ {
+ startCodeLine(*g_code);
+ }
+ }
+ else
+ {
+ codifyLines(yytext);
+ }
}
<*>^{B}*"//"[!/][^\n]*\n { // remove special one-line comment
- g_yyLineNr++;
- g_code->endCodeLine();
- if (g_yyLineNr<g_inputLines)
- {
- startCodeLine(*g_code);
- }
+ if (Config::stripCommentsFlag)
+ {
+ g_yyLineNr++;
+ g_code->endCodeLine();
+ if (g_yyLineNr<g_inputLines)
+ {
+ startCodeLine(*g_code);
+ }
+ }
+ else
+ {
+ codifyLines(yytext);
+ }
}
<*>"//"[!/][^\n]*\n { // strip special one-line comment
- char c[2]; c[0]='\n'; c[1]=0;
- codifyLines(c);
+ if (Config::stripCommentsFlag)
+ {
+ char c[2]; c[0]='\n'; c[1]=0;
+ codifyLines(c);
+ }
+ else
+ {
+ codifyLines(yytext);
+ }
}
<*>\n{B}*"/*"[!*]/[^/*] {
- g_lastSpecialCContext = YY_START;
- g_yyLineNr++;
- BEGIN(RemoveSpecialCComment);
+ if (Config::stripCommentsFlag)
+ {
+ g_lastSpecialCContext = YY_START;
+ g_yyLineNr++;
+ BEGIN(RemoveSpecialCComment);
+ }
+ else
+ {
+ g_lastCContext = YY_START ;
+ codifyLines(yytext);
+ BEGIN(SkipComment);
+ }
}
<*>^{B}*"/*"[!*]/[^/*] { // special C comment block at a new line
- g_lastSpecialCContext = YY_START;
- BEGIN(RemoveSpecialCComment);
+ if (Config::stripCommentsFlag)
+ {
+ g_lastSpecialCContext = YY_START;
+ BEGIN(RemoveSpecialCComment);
+ }
+ else
+ {
+ g_lastCContext = YY_START ;
+ g_code->codify(yytext);
+ BEGIN(SkipComment);
+ }
}
<*>"/*"[!*]/[^/*] { // special C comment block half way a line
- g_lastSpecialCContext = YY_START;
- BEGIN(RemoveSpecialCComment);
+ if (Config::stripCommentsFlag)
+ {
+ g_lastSpecialCContext = YY_START;
+ BEGIN(RemoveSpecialCComment);
+ }
+ else
+ {
+ g_lastCContext = YY_START ;
+ g_code->codify(yytext);
+ BEGIN(SkipComment);
+ }
+ }
+<*>"/*"("!"?)"*/" { if (!Config::stripCommentsFlag)
+ {
+ g_code->codify(yytext);
+ }
}
-<*>"/*"("!"?)"*/" {}
<*>"/*" {
g_code->codify(yytext);
g_lastCContext = YY_START ;