summaryrefslogtreecommitdiffstats
path: root/src/vhdlscanner.l
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2009-05-22 11:07:08 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2009-05-22 11:07:08 (GMT)
commit7a3de4c3c8aac25c38b6e93bb0927de40cd1c650 (patch)
tree9568dad93df55e8726251e5bdb1f2d8c00bdde93 /src/vhdlscanner.l
parentc34e05f1d2d21630290f758aafe6d151825d0ce8 (diff)
downloadDoxygen-7a3de4c3c8aac25c38b6e93bb0927de40cd1c650.zip
Doxygen-7a3de4c3c8aac25c38b6e93bb0927de40cd1c650.tar.gz
Doxygen-7a3de4c3c8aac25c38b6e93bb0927de40cd1c650.tar.bz2
Release-1.5.9-20090522
Diffstat (limited to 'src/vhdlscanner.l')
-rw-r--r--src/vhdlscanner.l15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l
index 073e0a1..2acd2dc 100644
--- a/src/vhdlscanner.l
+++ b/src/vhdlscanner.l
@@ -400,7 +400,7 @@ static void parseProcessProto()
static void parseFunctionProto()
{
- QCString name,ret,qcs;
+ QCString name,ret,qcs,temp;
bool sem=FALSE;
QList<Argument> ql;
ql.setAutoDelete(TRUE);
@@ -409,11 +409,18 @@ static void parseFunctionProto()
return; // function without a prototype
if (qcs.contains("function",FALSE)==0 && qcs.contains("procedure",FALSE)==0)
return;
- while (qcs.stripPrefix(" "));
- if (qcs.stripPrefix("impure"))
+ qcs=qcs.stripWhiteSpace();
+ temp=qcs.lower();
+ if (temp.stripPrefix("impure"))
+ {
current->exception="impure";
- else if (qcs.stripPrefix("pure"))
+ qcs=qcs.remove(0,6);
+ }
+ else if (temp.stripPrefix("pure"))
+ {
current->exception="pure";
+ qcs=qcs.remove(0,4);
+ }
VhdlDocGen::parseFuncProto(qcs.data(),ql,name,ret);
//printf("parseFuncProto(%s)=%s,%s\n",qcs.data(),name.data(),ret.data());