GNOME Bugzilla – Bug 593680
Fortran: Not identifying sets of round brackets in dimension statement
Last modified: 2012-11-18 11:11:37 UTC
I have the following subroutine: SUBROUTINE fie(xx,xxb) IMPLICIT NONE INTEGER, PARAMETER :: A = 7 INTEGER, PARAMETER :: B = 3 DOUBLE PRECISION :: xx((A + 5) * B) DOUBLE PRECISION :: xxb(((A) + 5) * B) END The result in Doxygen is: subroutine fie (DOUBLE PRECISION,dimension((a + 5) xx, DOUBLE PRECISION,dimension(((a) xxb ) Instead of: subroutine fie (DOUBLE PRECISION,dimension((a + 5) * b) xx, DOUBLE PRECISION,dimension(((a) + 5) xxb ) replacing in fortranscanner.l the line: ARGS {BS}("("[^)]*")") by: NRB [^()]* RBWRD "("{NRB}("("{NRB}")"|")") WRD {NRB}{RBWRD} ARGS {BS}"("{WRD}*{NRB}")" the output is OK. I don't know if I have to change something in fortrancode.l as well? This implementation is for a set of with a maximum of 2 levels of round brackets in the (a.o.) dimension statement. I have not been able to make a recursive version for it (I think RBWRD "("{NRB}({RBWRD}|")") might work), but I get the error message: ../lib/libdoxygen.a(doxygen.o):doxygen.cpp:(.text+0x20123): undefined reference to `vtable for FortranLanguageScanner'
Dupe of #565715.
Bug 565715 handles about character string, this bug about double precision. I've added a patch to Bug 565715, fixing problems in this bugand some more. *** This bug has been marked as a duplicate of bug 565715 ***
Works with fix of bug565715