fortran-src icon indicating copy to clipboard operation
fortran-src copied to clipboard

Interface specs interfering with intrinsic tag identification

Open ccotter opened this issue 3 years ago • 2 comments

      subroutine intrinsics_misidentified
          interface
            subroutine calc(len, max)
              implicit none
              integer*4 len
              integer*4 max
            end
          end interface

          character*10 c10
          integer*4 i,j
          i = len(c10) ! (ValVariable "len")
          i = max(i,j) ! (ValVariable "max")
      end

      subroutine intrinsics_correctly_identified
          character*10 c10
          integer*4 i,j
          i = len(c10) ! (ValIntrinsic "len")
          i = max(i,j) ! (ValIntrinsic "max")
      end

Passing this program through fortran-src -v f77l -a parse intrinsics_bug.f incorrectly classifies the function call names len and max as ValVariables instead of ValIntrinsics. It looks like the interface spec's parameter names are confusing the parser.

ccotter avatar Nov 05 '22 15:11 ccotter

Thanks! We will look into this.

dorchard avatar Jan 12 '23 16:01 dorchard

Looks like we might not support parsing interfaces in our Fortran 77 parser (or the fixed-form lexer).

raehik avatar Jan 12 '23 16:01 raehik