[gobject-introspection] tests: put <docblock> element inside a <parser> element



commit 1359fb6d7a76609ec07e22af9cd79ae604d23d20
Author: Dieter Verfaillie <dieterv optionexplicit be>
Date:   Wed May 15 17:31:14 2013 +0200

    tests: put <docblock> element inside a <parser> element
    
    The <parser> element can then hold both the expected
    <docblock> parse tree and the warning/error messages
    emitted by the parser in a future <messages> child
    element.

 .../annotationparser/gi/annotation_allow_none.xml  |   62 +-
 .../annotationparser/gi/annotation_array.xml       |  428 +++++-----
 .../annotationparser/gi/annotation_closure.xml     |   98 ++--
 .../annotationparser/gi/annotation_constructor.xml |   22 +-
 .../annotationparser/gi/annotation_destroy.xml     |   62 +-
 .../gi/annotation_element_type.xml                 |  184 +++--
 .../annotationparser/gi/annotation_foreign.xml     |   22 +-
 .../gi/annotation_get_value_func.xml               |   26 +-
 .../scanner/annotationparser/gi/annotation_in.xml  |   72 +-
 .../annotationparser/gi/annotation_in_out.xml      |   74 +-
 .../annotationparser/gi/annotation_method.xml      |   34 +-
 .../scanner/annotationparser/gi/annotation_out.xml |  160 ++--
 .../annotationparser/gi/annotation_ref_func.xml    |   26 +-
 .../annotationparser/gi/annotation_rename_to.xml   |   62 +-
 .../annotationparser/gi/annotation_scope.xml       |  148 ++--
 .../gi/annotation_set_value_func.xml               |   26 +-
 .../annotationparser/gi/annotation_skip.xml        |   52 +-
 .../annotationparser/gi/annotation_transfer.xml    |  228 +++---
 .../annotationparser/gi/annotation_type.xml        |  112 ++--
 .../annotationparser/gi/annotation_unref_func.xml  |   26 +-
 .../annotationparser/gi/annotation_value.xml       |   26 +-
 .../annotationparser/gi/annotation_virtual.xml     |   54 +-
 tests/scanner/annotationparser/gi/syntax.xml       |   54 +-
 .../annotationparser/gi/syntax_identifier.xml      |  340 ++++----
 .../annotationparser/gi/syntax_nested_tags.xml     |   38 +-
 .../gi/syntax_paragraph_breaks.xml                 |  112 ++--
 .../scanner/annotationparser/gi/tag_deprecated.xml |   48 +-
 .../annotationparser/gi/tag_description.xml        |   14 +-
 tests/scanner/annotationparser/gi/tag_returns.xml  |   78 +-
 tests/scanner/annotationparser/gi/tag_since.xml    |   48 +-
 .../scanner/annotationparser/gi/tag_stability.xml  |   96 ++-
 .../gtkdoc/annotations/tester.c.xml                |  504 ++++++------
 .../gtkdoc/annotations/tester.h.xml                |   36 +-
 .../annotationparser/gtkdoc/bugs/tester.c.xml      |  850 +++++++++++---------
 .../annotationparser/gtkdoc/bugs/tester.h.xml      |  840 +++++++++++---------
 .../annotationparser/gtkdoc/empty/tester.c.xml     |   52 +-
 .../annotationparser/gtkdoc/fail/tester.c.xml      |  186 +++--
 .../annotationparser/gtkdoc/fail/tester.h.xml      |  246 +++---
 .../annotationparser/gtkdoc/gobject/giface.c.xml   |  156 ++--
 .../annotationparser/gtkdoc/gobject/giface.h.xml   |  142 ++--
 .../annotationparser/gtkdoc/gobject/gobject.c.xml  |  412 +++++-----
 .../annotationparser/gtkdoc/gobject/gobject.h.xml  |  196 +++---
 .../annotationparser/gtkdoc/gobject/gtypes.c.xml   |   42 +-
 .../annotationparser/gtkdoc/gobject/gtypes.h.xml   |  102 ++--
 tests/scanner/annotationparser/test_parser.py      |    2 +-
 45 files changed, 3489 insertions(+), 3109 deletions(-)
---
diff --git a/tests/scanner/annotationparser/gi/annotation_allow_none.xml 
b/tests/scanner/annotationparser/gi/annotation_allow_none.xml
index 7398478..dba0f93 100644
--- a/tests/scanner/annotationparser/gi/annotation_allow_none.xml
+++ b/tests/scanner/annotationparser/gi/annotation_allow_none.xml
@@ -12,36 +12,38 @@
  *
  * Return value: an int
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_inout</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #GObject</description>
-      </parameter>
-      <parameter>
-        <name>inoutarg</name>
-        <annotations>
-          <annotation>
-            <name>inout</name>
-          </annotation>
-          <annotation>
-            <name>allow-none</name>
-          </annotation>
-        </annotations>
-        <description>This is an argument test</description>
-      </parameter>
-    </parameters>
-    <description>This is a test for out arguments</description>
-  <tags>
-    <tag>
-      <name>returns</name>
-      <description>an int</description>
-    </tag>
-  </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_inout</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #GObject</description>
+        </parameter>
+        <parameter>
+          <name>inoutarg</name>
+          <annotations>
+            <annotation>
+              <name>inout</name>
+            </annotation>
+            <annotation>
+              <name>allow-none</name>
+            </annotation>
+          </annotations>
+          <description>This is an argument test</description>
+        </parameter>
+      </parameters>
+      <description>This is a test for out arguments</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>an int</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_array.xml 
b/tests/scanner/annotationparser/gi/annotation_array.xml
index 2957900..062c772 100644
--- a/tests/scanner/annotationparser/gi/annotation_array.xml
+++ b/tests/scanner/annotationparser/gi/annotation_array.xml
@@ -9,23 +9,25 @@
  *
  * Test taking a zero-terminated array
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_compute_sum</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>nums</name>
-        <annotations>
-          <annotation>
-            <name>array</name>
-          </annotation>
-        </annotations>
-        <description>Sequence of numbers</description>
-      </parameter>
-    </parameters>
-    <description>Test taking a zero-terminated array</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_compute_sum</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>nums</name>
+          <annotations>
+            <annotation>
+              <name>array</name>
+            </annotation>
+          </annotations>
+          <description>Sequence of numbers</description>
+        </parameter>
+      </parameters>
+      <description>Test taking a zero-terminated array</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -38,41 +40,43 @@
  *
  * Test taking an array with length parameter
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_compute_sum_n</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>nums</name>
-        <annotations>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>length</name>
-                <value>n_nums</value>
-              </option>
-              <option>
-                <name>zero-terminated</name>
-                <value>0</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>Sequence of numbers that are zero-terminated</description>
-      </parameter>
-      <parameter>
-        <name>n_nums</name>
-        <description>Length of number array</description>
-      </parameter>
-    </parameters>
-    <description>Test taking an array with length parameter</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_compute_sum_n</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>nums</name>
+          <annotations>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>length</name>
+                  <value>n_nums</value>
+                </option>
+                <option>
+                  <name>zero-terminated</name>
+                  <value>0</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>Sequence of numbers that are zero-terminated</description>
+        </parameter>
+        <parameter>
+          <name>n_nums</name>
+          <description>Length of number array</description>
+        </parameter>
+      </parameters>
+      <description>Test taking an array with length parameter</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -85,41 +89,43 @@
  *
  * Test taking a zero-terminated array with length parameter
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_compute_sum_nz</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>nums</name>
-        <annotations>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>length</name>
-                <value>n_nums</value>
-              </option>
-              <option>
-                <name>zero-terminated</name>
-                <value>1</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>Sequence of numbers that are zero-terminated</description>
-      </parameter>
-      <parameter>
-        <name>n_nums</name>
-        <description>Length of number array</description>
-      </parameter>
-    </parameters>
-    <description>Test taking a zero-terminated array with length parameter</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_compute_sum_nz</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>nums</name>
+          <annotations>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>length</name>
+                  <value>n_nums</value>
+                </option>
+                <option>
+                  <name>zero-terminated</name>
+                  <value>1</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>Sequence of numbers that are zero-terminated</description>
+        </parameter>
+        <parameter>
+          <name>n_nums</name>
+          <description>Length of number array</description>
+        </parameter>
+      </parameters>
+      <description>Test taking a zero-terminated array with length parameter</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -131,49 +137,51 @@
  *
  * Test taking a zero-terminated array with length parameter
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_parse_args</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>argc</name>
-        <annotations>
-          <annotation>
-            <name>inout</name>
-          </annotation>
-        </annotations>
-        <description>Length of the argument vector</description>
-      </parameter>
-      <parameter>
-        <name>argv</name>
-        <annotations>
-          <annotation>
-            <name>inout</name>
-          </annotation>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>length</name>
-                <value>argc</value>
-              </option>
-              <option>
-                <name>zero-terminated</name>
-                <value>1</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>Argument vector</description>
-      </parameter>
-    </parameters>
-    <description>Test taking a zero-terminated array with length parameter</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_parse_args</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>argc</name>
+          <annotations>
+            <annotation>
+              <name>inout</name>
+            </annotation>
+          </annotations>
+          <description>Length of the argument vector</description>
+        </parameter>
+        <parameter>
+          <name>argv</name>
+          <annotations>
+            <annotation>
+              <name>inout</name>
+            </annotation>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>length</name>
+                  <value>argc</value>
+                </option>
+                <option>
+                  <name>zero-terminated</name>
+                  <value>1</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>Argument vector</description>
+        </parameter>
+      </parameters>
+      <description>Test taking a zero-terminated array with length parameter</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -185,37 +193,39 @@
  *
  * Test taking a guchar * with a length.
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_set_data</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>data</name>
-        <annotations>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>length</name>
-                <value>length</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>The data</description>
-      </parameter>
-      <parameter>
-        <name>length</name>
-        <description>Length of the data</description>
-      </parameter>
-    </parameters>
-    <description>Test taking a guchar * with a length.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_set_data</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>data</name>
+          <annotations>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>length</name>
+                  <value>length</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>The data</description>
+        </parameter>
+        <parameter>
+          <name>length</name>
+          <description>Length of the data</description>
+        </parameter>
+      </parameters>
+      <description>Test taking a guchar * with a length.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -225,53 +235,55 @@
  *
  * Return value: (transfer full) (array zero-terminated=1): The return value
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_string_zero_terminated</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>data</name>
-        <annotations>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>fixed-size</name>
-                <value>2</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>a third value</description>
-      </parameter>
-    </parameters>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <annotations>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>full</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>zero-terminated</name>
-                <value>1</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>The return value</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_string_zero_terminated</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>data</name>
+          <annotations>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>fixed-size</name>
+                  <value>2</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>a third value</description>
+        </parameter>
+      </parameters>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <annotations>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>full</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>zero-terminated</name>
+                  <value>1</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>The return value</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_closure.xml 
b/tests/scanner/annotationparser/gi/annotation_closure.xml
index e406ae1..83bcdde 100644
--- a/tests/scanner/annotationparser/gi/annotation_closure.xml
+++ b/tests/scanner/annotationparser/gi/annotation_closure.xml
@@ -10,24 +10,26 @@
  * This is a callback with a 'closure' argument that is not named
  * 'user_data' and hence has to be annotated.
  */</input>
-  <docblock>
-    <identifier>
-      <name>AnnotationNotifyFunc</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>data</name>
-        <annotations>
-          <annotation>
-            <name>closure</name>
-          </annotation>
-        </annotations>
-        <description>The user data</description>
-      </parameter>
-    </parameters>
-    <description>This is a callback with a 'closure' argument that is not named
+  <parser>
+    <docblock>
+      <identifier>
+        <name>AnnotationNotifyFunc</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>data</name>
+          <annotations>
+            <annotation>
+              <name>closure</name>
+            </annotation>
+          </annotations>
+          <description>The user data</description>
+        </parameter>
+      </parameters>
+      <description>This is a callback with a 'closure' argument that is not named
 'user_data' and hence has to be annotated.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -38,37 +40,39 @@
  * Test messing up the heuristic of closure/destroy-notification
  * detection, and fixing it via annotations.
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_custom_destroy</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>callback</name>
-        <annotations>
-          <annotation>
-            <name>destroy</name>
-            <options>
-              <option>
-                <name>destroy</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>closure</name>
-            <options>
-              <option>
-                <name>data</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>Destroy notification</description>
-      </parameter>
-    </parameters>
-    <description>Test messing up the heuristic of closure/destroy-notification
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_custom_destroy</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>callback</name>
+          <annotations>
+            <annotation>
+              <name>destroy</name>
+              <options>
+                <option>
+                  <name>destroy</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>closure</name>
+              <options>
+                <option>
+                  <name>data</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>Destroy notification</description>
+        </parameter>
+      </parameters>
+      <description>Test messing up the heuristic of closure/destroy-notification
 detection, and fixing it via annotations.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_constructor.xml 
b/tests/scanner/annotationparser/gi/annotation_constructor.xml
index 314a4ad..a4cfc46 100644
--- a/tests/scanner/annotationparser/gi/annotation_constructor.xml
+++ b/tests/scanner/annotationparser/gi/annotation_constructor.xml
@@ -6,16 +6,18 @@
   <input>/**
  * regress_constructor: (constructor)
  */</input>
-  <docblock>
-    <identifier>
-      <name>regress_constructor</name>
-      <annotations>
-        <annotation>
-          <name>constructor</name>
-        </annotation>
-      </annotations>
-    </identifier>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_constructor</name>
+        <annotations>
+          <annotation>
+            <name>constructor</name>
+          </annotation>
+        </annotations>
+      </identifier>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_destroy.xml 
b/tests/scanner/annotationparser/gi/annotation_destroy.xml
index 229a11b..d322dbb 100644
--- a/tests/scanner/annotationparser/gi/annotation_destroy.xml
+++ b/tests/scanner/annotationparser/gi/annotation_destroy.xml
@@ -10,37 +10,39 @@
  * Test messing up the heuristic of closure/destroy-notification
  * detection, and fixing it via annotations.
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_custom_destroy</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>callback</name>
-        <annotations>
-          <annotation>
-            <name>destroy</name>
-            <options>
-              <option>
-                <name>destroy</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>closure</name>
-            <options>
-              <option>
-                <name>data</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>Destroy notification</description>
-      </parameter>
-    </parameters>
-    <description>Test messing up the heuristic of closure/destroy-notification
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_custom_destroy</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>callback</name>
+          <annotations>
+            <annotation>
+              <name>destroy</name>
+              <options>
+                <option>
+                  <name>destroy</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>closure</name>
+              <options>
+                <option>
+                  <name>data</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>Destroy notification</description>
+        </parameter>
+      </parameters>
+      <description>Test messing up the heuristic of closure/destroy-notification
 detection, and fixing it via annotations.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_element_type.xml 
