summaryrefslogtreecommitdiff
path: root/tool/parse.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/parse.rb')
-rw-r--r--tool/parse.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/tool/parse.rb b/tool/parse.rb
new file mode 100644
index 0000000000..93ae3e43cb
--- /dev/null
+++ b/tool/parse.rb
@@ -0,0 +1,16 @@
+# Used as part of the "make parse" Makefile target.
+# See common.mk for details.
+
+$file = ARGV[0]
+$str = ARGF.read.sub(/^__END__.*\z/m, '')
+puts '# ' + '-' * 70
+puts "# target program: "
+puts '# ' + '-' * 70
+puts $str
+puts '# ' + '-' * 70
+
+$parsed = RubyVM::InstructionSequence.compile_file($file)
+puts "# disasm result: "
+puts '# ' + '-' * 70
+puts $parsed.disasm
+puts '# ' + '-' * 70