diff options
Diffstat (limited to 'src/doxytag.l')
-rw-r--r-- | src/doxytag.l | 100 |
1 files changed, 59 insertions, 41 deletions
diff --git a/src/doxytag.l b/src/doxytag.l index b9cf479..8fcc88e 100644 --- a/src/doxytag.l +++ b/src/doxytag.l @@ -193,9 +193,10 @@ QCString unhtmlify(const char *str) if (c!='&') { result+=c; p++; } else { - if (strncmp(p,"&",5)==0) { result+='&'; p+=5; } - else if (strncmp(p,"<",4)==0) { result+='<'; p+=4; } - else if (strncmp(p,">",4)==0) { result+='>'; p+=4; } + if (strncmp(p,"&",5)==0) { result+='&'; p+=5; } + else if (strncmp(p,"<",4)==0) { result+='<'; p+=4; } + else if (strncmp(p,">",4)==0) { result+='>'; p+=4; } + else if (strncmp(p,""",6)==0) { result+='"'; p+=4; } else /* should not happen */ { result+='&'; p++; } } } @@ -301,12 +302,13 @@ QCString unhtmlify(const char *str) } <Qt3ReadName>. <Qt3ReadArgs>[ \t]*"(" { - memberArgs+="("; + memberArgs+='('; } -<Qt3ReadArgs>"&" { memberArgs+="&"; } -<Qt3ReadArgs>"<" { memberArgs+="<"; } -<Qt3ReadArgs>">" { memberArgs+=">"; } -<Qt3ReadArgs>" " { memberArgs+=" "; } +<Qt3ReadArgs>"&" { memberArgs+='&'; } +<Qt3ReadArgs>"<" { memberArgs+='<'; } +<Qt3ReadArgs>">" { memberArgs+='>'; } +<Qt3ReadArgs>""" { memberArgs+='"'; } +<Qt3ReadArgs>" " { memberArgs+=' '; } <Qt3ReadArgs>"</h3>" { addMember(memberName,memberRef,memberArgs); memberName.resize(0); @@ -316,7 +318,7 @@ QCString unhtmlify(const char *str) } <Qt3ReadArgs>"<"[^>]+">" <Qt3ReadArgs>")" { - memberArgs+=")"; + memberArgs+=')'; addMember(memberName,memberRef,memberArgs); memberName.resize(0); memberRef.resize(0); @@ -329,39 +331,42 @@ QCString unhtmlify(const char *str) /* --------------------------------------------------- */ /* Doxygen class extraction rules */ -<Start>"<!-- doxytag: class=<" { +<Start>"<!-- doxytag: class=\"" { className.resize(0); BEGIN(DoxClassName); } -<DoxClassName>[^&>]+ { +<DoxClassName>[^&"]+ { className=yytext; addClass(className); } <DoxClassName>"<" { - className+="<"; + className+='<'; } <DoxClassName>">" { - className+=">"; + className+='>'; } <DoxClassName>"&" { - className+="&"; + className+='&'; + } +<DoxClassName>""" { + className+='"'; } <DoxClassName>. { className+=*yytext; } -<DoxClassName>"> -->" { +<DoxClassName>"\" -->" { BEGIN(Start); } /* --------------------------------------------------- */ /* Doxygen inheritance extraction rules */ -<Start>"<!-- doxytag: inherits=<" { +<Start>"<!-- doxytag: inherits=\"" { bases.clear(); baseName.resize(0); BEGIN(DoxClassBase); } -<DoxClassBase>[^&,>]+ { +<DoxClassBase>[^&,"]+ { baseName+=yytext; } <DoxClassBase>"," { @@ -369,18 +374,21 @@ QCString unhtmlify(const char *str) baseName.resize(0); } <DoxClassBase>"<" { - baseName+="<"; + baseName+='<'; } <DoxClassBase>">" { - baseName+=">"; + baseName+='>'; } <DoxClassBase>"&" { - baseName+="&"; + baseName+='&'; + } +<DoxClassBase>""" { + baseName+='"'; } <DoxClassBase>. { baseName+=*yytext; } -<DoxClassBase>"> -->" { +<DoxClassBase>"\" -->" { bases.append(baseName); baseName.resize(0); addBases(className); @@ -390,65 +398,74 @@ QCString unhtmlify(const char *str) /* --------------------------------------------------- */ /* Doxygen member extraction rules */ -<Start>"<!-- doxytag: member=<" { +<Start>"<!-- doxytag: member=\"" { memberName.resize(0); BEGIN(DoxReadName); } -<DoxReadName>[^&>]+ { +<DoxReadName>[^&"]+ { memberName+=yytext; } <DoxReadName>"<" { - memberName+="<"; + memberName+='<'; } <DoxReadName>">" { - memberName+=">"; + memberName+='>'; } <DoxReadName>"&" { - memberName+="&"; + memberName+='&'; + } +<DoxReadName>""" { + memberName+='"'; } <DoxReadName>. { memberName+=*yytext; } -<DoxReadName>"> ref=<" { +<DoxReadName>"\" ref=\"" { memberName=memberName.mid(memberName.find("::")+2); memberRef.resize(0); BEGIN(DoxReadAnchor); } -<DoxReadAnchor>[^&>]+ { +<DoxReadAnchor>[^&"]+ { memberRef+=yytext; } <DoxReadAnchor>"<" { - memberRef+="<"; + memberRef+='<'; } <DoxReadAnchor>">" { - memberRef+=">"; + memberRef+='>'; } <DoxReadAnchor>"&" { - memberRef+="&"; + memberRef+='&'; + } +<DoxReadAnchor>""" { + memberRef+='"'; } <DoxReadAnchor>. { memberRef+=*yytext; } -<DoxReadAnchor>"> args=<" { +<DoxReadAnchor>"\" args=\"" { memberArgs.resize(0); BEGIN(DoxReadArgs); } -<DoxReadArgs>[^&>]+ { +<DoxReadArgs>[^&"]+ { memberArgs+=yytext; } <DoxReadArgs>"<" { - memberArgs+="<"; + memberArgs+='<'; } <DoxReadArgs>">" { - memberArgs+=">"; + memberArgs+='>'; } <DoxReadArgs>"&" { - memberArgs+="&"; + memberArgs+='&'; + } +<DoxReadArgs>""" { + memberArgs+='"'; } <DoxReadArgs>. { memberArgs+=*yytext; } -<DoxReadArgs>"> -->" { +<DoxReadArgs>"\" -->" { addMember(memberName,memberRef,memberArgs); memberName.resize(0); memberRef.resize(0); @@ -613,10 +630,11 @@ QCString unhtmlify(const char *str) else BEGIN( Start ); } -<ReadArgs>"&" { memberArgs+="&"; } -<ReadArgs>"<" { memberArgs+="<"; } -<ReadArgs>">" { memberArgs+=">"; } -<ReadArgs>" " { memberArgs+=" "; } +<ReadArgs>"&" { memberArgs+='&'; } +<ReadArgs>"<" { memberArgs+='<'; } +<ReadArgs>">" { memberArgs+='>'; } +<ReadArgs>""" { memberArgs+='"'; } +<ReadArgs>" " { memberArgs+=' '; } /* <ReadArgs>[{}] { // handle enums memberArgs.resize(0); |