b/tests/scanner/annotationparser/gi/annotation_element_type.xml
index a656e9a..6a87530 100644
--- a/tests/scanner/annotationparser/gi/annotation_element_type.xml
+++ b/tests/scanner/annotationparser/gi/annotation_element_type.xml
@@ -8,35 +8,37 @@
  *
  * Returns: (element-type utf8) (transfer container): returns %NULL.
  */</input>
-  <docblock>
-    <identifier>
-      <name>foo_test_array</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <annotations>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>utf8</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>container</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>returns %NULL.</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>foo_test_array</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <annotations>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>utf8</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>container</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>returns %NULL.</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -48,35 +50,37 @@
  * This test signal is like TelepathyGlib's
  *  TpAccount::status-changed
  */</input>
-  <docblock>
-    <identifier>
-      <name>RegressTestObj::sig-with-hash-prop</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>an object</description>
-      </parameter>
-      <parameter>
-        <name>hash</name>
-        <annotations>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>utf8</name>
-              </option>
-              <option>
-                <name>GObject.Value</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-      </parameter>
-    </parameters>
-    <description>This test signal is like TelepathyGlib's
+  <parser>
+    <docblock>
+      <identifier>
+        <name>RegressTestObj::sig-with-hash-prop</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>an object</description>
+        </parameter>
+        <parameter>
+          <name>hash</name>
+          <annotations>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>utf8</name>
+                </option>
+                <option>
+                  <name>GObject.Value</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+        </parameter>
+      </parameters>
+      <description>This test signal is like TelepathyGlib's
  TpAccount::status-changed</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -88,39 +92,41 @@
  *
  * Return value: (element-type utf8 GLib.HashTable<utf8,utf8>) (transfer full):
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>regress_test_ghash_nested_everything_return2</name>
-    </identifier>
-    <description>Another way of specifying nested parameterized types: using the
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_test_ghash_nested_everything_return2</name>
+      </identifier>
+      <description>Another way of specifying nested parameterized types: using the
 element-type annotation.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <annotations>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>utf8</name>
-              </option>
-              <option>
-                <name><![CDATA[GLib.HashTable<utf8,utf8>]]></name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>full</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-      </tag>
-    </tags>
-  </docblock>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <annotations>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>utf8</name>
+                </option>
+                <option>
+                  <name><![CDATA[GLib.HashTable<utf8,utf8>]]></name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>full</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_foreign.xml 
b/tests/scanner/annotationparser/gi/annotation_foreign.xml
index f9674de..1e6e9f4 100644
--- a/tests/scanner/annotationparser/gi/annotation_foreign.xml
+++ b/tests/scanner/annotationparser/gi/annotation_foreign.xml
@@ -7,16 +7,18 @@
  * FooForeignStruct: (foreign)
  *
  */</input>
-  <docblock>
-    <identifier>
-      <name>FooForeignStruct</name>
-      <annotations>
-        <annotation>
-          <name>foreign</name>
-        </annotation>
-      </annotations>
-    </identifier>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>FooForeignStruct</name>
+        <annotations>
+          <annotation>
+            <name>foreign</name>
+          </annotation>
+        </annotations>
+      </identifier>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_get_value_func.xml 
b/tests/scanner/annotationparser/gi/annotation_get_value_func.xml
index e9097ff..70760ea 100644
--- a/tests/scanner/annotationparser/gi/annotation_get_value_func.xml
+++ b/tests/scanner/annotationparser/gi/annotation_get_value_func.xml
@@ -13,18 +13,20 @@
  *
  * Get value func: regress_test_value_get_fundamental_object
  */</input>
-  <docblock>
-    <identifier>
-      <name>RegressTestFundamentalObject</name>
-    </identifier>
-    <description>This object tests regressions...</description>
-    <tags>
-      <tag>
-        <name>get value func</name>
-        <description>regress_test_value_get_fundamental_object</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>RegressTestFundamentalObject</name>
+      </identifier>
+      <description>This object tests regressions...</description>
+      <tags>
+        <tag>
+          <name>get value func</name>
+          <description>regress_test_value_get_fundamental_object</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_in.xml 
b/tests/scanner/annotationparser/gi/annotation_in.xml
index b2f9c6d..627f504 100644
--- a/tests/scanner/annotationparser/gi/annotation_in.xml
+++ b/tests/scanner/annotationparser/gi/annotation_in.xml
@@ -12,41 +12,43 @@
  *
  * Return value: an int
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_in</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #GObject</description>
-      </parameter>
-      <parameter>
-        <name>inarg</name>
-        <annotations>
-          <annotation>
-            <name>in</name>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>none</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>This is an argument test</description>
-      </parameter>
-    </parameters>
-    <description>This is a test for in arguments</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>an int</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_in</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #GObject</description>
+        </parameter>
+        <parameter>
+          <name>inarg</name>
+          <annotations>
+            <annotation>
+              <name>in</name>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>none</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>This is an argument test</description>
+        </parameter>
+      </parameters>
+      <description>This is a test for in arguments</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>an int</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_in_out.xml 
b/tests/scanner/annotationparser/gi/annotation_in_out.xml
index d648263..f12fffe 100644
--- a/tests/scanner/annotationparser/gi/annotation_in_out.xml
+++ b/tests/scanner/annotationparser/gi/annotation_in_out.xml
@@ -13,42 +13,44 @@
  *
  * Return value: an int
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_inout</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #GObject</description>
-      </parameter>
-      <parameter>
-        <name>inoutarg</name>
-        <annotations>
-          <annotation>
-            <name>inout</name>
-          </annotation>
-        </annotations>
-        <description>This is an argument test</description>
-      </parameter>
-      <parameter>
-        <name>inoutarg2</name>
-        <annotations>
-          <annotation>
-            <name>in-out</name>
-          </annotation>
-        </annotations>
-        <description>This is an argument test</description>
-      </parameter>
-    </parameters>
-    <description>This is a test for inout arguments</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>an int</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_inout</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #GObject</description>
+        </parameter>
+        <parameter>
+          <name>inoutarg</name>
+          <annotations>
+            <annotation>
+              <name>inout</name>
+            </annotation>
+          </annotations>
+          <description>This is an argument test</description>
+        </parameter>
+        <parameter>
+          <name>inoutarg2</name>
+          <annotations>
+            <annotation>
+              <name>in-out</name>
+            </annotation>
+          </annotations>
+          <description>This is an argument test</description>
+        </parameter>
+      </parameters>
+      <description>This is a test for inout arguments</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>an int</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_method.xml 
b/tests/scanner/annotationparser/gi/annotation_method.xml
index 038923a..7fb8192 100644
--- a/tests/scanner/annotationparser/gi/annotation_method.xml
+++ b/tests/scanner/annotationparser/gi/annotation_method.xml
@@ -7,22 +7,24 @@
  * regress_forced_method: (method)
  * @obj: A #RegressTestObj
  */</input>
-  <docblock>
-    <identifier>
-      <name>regress_forced_method</name>
-      <annotations>
-        <annotation>
-          <name>method</name>
-        </annotation>
-      </annotations>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>obj</name>
-        <description>A #RegressTestObj</description>
-      </parameter>
-    </parameters>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_forced_method</name>
+        <annotations>
+          <annotation>
+            <name>method</name>
+          </annotation>
+        </annotations>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>obj</name>
+          <description>A #RegressTestObj</description>
+        </parameter>
+      </parameters>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_out.xml 
b/tests/scanner/annotationparser/gi/annotation_out.xml
index 39d889f..c548ec8 100644
--- a/tests/scanner/annotationparser/gi/annotation_out.xml
+++ b/tests/scanner/annotationparser/gi/annotation_out.xml
@@ -12,33 +12,35 @@
  *
  * Return value: an int
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_out</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #GObject</description>
-      </parameter>
-      <parameter>
-        <name>outarg</name>
-        <annotations>
-          <annotation>
-            <name>out</name>
-          </annotation>
-        </annotations>
-        <description>This is an argument test</description>
-      </parameter>
-    </parameters>
-    <description>This is a test for out arguments</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>an int</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_out</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #GObject</description>
+        </parameter>
+        <parameter>
+          <name>outarg</name>
+          <annotations>
+            <annotation>
+              <name>out</name>
+            </annotation>
+          </annotations>
+          <description>This is an argument test</description>
+        </parameter>
+      </parameters>
+      <description>This is a test for out arguments</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>an int</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -47,31 +49,33 @@
  * @a: the structure
  * @a_out: (out caller-allocates): the cloned structure
  */</input>
-  <docblock>
-    <identifier>
-      <name>regress_test_struct_a_clone</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>the structure</description>
-      </parameter>
-      <parameter>
-        <name>a_out</name>
-        <annotations>
-          <annotation>
-            <name>out</name>
-            <options>
-              <option>
-                <name>caller-allocates</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>the cloned structure</description>
-      </parameter>
-    </parameters>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_test_struct_a_clone</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>the structure</description>
+        </parameter>
+        <parameter>
+          <name>a_out</name>
+          <annotations>
+            <annotation>
+              <name>out</name>
+              <options>
+                <option>
+                  <name>caller-allocates</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>the cloned structure</description>
+        </parameter>
+      </parameters>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -80,31 +84,33 @@
  * @a: the structure
  * @a_out: (out callee-allocates): the cloned structure
  */</input>
-  <docblock>
-    <identifier>
-      <name>regress_test_struct_a_clone</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>the structure</description>
-      </parameter>
-      <parameter>
-        <name>a_out</name>
-        <annotations>
-          <annotation>
-            <name>out</name>
-            <options>
-              <option>
-                <name>callee-allocates</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>the cloned structure</description>
-      </parameter>
-    </parameters>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_test_struct_a_clone</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>the structure</description>
+        </parameter>
+        <parameter>
+          <name>a_out</name>
+          <annotations>
+            <annotation>
+              <name>out</name>
+              <options>
+                <option>
+                  <name>callee-allocates</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>the cloned structure</description>
+        </parameter>
+      </parameters>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_ref_func.xml 
b/tests/scanner/annotationparser/gi/annotation_ref_func.xml
index 0d15c54..91610dc 100644
--- a/tests/scanner/annotationparser/gi/annotation_ref_func.xml
+++ b/tests/scanner/annotationparser/gi/annotation_ref_func.xml
@@ -13,18 +13,20 @@
  *
  * Ref func: regress_test_fundamental_object_ref
  */</input>
-  <docblock>
-    <identifier>
-      <name>RegressTestFundamentalObject</name>
-    </identifier>
-    <description>This object tests regressions...</description>
-    <tags>
-      <tag>
-        <name>ref func</name>
-        <description>regress_test_fundamental_object_ref</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>RegressTestFundamentalObject</name>
+      </identifier>
+      <description>This object tests regressions...</description>
+      <tags>
+        <tag>
+          <name>ref func</name>
+          <description>regress_test_fundamental_object_ref</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_rename_to.xml 
b/tests/scanner/annotationparser/gi/annotation_rename_to.xml
index e63679c..3d1204d 100644
--- a/tests/scanner/annotationparser/gi/annotation_rename_to.xml
+++ b/tests/scanner/annotationparser/gi/annotation_rename_to.xml
@@ -17,36 +17,38 @@
  *
  * Rename to: annotation_object_watch
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_watch_full</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>A #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>func</name>
-        <description>The callback</description>
-      </parameter>
-      <parameter>
-        <name>user_data</name>
-        <description>The callback data</description>
-      </parameter>
-      <parameter>
-        <name>destroy</name>
-        <description>Destroy notification</description>
-      </parameter>
-    </parameters>
-    <description>Test overriding via the "Rename To" annotation.</description>
-    <tags>
-      <tag>
-        <name>rename to</name>
-        <description>annotation_object_watch</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_watch_full</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>A #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>func</name>
+          <description>The callback</description>
+        </parameter>
+        <parameter>
+          <name>user_data</name>
+          <description>The callback data</description>
+        </parameter>
+        <parameter>
+          <name>destroy</name>
+          <description>Destroy notification</description>
+        </parameter>
+      </parameters>
+      <description>Test overriding via the "Rename To" annotation.</description>
+      <tags>
+        <tag>
+          <name>rename to</name>
+          <description>annotation_object_watch</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_scope.xml 
b/tests/scanner/annotationparser/gi/annotation_scope.xml
index 7ae9c8a..e869307 100644
--- a/tests/scanner/annotationparser/gi/annotation_scope.xml
+++ b/tests/scanner/annotationparser/gi/annotation_scope.xml
@@ -11,36 +11,38 @@
  *
  * Test taking a call-scoped callback
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_foreach</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>func</name>
-        <annotations>
-          <annotation>
-            <name>scope</name>
-            <options>
-              <option>
-                <name>call</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>Callback to invoke</description>
-      </parameter>
-      <parameter>
-        <name>user_data</name>
-        <description>Callback user data</description>
-      </parameter>
-    </parameters>
-    <description>Test taking a call-scoped callback</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_foreach</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>func</name>
+          <annotations>
+            <annotation>
+              <name>scope</name>
+              <options>
+                <option>
+                  <name>call</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>Callback to invoke</description>
+        </parameter>
+        <parameter>
+          <name>user_data</name>
+          <description>Callback user data</description>
+        </parameter>
+      </parameters>
+      <description>Test taking a call-scoped callback</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -51,28 +53,30 @@
  * Notified - callback persists until a DestroyNotify delegate
  * is invoked.
  **/</input>
-  <docblock>
-    <identifier>
-      <name>regress_test_callback_destroy_notify</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>callback</name>
-        <annotations>
-          <annotation>
-            <name>scope</name>
-            <options>
-              <option>
-                <name>notified</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-      </parameter>
-    </parameters>
-    <description>Notified - callback persists until a DestroyNotify delegate
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_test_callback_destroy_notify</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>callback</name>
+          <annotations>
+            <annotation>
+              <name>scope</name>
+              <options>
+                <option>
+                  <name>notified</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+        </parameter>
+      </parameters>
+      <description>Notified - callback persists until a DestroyNotify delegate
 is invoked.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -81,26 +85,28 @@ is invoked.</description>
  * @callback: (scope async):
  *
  **/</input>
