Kaydet (Commit) 194ef601 authored tarafından Alexander Eberspächer's avatar Alexander Eberspächer Kaydeden (comit) Colomban Wendling

Tagmanger: recognize Fortran procedure pointers as variables

Add a keyword for procedure pointers and treat declarations such as
'procedure(subprogram_to_point_to), pointer :: my_pointer' just like
declarations of a real or integer variable.
üst e4f82f28
...@@ -108,6 +108,7 @@ typedef enum eKeywordId { ...@@ -108,6 +108,7 @@ typedef enum eKeywordId {
KEYWORD_pointer, KEYWORD_pointer,
KEYWORD_precision, KEYWORD_precision,
KEYWORD_private, KEYWORD_private,
KEYWORD_procedure,
KEYWORD_program, KEYWORD_program,
KEYWORD_public, KEYWORD_public,
KEYWORD_pure, KEYWORD_pure,
...@@ -274,6 +275,7 @@ static const keywordDesc FortranKeywordTable [] = { ...@@ -274,6 +275,7 @@ static const keywordDesc FortranKeywordTable [] = {
{ "pointer", KEYWORD_pointer }, { "pointer", KEYWORD_pointer },
{ "precision", KEYWORD_precision }, { "precision", KEYWORD_precision },
{ "private", KEYWORD_private }, { "private", KEYWORD_private },
{ "procedure", KEYWORD_procedure },
{ "program", KEYWORD_program }, { "program", KEYWORD_program },
{ "public", KEYWORD_public }, { "public", KEYWORD_public },
{ "pure", KEYWORD_pure }, { "pure", KEYWORD_pure },
...@@ -1125,6 +1127,7 @@ static boolean isTypeSpec (tokenInfo *const token) ...@@ -1125,6 +1127,7 @@ static boolean isTypeSpec (tokenInfo *const token)
case KEYWORD_logical: case KEYWORD_logical:
case KEYWORD_record: case KEYWORD_record:
case KEYWORD_type: case KEYWORD_type:
case KEYWORD_procedure:
result = TRUE; result = TRUE;
break; break;
default: default:
...@@ -1187,6 +1190,7 @@ static void parseTypeSpec (tokenInfo *const token) ...@@ -1187,6 +1190,7 @@ static void parseTypeSpec (tokenInfo *const token)
case KEYWORD_integer: case KEYWORD_integer:
case KEYWORD_logical: case KEYWORD_logical:
case KEYWORD_real: case KEYWORD_real:
case KEYWORD_procedure:
readToken (token); readToken (token);
if (isType (token, TOKEN_PAREN_OPEN)) if (isType (token, TOKEN_PAREN_OPEN))
skipOverParens (token); /* skip kind-selector */ skipOverParens (token); /* skip kind-selector */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment