diff options
author | Chris Hansen <hansec@uw.edu> | 2014-05-05 21:44:35 (GMT) |
---|---|---|
committer | Chris Hansen <hansec@uw.edu> | 2014-05-05 21:44:35 (GMT) |
commit | 4cbfaa8372beff4bd7070dd840924af8d96b0772 (patch) | |
tree | 0f016baf984e12d71ed54423c041cee9b762ded4 /src/fortrancode.l | |
parent | e9b40bf029d8315467a69c3a97b83624293cd5b6 (diff) | |
download | Doxygen-4cbfaa8372beff4bd7070dd840924af8d96b0772.zip Doxygen-4cbfaa8372beff4bd7070dd840924af8d96b0772.tar.gz Doxygen-4cbfaa8372beff4bd7070dd840924af8d96b0772.tar.bz2 |
Add FORTRAN 2003 keywords and commands
Diffstat (limited to 'src/fortrancode.l')
-rw-r--r-- | src/fortrancode.l | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/fortrancode.l b/src/fortrancode.l index 2fbde73..b349f9c 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -691,12 +691,12 @@ CHAR (CHARACTER{ARGS}?|CHARACTER{BS}"*"({BS}[0-9]+|{ARGS})) TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS}COMPLEX|DOUBLE{BS}PRECISION|{CHAR}) INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")" -ATTR_SPEC (IMPLICIT|ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|RECURSIVE|PURE|IMPURE|ELEMENTAL) +ATTR_SPEC (IMPLICIT|ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|RECURSIVE|PURE|IMPURE|ELEMENTAL|VALUE|NOPASS|DEFERRED) ACCESS_SPEC (PROTECTED|PRIVATE|PUBLIC) /* Assume that attribute statements are almost the same as attributes. */ ATTR_STMT {ATTR_SPEC}|DIMENSION FLOW (DO|SELECT|CASE|SELECTCASE|WHERE|IF|THEN|ELSE|WHILE|FORALL|ELSEWHERE|ELSEIF|RETURN|CONTINUE|EXIT) -COMMANDS (FORMAT|CONTAINS|MODULE{BS_}PROCEDURE|WRITE|READ|ALLOCATE|ALLOCATED|ASSOCIATED|DEALLOCATE|SIZE|INQUIRE|OPEN|CLOSE|DATA|COMMON) +COMMANDS (FORMAT|CONTAINS|MODULE{BS_}PROCEDURE|WRITE|READ|ALLOCATE|ALLOCATED|ASSOCIATED|PRESENT|DEALLOCATE|NULLIFY|SIZE|INQUIRE|OPEN|CLOSE|FLUSH|DATA|COMMON) IGNORE (CALL) PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|IMPURE|PURE|ELEMENTAL)? @@ -760,6 +760,11 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I codifyLines(yytext); endFontClass(); } +<Start>^{BS}"namelist"/[//] { // Namelist specification + startFontClass("keywordtype"); + codifyLines(yytext); + endFontClass(); + } /*-------- use statement -------------------------------------------*/ <Start>"use"{BS_} { startFontClass("keywordtype"); @@ -805,7 +810,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I } /*-------- fortran module -----------------------------------------*/ -<Start>("block"{BS}"data"|"program"|"module"|"type"|"interface")/{BS_}|({COMMA}{ACCESS_SPEC})|\n { // +<Start>("block"{BS}"data"|"program"|"module"|"type"|"interface")/{BS_}|({COMMA}({ACCESS_SPEC}|ABSTRACT|EXTENDS))|\n { // startScope(); startFontClass("keyword"); codifyLines(yytext); @@ -823,6 +828,11 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I generateLink(*g_code,yytext); yy_pop_state(); } +<ClassName>({ACCESS_SPEC}|ABSTRACT|EXTENDS)/[,:( ] { //| variable deklaration + startFontClass("keyword"); + g_code->codify(yytext); + endFontClass(); + } <ClassName>\n { // interface may be without name yy_pop_state(); YY_FTN_REJECT; |