-  <docblock>
-    <identifier>
-      <name>regress_test_callback_async</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>callback</name>
-        <annotations>
-          <annotation>
-            <name>scope</name>
-            <options>
-              <option>
-                <name>async</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-      </parameter>
-    </parameters>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>regress_test_callback_async</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>callback</name>
+          <annotations>
+            <annotation>
+              <name>scope</name>
+              <options>
+                <option>
+                  <name>async</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+        </parameter>
+      </parameters>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_set_value_func.xml 
b/tests/scanner/annotationparser/gi/annotation_set_value_func.xml
index 4b93113..20f3e26 100644
--- a/tests/scanner/annotationparser/gi/annotation_set_value_func.xml
+++ b/tests/scanner/annotationparser/gi/annotation_set_value_func.xml
@@ -13,18 +13,20 @@
  *
  * Set value func: regress_test_value_set_fundamental_object
  */</input>
-  <docblock>
-    <identifier>
-      <name>RegressTestFundamentalObject</name>
-    </identifier>
-    <description>This object tests regressions...</description>
-    <tags>
-      <tag>
-        <name>set value func</name>
-        <description>regress_test_value_set_fundamental_object</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>RegressTestFundamentalObject</name>
+      </identifier>
+      <description>This object tests regressions...</description>
+      <tags>
+        <tag>
+          <name>set value func</name>
+          <description>regress_test_value_set_fundamental_object</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_skip.xml 
b/tests/scanner/annotationparser/gi/annotation_skip.xml
index 42afdd6..b6aa3d7 100644
--- a/tests/scanner/annotationparser/gi/annotation_skip.xml
+++ b/tests/scanner/annotationparser/gi/annotation_skip.xml
@@ -12,32 +12,34 @@
  * This is here just for the sake of being overriden by its
  * annotation_object_watch_full().
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_watch</name>
-      <annotations>
-        <annotation>
-          <name>skip</name>
-        </annotation>
-      </annotations>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>A #AnnotationObject</description>
-      </parameter>
-      <parameter>
-        <name>func</name>
-        <description>The callback</description>
-      </parameter>
-      <parameter>
-        <name>user_data</name>
-        <description>The callback data</description>
-      </parameter>
-    </parameters>
-    <description>This is here just for the sake of being overriden by its
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_watch</name>
+        <annotations>
+          <annotation>
+            <name>skip</name>
+          </annotation>
+        </annotations>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>A #AnnotationObject</description>
+        </parameter>
+        <parameter>
+          <name>func</name>
+          <description>The callback</description>
+        </parameter>
+        <parameter>
+          <name>user_data</name>
+          <description>The callback data</description>
+        </parameter>
+      </parameters>
+      <description>This is here just for the sake of being overriden by its
 annotation_object_watch_full().</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_transfer.xml 
b/tests/scanner/annotationparser/gi/annotation_transfer.xml
index 680ada1..927c492 100644
--- a/tests/scanner/annotationparser/gi/annotation_transfer.xml
+++ b/tests/scanner/annotationparser/gi/annotation_transfer.xml
@@ -11,49 +11,51 @@
  * This is a signal which takes a list of strings, but it's not
  * known by GObject as it's only marked as G_TYPE_POINTER
  */</input>
-  <docblock>
-    <identifier>
-      <name>AnnotationObject::list-signal</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>annotation</name>
-        <description>the annotation object</description>
-      </parameter>
-      <parameter>
-        <name>list</name>
-        <annotations>
-          <annotation>
-            <name>type</name>
-            <options>
-              <option>
-                <name>GLib.List</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>utf8</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>container</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>a list of strings</description>
-      </parameter>
-    </parameters>
-    <description>This is a signal which takes a list of strings, but it's not
+  <parser>
+    <docblock>
+      <identifier>
+        <name>AnnotationObject::list-signal</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>annotation</name>
+          <description>the annotation object</description>
+        </parameter>
+        <parameter>
+          <name>list</name>
+          <annotations>
+            <annotation>
+              <name>type</name>
+              <options>
+                <option>
+                  <name>GLib.List</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>utf8</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>container</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>a list of strings</description>
+        </parameter>
+      </parameters>
+      <description>This is a signal which takes a list of strings, but it's not
 known by GObject as it's only marked as G_TYPE_POINTER</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -66,41 +68,43 @@ known by GObject as it's only marked as G_TYPE_POINTER</description>
  *
  * Return value: an int
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_in</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>a #GObject</description>
-      </parameter>
-      <parameter>
-        <name>inarg</name>
-        <annotations>
-          <annotation>
-            <name>in</name>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>none</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>This is an argument test</description>
-      </parameter>
-    </parameters>
-    <description>This is a test for in arguments</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>an int</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_in</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>a #GObject</description>
+        </parameter>
+        <parameter>
+          <name>inarg</name>
+          <annotations>
+            <annotation>
+              <name>in</name>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>none</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>This is an argument test</description>
+        </parameter>
+      </parameters>
+      <description>This is a test for in arguments</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>an int</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -109,27 +113,29 @@ known by GObject as it's only marked as G_TYPE_POINTER</description>
  *
  * Returns: (transfer floating): A floating object
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_transfer_floating</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <annotations>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>floating</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>A floating object</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_transfer_floating</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <annotations>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>floating</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>A floating object</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -144,19 +150,21 @@ known by GObject as it's only marked as G_TYPE_POINTER</description>
  *
  * Transfer: full
  */</input>
-  <docblock>
-    <identifier>
-      <name>FsSession:codecs-without-config</name>
-    </identifier>
-    <description>This is the same list of codecs as #FsSession:codecs
+  <parser>
+    <docblock>
+      <identifier>
+        <name>FsSession:codecs-without-config</name>
+      </identifier>
+      <description>This is the same list of codecs as #FsSession:codecs
 without....</description>
-    <tags>
-      <tag>
-        <name>transfer</name>
-        <description>full</description>
-      </tag>
-    </tags>
-  </docblock>
+      <tags>
+        <tag>
+          <name>transfer</name>
+          <description>full</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_type.xml 
b/tests/scanner/annotationparser/gi/annotation_type.xml
index 5258f37..6a8539e 100644
--- a/tests/scanner/annotationparser/gi/annotation_type.xml
+++ b/tests/scanner/annotationparser/gi/annotation_type.xml
@@ -11,49 +11,51 @@
  * This is a signal which takes a list of strings, but it's not
  * known by GObject as it's only marked as G_TYPE_POINTER
  */</input>
-  <docblock>
-    <identifier>
-      <name>AnnotationObject::list-signal</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>annotation</name>
-        <description>the annotation object</description>
-      </parameter>
-      <parameter>
-        <name>list</name>
-        <annotations>
-          <annotation>
-            <name>type</name>
-            <options>
-              <option>
-                <name>GLib.List</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>utf8</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>container</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>a list of strings</description>
-      </parameter>
-    </parameters>
-    <description>This is a signal which takes a list of strings, but it's not
+  <parser>
+    <docblock>
+      <identifier>
+        <name>AnnotationObject::list-signal</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>annotation</name>
+          <description>the annotation object</description>
+        </parameter>
+        <parameter>
+          <name>list</name>
+          <annotations>
+            <annotation>
+              <name>type</name>
+              <options>
+                <option>
+                  <name>GLib.List</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>utf8</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>container</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>a list of strings</description>
+        </parameter>
+      </parameters>
+      <description>This is a signal which takes a list of strings, but it's not
 known by GObject as it's only marked as G_TYPE_POINTER</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -67,18 +69,20 @@ known by GObject as it's only marked as G_TYPE_POINTER</description>
    *
    * Type: GLib.HashTable(utf8,gint8)
    */</input>
-  <docblock>
-    <identifier>
-      <name>RegressTestObj:hash-table</name>
-    </identifier>
-    <description>Test.</description>
-    <tags>
-      <tag>
-        <name>type</name>
-        <description>GLib.HashTable(utf8,gint8)</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>RegressTestObj:hash-table</name>
+      </identifier>
+      <description>Test.</description>
+      <tags>
+        <tag>
+          <name>type</name>
+          <description>GLib.HashTable(utf8,gint8)</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_unref_func.xml 
b/tests/scanner/annotationparser/gi/annotation_unref_func.xml
index 0adbeff..6dad3f3 100644
--- a/tests/scanner/annotationparser/gi/annotation_unref_func.xml
+++ b/tests/scanner/annotationparser/gi/annotation_unref_func.xml
@@ -13,18 +13,20 @@
  *
  * Unref func: regress_test_fundamental_object_unref
  */</input>
-  <docblock>
-    <identifier>
-      <name>RegressTestFundamentalObject</name>
-    </identifier>
-    <description>This object tests regressions...</description>
-    <tags>
-      <tag>
-        <name>unref func</name>
-        <description>regress_test_fundamental_object_unref</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>RegressTestFundamentalObject</name>
+      </identifier>
+      <description>This object tests regressions...</description>
+      <tags>
+        <tag>
+          <name>unref func</name>
+          <description>regress_test_fundamental_object_unref</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_value.xml 
b/tests/scanner/annotationparser/gi/annotation_value.xml
index 3745de6..f111d6b 100644
--- a/tests/scanner/annotationparser/gi/annotation_value.xml
+++ b/tests/scanner/annotationparser/gi/annotation_value.xml
@@ -13,18 +13,20 @@
  *
  * Value: 10000000000UL
  */</input>
-  <docblock>
-    <identifier>
-      <name>ANNOTATION_CALCULATED_LARGE</name>
-    </identifier>
-    <description>Constant to define a calculated large value</description>
-    <tags>
-      <tag>
-       <name>value</name>
-       <description>10000000000UL</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>ANNOTATION_CALCULATED_LARGE</name>
+      </identifier>
+      <description>Constant to define a calculated large value</description>
+      <tags>
+        <tag>
+         <name>value</name>
+         <description>10000000000UL</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/annotation_virtual.xml 
b/tests/scanner/annotationparser/gi/annotation_virtual.xml
index db211b4..189d56b 100644
--- a/tests/scanner/annotationparser/gi/annotation_virtual.xml
+++ b/tests/scanner/annotationparser/gi/annotation_virtual.xml
@@ -16,32 +16,34 @@
  *
  * Virtual: read_fn
  */</input>
-  <docblock>
-    <identifier>
-      <name>foo_object_read</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>object</name>
-        <description>obj</description>
-      </parameter>
-      <parameter>
-        <name>offset</name>
-        <description>offset</description>
-      </parameter>
-      <parameter>
-        <name>length</name>
-        <description>length</description>
-      </parameter>
-    </parameters>
-    <description>Read some stuff.</description>
-    <tags>
-      <tag>
-        <name>virtual</name>
-        <description>read_fn</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>foo_object_read</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>object</name>
+          <description>obj</description>
+        </parameter>
+        <parameter>
+          <name>offset</name>
+          <description>offset</description>
+        </parameter>
+        <parameter>
+          <name>length</name>
+          <description>length</description>
+        </parameter>
+      </parameters>
+      <description>Read some stuff.</description>
+      <tags>
+        <tag>
+          <name>virtual</name>
+          <description>read_fn</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/syntax.xml b/tests/scanner/annotationparser/gi/syntax.xml
index 7dd7b91..4bbe186 100644
--- a/tests/scanner/annotationparser/gi/syntax.xml
+++ b/tests/scanner/annotationparser/gi/syntax.xml
@@ -84,12 +84,14 @@ something */</input>
   <input>/**
 Test
 something */</input>
-  <docblock>
-    <identifier>
-      <name>Test</name>
-    </identifier>
-    <description>something</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Test</name>
+      </identifier>
+      <description>something</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -99,12 +101,14 @@ something */</input>
   <input>/**
 Test
 something **/</input>
-  <docblock>
-    <identifier>
-      <name>Test</name>
-    </identifier>
-    <description>something</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Test</name>
+      </identifier>
+      <description>something</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -119,18 +123,20 @@ something **/</input>
  *
  * The application class handles ...
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:meepapp</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>the application class</description>
-      </parameter>
-    </parameters>
-    <description>The application class handles ...</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:meepapp</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>the application class</description>
+        </parameter>
+      </parameters>
+      <description>The application class handles ...</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_identifier.xml 
b/tests/scanner/annotationparser/gi/syntax_identifier.xml
index 374d007..9aae28e 100644
--- a/tests/scanner/annotationparser/gi/syntax_identifier.xml
+++ b/tests/scanner/annotationparser/gi/syntax_identifier.xml
@@ -23,19 +23,21 @@
  *
  * The application class handles ...
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:meepapp</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>the application class</description>
-      </parameter>
-    </parameters>
-    <description>SECTION:meepapp2
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:meepapp</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>the application class</description>
+        </parameter>
+      </parameters>
+      <description>SECTION:meepapp2
 The application class handles ...</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -54,41 +56,43 @@ The application class handles ...</description>
  *
  * The application class handles ...
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:meepapp</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>the application class</description>
-      </parameter>
-      <parameter>
-        <name>title</name>
-        <description>Meep application</description>
-      </parameter>
-      <parameter>
-        <name>section_id</name>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#MeepSettings</description>
-      </parameter>
-      <parameter>
-        <name>stability</name>
-        <description>Stable</description>
-      </parameter>
-      <parameter>
-        <name>include</name>
-        <description>meep/app.h</description>
-      </parameter>
-      <parameter>
-        <name>image</name>
-        <description>application.png</description>
-      </parameter>
-    </parameters>
-    <description>The application class handles ...</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:meepapp</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>the application class</description>
+        </parameter>
+        <parameter>
+          <name>title</name>
+          <description>Meep application</description>
+        </parameter>
+        <parameter>
+          <name>section_id</name>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#MeepSettings</description>
+        </parameter>
+        <parameter>
+          <name>stability</name>
+          <description>Stable</description>
+        </parameter>
+        <parameter>
+          <name>include</name>
+          <description>meep/app.h</description>
+        </parameter>
+        <parameter>
+          <name>image</name>
+          <description>application.png</description>
+        </parameter>
+      </parameters>
+      <description>The application class handles ...</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -108,41 +112,43 @@ The application class handles ...</description>
  *
  * The application class handles ...
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:meepapp</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>the application class</description>
-      </parameter>
-      <parameter>
-        <name>title</name>
-        <description>Meep application</description>
-      </parameter>
-      <parameter>
-        <name>section_id</name>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#MeepSettings</description>
-      </parameter>
-      <parameter>
-        <name>stability</name>
-        <description>Stable</description>
-      </parameter>
-      <parameter>
-        <name>include</name>
-        <description>meep/app.h</description>
-      </parameter>
-      <parameter>
-        <name>image</name>
-        <description>application.png</description>
-      </parameter>
-    </parameters>
-    <description>The application class handles ...</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:meepapp</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>the application class</description>
+        </parameter>
+        <parameter>
+          <name>title</name>
+          <description>Meep application</description>
+        </parameter>
+        <parameter>
+          <name>section_id</name>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#MeepSettings</description>
+        </parameter>
+        <parameter>
+          <name>stability</name>
+          <description>Stable</description>
+        </parameter>
+        <parameter>
+          <name>include</name>
+          <description>meep/app.h</description>
+        </parameter>
+        <parameter>
+          <name>image</name>
+          <description>application.png</description>
+        </parameter>
+      </parameters>
+      <description>The application class handles ...</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -161,41 +167,43 @@ The application class handles ...</description>
  * @include: meep/app.h
  * @image: application.png
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:meepapp</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>the application class</description>
-      </parameter>
-      <parameter>
-        <name>title</name>
-        <description>Meep application</description>
-      </parameter>
-      <parameter>
-        <name>section_id</name>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#MeepSettings</description>
-      </parameter>
-      <parameter>
-        <name>stability</name>
-        <description>Stable</description>
-      </parameter>
-      <parameter>
-        <name>include</name>
-        <description>meep/app.h</description>
-      </parameter>
-      <parameter>
-        <name>image</name>
-        <description>application.png</description>
-      </parameter>
-    </parameters>
-    <description>The application class handles ...</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:meepapp</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>the application class</description>
+        </parameter>
+        <parameter>
+          <name>title</name>
+          <description>Meep application</description>
+        </parameter>
+        <parameter>
+          <name>section_id</name>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#MeepSettings</description>
+        </parameter>
+        <parameter>
+          <name>stability</name>
+          <description>Stable</description>
+        </parameter>
+        <parameter>
+          <name>include</name>
+          <description>meep/app.h</description>
+        </parameter>
+        <parameter>
+          <name>image</name>
+          <description>application.png</description>
+        </parameter>
+      </parameters>
+      <description>The application class handles ...</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -215,41 +223,43 @@ The application class handles ...</description>
  * @include: meep/app.h
  * @image: application.png
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:meepapp</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>the application class</description>
-      </parameter>
-      <parameter>
-        <name>title</name>
-        <description>Meep application</description>
-      </parameter>
-      <parameter>
-        <name>section_id</name>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#MeepSettings</description>
-      </parameter>
-      <parameter>
-        <name>stability</name>
-        <description>Stable</description>
-      </parameter>
-      <parameter>
-        <name>include</name>
-        <description>meep/app.h</description>
-      </parameter>
-      <parameter>
-        <name>image</name>
-        <description>application.png</description>
-      </parameter>
-    </parameters>
-    <description>The application class handles ...</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:meepapp</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>the application class</description>
+        </parameter>
+        <parameter>
+          <name>title</name>
+          <description>Meep application</description>
+        </parameter>
+        <parameter>
+          <name>section_id</name>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#MeepSettings</description>
+        </parameter>
+        <parameter>
+          <name>stability</name>
+          <description>Stable</description>
+        </parameter>
+        <parameter>
+          <name>include</name>
+          <description>meep/app.h</description>
+        </parameter>
+        <parameter>
+          <name>image</name>
+          <description>application.png</description>
+        </parameter>
+      </parameters>
+      <description>The application class handles ...</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -266,21 +276,23 @@ The application class handles ...</description>
  * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
  * returns nothing.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:tester</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>module for gtk-doc unit test</description>
-      </parameter>
-    </parameters>
-    <description>This file contains non-sense code for the sole purpose of testing the docs.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:tester</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>module for gtk-doc unit test</description>
+        </parameter>
+      </parameters>
+      <description>This file contains non-sense code for the sole purpose of testing the docs.
 
 As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
 returns nothing.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
diff --git a/tests/scanner/annotationparser/gi/syntax_nested_tags.xml 
b/tests/scanner/annotationparser/gi/syntax_nested_tags.xml
index 8fd7a76..00fcabb 100644
--- a/tests/scanner/annotationparser/gi/syntax_nested_tags.xml
+++ b/tests/scanner/annotationparser/gi/syntax_nested_tags.xml
@@ -20,24 +20,26 @@
  *
  * Since: 2.28
  **/</input>
