#!/usr/bin/perl -w use strict; open MACHINE, "<" . $ARGV[0]; open OUTPUT, ">" . $ARGV[1]; my @undocumented = (); print OUTPUT "<!-- Generated from Interpreter.cpp by make-bytecode-docs.pl. -->\n"; print OUTPUT "<style>p code \{ font-size: 14px; \}</style>\n"; while (<MACHINE>) { if (/^ *DEFINE_OPCODE/) { chomp; s/^ *DEFINE_OPCODE\(op_//; s/\).*$//; my $opcode = $_; $_ = <MACHINE>; chomp; if (m|/\* |) { my $format = $_; $format =~ s|.* /\* ||; my $doc = ""; while (<MACHINE>) { if (m|\*/|) { last; } $doc .= $_ . " "; } 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"; } else { push @undocumented, $opcode; } } } close OUTPUT; for my $undoc (@undocumented) { print "UNDOCUMENTED: ${undoc}\n"; }