summaryrefslogtreecommitdiffstats
path: root/src/code.l
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2004-04-27 19:44:46 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2004-04-27 19:44:46 (GMT)
commit08b4b96ea20ded173b851aeb452c5d3c98e08cc4 (patch)
tree73dfea63810e8b2a57aee5b37ecd2f360c69f440 /src/code.l
parentf08c77a2ead21877f1cbd49a5b325ab7be0fc599 (diff)
downloadDoxygen-08b4b96ea20ded173b851aeb452c5d3c98e08cc4.zip
Doxygen-08b4b96ea20ded173b851aeb452c5d3c98e08cc4.tar.gz
Doxygen-08b4b96ea20ded173b851aeb452c5d3c98e08cc4.tar.bz2
Release-1.3.6-20040427
Diffstat (limited to 'src/code.l')
-rw-r--r--src/code.l29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/code.l b/src/code.l
index 5bf9935..366d007 100644
--- a/src/code.l
+++ b/src/code.l
@@ -1466,6 +1466,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
%x ObjCCall
%x ObjCMName
%x ObjCSkipStr
+%x OldStyleArgs
%%
@@ -1783,7 +1784,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
if (getResolvedClass(g_currentDefinition,g_sourceFileDef,g_curClassName)==0)
{
ClassDef *ncd=new ClassDef("<code>",1,
- g_curClassName,ClassDef::Class,0,0,TRUE);
+ g_curClassName,ClassDef::Class,0,0,FALSE);
g_codeClassSDict.append(g_curClassName,ncd);
// insert base classes.
char *s=g_curClassBases.first();
@@ -2280,7 +2281,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
g_code->codify(yytext);
endFontClass();
}
-<MemberCall2,FuncCall>{TYPEKW}/([^a-z_A-Z0-9]) {
+<MemberCall2,FuncCall,OldStyleArgs>{TYPEKW}/([^a-z_A-Z0-9]) {
addParmType();
g_parmName=yytext;
startFontClass("keywordtype");
@@ -2352,7 +2353,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
BEGIN( SkipInits );
}
}
-<CallEnd>({BN}"const"|"volatile")*{BN}*"{" {
+<CallEnd,OldStyleArgs>({BN}"const"|"volatile")*{BN}*"{" {
if (g_insideBody)
{
g_theVarContext.pushScope();
@@ -2401,6 +2402,28 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
g_type.resize(0); g_name.resize(0);
BEGIN( Body );
}
+<CallEnd>{ID} {
+ if (g_insideBody || !g_parmType.isEmpty())
+ {
+ REJECT;
+ }
+ // could be K&R style definition
+ addParmType();
+ g_parmName=yytext;
+ generateClassOrGlobalLink(*g_code,yytext,!g_insideBody);
+ BEGIN(OldStyleArgs);
+ }
+<OldStyleArgs>{ID} {
+ addParmType();
+ g_parmName=yytext;
+ generateClassOrGlobalLink(*g_code,yytext,!g_insideBody);
+ }
+<OldStyleArgs>[,;] {
+ g_code->codify(yytext);
+ g_theVarContext.addVariable(g_parmType,g_parmName);
+ if (*yytext==';') g_parmType.resize(0);
+ g_parmName.resize(0);
+ }
<CallEnd>. {
unput(*yytext);
if (!g_insideBody)