-  <docblock>
-    <identifier>
-      <name>GApplicationFlags</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>G_APPLICATION_NON_UNIQUE</name>
-        <description>Make no attempts to do any of the typical single-instance application negotiation, even 
if the application ID is given.  The application neither attempts to become the owner of the application ID 
nor does it check if an existing owner already exists.  Everything occurs in the local process. Since: 
2.30.</description>
-      </parameter>
-    </parameters>
-    <description>Flags used to define the behaviour of a #GApplication.</description>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>2.28</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GApplicationFlags</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>G_APPLICATION_NON_UNIQUE</name>
+          <description>Make no attempts to do any of the typical single-instance application negotiation, 
even if the application ID is given.  The application neither attempts to become the owner of the application 
ID nor does it check if an existing owner already exists.  Everything occurs in the local process. Since: 
2.30.</description>
+        </parameter>
+      </parameters>
+      <description>Flags used to define the behaviour of a #GApplication.</description>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>2.28</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml 
b/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml
index 80c4fb8..8861623 100644
--- a/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml
+++ b/tests/scanner/annotationparser/gi/syntax_paragraph_breaks.xml
@@ -14,14 +14,16 @@
  *
  * So this is considered a new paragraph.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description>The following line is ' *' (blank-asterisk).
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description>The following line is ' *' (blank-asterisk).
 
 So this is considered a new paragraph.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -36,14 +38,16 @@ So this is considered a new paragraph.</description>
  *
  * So this is considered a new paragraph.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description>The following line is ' *' (blank-asterisk).
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description>The following line is ' *' (blank-asterisk).
 
 So this is considered a new paragraph.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -57,14 +61,16 @@ So this is considered a new paragraph.</description>
  * 
  * So this is considered a new paragraph.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description>The following line is ' * ' (blank-asterisk-blank).
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description>The following line is ' * ' (blank-asterisk-blank).
 
 So this is considered a new paragraph.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -78,14 +84,16 @@ So this is considered a new paragraph.</description>
  * 
  * So this is considered a new paragraph.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description>The following line is ' * ' (blank-asterisk-blank).
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description>The following line is ' * ' (blank-asterisk-blank).
 
 So this is considered a new paragraph.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -101,14 +109,16 @@ So this is considered a new paragraph.</description>
  *  
  * So this is preceded by an empty line and is not considered a new paragraph.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description>The following line is (blank-asterisk-blank-blank).
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description>The following line is (blank-asterisk-blank-blank).
  
 So this is preceded by an empty line and is not considered a new paragraph.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -124,14 +134,16 @@ So this is preceded by an empty line and is not considered a new paragraph.</des
  *  
  * So this is preceded by an empty line and is not considered a new paragraph.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description>The following line is (blank-asterisk-blank-blank).
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description>The following line is (blank-asterisk-blank-blank).
  
 So this is preceded by an empty line and is not considered a new paragraph.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -161,11 +173,12 @@ So this is preceded by an empty line and is not considered a new paragraph.</des
  * </programlisting>
  * </example>
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description><![CDATA[<example>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description><![CDATA[<example>
 <title>Iterating over attributes</title>
 <programlisting>
 void
@@ -182,7 +195,8 @@ print_attributes (GIBaseInfo *info)
 }
 </programlisting>
 </example>]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -212,11 +226,12 @@ print_attributes (GIBaseInfo *info)
  * </programlisting>
  * </example>
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>SECTION:test</name>
-    </identifier>
-    <description><![CDATA[<example>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:test</name>
+      </identifier>
+      <description><![CDATA[<example>
 <title>Iterating over attributes</title>
 <programlisting>
 void
@@ -233,7 +248,8 @@ print_attributes (GIBaseInfo *info)
 }
 </programlisting>
 </example>]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/tag_deprecated.xml 
b/tests/scanner/annotationparser/gi/tag_deprecated.xml
index c6cef97..b43d8a2 100644
--- a/tests/scanner/annotationparser/gi/tag_deprecated.xml
+++ b/tests/scanner/annotationparser/gi/tag_deprecated.xml
@@ -8,17 +8,19 @@
  *
  * Deprecated: 0.6: Use something else instead
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>deprecated</name>
-        <description>0.6: Use something else instead</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>deprecated</name>
+          <description>0.6: Use something else instead</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -27,17 +29,19 @@
  *
  * Deprecated: 0.6
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>deprecated</name>
-        <description>0.6</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>deprecated</name>
+          <description>0.6</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/tag_description.xml 
b/tests/scanner/annotationparser/gi/tag_description.xml
index 317ff5c..1627cd4 100644
--- a/tests/scanner/annotationparser/gi/tag_description.xml
+++ b/tests/scanner/annotationparser/gi/tag_description.xml
@@ -9,13 +9,15 @@
  * Description: This is a callback with a 'closure' argument that is not named
  * 'user_data' and hence has to be annotated.
  **/</input>
-  <docblock>
-    <identifier>
-      <name>shiny_function</name>
-    </identifier>
-    <description>This is a callback with a 'closure' argument that is not named
+  <parser>
+    <docblock>
+      <identifier>
+        <name>shiny_function</name>
+      </identifier>
+      <description>This is a callback with a 'closure' argument that is not named
 'user_data' and hence has to be annotated.</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/tag_returns.xml 
b/tests/scanner/annotationparser/gi/tag_returns.xml
index 94d6b62..5506a6f 100644
--- a/tests/scanner/annotationparser/gi/tag_returns.xml
+++ b/tests/scanner/annotationparser/gi/tag_returns.xml
@@ -10,18 +10,20 @@
  *
  * Returns: some boolean
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_string_out</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>some boolean</description>
-      </tag>
-    </tags>
-    <description>Test returning a string as an out parameter</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_string_out</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>some boolean</description>
+        </tag>
+      </tags>
+      <description>Test returning a string as an out parameter</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -35,18 +37,20 @@
  *
  * Return value: some boolean
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_string_out</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>some boolean</description>
-      </tag>
-    </tags>
-    <description>Test returning a string as an out parameter</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_string_out</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>some boolean</description>
+        </tag>
+      </tags>
+      <description>Test returning a string as an out parameter</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -59,18 +63,20 @@
  *
  * Test returning a string as an out parameter
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_object_string_out</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>some boolean</description>
-      </tag>
-    </tags>
-    <description>Test returning a string as an out parameter</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_object_string_out</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>some boolean</description>
+        </tag>
+      </tags>
+      <description>Test returning a string as an out parameter</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/tag_since.xml b/tests/scanner/annotationparser/gi/tag_since.xml
index 760311e..15eb7d3 100644
--- a/tests/scanner/annotationparser/gi/tag_since.xml
+++ b/tests/scanner/annotationparser/gi/tag_since.xml
@@ -8,17 +8,19 @@
  *
  * Since: 0.6
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>0.6</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>0.6</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -27,17 +29,19 @@
  *
  * Since: this function is available since version 0.6
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>this function is available since version 0.6</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>this function is available since version 0.6</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gi/tag_stability.xml 
b/tests/scanner/annotationparser/gi/tag_stability.xml
index 6636bdc..2f816ab 100644
--- a/tests/scanner/annotationparser/gi/tag_stability.xml
+++ b/tests/scanner/annotationparser/gi/tag_stability.xml
@@ -8,17 +8,19 @@
  *
  * Stability: Stable
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>stability</name>
-        <description>Stable</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>stability</name>
+          <description>Stable</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -27,17 +29,19 @@
  *
  * Stability: Unstable
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>stability</name>
-        <description>Unstable</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>stability</name>
+          <description>Unstable</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -46,17 +50,19 @@
  *
  * Stability: Private
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>stability</name>
-        <description>Private</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>stability</name>
+          <description>Private</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -65,17 +71,19 @@
  *
  * Stability: behavior tends to vary depending on the phase of the moon.
  **/</input>
-  <docblock>
-    <identifier>
-      <name>annotation_versioned</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>stability</name>
-        <description>behavior tends to vary depending on the phase of the moon.</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_versioned</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>stability</name>
+          <description>behavior tends to vary depending on the phase of the moon.</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml 
b/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
index 3ef1992..c8dd01d 100644
--- a/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
@@ -9,18 +9,20 @@
  *
  * This file contains non-sense code for the sole purpose of testing the docs.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:tester</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>module for gtk-doc unit test</description>
-      </parameter>
-    </parameters>
-    <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:tester</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>module for gtk-doc unit test</description>
+        </parameter>
+      </parameters>
+      <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -32,37 +34,39 @@
  *
  * Document parameter relation for array length.
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_array_length</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>list</name>
-        <description>a #GtkListStore</description>
-      </parameter>
-      <parameter>
-        <name>n_columns</name>
-        <description>number of columns</description>
-      </parameter>
-      <parameter>
-        <name>types</name>
-        <annotations>
-          <annotation>
-            <name>array</name>
-            <options>
-              <option>
-                <name>length</name>
-                <value>n_columns</value>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>list of types</description>
-      </parameter>
-    </parameters>
-    <description>Document parameter relation for array length.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_array_length</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>list</name>
+          <description>a #GtkListStore</description>
+        </parameter>
+        <parameter>
+          <name>n_columns</name>
+          <description>number of columns</description>
+        </parameter>
+        <parameter>
+          <name>types</name>
+          <annotations>
+            <annotation>
+              <name>array</name>
+              <options>
+                <option>
+                  <name>length</name>
+                  <value>n_columns</value>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>list of types</description>
+        </parameter>
+      </parameters>
+      <description>Document parameter relation for array length.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -77,46 +81,48 @@
  * Returns: (transfer full) (allow-none): Returns stuff which you have to
  *  free after use, whose description is also rather long
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_nullable</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>uri</name>
-        <description>a uri</description>
-      </parameter>
-      <parameter>
-        <name>label</name>
-        <annotations>
-          <annotation>
-            <name>allow-none</name>
-          </annotation>
-        </annotations>
-        <description>an optional string, which is used in ways too complicated to describe in a single line, 
making it necessary to wrap it</description>
-      </parameter>
-    </parameters>
-    <description>Document optional parameters.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <annotations>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>full</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>allow-none</name>
-          </annotation>
-        </annotations>
-        <description>Returns stuff which you have to free after use, whose description is also rather 
long</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_nullable</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>uri</name>
+          <description>a uri</description>
+        </parameter>
+        <parameter>
+          <name>label</name>
+          <annotations>
+            <annotation>
+              <name>allow-none</name>
+            </annotation>
+          </annotations>
+          <description>an optional string, which is used in ways too complicated to describe in a single 
line, making it necessary to wrap it</description>
+        </parameter>
+      </parameters>
+      <description>Document optional parameters.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <annotations>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>full</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>allow-none</name>
+            </annotation>
+          </annotations>
+          <description>Returns stuff which you have to free after use, whose description is also rather 
long</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -128,34 +134,36 @@
  *
  * Returns: %TRUE for success
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_elementtype</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>list</name>
-        <annotations>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>GObject</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>list of #GObject instances to search</description>
-      </parameter>
-    </parameters>
-    <description>Document optional parameters.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>%TRUE for success</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_elementtype</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>list</name>
+          <annotations>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>GObject</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>list of #GObject instances to search</description>
+        </parameter>
+      </parameters>
+      <description>Document optional parameters.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>%TRUE for success</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -167,42 +175,44 @@
  *
  * Returns: %TRUE for success
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_elementtype_transfer</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>list</name>
-        <annotations>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>utf8</name>
-              </option>
-            </options>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>full</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>list of #GObject instances to search</description>
-      </parameter>
-    </parameters>
-    <description>Document optional parameters.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>%TRUE for success</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_elementtype_transfer</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>list</name>
+          <annotations>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>utf8</name>
+                </option>
+              </options>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>full</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>list of #GObject instances to search</description>
+        </parameter>
+      </parameters>
+      <description>Document optional parameters.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>%TRUE for success</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -213,28 +223,30 @@
  *
  * Returns: (element-type GObject): A list of #GObject instances.
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_elementtype_returns</name>
-    </identifier>
-    <description>Document optional parameters.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <annotations>
-          <annotation>
-            <name>element-type</name>
-            <options>
-              <option>
-                <name>GObject</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>A list of #GObject instances.</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_elementtype_returns</name>
+      </identifier>
+      <description>Document optional parameters.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <annotations>
+            <annotation>
+              <name>element-type</name>
+              <options>
+                <option>
+                  <name>GObject</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>A list of #GObject instances.</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -246,37 +258,39 @@
  *
  * Returns: %TRUE for success
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_outparams</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>list</name>
-        <annotations>
-          <annotation>
-            <name>out</name>
-          </annotation>
-          <annotation>
-            <name>transfer</name>
-            <options>
-              <option>
-                <name>none</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>a pointer to take a list</description>
-      </parameter>
-    </parameters>
-    <description>Document optional parameters.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>%TRUE for success</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_outparams</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>list</name>
+          <annotations>
+            <annotation>
+              <name>out</name>
+            </annotation>
+            <annotation>
+              <name>transfer</name>
+              <options>
+                <option>
+                  <name>none</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>a pointer to take a list</description>
+        </parameter>
+      </parameters>
+      <description>Document optional parameters.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>%TRUE for success</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -286,23 +300,25 @@
  *
  * Documentation for this function.
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_skip</name>
-      <annotations>
-        <annotation>
-          <name>skip</name>
-        </annotation>
-      </annotations>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>list</name>
-        <description>a pointer to take a list</description>
-      </parameter>
-    </parameters>
-    <description>Documentation for this function.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_skip</name>
+        <annotations>
+          <annotation>
+            <name>skip</name>
+          </annotation>
+        </annotations>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>list</name>
+          <description>a pointer to take a list</description>
+        </parameter>
+      </parameters>
+      <description>Documentation for this function.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -313,32 +329,34 @@
  *
  * Documentation for this function.
  */</input>
-  <docblock>
-    <identifier>
-      <name>annotation_scope</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>callback</name>
-        <annotations>
-          <annotation>
-            <name>scope</name>
-            <options>
-              <option>
-                <name>async</name>
-              </option>
-            </options>
-          </annotation>
-        </annotations>
-        <description>a callback</description>
-      </parameter>
-      <parameter>
-        <name>user_data</name>
-        <description>data to pass to callback</description>
-      </parameter>
-    </parameters>
-    <description>Documentation for this function.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>annotation_scope</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>callback</name>
+          <annotations>
+            <annotation>
+              <name>scope</name>
+              <options>
+                <option>
+                  <name>async</name>
+                </option>
+              </options>
+            </annotation>
+          </annotations>
+          <description>a callback</description>
+        </parameter>
+        <parameter>
+          <name>user_data</name>
+          <description>data to pass to callback</description>
+        </parameter>
+      </parameters>
+      <description>Documentation for this function.</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml 
b/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml
index 71e5863..92b7b2d 100644
--- a/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/annotations/tester.h.xml
@@ -9,23 +9,25 @@
  *
  * small struct
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocAnnotation</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>that</name>
-        <annotations>
-          <annotation>
-            <name>allow-none</name>
-          </annotation>
-        </annotations>
-        <description>eventualy points to something</description>
-      </parameter>
-    </parameters>
-    <description>small struct</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocAnnotation</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>that</name>
+          <annotations>
+            <annotation>
+              <name>allow-none</name>
+            </annotation>
+          </annotations>
+          <description>eventualy points to something</description>
+        </parameter>
+      </parameters>
+      <description>small struct</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml 
b/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
index 250b162..dd05970 100644
--- a/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
@@ -22,17 +22,18 @@
  * </para>
  * </refsect2>
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>SECTION:tester</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>module for gtk-doc unit test</description>
-      </parameter>
-    </parameters>
-    <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:tester</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>module for gtk-doc unit test</description>
+        </parameter>
+      </parameters>
+      <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
 
 As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
 returns nothing.
@@ -46,7 +47,8 @@ Try a <ulink url="http://www.gtk.org/gtk-doc/#Top";>link containing a # char</uli
 Second paragraph inside subsection.
 </para>
 </refsect2>]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -56,18 +58,20 @@ Second paragraph inside subsection.
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=141869
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_141869_a</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>pid</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=141869</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_141869_a</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>pid</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=141869</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -77,18 +81,20 @@ Second paragraph inside subsection.
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=141869
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_141869_b</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>pid</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=141869</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_141869_b</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>pid</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=141869</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -98,18 +104,20 @@ Second paragraph inside subsection.
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=379466
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_379466</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>pid</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=379466</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_379466</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>pid</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=379466</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -124,29 +132,31 @@ Second paragraph inside subsection.
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_380824</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>arg</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>Returns a value.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_380824</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>arg</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>Returns a value.
 http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>0.1</description>
-      </tag>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>0.1</description>
+        </tag>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -157,18 +167,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_411739</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=411739</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_411739</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=411739</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -178,18 +190,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=419997
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_419997</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>const_values</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=419997</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_419997</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>const_values</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=419997</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -199,18 +213,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=445693
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_445693</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>pid</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=445693</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_445693</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>pid</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=445693</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -221,18 +237,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_471014</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=471014</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_471014</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=471014</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -242,18 +260,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=446648
  **/</input>
-  <docblock>
-    <identifier>
-      <name>Bug446648</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>BUG_446648_FOO</name>
-        <description>foo</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=446648</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug446648</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>BUG_446648_FOO</name>
+          <description>foo</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=446648</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -264,18 +284,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_552602</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=552602</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_552602</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=552602</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -286,18 +308,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_574654a</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=574654</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_574654a</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=574654</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -307,18 +331,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=574654
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_574654b</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>offset</name>
-        <description>skip this many items</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=574654</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_574654b</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>offset</name>
+          <description>skip this many items</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=574654</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -327,12 +353,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=580300
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_580300a_get_type</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_580300a_get_type</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -342,18 +370,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=580300
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_580300b_get_type</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>value</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_580300b_get_type</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>value</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -362,12 +392,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=580300
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_580300c_get_type</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_580300c_get_type</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -378,18 +410,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_580300d_get_type</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_580300d_get_type</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=580300</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -399,18 +433,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=597937
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_597937</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>function_arg</name>
-        <description>value</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=597937</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_597937</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>function_arg</name>
+          <description>value</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=597937</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -421,18 +457,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_602518a</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_602518a</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -443,18 +481,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_602518b</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_602518b</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -465,18 +505,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_602518c</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_602518c</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=602518</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -487,22 +529,24 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=607445
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_607445</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>parameter</description>
-      </parameter>
-      <parameter>
-        <name>n</name>
-        <description>parameter</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=607445</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_607445</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>parameter</description>
+        </parameter>
+        <parameter>
+          <name>n</name>
+          <description>parameter</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=607445</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -513,22 +557,24 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=610257
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_610257</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>der</name>
-        <description>parameter</description>
-      </parameter>
-      <parameter>
-        <name>len</name>
-        <description>parameter</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=610257</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_610257</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>der</name>
+          <description>parameter</description>
+        </parameter>
+        <parameter>
+          <name>len</name>
+          <description>parameter</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=610257</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -541,16 +587,18 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *   <para>test</para>
  * </refsect3>
  **/]]></input>
-  <docblock>
-    <identifier>
-      <name>bug_623968a</name>
-    </identifier>
-    <description><![CDATA[<para>test</para>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_623968a</name>
+      </identifier>
+      <description><![CDATA[<para>test</para>
 <refsect3>
   <title>subsect</title>
   <para>test</para>
 </refsect3>]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -564,17 +612,19 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *   <para>test</para>
  * </refsect3>
  **/]]></input>
-  <docblock>
-    <identifier>
-      <name>bug_623968b</name>
-    </identifier>
-    <description><![CDATA[test
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_623968b</name>
+      </identifier>
+      <description><![CDATA[test
 
 <refsect3>
   <title>subsect</title>
   <para>test</para>
 </refsect3>]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -583,12 +633,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * <para>test</para>
  **/]]></input>
-  <docblock>
-    <identifier>
-      <name>bug_623968c</name>
-    </identifier>
-    <description><![CDATA[<para>test</para>]]></description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_623968c</name>
+      </identifier>
+      <description><![CDATA[<para>test</para>]]></description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -599,18 +651,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624200a</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624200</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624200a</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624200</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -621,18 +675,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624200b</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624200</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624200b</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624200</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -644,26 +700,28 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=638330
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_638330</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>arg1</name>
-        <description>arg1</description>
-      </parameter>
-      <parameter>
-        <name>data</name>
-        <description>data</description>
-      </parameter>
-      <parameter>
-        <name>length</name>
-        <description>length</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=638330</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_638330</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>arg1</name>
+          <description>arg1</description>
+        </parameter>
+        <parameter>
+          <name>data</name>
+          <description>data</description>
+        </parameter>
+        <parameter>
+          <name>length</name>
+          <description>length</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=638330</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -674,22 +732,24 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * Outputs a message.
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_000000_va1</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>name</name>
-        <description>a name</description>
-      </parameter>
-      <parameter>
-        <name>...</name>
-        <description>A printf-style message to output</description>
-      </parameter>
-    </parameters>
-    <description>Outputs a message.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_000000_va1</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>name</name>
+          <description>a name</description>
+        </parameter>
+        <parameter>
+          <name>...</name>
+          <description>A printf-style message to output</description>
+        </parameter>
+      </parameters>
+      <description>Outputs a message.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -698,12 +758,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=624001
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624001a</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624001a</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -712,12 +774,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=624001
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624001b</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624001b</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -726,12 +790,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=624001
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624001c</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624001c</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -740,12 +806,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=624001
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624001d</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624001d</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -754,12 +822,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=624001
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_624001e</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_624001e</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml 
b/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
index 7973f32..4846a53 100644
--- a/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
@@ -11,26 +11,28 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=324535
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug324535</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>BUG_324535_A</name>
-        <description>enum 1</description>
-      </parameter>
-      <parameter>
-        <name>BUG_324535_B</name>
-        <description>enum 2</description>
-      </parameter>
-      <parameter>
-        <name>BUG_324535_C</name>
-        <description>enum 3</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=324535</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug324535</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>BUG_324535_A</name>
+          <description>enum 1</description>
+        </parameter>
+        <parameter>
+          <name>BUG_324535_B</name>
+          <description>enum 2</description>
+        </parameter>
+        <parameter>
+          <name>BUG_324535_C</name>
+          <description>enum 3</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=324535</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -40,18 +42,20 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=481811
  **/</input>
-  <docblock>
-    <identifier>
-      <name>bug_481811</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>x</name>
-        <description>argument</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=481811</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_481811</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>x</name>
+          <description>argument</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=481811</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -63,26 +67,28 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=501038
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_501038</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>value</description>
-      </parameter>
-      <parameter>
-        <name>b</name>
-        <description>deprecated value</description>
-      </parameter>
-      <parameter>
-        <name>_b</name>
-        <description>scrambled deprecated value</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=501038</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_501038</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>value</description>
+        </parameter>
+        <parameter>
+          <name>b</name>
+          <description>deprecated value</description>
+        </parameter>
+        <parameter>
+          <name>_b</name>
+          <description>scrambled deprecated value</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=501038</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -92,18 +98,20 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=460127
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_460127</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>field</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=460127</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_460127</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>field</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=460127</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -112,12 +120,14 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=477532
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_477532</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=477532</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_477532</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=477532</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -127,18 +137,20 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=446648
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug446648</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>BUG_446648_FOO</name>
-        <description>field</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=446648</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug446648</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>BUG_446648_FOO</name>
+          <description>field</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=446648</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -148,18 +160,20 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=512154
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug512154</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>index</name>
-        <description>field</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=512154</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug512154</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>index</name>
+          <description>field</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=512154</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -171,26 +185,28 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=512155
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_512155a_function_pointer_t</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>arg1</name>
-        <description>param 1</description>
-      </parameter>
-      <parameter>
-        <name>arg2</name>
-        <description>param 1</description>
-      </parameter>
-      <parameter>
-        <name>arg3</name>
-        <description>param 1</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_512155a_function_pointer_t</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>arg1</name>
+          <description>param 1</description>
+        </parameter>
+        <parameter>
+          <name>arg2</name>
+          <description>param 1</description>
+        </parameter>
+        <parameter>
+          <name>arg3</name>
+          <description>param 1</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -202,26 +218,28 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=512155
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_512155b_function_pointer_t</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>arg1</name>
-        <description>param 1</description>
-      </parameter>
-      <parameter>
-        <name>arg2</name>
-        <description>param 1</description>
-      </parameter>
-      <parameter>
-        <name>arg3</name>
-        <description>param 1</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_512155b_function_pointer_t</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>arg1</name>
+          <description>param 1</description>
+        </parameter>
+        <parameter>
+          <name>arg2</name>
+          <description>param 1</description>
+        </parameter>
+        <parameter>
+          <name>arg3</name>
+          <description>param 1</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -233,26 +251,28 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=512155
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_512155c_function_pointer_t</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>arg1</name>
-        <description>param 1</description>
-      </parameter>
-      <parameter>
-        <name>arg2</name>
-        <description>param 1</description>
-      </parameter>
-      <parameter>
-        <name>arg3</name>
-        <description>param 1</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_512155c_function_pointer_t</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>arg1</name>
+          <description>param 1</description>
+        </parameter>
+        <parameter>
+          <name>arg2</name>
+          <description>param 1</description>
+        </parameter>
+        <parameter>
+          <name>arg3</name>
+          <description>param 1</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=512155</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -263,14 +283,16 @@
  *
  * <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1";>Test</ulink>
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>BUG_530758</name>
-    </identifier>
-    <description><![CDATA[{{![CDATA[http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1]]!}}
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_530758</name>
+      </identifier>
+      <description><![CDATA[{{![CDATA[http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1]]!}}
 
 <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=530758#c1";>Test</ulink>]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -282,24 +304,26 @@
  *
  * Returns: number
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_532395a</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>number</name>
-        <description>a number</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=532395</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>number</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_532395a</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>number</name>
+          <description>a number</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=532395</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>number</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -308,12 +332,14 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=532395
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_532395b</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=532395</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_532395b</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=532395</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -325,24 +351,26 @@
  *
  * Returns: result or %NULL.
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_544172</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>object pointer.</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=544172</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result or %NULL.</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_544172</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>object pointer.</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=544172</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result or %NULL.</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -352,18 +380,20 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=554833
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_554833</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>i</name>
-        <description>value;</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=554833</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_554833</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>i</name>
+          <description>value;</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=554833</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -374,18 +404,20 @@
  *
  * Returns: result
  */</input>
-  <docblock>
-    <identifier>
-      <name>bug_554833_new</name>
-    </identifier>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=554833</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>result</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>bug_554833_new</name>
+      </identifier>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=554833</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>result</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -396,22 +428,24 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=165425
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug165425a</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>i</name>
-        <description>data as int</description>
-      </parameter>
-      <parameter>
-        <name>f</name>
-        <description>data as float</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=165425</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug165425a</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>i</name>
+          <description>data as int</description>
+        </parameter>
+        <parameter>
+          <name>f</name>
+          <description>data as float</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=165425</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -422,22 +456,24 @@
  *
  * http://bugzilla.gnome.org/show_bug.cgi?id=165425
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug165425b</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>i</name>
-        <description>data as int</description>
-      </parameter>
-      <parameter>
-        <name>f</name>
-        <description>data as float</description>
-      </parameter>
-    </parameters>
-    <description>http://bugzilla.gnome.org/show_bug.cgi?id=165425</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug165425b</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>i</name>
+          <description>data as int</description>
+        </parameter>
+        <parameter>
+          <name>f</name>
+          <description>data as float</description>
+        </parameter>
+      </parameters>
+      <description>http://bugzilla.gnome.org/show_bug.cgi?id=165425</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -449,26 +485,28 @@
  *
  * https://bugzilla.gnome.org/show_bug.cgi?id=642998
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug642998</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>red</name>
-        <description>red color intensity, from 0–255</description>
-      </parameter>
-      <parameter>
-        <name>green</name>
-        <description>green color intensity, from 0–255</description>
-      </parameter>
-      <parameter>
-        <name>blue</name>
-        <description>blue color intensity, from 0–255</description>
-      </parameter>
-    </parameters>
-    <description>https://bugzilla.gnome.org/show_bug.cgi?id=642998</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug642998</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>red</name>
+          <description>red color intensity, from 0–255</description>
+        </parameter>
+        <parameter>
+          <name>green</name>
+          <description>green color intensity, from 0–255</description>
+        </parameter>
+        <parameter>
+          <name>blue</name>
+          <description>blue color intensity, from 0–255</description>
+        </parameter>
+      </parameters>
+      <description>https://bugzilla.gnome.org/show_bug.cgi?id=642998</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -483,38 +521,40 @@
  *
  * https://bugzilla.gnome.org/show_bug.cgi?id=644291
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug644291</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>BUG_644291_START</name>
-        <description>foo</description>
-      </parameter>
-      <parameter>
-        <name>BUG_644291_TEXT</name>
-        <description>bar</description>
-      </parameter>
-      <parameter>
-        <name>BUG_644291_END</name>
-        <description>milk</description>
-      </parameter>
-      <parameter>
-        <name>BUG_644291_ATTRIBUTE</name>
-        <description>comes</description>
-      </parameter>
-      <parameter>
-        <name>BUG_644291_XMLNS</name>
-        <description>from</description>
-      </parameter>
-      <parameter>
-        <name>BUG_644291_ASSIGN_TO</name>
-        <description>cows</description>
-      </parameter>
-    </parameters>
-    <description>https://bugzilla.gnome.org/show_bug.cgi?id=644291</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug644291</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>BUG_644291_START</name>
+          <description>foo</description>
+        </parameter>
+        <parameter>
+          <name>BUG_644291_TEXT</name>
+          <description>bar</description>
+        </parameter>
+        <parameter>
+          <name>BUG_644291_END</name>
+          <description>milk</description>
+        </parameter>
+        <parameter>
+          <name>BUG_644291_ATTRIBUTE</name>
+          <description>comes</description>
+        </parameter>
+        <parameter>
+          <name>BUG_644291_XMLNS</name>
+          <description>from</description>
+        </parameter>
+        <parameter>
+          <name>BUG_644291_ASSIGN_TO</name>
+          <description>cows</description>
+        </parameter>
+      </parameters>
+      <description>https://bugzilla.gnome.org/show_bug.cgi?id=644291</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -525,22 +565,24 @@
  *
  * Outputs a message.
  */</input>
-  <docblock>
-    <identifier>
-      <name>BUG_000000_VA2</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>name</name>
-        <description>a name</description>
-      </parameter>
-      <parameter>
-        <name>...</name>
-        <description>A printf-style message to output</description>
-      </parameter>
-    </parameters>
-    <description>Outputs a message.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_000000_VA2</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>name</name>
+          <description>a name</description>
+        </parameter>
+        <parameter>
+          <name>...</name>
+          <description>A printf-style message to output</description>
+        </parameter>
+      </parameters>
+      <description>Outputs a message.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -551,22 +593,24 @@
  *
  * Outputs a message.
  */</input>
-  <docblock>
-    <identifier>
-      <name>BUG_000000_VA3</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>name</name>
-        <description>a name</description>
-      </parameter>
-      <parameter>
-        <name>...</name>
-        <description>A printf-style message to output</description>
-      </parameter>
-    </parameters>
-    <description>Outputs a message.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_000000_VA3</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>name</name>
+          <description>a name</description>
+        </parameter>
+        <parameter>
+          <name>...</name>
+          <description>A printf-style message to output</description>
+        </parameter>
+      </parameters>
+      <description>Outputs a message.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -577,14 +621,16 @@
  * "warning: Field descriptions for Bug000000Scope are missing in source code comment block."
  * but not if we remove the blank line before "int b";
  */</input>
-  <docblock>
-    <identifier>
-      <name>Bug000000Scope</name>
-    </identifier>
-    <description>Opaque structure.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>Bug000000Scope</name>
+      </identifier>
+      <description>Opaque structure.
 "warning: Field descriptions for Bug000000Scope are missing in source code comment block."
 but not if we remove the blank line before "int b";</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -596,26 +642,28 @@ but not if we remove the blank line before "int b";</description>
  *
  * test.
  */</input>
-  <docblock>
-    <identifier>
-      <name>gst_play_marshal_BUFFER__BOXED</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>closure</name>
-        <description>test</description>
-      </parameter>
-      <parameter>
-        <name>return_value</name>
-        <description>test</description>
-      </parameter>
-      <parameter>
-        <name>marshal_data</name>
-        <description>test</description>
-      </parameter>
-    </parameters>
-    <description>test.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>gst_play_marshal_BUFFER__BOXED</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>closure</name>
+          <description>test</description>
+        </parameter>
+        <parameter>
+          <name>return_value</name>
+          <description>test</description>
+        </parameter>
+        <parameter>
+          <name>marshal_data</name>
+          <description>test</description>
+        </parameter>
+      </parameters>
+      <description>test.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -624,12 +672,14 @@ but not if we remove the blank line before "int b";</description>
  *
  * https://bugzilla.gnome.org/show_bug.cgi?id=656773
  */</input>
-  <docblock>
-    <identifier>
-      <name>BUG_656773a</name>
-    </identifier>
-    <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_656773a</name>
+      </identifier>
+      <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -638,12 +688,14 @@ but not if we remove the blank line before "int b";</description>
  *
  * https://bugzilla.gnome.org/show_bug.cgi?id=656773
  */</input>
-  <docblock>
-    <identifier>
-      <name>BUG_656773b</name>
-    </identifier>
-    <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_656773b</name>
+      </identifier>
+      <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -652,12 +704,14 @@ but not if we remove the blank line before "int b";</description>
  *
  * https://bugzilla.gnome.org/show_bug.cgi?id=656773
  */</input>
-  <docblock>
-    <identifier>
-      <name>BUG_656773c</name>
-    </identifier>
-    <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_656773c</name>
+      </identifier>
+      <description>https://bugzilla.gnome.org/show_bug.cgi?id=656773</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -666,12 +720,14 @@ but not if we remove the blank line before "int b";</description>
  *
  * https://bugzilla.gnome.org/show_bug.cgi?id=656946
  */</input>
-  <docblock>
-    <identifier>
-      <name>BUG_656946</name>
-    </identifier>
-    <description>https://bugzilla.gnome.org/show_bug.cgi?id=656946</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>BUG_656946</name>
+      </identifier>
+      <description>https://bugzilla.gnome.org/show_bug.cgi?id=656946</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml 
b/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
index e345fc7..4dcc994 100644
--- a/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
@@ -12,21 +12,23 @@
  * As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
  * returns nothing.
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>SECTION:tester</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>short_description</name>
-        <description>module for gtk-doc unit test</description>
-      </parameter>
-    </parameters>
-    <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:tester</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>short_description</name>
+          <description>module for gtk-doc unit test</description>
+        </parameter>
+      </parameters>
+      <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
 
 As described in http://bugzilla.gnome.org/show_bug.cgi?id=457077 it
 returns nothing.]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -36,18 +38,20 @@ returns nothing.]]></description>
  *
  * lonely function
  */</input>
-  <docblock>
-    <identifier>
-      <name>test</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>arg</description>
-      </parameter>
-    </parameters>
-    <description>lonely function</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>test</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>arg</description>
+        </parameter>
+      </parameters>
+      <description>lonely function</description>
+    </docblock>
+  </parser>
  </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml 
b/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml
index f4aac1d..6e2bb01 100644
--- a/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/fail/tester.c.xml
@@ -18,21 +18,23 @@
  * @short_description: module for gtk-doc unit test
  * @title: GtkdocTesterNoLongDesc
  */</input>
- <docblock>
-   <identifier>
-     <name>SECTION:tester_nolongdesc</name>
-   </identifier>
-   <parameters>
-     <parameter>
-       <name>short_description</name>
-       <description>module for gtk-doc unit test</description>
-     </parameter>
-     <parameter>
-       <name>title</name>
-       <description>GtkdocTesterNoLongDesc</description>
-     </parameter>
-   </parameters>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>SECTION:tester_nolongdesc</name>
+     </identifier>
+     <parameters>
+       <parameter>
+         <name>short_description</name>
+         <description>module for gtk-doc unit test</description>
+       </parameter>
+       <parameter>
+         <name>title</name>
+         <description>GtkdocTesterNoLongDesc</description>
+       </parameter>
+     </parameters>
+   </docblock>
+  </parser>
 </test>
 
 <test>
@@ -42,18 +44,20 @@
  *
  * This file contains non-sense code for the sole purpose of testing the docs.
  */</input>
- <docblock>
-   <identifier>
-     <name>SECTION:tester_noshortdesc</name>
-   </identifier>
-   <parameters>
-     <parameter>
-       <name>title</name>
-       <description>GtkdocTesterNoShortDesc</description>
-     </parameter>
-   </parameters>
-   <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>SECTION:tester_noshortdesc</name>
+     </identifier>
+     <parameters>
+       <parameter>
+         <name>title</name>
+         <description>GtkdocTesterNoShortDesc</description>
+       </parameter>
+     </parameters>
+     <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+   </docblock>
+  </parser>
 </test>
 
 <test>
@@ -64,33 +68,37 @@
  *
  * This file contains non-sense code for the sole purpose of testing the docs.
  */</input>
- <docblock>
-   <identifier>
-     <name>SECTION:tester_brokendocs</name>
-   </identifier>
-   <parameters>
-     <parameter>
-       <name>short_description</name>
-       <description>module for gtk-doc unit test</description>
-     </parameter>
-     <parameter>
-       <name>title</name>
-       <description>GtkdocTesterBrokenDocs</description>
-     </parameter>
-   </parameters>
-   <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>SECTION:tester_brokendocs</name>
+     </identifier>
+     <parameters>
+       <parameter>
+         <name>short_description</name>
+         <description>module for gtk-doc unit test</description>
+       </parameter>
+       <parameter>
+         <name>title</name>
+         <description>GtkdocTesterBrokenDocs</description>
+       </parameter>
+     </parameters>
+     <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+   </docblock>
+  </parser>
 </test>
 
 <test>
   <input>/**
  * func_no_docs:
  */</input>
- <docblock>
-   <identifier>
-     <name>func_no_docs</name>
-   </identifier>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>func_no_docs</name>
+     </identifier>
+   </docblock>
+  </parser>
 </test>
 
 <test>
@@ -99,12 +107,14 @@
  *
  * Here we document the function but not the parameters.
  */</input>
- <docblock>
-   <identifier>
-     <name>func_no_item_docs</name>
-   </identifier>
-   <description>Here we document the function but not the parameters.</description>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>func_no_item_docs</name>
+     </identifier>
+     <description>Here we document the function but not the parameters.</description>
+   </docblock>
+  </parser>
 </test>
 
 <test>
@@ -114,18 +124,20 @@
  *
  * Here we document the function but not all the parameters.
  */</input>
- <docblock>
-   <identifier>
-     <name>func_incomplete_docs</name>
-   </identifier>
-   <parameters>
-     <parameter>
-       <name>a</name>
-       <description>a value</description>
-     </parameter>
-   </parameters>
-   <description>Here we document the function but not all the parameters.</description>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>func_incomplete_docs</name>
+     </identifier>
+     <parameters>
+       <parameter>
+         <name>a</name>
+         <description>a value</description>
+       </parameter>
+     </parameters>
+     <description>Here we document the function but not all the parameters.</description>
+   </docblock>
+  </parser>
 </test>
 
 <test>
@@ -137,26 +149,28 @@
  *
  * Here we document the function and more than the actual parameters.
  */</input>
- <docblock>
-   <identifier>
-     <name>func_unused_docs</name>
-   </identifier>
-   <parameters>
-     <parameter>
-       <name>a</name>
-       <description>a value</description>
-     </parameter>
-     <parameter>
-       <name>b</name>
-       <description>a value</description>
-     </parameter>
-     <parameter>
-       <name>c</name>
-       <description>an unexisting value</description>
-     </parameter>
-   </parameters>
-   <description>Here we document the function and more than the actual parameters.</description>
- </docblock>
+  <parser>
+   <docblock>
+     <identifier>
+       <name>func_unused_docs</name>
+     </identifier>
+     <parameters>
+       <parameter>
+         <name>a</name>
+         <description>a value</description>
+       </parameter>
+       <parameter>
+         <name>b</name>
+         <description>a value</description>
+       </parameter>
+       <parameter>
+         <name>c</name>
+         <description>an unexisting value</description>
+       </parameter>
+     </parameters>
+     <description>Here we document the function and more than the actual parameters.</description>
+   </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml 
b/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
index eafb98e..0663911 100644
--- a/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
@@ -8,12 +8,14 @@
  *
  * Here we document the macro but not the parameters.
  */</input>
-  <docblock>
-    <identifier>
-      <name>MACRO_NO_ITEM_DOCS</name>
-    </identifier>
-    <description>Here we document the macro but not the parameters.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>MACRO_NO_ITEM_DOCS</name>
+      </identifier>
+      <description>Here we document the macro but not the parameters.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -23,18 +25,20 @@
  *
  * Here we document the macro but not all the parameters.
  */</input>
-  <docblock>
-    <identifier>
-      <name>MACRO_INCOMPLETE_DOCS</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>a value</description>
-      </parameter>
-    </parameters>
-    <description>Here we document the macro but not all the parameters.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>MACRO_INCOMPLETE_DOCS</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>a value</description>
+        </parameter>
+      </parameters>
+      <description>Here we document the macro but not all the parameters.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -46,26 +50,28 @@
  *
  * Here we document the macro and more than the actual parameters.
  */</input>
-  <docblock>
-    <identifier>
-      <name>MACRO_UNUSED_DOCS</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>a value</description>
-      </parameter>
-      <parameter>
-        <name>b</name>
-        <description>a value</description>
-      </parameter>
-      <parameter>
-        <name>c</name>
-        <description>an unexisting value</description>
-      </parameter>
-    </parameters>
-    <description>Here we document the macro and more than the actual parameters.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>MACRO_UNUSED_DOCS</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>a value</description>
+        </parameter>
+        <parameter>
+          <name>b</name>
+          <description>a value</description>
+        </parameter>
+        <parameter>
+          <name>c</name>
+          <description>an unexisting value</description>
+        </parameter>
+      </parameters>
+      <description>Here we document the macro and more than the actual parameters.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -75,13 +81,15 @@
  * Here we document the enum but not the values.
  * http://bugzilla.gnome.org/show_bug.cgi?id=568711
  */</input>
-  <docblock>
-    <identifier>
-      <name>EnumNoItemDocs</name>
-    </identifier>
-    <description>Here we document the enum but not the values.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>EnumNoItemDocs</name>
+      </identifier>
+      <description>Here we document the enum but not the values.
 http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -91,18 +99,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
  *
  * Here we document the enum but not all the values.
  */</input>
-  <docblock>
-    <identifier>
-      <name>EnumIncompleteDocs</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>ENUM_INCOMPLETE_DOCS_1</name>
-        <description>a value</description>
-      </parameter>
-    </parameters>
-    <description>Here we document the enum but not all the values.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>EnumIncompleteDocs</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>ENUM_INCOMPLETE_DOCS_1</name>
+          <description>a value</description>
+        </parameter>
+      </parameters>
+      <description>Here we document the enum but not all the values.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -114,26 +124,28 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
  *
  * Here we document the enum and more than the actual values.
  */</input>
-  <docblock>
-    <identifier>
-      <name>EnumUnusedDocs</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>ENUM_UNUSED_DOCS_1</name>
-        <description>a value</description>
-      </parameter>
-      <parameter>
-        <name>ENUM_UNUSED_DOCS_2</name>
-        <description>a value</description>
-      </parameter>
-      <parameter>
-        <name>ENUM_UNUSED_DOCS_3</name>
-        <description>an unexisting value</description>
-      </parameter>
-    </parameters>
-    <description>Here we document the enum and more than the actual values.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>EnumUnusedDocs</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>ENUM_UNUSED_DOCS_1</name>
+          <description>a value</description>
+        </parameter>
+        <parameter>
+          <name>ENUM_UNUSED_DOCS_2</name>
+          <description>a value</description>
+        </parameter>
+        <parameter>
+          <name>ENUM_UNUSED_DOCS_3</name>
+          <description>an unexisting value</description>
+        </parameter>
+      </parameters>
+      <description>Here we document the enum and more than the actual values.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -142,12 +154,14 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
  *
  * Here we document the struct but not the values.
  */</input>
-  <docblock>
-    <identifier>
-      <name>StructNoItemDocs</name>
-    </identifier>
-    <description>Here we document the struct but not the values.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>StructNoItemDocs</name>
+      </identifier>
+      <description>Here we document the struct but not the values.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -157,18 +171,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
  *
  * Here we document the struct but not all the values.
  */</input>
-  <docblock>
-    <identifier>
-      <name>StructIncompleteDocs</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>a value</description>
-      </parameter>
-    </parameters>
-    <description>Here we document the struct but not all the values.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>StructIncompleteDocs</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>a value</description>
+        </parameter>
+      </parameters>
+      <description>Here we document the struct but not all the values.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -180,26 +196,28 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
  *
  * Here we document the struct and more than the actual values.
  */</input>
-  <docblock>
-    <identifier>
-      <name>StructUnusedDocs</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>a</name>
-        <description>a value</description>
-      </parameter>
-      <parameter>
-        <name>b</name>
-        <description>a value</description>
-      </parameter>
-      <parameter>
-        <name>c</name>
-        <description>an unexisting value</description>
-      </parameter>
-    </parameters>
-    <description>Here we document the struct and more than the actual values.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>StructUnusedDocs</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>a</name>
+          <description>a value</description>
+        </parameter>
+        <parameter>
+          <name>b</name>
+          <description>a value</description>
+        </parameter>
+        <parameter>
+          <name>c</name>
+          <description>an unexisting value</description>
+        </parameter>
+      </parameters>
+      <description>Here we document the struct and more than the actual values.</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml 
b/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
index b8daf7f..6511533 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
@@ -23,25 +23,26 @@
  * Just incase you wonder, special caracters can be escaped with a \ like in \%
  * or \# or even \  
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>SECTION:iface</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>title</name>
-        <description>GtkdocIface</description>
-      </parameter>
-      <parameter>
-        <name>short_description</name>
-        <description>interface for gtk-doc unit test</description>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#GtkdocObject</description>
-      </parameter>
-    </parameters>
-    <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:iface</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>title</name>
+          <description>GtkdocIface</description>
+        </parameter>
+        <parameter>
+          <name>short_description</name>
+          <description>interface for gtk-doc unit test</description>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#GtkdocObject</description>
+        </parameter>
+      </parameters>
+      <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
 We can link to the #GtkdocIface:itest property and the #GtkdocIface::itest
 signal.
 An instance can be configured using the gtkdoc_iface_configure() function.
@@ -54,7 +55,8 @@ I can haz pictures too!
 
 Just incase you wonder, special caracters can be escaped with a \ like in \%
 or \# or even \  ]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -66,26 +68,28 @@ or \# or even \  ]]></description>
  *
  * This file contains non-sense code for the sole purpose of testing the docs.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:iface2</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>title</name>
-        <description>GtkdocIface2</description>
-      </parameter>
-      <parameter>
-        <name>short_description</name>
-        <description>interface with a prerequisite for gtk-doc unit test</description>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#GtkdocObject, #GtkdocIface</description>
-      </parameter>
-    </parameters>
-    <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:iface2</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>title</name>
+          <description>GtkdocIface2</description>
+        </parameter>
+        <parameter>
+          <name>short_description</name>
+          <description>interface with a prerequisite for gtk-doc unit test</description>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#GtkdocObject, #GtkdocIface</description>
+        </parameter>
+      </parameters>
+      <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -99,28 +103,30 @@ or \# or even \  ]]></description>
  *
  * Since: 0.1
  */</input>
-  <docblock>
-    <identifier>
-      <name>gtkdoc_iface_configure</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>config</name>
-        <description>settings</description>
-      </parameter>
-    </parameters>
-    <description>Configure a new instance</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>%TRUE for sucess or %FALSE in case of an error</description>
-      </tag>
-      <tag>
-        <name>since</name>
-        <description>0.1</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>gtkdoc_iface_configure</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>config</name>
+          <description>settings</description>
+        </parameter>
+      </parameters>
+      <description>Configure a new instance</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>%TRUE for sucess or %FALSE in case of an error</description>
+        </tag>
+        <tag>
+          <name>since</name>
+          <description>0.1</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -130,18 +136,20 @@ or \# or even \  ]]></description>
      *
      * The event has been triggered.
      */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocIface::itest</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>myself</description>
-      </parameter>
-    </parameters>
-    <description>The event has been triggered.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocIface::itest</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>myself</description>
+        </parameter>
+      </parameters>
+      <description>The event has been triggered.</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml 
b/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml
index 076647e..c927153 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/giface.h.xml
@@ -8,12 +8,14 @@
  *
  * opaque instance of gtk-doc unit test interface
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocIface</name>
-    </identifier>
-    <description>opaque instance of gtk-doc unit test interface</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocIface</name>
+      </identifier>
+      <description>opaque instance of gtk-doc unit test interface</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -22,12 +24,14 @@
  *
  * opaque instance of gtk-doc unit test interface
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocIface2</name>
-    </identifier>
-    <description>opaque instance of gtk-doc unit test interface</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocIface2</name>
+      </identifier>
+      <description>opaque instance of gtk-doc unit test interface</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -38,22 +42,24 @@
  *
  * class data of gtk-doc unit test interface
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocIfaceInterface</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parent</name>
-        <description>this is a bug :/</description>
-      </parameter>
-      <parameter>
-        <name>test</name>
-        <description>overideable method</description>
-      </parameter>
-    </parameters>
-    <description>class data of gtk-doc unit test interface</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocIfaceInterface</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parent</name>
+          <description>this is a bug :/</description>
+        </parameter>
+        <parameter>
+          <name>test</name>
+          <description>overideable method</description>
+        </parameter>
+      </parameters>
+      <description>class data of gtk-doc unit test interface</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -64,22 +70,24 @@
  *
  * This macro does nothing.
  */</input>
-  <docblock>
-    <identifier>
-      <name>GTKDOC_IFACE_MACRO_DUMMY</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parameter_1</name>
-        <description>first arg</description>
-      </parameter>
-      <parameter>
-        <name>parameter_2</name>
-        <description>second arg</description>
-      </parameter>
-    </parameters>
-    <description>This macro does nothing.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GTKDOC_IFACE_MACRO_DUMMY</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parameter_1</name>
+          <description>first arg</description>
+        </parameter>
+        <parameter>
+          <name>parameter_2</name>
+          <description>second arg</description>
+        </parameter>
+      </parameters>
+      <description>This macro does nothing.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -92,28 +100,30 @@
  *
  * Returns: the sum of @parameter_1 and @parameter_2
  */</input>
-  <docblock>
-    <identifier>
-      <name>GTKDOC_IFACE_MACRO_SUM</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parameter_1</name>
-        <description>first arg</description>
-      </parameter>
-      <parameter>
-        <name>parameter_2</name>
-        <description>second arg</description>
-      </parameter>
-    </parameters>
-    <description>This macro adds its args.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>the sum of @parameter_1 and @parameter_2</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GTKDOC_IFACE_MACRO_SUM</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parameter_1</name>
+          <description>first arg</description>
+        </parameter>
+        <parameter>
+          <name>parameter_2</name>
+          <description>second arg</description>
+        </parameter>
+      </parameters>
+      <description>This macro adds its args.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>the sum of @parameter_1 and @parameter_2</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml 
b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
index 2d501f8..ef825d8 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
@@ -43,29 +43,30 @@
  *
  * Nothing more to say.
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>SECTION:object</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>title</name>
-        <description>GtkdocObject</description>
-      </parameter>
-      <parameter>
-        <name>short_description</name>
-        <description>class for gtk-doc unit test</description>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#GtkdocIface</description>
-      </parameter>
-      <parameter>
-        <name>Image</name>
-        <description>object.png</description>
-      </parameter>
-    </parameters>
-    <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:object</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>title</name>
+          <description>GtkdocObject</description>
+        </parameter>
+        <parameter>
+          <name>short_description</name>
+          <description>class for gtk-doc unit test</description>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#GtkdocIface</description>
+        </parameter>
+        <parameter>
+          <name>Image</name>
+          <description>object.png</description>
+        </parameter>
+      </parameters>
+      <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
 We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
 signal.
 
@@ -97,7 +98,8 @@ This example serves two main purposes:
 - having an example
 
 Nothing more to say.]]></description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -115,32 +117,34 @@ Nothing more to say.]]></description>
  * All the internal details go here or not:
  * - single item list
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:object2</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>title</name>
-        <description>GtkdocObject2</description>
-      </parameter>
-      <parameter>
-        <name>short_description</name>
-        <description>class with interface for gtk-doc unit test</description>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#GtkdocIface</description>
-      </parameter>
-    </parameters>
-    <description>This file contains non-sense code for the sole purpose of testing the docs.
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:object2</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>title</name>
+          <description>GtkdocObject2</description>
+        </parameter>
+        <parameter>
+          <name>short_description</name>
+          <description>class with interface for gtk-doc unit test</description>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#GtkdocIface</description>
+        </parameter>
+      </parameters>
+      <description>This file contains non-sense code for the sole purpose of testing the docs.
 
 Internals
 =========
 
 All the internal details go here or not:
 - single item list</description>
