8 #------------------------------------------
11 { language => [ 'C' ],
20 { language => [ 'Modula-2' ],
29 { language => [ 'Pascal' ],
38 { language => [ 'C++' ],
44 { language => [ 'Tcl', 'Perl' ],
50 { language => [ 'LaTeX/TeX', 'Postscript' ],
56 { language => [ 'Occam' ],
65 #--------------------------------------------------------------------
69 sub make_robodoc_rc_file {
73 $rc_file .= "header markers:\n";
74 $rc_file .= " $spec->{begin}\n";
75 $rc_file .= "remark markers:\n";
76 $rc_file .= " $spec->{mid}\n";
77 $rc_file .= "end markers:\n";
78 if ( exists( $spec->{end_1} ) ) {
79 $rc_file .= " $spec->{end_1}\n";
81 if ( exists( $spec->{end_2} ) ) {
82 $rc_file .= " $spec->{end_2}\n";
85 if ( exists( $spec->{rem_end} ) ) {
86 $rc_file .= "remark begin markers:\n";
87 $rc_file .= " $spec->{rem_begin}\n";
88 $rc_file .= "remark end markers:\n";
89 $rc_file .= " $spec->{rem_end}\n";
97 # given a header spec this returns an example header
98 # that does not contain any source items.
100 sub make_example_header_simple {
104 $header = $spec->{begin} . "f* ModuleName/Foo\n";
105 $header .= $spec->{mid} . " FUNCTION\n";
106 $header .= $spec->{mid} . " Foo computes the foo factor\n";
107 $header .= $spec->{mid} . " using a fudge factor.\n";
108 if ( exists( $spec->{end_1} ) ) {
109 $header .= $spec->{end_1} . "\n";
110 $header .= $spec->{rem_end} . "\n";
112 $header .= $spec->{end_2} . "\n";
117 sub make_example_header {
121 $header = $spec->{begin} . "f* ModuleName/Foo\n";
122 $header .= $spec->{mid} . " FUNCTION\n";
123 $header .= $spec->{mid} . " Foo computes the foo factor\n";
124 $header .= $spec->{mid} . " using a fudge factor.\n";
125 $header .= $spec->{mid} . " SYNOPSIS\n";
126 if ( exists( $spec->{rem_end} ) ) {
127 $header .= $spec->{rem_end} . "\n";
131 $header .= "int Foo( int fudge )\n";
132 if ( exists( $spec->{rem_begin} ) ) {
133 $header .= $spec->{rem_begin} . "\n";
137 $header .= $spec->{mid} . " INPUTS\n";
138 $header .= $spec->{mid} . " fudge -- the fudge factor\n";
139 $header .= $spec->{mid} . " SOURCE\n";
140 if ( exists( $spec->{rem_end} ) ) {
141 $header .= $spec->{rem_end} . "\n";
146 $header .= "\n more source code..\n\n";
148 if ( exists( $spec->{rem_end} ) ) {
149 $header .= $spec->{end_2};
150 $header .= $spec->{rem_end} . "\n";
152 $header .= $spec->{end_2} . "\n";
161 sub make_examples_for_manual {
162 my $filename = "header_examples.xml";
163 my $file = IO::File->new(">$filename") or die "$filename : $!";
164 foreach my $spec ( @header_specs ) {
165 foreach my $language ( @{$spec->{language}} ) {
166 print $file "<section>\n";
167 print $file "<title>$language</title>\n";
170 print $file "<example>\n";
171 print $file "<title>A simple header without any source items in $language.</title>\n";
172 print $file "<programlisting>\n";
173 print $file make_example_header_simple( $spec );
174 print $file "</programlisting>\n";
175 print $file "</example>\n";
178 print $file "<example>\n";
179 print $file "<title>A header with source items in $language.</title>\n";
180 print $file "<programlisting>\n";
181 print $file make_example_header( $spec );
182 print $file "</programlisting>\n";
183 print $file "</example>\n";
186 print $file "<example>\n";
187 print $file "<title>The robodoc.rc file required for $language if it were not supported by default.</title>\n";
188 print $file "<programlisting>\n";
189 print $file make_robodoc_rc_file( $spec );
190 print $file "</programlisting>\n";
191 print $file "</example>\n";
193 print $file "</section>\n";
202 make_examples_for_manual;