diff options
author | Chris Hansen <hansec@uw.edu> | 2014-12-21 01:23:04 (GMT) |
---|---|---|
committer | Chris Hansen <hansec@uw.edu> | 2014-12-21 01:23:04 (GMT) |
commit | f704342b42b19a857ec42438542221836576287a (patch) | |
tree | 87429ce77950e80f09e420d48b4aa1a112e97668 | |
parent | c09f84c27bd916342ca0e8fdcb5244cd902f8e09 (diff) | |
download | Doxygen-f704342b42b19a857ec42438542221836576287a.zip Doxygen-f704342b42b19a857ec42438542221836576287a.tar.gz Doxygen-f704342b42b19a857ec42438542221836576287a.tar.bz2 |
Supporting linking for methods bound to FORTRAN classes in source definitions
-rw-r--r-- | src/fortrancode.l | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/fortrancode.l b/src/fortrancode.l index 48e2845..51934cd 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -747,6 +747,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I %x UseOnly %x Import %x Declaration +%x DeclarationBinding %x DeclContLine %x Parameterlist %x String @@ -974,6 +975,14 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I generateLink(*g_code, yytext); } } +<Declaration>{BS}("=>"|"="){BS} { // Procedure binding + BEGIN(DeclarationBinding); + g_code->codify(yytext); + } +<DeclarationBinding>{ID} { // Type bound procedure link + generateLink(*g_code, yytext); + yy_pop_state(); + } <Declaration>[(] { // start of array specification bracketCount++; g_code->codify(yytext); @@ -984,7 +993,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I g_code->codify(yytext); } -<Declaration>"&" { // continuation line +<Declaration,DeclarationBinding>"&" { // continuation line g_code->codify(yytext); yy_push_state(YY_START); BEGIN(DeclContLine); @@ -995,7 +1004,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I yy_pop_state(); YY_FTN_RESET } -<Declaration>"\n" { // end declaration line +<Declaration,DeclarationBinding>"\n" { // end declaration line if (g_endComment) { g_endComment=FALSE; @@ -1039,7 +1048,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I } /*-------- comments ---------------------------------------------------*/ -<Start>\n?{BS}"!>"|"!<" { // start comment line or comment block +<Start,Declaration,DeclarationBinding>\n?{BS}"!>"|"!<" { // start comment line or comment block if (yytext[0] == '\n') { yy_old_start = 0; @@ -1052,7 +1061,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I BEGIN(DocBlock); docBlock=yytext; } -<Declaration>{BS}"!<" { // start comment line or comment block +<Declaration,DeclarationBinding>{BS}"!<" { // start comment line or comment block yy_push_state(YY_START); BEGIN(DocBlock); docBlock=yytext; |