-  </docblock>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -155,25 +159,27 @@ All the internal details go here or not:
  *
  * Since: 0.1
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>gtkdoc_object_new</name>
-    </identifier>
-    <description><![CDATA[Create a new instance
+  <parser>
+    <docblock>
+      <identifier>
+        <name>gtkdoc_object_new</name>
+      </identifier>
+      <description><![CDATA[Create a new instance
 <note><para>
   This will only work if you have called g_type_init() before.
 </para></note>]]></description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>the instance or %NULL in case of an error</description>
-      </tag>
-      <tag>
-        <name>since</name>
-        <description>0.1</description>
-      </tag>
-    </tags>
-  </docblock>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>the instance or %NULL in case of an error</description>
+        </tag>
+        <tag>
+          <name>since</name>
+          <description>0.1</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -189,32 +195,34 @@ All the internal details go here or not:
  *
  * Since: 0.5
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>gtkdoc_object_set_otest</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>the object</description>
-      </parameter>
-      <parameter>
-        <name>value</name>
-        <description>the new otest value, whose description extends further than one line will 
allow</description>
-      </parameter>
-    </parameters>
-    <description>Set the #GtkdocObject:otest property.</description>
-    <tags>
-      <tag>
-        <name>deprecated</name>
-        <description><![CDATA[Use g_object_set(obj,&quot;otest&quot;,value,NULL); instead.]]></description>
-      </tag>
-      <tag>
-        <name>since</name>
-        <description>0.5</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>gtkdoc_object_set_otest</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>the object</description>
+        </parameter>
+        <parameter>
+          <name>value</name>
+          <description>the new otest value, whose description extends further than one line will 
allow</description>
+        </parameter>
+      </parameters>
+      <description>Set the #GtkdocObject:otest property.</description>
+      <tags>
+        <tag>
+          <name>deprecated</name>
+          <description><![CDATA[Use g_object_set(obj,&quot;otest&quot;,value,NULL); instead.]]></description>
+        </tag>
+        <tag>
+          <name>since</name>
+          <description>0.5</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -233,34 +241,36 @@ All the internal details go here or not:
  *
  * Since: 0.5
  */]]></input>
