⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rftos.pl

📁 m68k系列反汇编的C语言源码,供学习编译原理的同学使用。实用!
💻 PL
字号:
#!/usr/local/bin/perl#                 Author:  Christopher G. Phillips#              Copyright (C) 1994 All Rights Reserved##                              NOTICE## Permission to use, copy, modify, and distribute this software and# its documentation for any purpose and without fee is hereby granted# provided that the above copyright notice appear in all copies and# that both the copyright notice and this permission notice appear in# supporting documentation.## The author makes no representations about the suitability of this# software for any purpose.  This software is provided ``as is''# without express or implied warranty.if ($#ARGV == 0) {	$file = $ARGV[0];	open(INFILE, "<$file.rf.s") || die "$file.rf.s: $!\n";	die if system("mv", "${file}.rf.s", "$file.rf.s.$$");	open(OUTFILE, ">$file.rf.s") || die "$file.rf.s: $!\n";	open(RF, "<$file.out") || die "$file.out: $!\n";	$n = 0;	while (<RF>) {		if (/^Resource type: "(....)"$/) {			$type = $1;		} elsif (/^ID (\d+)$/) {			$id = $1;		} elsif (/^Bytes ([0-9a-fA-F]+) to ([0-9a-fA-F]+)$/) {			$start = sprintf("%08lx", hex($1) - 4);			$assoc{"$start"} = sprintf("%4.4s %d", $type, $id);			$ends{"$start"} = sprintf("%08lx", hex($2) + 1);		}	}	close(RF);	@keys = sort keys %assoc;	if ($#keys == -1) {		$n = -1;	} else {		$n = 0;		$key = $keys[$n];		$value = $assoc{"$key"};	}	$inresource = 0;	$newline = 0;	select OUTFILE;	while (<INFILE>) {		if ($inresource) {			$doit = 0;			if (/^$end/) {				$doit = 1;			} else {				if (hex($_) > $k) {					$doit = 1;		warn "$assoc{$keys[$n - 1]} should not include $end\n";				}			}			if ($doit) {				print "\n";				$newline = 1;				$inresource = 0;			}		}		if (!$inresource && $n >= 0 && /^$key/) {			if (!$newline && hex($key) > 0) {				print "\n";			}			print "$value\n";			$end = $ends{"$key"};			$k = hex($end);			if (++$n > $#keys) {				$n = -1;			} else {				$key = $keys[$n];				$value = $assoc{"$key"};			}			$inresource = 1;		}		$newline = 0;		print;	}	if ($inresource) {		warn "$value starts at $key but should not include $end\n";	}	close(INFILE);	close(OUTFILE);	unlink("$file.rf.s.$$");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -