--TESTSETUP gprbuild -ws -Pdummy -q -cargs:C -fsyntax-only -fdump-xref -cargs:C++ -fsyntax-only -fdump-xref
--TESTSETUP gcc -c a.adb
--TESTSETUP gcc -c b.adb
--TEST -Pdummy.gpr

DOC doc_before:a.ads:5:8
#integer type declared at a.ads:5:8
#
#Some documentation for Doc_Before
#On multiple lines of course
#

DOC doc_after:a.ads:7:8
#integer type declared at a.ads:7:8
#
#Some documentation for Doc_After
#Still on multiple lines
#
#Even multiple blocks of documentation
#

DOC doc_both:a.ads:15:8
#integer type declared at a.ads:15:8
#
#Some documentation for Doc_Both
#Why not on multiple lines ?
#

DOC no_doc:a.ads:18:8
#integer type declared at a.ads:18:8
#

DOC subprogram_before:a.ads:23:13
#procedure declared at a.ads:23:13
#
#Some documentation for a subprogram_before
#On multiple lines for a change
#Parameters
#   A : in Integer
#   B : in Integer
#

DOC subprogram_after:a.ads:27:13
#procedure declared at a.ads:27:13
#
#Some documentation for a subprogram_after
#On multiple lines for a change
#Parameters
#   A : in Integer
#   B : in Integer
#

DOC subprogram_no_doc:a.ads:33:13
#procedure declared at a.ads:33:13
#

DOC doc_on_body:a.ads:35:13
#procedure declared at a.ads:35:13
#
#Documentation for Doc_On_Body
#multiple lines
#

DOC cpp_before:c.cc:4:5
#integer declared at c.cc:4:5
#
#A c++ comment (1)
#on multiple lines
#Type
#   int
#

DOC cpp_after:c.cc:6:5
#integer declared at c.cc:6:5
#
#A c++ comment (2)
#on multiple lines
#Type
#   int
#

DOC c_before1:c.cc:12:5
#integer declared at c.cc:12:5
#
#A c comment (3)
#also on multiple lines
#Type
#   int
#

DOC c_before2:c.cc:17:5
#integer declared at c.cc:17:5
#
#A c comment (4)
#also on multiple lines
#Type
#   int
#

DOC c_after1:c.cc:19:5
#integer declared at c.cc:19:5
#
#A c comment (5)
#also on multiple lines
#Type
#   int
#

DOC c_after2:c.cc:23:5
#integer declared at c.cc:23:5
#
#A c comment (6)
#also on multiple lines
#Type
#   int
#

DOC c_before3:c.cc:30:5
#integer declared at c.cc:30:5
#
#A c comment (7) on a single line
#Type
#   int
#

DOC c_before4:c.cc:33:5
#integer declared at c.cc:33:5
#
#A c comment (8) on a single line
#Type
#   int
#

DOC foo:c.cc:35
#function declared at c.cc:35:5
#
#Parameters
#   a : in int
#Returns
#   int
#
#Mangled name: _Z3fooi
#

DOC foo:c.cc:36
#function declared at c.cc:36:7
#
#Parameters
#   a : in Float
#Returns
#   Float
#
#Mangled name: _Z3foof
#

DOC CPP_before:d.c:4:5
#integer declared at d.c:4:5
#
#A c++ comment (1)
#on multiple lines
#Type
#   int
#

DOC CPP_after:d.c:6:5
#integer declared at d.c:6:5
#
#A c++ comment (2)
#on multiple lines
#Type
#   int
#

DOC C_before1:d.c:12:5
#integer declared at d.c:12:5
#
#A c comment (3)
#also on multiple lines
#Type
#   int
#

DOC C_before2:d.c:17:5
#integer declared at d.c:17:5
#
#A c comment (4)
#also on multiple lines
#Type
#   int
#

DOC C_after1:d.c:19:5
#integer declared at d.c:19:5
#
#A c comment (5)
#also on multiple lines
#Type
#   int
#

DOC C_after2:d.c:23:5
#integer declared at d.c:23:5
#
#A c comment (6)
#also on multiple lines
#Type
#   int
#

DOC C_before3:d.c:30:5
#integer declared at d.c:30:5
#
#A c comment (7) on a single line
#Type
#   int
#

DOC C_before4:d.c:33:5
#integer declared at d.c:33:5
#
#A c comment (8) on a single line
#Type
#   int
#

DOC b:b.ads:3:9
#package declared at b.ads:3:9
#
#Some documentation before a package
#

DOC doc_before:b.ads:6:8
#integer type declared at b.ads:6:8
#
#Some single line documentation before a type
#

DOC doc_after:b.ads:8:8
#integer type declared at b.ads:8:8
#
#Some single line documentation after a type
#

DOC subprogram_before:b.ads:12:13
#procedure declared at b.ads:12:13
#
#Some single line documentation before a subprogram
#Parameters
#   A : in Integer
#   B : in Integer
#

DOC subprogram_after:b.ads:16:12
#function declared at b.ads:16:12
#
#Some single line documentation after a subprogram
#Parameters
#   A : in Integer
#   B : in Integer
#Returns
#   B.Doc_Before
#

