diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config.l | 5 | ||||
-rw-r--r-- | src/docparser.cpp | 6 | ||||
-rw-r--r-- | src/fortrancode.l | 2 | ||||
-rw-r--r-- | src/fortranscanner.l | 15 |
4 files changed, 20 insertions, 8 deletions
diff --git a/src/config.l b/src/config.l index 63a5b30..2a16905 100644 --- a/src/config.l +++ b/src/config.l @@ -242,7 +242,7 @@ QStrList &Config::getList(const char *fileName,int num,const char *name) const } else if (opt->kind()!=ConfigOption::O_List) { - config_err("%d<%d>: Internal error: Requested option %s not of list type!\n",fileName,num,name); + config_err("%s<%d>: Internal error: Requested option %s not of list type!\n",fileName,num,name); exit(1); } return *((ConfigList *)opt)->valueRef(); @@ -1077,7 +1077,7 @@ void Config::checkFileName(const char *optionName) (val=="no" || val=="false" || val=="0" || val=="none")) { config_err("file name expected for option %s, got %s instead. Ignoring...\n",optionName,s.data()); - s=""; // note tihe use of &s above: this will change the option value! + s=""; // note the use of &s above: this will change the option value! } } @@ -1763,6 +1763,7 @@ static QCString configFileToString(const char *name) if (!fileOpened) { config_err("cannot open file `%s' for reading\n",name); + exit(1); } return ""; } diff --git a/src/docparser.cpp b/src/docparser.cpp index 3588efd..c3963c9 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -5945,7 +5945,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta { if (Config_getBool("WARN_NO_PARAMDOC")) { - warn_doc_error(g_fileName,doctokenizerYYlineno,"empty 'name' attribute for <param> tag."); + warn_doc_error(g_fileName,doctokenizerYYlineno,"empty 'name' attribute for <param%s> tag.",tagId==XML_PARAM?"":"type"); } } else @@ -5957,7 +5957,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'name' attribute from <param> tag."); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'name' attribute from <param%s> tag.",tagId==XML_PARAM?"":"type"); } } break; @@ -5990,7 +5990,7 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'name' attribute from <exception> tag."); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Missing 'cref' attribute from <exception> tag."); } } break; diff --git a/src/fortrancode.l b/src/fortrancode.l index af1a82e..fb91a83 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -795,7 +795,7 @@ PREFIX (RECURSIVE{BS_}|IMPURE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,3}(RECURSIVE|I codifyLines(yytext); endFontClass(); } -<Start>"implicit"{BS}"none" { +<Start>"implicit"{BS}("none"|{TYPE_SPEC}) { startFontClass("keywordtype"); codifyLines(yytext); endFontClass(); diff --git a/src/fortranscanner.l b/src/fortranscanner.l index cbe13fd..bd1fe83 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -100,13 +100,14 @@ struct SymbolModifiers { bool pass; bool contiguous; bool volat; /* volatile is a reserverd name */ + bool value; /* volatile is a reserverd name */ QCString passVar; SymbolModifiers() : type(), returnName(), protection(NONE_P), direction(NONE_D), optional(FALSE), protect(FALSE), dimension(), allocatable(FALSE), external(FALSE), intrinsic(FALSE), parameter(FALSE), pointer(FALSE), target(FALSE), save(FALSE), deferred(FALSE), nonoverridable(FALSE), - nopass(FALSE), pass(FALSE), contiguous(FALSE), volat(FALSE), passVar() {} + nopass(FALSE), pass(FALSE), contiguous(FALSE), volat(FALSE), value(FALSE), passVar() {} SymbolModifiers& operator|=(const SymbolModifiers &mdfs); SymbolModifiers& operator|=(QCString mdfrString); @@ -259,7 +260,7 @@ 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}|TYPE{ARGS}|CLASS{ARGS}|PROCEDURE{ARGS}?) INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")" -ATTR_SPEC (EXTERNAL|ALLOCATABLE|DIMENSION{ARGS}|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|NOPASS|PASS{ARGS}?|DEFERRED|NON_OVERRIDABLE|CONTIGUOUS|VOLATILE) +ATTR_SPEC (EXTERNAL|ALLOCATABLE|DIMENSION{ARGS}|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PROTECTED|PRIVATE|PUBLIC|SAVE|TARGET|NOPASS|PASS{ARGS}?|DEFERRED|NON_OVERRIDABLE|CONTIGUOUS|VOLATILE|VALUE) ACCESS_SPEC (PRIVATE|PUBLIC) LANGUAGE_BIND_SPEC BIND{BS}"("{BS}C{BS}(,{BS}NAME{BS}"="{BS}"\""(.*)"\""{BS})?")" /* Assume that attribute statements are almost the same as attributes. */ @@ -1652,6 +1653,7 @@ SymbolModifiers& SymbolModifiers::operator|=(const SymbolModifiers &mdfs) passVar = mdfs.passVar; contiguous |= mdfs.contiguous; volat |= mdfs.volat; + value |= mdfs.value; return *this; } @@ -1738,6 +1740,10 @@ SymbolModifiers& SymbolModifiers::operator|=(QCString mdfString) { newMdf.volat = TRUE; } + else if (mdfString=="value") + { + newMdf.value = TRUE; + } else if (mdfString.contains("pass")) { newMdf.pass = TRUE; @@ -1902,6 +1908,11 @@ static QCString applyModifiers(QCString typeName, SymbolModifiers& mdfs) if (!typeName.isEmpty()) typeName += ", "; typeName += "volatile"; } + if (mdfs.value) + { + if (!typeName.isEmpty()) typeName += ", "; + typeName += "value"; + } return typeName; } |