[geany/geany] d8954b: Fortran: add support for "len" and "kind" qualifiers

Colomban Wendling git-noreply at xxxxx
Sun Feb 23 19:13:36 UTC 2014


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Sun, 23 Feb 2014 19:13:36 UTC
Commit:      d8954bbf67d575883a3fb3687e776cb92793d88c
             https://github.com/geany/geany/commit/d8954bbf67d575883a3fb3687e776cb92793d88c

Log Message:
-----------
Fortran: add support for "len" and "kind" qualifiers

Test cases contributed by Adam Hirst, thanks.


Modified Paths:
--------------
    tagmanager/ctags/fortran.c
    tests/ctags/Makefile.am
    tests/ctags/members.f90
    tests/ctags/members.f90.tags
    tests/ctags/qualified_types.f90
    tests/ctags/qualified_types.f90.tags

Modified: tagmanager/ctags/fortran.c
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -100,6 +100,8 @@
 	KEYWORD_intent,
 	KEYWORD_interface,
 	KEYWORD_intrinsic,
+	KEYWORD_kind,
+	KEYWORD_len,
 	KEYWORD_logical,
 	KEYWORD_map,
 	KEYWORD_module,
@@ -280,6 +282,8 @@
 	{ "intent",         KEYWORD_intent       },
 	{ "interface",      KEYWORD_interface    },
 	{ "intrinsic",      KEYWORD_intrinsic    },
+	{ "kind",           KEYWORD_kind         },
+	{ "len",            KEYWORD_len          },
 	{ "logical",        KEYWORD_logical      },
 	{ "map",            KEYWORD_map          },
 	{ "module",         KEYWORD_module       },
@@ -1331,6 +1335,8 @@ static void parseQualifierSpecList (tokenInfo *const token)
 			case KEYWORD_allocatable:
 			case KEYWORD_external:
 			case KEYWORD_intrinsic:
+			case KEYWORD_kind:
+			case KEYWORD_len:
 			case KEYWORD_optional:
 			case KEYWORD_private:
 			case KEYWORD_pointer:


Modified: tests/ctags/Makefile.am
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -179,6 +179,7 @@ test_sources = \
 	matlab_backtracking.m			\
 	matlab_test.m					\
 	maze.erl						\
+	members.f90						\
 	misc_types.f90					\
 	misc_types.f					\
 	mode.php						\
@@ -202,6 +203,7 @@ test_sources = \
 	prototype.h						\
 	pure_elem.f95					\
 	py_constructor_arglist.py		\
+	qualified_types.f90				\
 	random.sql						\
 	readlob.sql						\
 	readlong.sql					\


Modified: tests/ctags/members.f90
19 files changed, 19 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,19 @@
+module Members
+  implicit none
+
+  type HasMembers
+    ! a "derived type" in Fortran is analagous to a "class" in other languages
+    integer, kind :: kind_member
+    integer, len  :: len_member
+    integer       :: member
+  contains
+    procedure :: MyMethod
+  end type HasMembers
+
+contains
+
+  subroutine MySubroutine(arg)
+  ! ...
+  end subroutine MySubroutine
+
+end module Members


Modified: tests/ctags/members.f90.tags
8 files changed, 8 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,8 @@
+# format=tagmanager
+HasMembersÌ1ÎMembersÖ0
+MembersÌ256Ö0
+MyMethodÌ64ÎHasMembersÖ0
+MySubroutineÌ128ÎMembersÖ0
+kind_memberÌ64ÎHasMembersÖ0
+len_memberÌ64ÎHasMembersÖ0
+memberÌ64ÎHasMembersÖ0


Modified: tests/ctags/qualified_types.f90
12 files changed, 12 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,12 @@
+module test
+  implicit none
+  type goodtype(p1, p2, p3, p4) ! the stuff in brackets after the name of the type shouldn't appear in the type's name
+                                ! this is already correctly handled, so that's fine
+    integer, kind     :: p1, p3 
+    integer, len      :: p2, p4 ! the question is whether or not these "kind" and "len"s should be shown as members
+    real(kind=p1)     :: c1
+    character(len=p2) :: c2
+    complex           :: c3(p3)
+    integer           :: c4 = p1
+contains
+end module test


Modified: tests/ctags/qualified_types.f90.tags
11 files changed, 11 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,11 @@
+# format=tagmanager
+c1フ64ホgoodtypeヨ0
+c2フ64ホgoodtypeヨ0
+c3フ64ホgoodtypeヨ0
+c4フ64ホgoodtypeヨ0
+goodtypeフ1ホtestヨ0
+p1フ64ホgoodtypeヨ0
+p2フ64ホgoodtypeヨ0
+p3フ64ホgoodtypeヨ0
+p4フ64ホgoodtypeヨ0
+testフ256ヨ0



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list