1 #!/usr/bin/perl -w 2 3 use strict; 4 5 open MACHINE, "<" . $ARGV[0]; 6 open OUTPUT, ">" . $ARGV[1]; 7 8 my @undocumented = (); 9 10 print OUTPUT "<!-- Generated from Interpreter.cpp by make-bytecode-docs.pl. -->\n"; 11 print OUTPUT "<style>p code \{ font-size: 14px; \}</style>\n"; 12 13 while (<MACHINE>) { 14 if (/^ *DEFINE_OPCODE/) { 15 chomp; 16 s/^ *DEFINE_OPCODE\(op_//; 17 s/\).*$//; 18 my $opcode = $_; 19 $_ = <MACHINE>; 20 chomp; 21 if (m|/\* |) { 22 my $format = $_; 23 $format =~ s|.* /\* ||; 24 my $doc = ""; 25 while (<MACHINE>) { 26 if (m|\*/|) { 27 last; 28 } 29 $doc .= $_ . " "; 30 } 31 32 print OUTPUT "<h2><code>${opcode}</code></h2>\n<p><b>Format: </b><code>\n${format}\n</code></p>\n<p>\n${doc}\n</p>\n"; 33 } else { 34 push @undocumented, $opcode; 35 } 36 } 37 } 38 39 close OUTPUT; 40 41 for my $undoc (@undocumented) { 42 print "UNDOCUMENTED: ${undoc}\n"; 43 } 44