1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# -*- Mode: Python -*-
# Positive QAPI doc comment tests
{ 'pragma': { 'doc-required': true } }
##
# = Section
#
# == Subsection
#
# *strong* _with emphasis_
# @var {in braces}
# * List item one
# - Two, multiple
# lines
#
# 3. Three
# Still in list
#
# Not in list
# - Second list
# Note: still in list
#
# Note: not in list
# 1. Third list
# is numbered
#
# - another item
#
# | example
# | multiple lines
#
# Returns: the King
# Since: the first age
# Notes:
#
# 1. Lorem ipsum dolor sit amet
#
# 2. Ut enim ad minim veniam
#
# Duis aute irure dolor
#
# Example:
#
# -> in
# <- out
# Examples:
# - *verbatim*
# - {braces}
##
##
# @Enum:
# == Produces *invalid* texinfo
# @one: The _one_ {and only}
#
# @two is undocumented
##
{ 'enum': 'Enum', 'data': [ 'one', 'two' ] }
##
# @Base:
# @base1:
# the first member
##
{ 'struct': 'Base', 'data': { 'base1': 'Enum' } }
##
# @Variant1:
# A paragraph
#
# Another paragraph (but no @var: line)
##
{ 'struct': 'Variant1', 'data': { 'var1': 'str' } }
##
# @Variant2:
##
{ 'struct': 'Variant2', 'data': {} }
##
# @Object:
##
{ 'union': 'Object',
'base': 'Base',
'discriminator': 'base1',
'data': { 'one': 'Variant1', 'two': 'Variant2' } }
##
# @SugaredUnion:
##
{ 'union': 'SugaredUnion',
'data': { 'one': 'Variant1', 'two': 'Variant2' } }
##
# == Another subsection
##
##
# @cmd:
# @arg1: the first argument
#
# @arg2: the second
# argument
# Note: @arg3 is undocumented
# Returns: @Object
# TODO: frobnicate
# Notes:
# - Lorem ipsum dolor sit amet
# - Ut enim ad minim veniam
#
# Duis aute irure dolor
# Example:
#
# -> in
# <- out
# Examples:
# - *verbatim*
# - {braces}
# Since: 2.10
##
{ 'command': 'cmd',
'data': { 'arg1': 'int', '*arg2': 'str', 'arg3': 'bool' },
'returns': 'Object' }
##
# @cmd-boxed:
# If you're bored enough to read this, go see a video of boxed cats
# Example:
#
# -> in
#
# <- out
##
{ 'command': 'cmd-boxed', 'boxed': true,
'data': 'Object' }
|