diff --git a/Units/parser-fortran.r/fortran-protected.d/expected.tags b/Units/parser-fortran.r/fortran-protected.d/expected.tags new file mode 100644 index 0000000000..c755318d46 --- /dev/null +++ b/Units/parser-fortran.r/fortran-protected.d/expected.tags @@ -0,0 +1,2 @@ +i input.f90 /^ in/;" v module:test_implementation +test_implementation input.f90 /^module test_implementation$/;" m diff --git a/Units/parser-fortran.r/fortran-protected.d/input.f90 b/Units/parser-fortran.r/fortran-protected.d/input.f90 new file mode 100644 index 0000000000..0465216f36 --- /dev/null +++ b/Units/parser-fortran.r/fortran-protected.d/input.f90 @@ -0,0 +1,3 @@ +module test_implementation + integer, public, protected :: i +end module test_implementation diff --git a/parsers/fortran.c b/parsers/fortran.c index 12ad0404c2..27433d15cf 100644 --- a/parsers/fortran.c +++ b/parsers/fortran.c @@ -118,6 +118,7 @@ enum eKeywordId { KEYWORD_private, KEYWORD_procedure, KEYWORD_program, + KEYWORD_protected, KEYWORD_public, KEYWORD_pure, KEYWORD_real, @@ -317,6 +318,7 @@ static const keywordTable FortranKeywordTable [] = { { "private", KEYWORD_private }, { "procedure", KEYWORD_procedure }, { "program", KEYWORD_program }, + { "protected", KEYWORD_protected }, { "public", KEYWORD_public }, { "pure", KEYWORD_pure }, { "real", KEYWORD_real }, @@ -1428,6 +1430,7 @@ static tokenInfo *parseQualifierSpecList (tokenInfo *const token) case KEYWORD_optional: case KEYWORD_private: case KEYWORD_pointer: + case KEYWORD_protected: case KEYWORD_public: case KEYWORD_save: case KEYWORD_target: @@ -1823,6 +1826,7 @@ static bool parseSpecificationStmt (tokenInfo *const token) case KEYWORD_optional: case KEYWORD_pointer: case KEYWORD_private: + case KEYWORD_protected: case KEYWORD_public: case KEYWORD_save: case KEYWORD_target: