57
57
module_desc => "\t<title>%s</title>\n",
58
58
module_footer => "</chapter>\n",
59
59
class_header => "\t<section id='lua_class_%s'><title>%s</title>\n",
60
class_desc => "\t\t<para>%s</para>\n",
60
61
class_footer => "\t</section> <!-- class_footer: %s -->\n",
61
class_desc => "\t\t<para>%s</para>\n",
62
class_constructors_header => "\t\t<section id='lua_class_constructors_%s'>\n\t\t\t<title>%s Constructors</title>\n",
63
class_constructors_footer => "\t\t</section> <!-- class_constructors_footer -->\n",
64
class_methods_header => "\t\t<section id='lua_class_methods_%s'>\n\t\t\t<title>%s Methods</title>\n",
65
class_methods_footer => "\t\t</section> <!-- class_methods_footer: %s -->\n",
66
class_attributes_header => "\t\t<section id='lua_class_attribs_%s'>\n\t\t\t<title>%s Attributes</title>\n",
67
class_attributes_footer => "\t\t</section> <!-- class_attributes_footer: %s -->\n",
62
# class_constructors_header => "\t\t<section id='lua_class_constructors_%s'>\n\t\t\t<title>%s Constructors</title>\n",
63
# class_constructors_footer => "\t\t</section> <!-- class_constructors_footer -->\n",
64
# class_methods_header => "\t\t<section id='lua_class_methods_%s'>\n\t\t\t<title>%s Methods</title>\n",
65
# class_methods_footer => "\t\t</section> <!-- class_methods_footer: %s -->\n",
68
66
class_attr_header => "\t\t<section id='lua_class_attrib_%s'>\n\t\t\t<title>%s</title>\n",
69
67
class_attr_footer => "\t\t</section> <!-- class_attr_footer: %s -->\n",
70
68
class_attr_descr => "\t\t\t<para>%s</para>\n",
89
87
non_method_functions_footer => "\t\t</section> <!-- Non method -->\n",
93
class_header => "= %s =\n",
95
class_constructors_header => "== %s constructors ==\n",
96
class_methods_header => "== %s methods ==\n",
97
class_attributes_header => "== %s Attributes ==\n",
98
class_attr_header => "=== %s ===\n",
99
class_attr_descr => "%s\n",
100
function_header => "=== %s ===\n",
101
function_descr => "%s\n",
102
function_arg_header => "==== %s ====\n",
103
function_arg_descr => "%s\n",
104
function_argerrors_header => "'''Errors:'''\n",
105
function_argerror => " * %s\n",
106
function_returns_header => "==== returns ====\n",
107
function_returns => " * %s\n",
108
function_errors_header => "==== errors ====\n",
109
function_errors => " * %s\n",
110
non_method_functions_header => "= Non method functions =\n",
114
my %metamethods = %{{
115
__tostring => "tostring(__)",
117
__newindex => "__[] = ",
125
__concat => "__ .. __",
133
91
my $template_ref = $docbook_template;
134
92
my $out_extension = "xml";
192
149
push @{${$class}{constructors}}, $function;
195
[ 'WSLUA_METHOD\s+([A-Za-z]+)_([a-z_]+)[^\173]*\173' . $TRAILING_COMMENT_RE,
152
[ '_WSLUA_CONSTRUCTOR_\s+([A-Za-z0-9]+)_([a-z0-9_]+)\s*(.*?)\052\057',
154
deb ">cc=$1=$2=$3=$4=$5=$6=$7=\n";
160
descr => gorolla($3),
161
type => 'constructor'
163
push @{${$class}{constructors}}, $function;
166
[ 'WSLUA_METHOD\s+([A-Za-z]+)_([a-z0-9_]+)[^\173]*\173' . $TRAILING_COMMENT_RE,
197
168
deb ">cm=$1=$2=$3=$4=$5=$6=$7=\n";
170
$name =~ tr/A-Z/a-z/;
203
177
descr => gorolla($5),
206
180
push @{${$class}{methods}}, $function;
209
[ 'WSLUA_METAMETHOD\s+([A-Za-z]+)(__[a-z]+)[^\173]*\173' . $TRAILING_COMMENT_RE,
183
[ 'WSLUA_METAMETHOD\s+([A-Za-z]+)(__[a-z0-9]+)[^\173]*\173' . $TRAILING_COMMENT_RE,
211
185
deb ">cm=$1=$2=$3=$4=$5=$6=$7=\n";
212
my $name = $metamethods{$2};
187
$name =~ tr/A-Z/a-z/;
213
189
my ($c,$d) = ($1,$5);
219
195
descr => gorolla($5),
220
196
type => 'metamethod'
222
push @{${$class}{metamethods}}, $function;
198
push @{${$class}{methods}}, $function;
225
[ '#define WSLUA_(OPT)?ARG_([a-z_]+)_([A-Z0-9]+)\s+\d+' . $TRAILING_COMMENT_RE,
201
[ '#define WSLUA_(OPT)?ARG_([a-z0-9_]+)_([A-Z0-9]+)\s+\d+' . $TRAILING_COMMENT_RE,
227
203
deb ">a=$1=$2=$3=$4=$5=$6=$7=\n";
228
push @{${$function}{arglist}} , $3;
229
${${$function}{args}}{$3} = {descr=>$6}
204
my $name = $1 eq 'OPT' ? "[$3]" : $3;
205
push @{${$function}{arglist}} , $name;
206
${${$function}{args}}{$name} = {descr=>$6,}
209
[ '\057\052\s*WSLUA_(OPT)?ARG_([A-Za-z0-9_]+)_([A-Z0-9]+)\s*(.*?)\052\057',
211
deb ">a=$1=$2=$3=$4=$5=$6=$7=\n";
212
my $name = $1 eq 'OPT' ? "[$3]" : $3;
213
push @{${$function}{arglist}} , $name;
214
${${$function}{args}}{$name} = {descr=>$4,}
232
217
[ '#define WSLUA_(OPT)?ARG_([A-Za-z]+)_([a-z_]+)_([A-Z0-9]+)\s+\d+' . $TRAILING_COMMENT_RE,
234
219
deb ">ca=$1=$2=$3=$4=$5=$6=$7=\n";
235
push @{${$function}{arglist}} , $4;
236
${${$function}{args}}{$4} = {descr=>$7}
220
my $name = $1 eq 'OPT' ? "[$4]" : $4;
221
push @{${$function}{arglist}} , $name;
222
${${$function}{args}}{$name} = {descr=>$7,optional => $1 eq '' ? 1 : 0 }
239
225
[ '/\052\s+WSLUA_ATTRIBUTE\s+([A-Za-z]+)_([a-z_]+)\s+([A-Z]*)\s*(.*?)\052/',
241
227
deb ">at=$1=$2=$3=$4=$5=$6=$7=\n";
242
push @{${$class}{attributes}}, { name => $2, descr => gorolla($4), mode=>$3 };
229
$name =~ tr/A-Z/a-z/;
231
push @{${$class}{attributes}}, { name => $name, descr => gorolla($4), mode=>$3 };
245
234
[ '/\052\s+WSLUA_MOREARGS\s+([A-Za-z_]+)\s+(.*?)\052/',
255
244
push @{${$function}{returns}} , gorolla($4) if $4 ne '';
247
[ '\057\052\s*_WSLUA_RETURNS_\s*(.*?)\052\057',
249
deb ">fr2=$1=$2=$3=$4=$5=$6=$7=\n";
250
push @{${$function}{returns}} , gorolla($1) if $1 ne '';
258
253
[ 'WSLUA_ERROR\s*\050\s*(([A-Z][A-Za-z]+)_)?([a-z_]+),' . $QUOTED_RE ,
260
255
deb ">e=$1=$2=$3=$4=$5=$6=$7=\n";
328
323
for my $cname (sort keys %classes) {
329
324
my $cl = $classes{$cname};
330
325
printf D ${$template_ref}{class_header}, $cname, $cname;
331
printf D ${$template_ref}{class_desc} , ${$cl}{descr} if ${$cl}{descr};
327
if ( ${$cl}{descr} ) {
328
printf D ${$template_ref}{class_desc} , ${$cl}{descr};
333
331
if ( $#{${$cl}{constructors}} >= 0) {
334
332
# printf D ${$template_ref}{class_constructors_header}, $cname, $cname;
346
344
for my $m (@{${$cl}{methods}}) {
347
345
function_descr($m);
350
for my $m (@{${$cl}{metamethods}}) {
354
348
# printf D ${$template_ref}{class_methods_footer}, $cname, $cname;
357
351
if ( $#{${$cl}{attributes}} >= 0) {
358
printf D ${$template_ref}{class_attributes_header}, $cname, $cname;
360
352
for my $a (@{${$cl}{attributes}}) {
361
353
printf D ${$template_ref}{class_attr_header}, ${$a}{name}, ${$a}{name};
362
354
printf D ${$template_ref}{class_attr_descr}, ${$a}{descr}, ${$a}{descr} if ${$a}{descr};
363
355
printf D ${$template_ref}{class_attr_footer}, ${$a}{name}, ${$a}{name};
367
printf D ${$template_ref}{class_attributes_footer}, $cname, $cname;
370
360
if (exists ${$template_ref}{class_footer}) {