summaryrefslogtreecommitdiffstats
path: root/src/fortranscanner.l
diff options
context:
space:
mode:
authorOleg Batrashev <ogbash@gmail.com>2013-05-22 07:47:44 (GMT)
committerOleg Batrashev <ogbash@gmail.com>2013-05-22 07:47:44 (GMT)
commitbe4c107ab25c862469bab23897df2d7a7445c4a4 (patch)
treead33da7c6a6a0f3cfa5a06b5f5d9464bca3435ad /src/fortranscanner.l
parentf138b8f35df95e5b7ab1525b9c1349fbc315aa2e (diff)
downloadDoxygen-be4c107ab25c862469bab23897df2d7a7445c4a4.zip
Doxygen-be4c107ab25c862469bab23897df2d7a7445c4a4.tar.gz
Doxygen-be4c107ab25c862469bab23897df2d7a7445c4a4.tar.bz2
Add scopes to Fortran prototype name parsing.
Diffstat (limited to 'src/fortranscanner.l')
-rw-r--r--src/fortranscanner.l10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/fortranscanner.l b/src/fortranscanner.l
index 66a6f6e..278367c 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -266,6 +266,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
CONTAINS CONTAINS
PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTAL)?
+SCOPENAME ({ID}{BS}"::"{BS})*
%option noyywrap
%option stack
@@ -1110,15 +1111,16 @@ private {
<Prototype>{BS}{SUBPROG}{BS_} {
BEGIN(PrototypeSubprog);
}
-<PrototypeSubprog>{ID}{BS} { current->name = yytext;
+<Prototype,PrototypeSubprog>{BS}{SCOPENAME}?{BS}{ID} {
+ current->name = QCString(yytext).lower();
current->name.stripWhiteSpace();
BEGIN(PrototypeArgs);
- }
+ }
<PrototypeArgs>{
"("|")"|","|{BS_} { current->args += yytext; }
{ID} { current->args += yytext;
Argument *a = new Argument;
- a->name = yytext;
+ a->name = QCString(yytext).lower();
current->argList->append(a);
}
}
@@ -2331,7 +2333,7 @@ void FortranLanguageScanner::resetCodeParserState()
void FortranLanguageScanner::parsePrototype(const char *text)
{
- QCString buffer = QCString(text).lower();
+ QCString buffer = QCString(text);
pushBuffer(buffer);
parsingPrototype = TRUE;
BEGIN(Prototype);