Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#235 Fortran: ctags does not handle =>null() correctly

open
None
5
2008-12-13
2008-08-11
Willem Vermin
No

Running ctags on the example fortran95 program attached, there is no reference in the tags file for variable 'y'.

Indeed, it seems that ctags ignores everything that comes after '=> null)()'

Contents of tags file:

!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.7 //
a t.f90 /^real/;" v program:p
p t.f90 /^pr/;" p
x t.f90 /^real :: x$/;" v program:p

Discussion

  • Elliott Hughes
    Elliott Hughes
    2008-12-13

    (not a patch.)

     
  • Elliott Hughes
    Elliott Hughes
    2008-12-13

    • assigned_to: nobody --> elliotth
     
  • Elliott Hughes
    Elliott Hughes
    2008-12-13

    the attached file (t.f) contains only the following:

    program t
    print *,'hello'
    end

    did you attach the wrong file?

     
  • Elliott Hughes
    Elliott Hughes
    2008-12-13

    the attached file (t.f) contains only the following:

    program t
    print *,'hello'
    end

    did you attach the wrong file?

     
  • Elliott Hughes
    Elliott Hughes
    2008-12-13

    the attached file (t.f) contains only the following:

    program t
    print *,'hello'
    end

    did you attach the wrong file?

     
  • Willem Vermin
    Willem Vermin
    2008-12-15

    f90 example

     
    Attachments
  • Willem Vermin
    Willem Vermin
    2008-12-15

    Sorry, indeed, I attached the wrong file, I attached now a better one.

    The ctags command I used was:

    ctags --Fortran-kinds=+Lvi t.f90
    File Added: t.f90

     
  • Willem Vermin
    Willem Vermin
    2008-12-15

    The new example is slightly different from the previous one, here is the output of

    ctags --Fortran-kinds=+Lvi t.f90

    !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
    !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
    !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
    !_TAG_PROGRAM_NAME Exuberant Ctags //
    !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
    !_TAG_PROGRAM_VERSION 5.7 //
    one t.f90 /^ module one$/;" m
    x t.f90 /^ real x$/;" v module:one
    y t.f90 /^ integer, dimension(:), pointer :: y /;" v module:one

    In this case, after the declaration of y (using the '=> NULL()' construct, the declaration of 'z' is ignored.

     
  • Elliott Hughes
    Elliott Hughes
    2008-12-16

    for those of us who don't know fortran, can you provide a link to some documentation about => and what can come after it?

     
  • Hendrik Merx
    Hendrik Merx
    2009-03-27

    Change fortran.c:1337 from

    else if (strcmp (vStringValue (token->string), "=") == 0)

    to

    else if (strcmp (vStringValue (token->string), "=") == 0
    || strcmp (vStringValue (token->string), "=>") == 0) .

    That should fix it.