-  <docblock>
-    <identifier>
-      <name>gtkdoc_object_frobnicate</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>the object</description>
-      </parameter>
-      <parameter>
-        <name>n</name>
-        <description>number of iterations</description>
-      </parameter>
-    </parameters>
-    <description><![CDATA[Frobnicate the content of @self @n times. This implements a
+  <parser>
+    <docblock>
+      <identifier>
+        <name>gtkdoc_object_frobnicate</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>the object</description>
+        </parameter>
+        <parameter>
+          <name>n</name>
+          <description>number of iterations</description>
+        </parameter>
+      </parameters>
+      <description><![CDATA[Frobnicate the content of @self @n times. This implements a
 complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
 <footnote>
  <para>
    Negative frobnication can lead to unexpected behaviour.
  </para>
 </footnote>]]></description>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>0.5</description>
-      </tag>
-    </tags>
-  </docblock>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>0.5</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -273,28 +283,30 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
  *
  * Returns: %TRUE for success
  */</input>
-  <docblock>
-    <identifier>
-      <name>gtkdoc_object_fooify</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>the object</description>
-      </parameter>
-      <parameter>
-        <name>...</name>
-        <description>a NULL terminated list of arguments</description>
-      </parameter>
-    </parameters>
-    <description>Fooify the content of @self.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>%TRUE for success</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>gtkdoc_object_fooify</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>the object</description>
+        </parameter>
+        <parameter>
+          <name>...</name>
+          <description>a NULL terminated list of arguments</description>
+        </parameter>
+      </parameters>
+      <description>Fooify the content of @self.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>%TRUE for success</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -304,18 +316,20 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
    *
    * The event has been triggered.
    */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject::otest</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>myself</description>
-      </parameter>
-    </parameters>
-    <description>The event has been triggered.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject::otest</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>myself</description>
+        </parameter>
+      </parameters>
+      <description>The event has been triggered.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -327,24 +341,26 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
    *
    * Deprecated: Use the #GtkdocObject::otest signal instead.
    */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject::dep-otest</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>self</name>
-        <description>myself</description>
-      </parameter>
-    </parameters>
-    <description>The event has been triggered.</description>
-    <tags>
-      <tag>
-        <name>deprecated</name>
-        <description>Use the #GtkdocObject::otest signal instead.</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject::dep-otest</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>self</name>
+          <description>myself</description>
+        </parameter>
+      </parameters>
+      <description>The event has been triggered.</description>
+      <tags>
+        <tag>
+          <name>deprecated</name>
+          <description>Use the #GtkdocObject::otest signal instead.</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -353,12 +369,14 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
    *
    * Something has happened.
    */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject::strings-changed</name>
-    </identifier>
-    <description>Something has happened.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject::strings-changed</name>
+      </identifier>
+      <description>Something has happened.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -367,12 +385,14 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
    *
    * Something has happened.
    */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject::variant-changed</name>
-    </identifier>
-    <description>Something has happened.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject::variant-changed</name>
+      </identifier>
+      <description>Something has happened.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -381,17 +401,19 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
    *
    * Since: 0.1
    */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject:otest</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>0.1</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject:otest</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>0.1</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -400,17 +422,19 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
    *
    * Deprecated: use #GtkdocObject:otest property
    */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject:dep-otest</name>
-    </identifier>
-    <tags>
-      <tag>
-        <name>deprecated</name>
-        <description>use #GtkdocObject:otest property</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject:dep-otest</name>
+      </identifier>
+      <tags>
+        <tag>
+          <name>deprecated</name>
+          <description>use #GtkdocObject:otest property</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml 
b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
index 032a118..4e9f7c8 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
@@ -8,12 +8,14 @@
  *
  * instance data of gtk-doc unit test class
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject</name>
-    </identifier>
-    <description>instance data of gtk-doc unit test class</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject</name>
+      </identifier>
+      <description>instance data of gtk-doc unit test class</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -26,30 +28,32 @@
  *
  * class data of gtk-doc unit test class
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObjectClass</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parent</name>
-        <description>this is a bug :/</description>
-      </parameter>
-      <parameter>
-        <name>test</name>
-        <description>overideable method</description>
-      </parameter>
-      <parameter>
-        <name>ping</name>
-        <description>can be used before calling the @test() function</description>
-      </parameter>
-      <parameter>
-        <name>foo_bar</name>
-        <description>lets you refine your frobnicator</description>
-      </parameter>
-    </parameters>
-    <description>class data of gtk-doc unit test class</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObjectClass</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parent</name>
+          <description>this is a bug :/</description>
+        </parameter>
+        <parameter>
+          <name>test</name>
+          <description>overideable method</description>
+        </parameter>
+        <parameter>
+          <name>ping</name>
+          <description>can be used before calling the @test() function</description>
+        </parameter>
+        <parameter>
+          <name>foo_bar</name>
+          <description>lets you refine your frobnicator</description>
+        </parameter>
+      </parameters>
+      <description>class data of gtk-doc unit test class</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -58,12 +62,14 @@
  *
  * instance data of gtk-doc unit test class
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject2</name>
-    </identifier>
-    <description>instance data of gtk-doc unit test class</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject2</name>
+      </identifier>
+      <description>instance data of gtk-doc unit test class</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -73,18 +79,20 @@
  *
  * class data of gtk-doc unit test class
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocObject2Class</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parent</name>
-        <description>this is a bug :/</description>
-      </parameter>
-    </parameters>
-    <description>class data of gtk-doc unit test class</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocObject2Class</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parent</name>
+          <description>this is a bug :/</description>
+        </parameter>
+      </parameters>
+      <description>class data of gtk-doc unit test class</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -97,28 +105,30 @@
  *
  * Since: 0.1
  */</input>
-  <docblock>
-    <identifier>
-      <name>GTKDOC_OBJECT_MACRO_DUMMY</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parameter_1</name>
-        <description>first arg</description>
-      </parameter>
-      <parameter>
-        <name>parameter_2</name>
-        <description>second arg</description>
-      </parameter>
-    </parameters>
-    <description>This macro does nothing.</description>
-    <tags>
-      <tag>
-        <name>since</name>
-        <description>0.1</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GTKDOC_OBJECT_MACRO_DUMMY</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parameter_1</name>
+          <description>first arg</description>
+        </parameter>
+        <parameter>
+          <name>parameter_2</name>
+          <description>second arg</description>
+        </parameter>
+      </parameters>
+      <description>This macro does nothing.</description>
+      <tags>
+        <tag>
+          <name>since</name>
+          <description>0.1</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -131,28 +141,30 @@
  *
  * Returns: the sum of @parameter_1 and @parameter_2
  */</input>
-  <docblock>
-    <identifier>
-      <name>GTKDOC_OBJECT_MACRO_SUM</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>parameter_1</name>
-        <description>first arg</description>
-      </parameter>
-      <parameter>
-        <name>parameter_2</name>
-        <description>second arg</description>
-      </parameter>
-    </parameters>
-    <description>This macro adds its args.</description>
-    <tags>
-      <tag>
-        <name>returns</name>
-        <description>the sum of @parameter_1 and @parameter_2</description>
-      </tag>
-    </tags>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GTKDOC_OBJECT_MACRO_SUM</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>parameter_1</name>
+          <description>first arg</description>
+        </parameter>
+        <parameter>
+          <name>parameter_2</name>
+          <description>second arg</description>
+        </parameter>
+      </parameters>
+      <description>This macro adds its args.</description>
+      <tags>
+        <tag>
+          <name>returns</name>
+          <description>the sum of @parameter_1 and @parameter_2</description>
+        </tag>
+      </tags>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml 
b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml
index c5f338c..eed6943 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.c.xml
@@ -11,26 +11,28 @@
  *
  * This file contains non-sense code for the sole purpose of testing the docs.
  */</input>
-  <docblock>
-    <identifier>
-      <name>SECTION:types</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>title</name>
-        <description>GtkdocTypes</description>
-      </parameter>
-      <parameter>
-        <name>short_description</name>
-        <description>other gobject types for gtk-doc unit test</description>
-      </parameter>
-      <parameter>
-        <name>see_also</name>
-        <description>#GtkdocObject, #GtkdocIface</description>
-      </parameter>
-    </parameters>
-    <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>SECTION:types</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>title</name>
+          <description>GtkdocTypes</description>
+        </parameter>
+        <parameter>
+          <name>short_description</name>
+          <description>other gobject types for gtk-doc unit test</description>
+        </parameter>
+        <parameter>
+          <name>see_also</name>
+          <description>#GtkdocObject, #GtkdocIface</description>
+        </parameter>
+      </parameters>
+      <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml 
b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
index df5d74a..d77ec1a 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
@@ -11,22 +11,24 @@
  *
  * Enum values for the #GtkdocEnum type.
  */</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocEnum</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>GTKDOC_ENUM_V1</name>
-        <description>first</description>
-      </parameter>
-      <parameter>
-        <name>GTKDOC_ENUM_V2</name>
-        <description>second Since: 0.10</description>
-      </parameter>
-    </parameters>
-    <description>Enum values for the #GtkdocEnum type.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocEnum</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>GTKDOC_ENUM_V1</name>
+          <description>first</description>
+        </parameter>
+        <parameter>
+          <name>GTKDOC_ENUM_V2</name>
+          <description>second Since: 0.10</description>
+        </parameter>
+      </parameters>
+      <description>Enum values for the #GtkdocEnum type.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -37,22 +39,24 @@
  *
  * Unboxed plain old data that should default to public members.
  **/</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocPlainOldData</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>n</name>
-        <description>Some integer member.</description>
-      </parameter>
-      <parameter>
-        <name>x</name>
-        <description>Some floating point member.</description>
-      </parameter>
-    </parameters>
-    <description>Unboxed plain old data that should default to public members.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocPlainOldData</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>n</name>
+          <description>Some integer member.</description>
+        </parameter>
+        <parameter>
+          <name>x</name>
+          <description>Some floating point member.</description>
+        </parameter>
+      </parameters>
+      <description>Unboxed plain old data that should default to public members.</description>
+    </docblock>
+  </parser>
 </test>
 
 <test>
@@ -63,22 +67,24 @@
  *
  * Boxed plain old data that should default to public members.
  **/</input>
-  <docblock>
-    <identifier>
-      <name>GtkdocBoxedPlainOldData</name>
-    </identifier>
-    <parameters>
-      <parameter>
-        <name>n</name>
-        <description>Some integer member.</description>
-      </parameter>
-      <parameter>
-        <name>x</name>
-        <description>Some floating point member.</description>
-      </parameter>
-    </parameters>
-    <description>Boxed plain old data that should default to public members.</description>
-  </docblock>
+  <parser>
+    <docblock>
+      <identifier>
+        <name>GtkdocBoxedPlainOldData</name>
+      </identifier>
+      <parameters>
+        <parameter>
+          <name>n</name>
+          <description>Some integer member.</description>
+        </parameter>
+        <parameter>
+          <name>x</name>
+          <description>Some floating point member.</description>
+        </parameter>
+      </parameters>
+      <description>Boxed plain old data that should default to public members.</description>
+    </docblock>
+  </parser>
 </test>
 
 </tests>
diff --git a/tests/scanner/annotationparser/test_parser.py b/tests/scanner/annotationparser/test_parser.py
index 3968d3b..71b399e 100644
--- a/tests/scanner/annotationparser/test_parser.py
+++ b/tests/scanner/annotationparser/test_parser.py
@@ -47,7 +47,7 @@ class TestCommentBlock(unittest.TestCase):
             parsed_tree = self.parsed2tree(parsed_docblock).split('\n')
 
             # Get expected output
-            expected_docblock = testcase.find('docblock')
+            expected_docblock = testcase.find('parser/docblock')
             expected_tree = self.expected2tree(expected_docblock).split('\n')
 
             # Construct a meaningful message


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]