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

📄 make_modules_h.pl

📁 目前最精确的磁盘模拟器的第3版
💻 PL
字号:
#!/usr/bin/perl# libparam (version 1.0)# Authors: John Bucy, Greg Ganger# Contributors: John Griffin, Jiri Schindler, Steve Schlosser## Copyright (c) of Carnegie Mellon University, 2001, 2002, 2003.## This software is being provided by the copyright holders under the# following license. By obtaining, using and/or copying this# software, you agree that you have read, understood, and will comply# with the following terms and conditions:## Permission to reproduce, use, and prepare derivative works of this# software is granted provided the copyright and "No Warranty"# statements are included with all reproductions and derivative works# and associated documentation. This software may also be# redistributed without charge provided that the copyright and "No# Warranty" statements are included in all redistributions.## NO WARRANTY. THIS SOFTWARE IS FURNISHED ON AN "AS IS" BASIS.# CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER# EXPRESSED OR IMPLIED AS TO THE MATTER INCLUDING, BUT NOT LIMITED# TO: WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY# OF RESULTS OR RESULTS OBTAINED FROM USE OF THIS SOFTWARE. CARNEGIE# MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH# RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT# INFRINGEMENT.  COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE# OF THIS SOFTWARE OR DOCUMENTATION.  $package = $ARGV[0];$PACKAGE = $package; $PACKAGE =~ tr/a-z/A-Z/;shift(@ARGV);print("\n#ifndef _" . "$PACKAGE" . "_MODULES_H\n");print("#define _" . "$PACKAGE" . "_MODULES_H   \n\n\n");while(<>) {    tr/[\t ]+/ /;    if(/MODULE (.*)/) {	$_ = $1;	s/-/_/g;	push(@enums, join("_", ($package, "MOD", $_)));	$_ = join("_", ($package, $_));	push(@modnames,$_);	$_ = $ARGV;	s/\.modspec/_param.h/;	$headerfile = join("_", ($package, $_));	print "#include \"$headerfile\"\n";    }}print "\n\n";# module descr array$c = 0;print "static struct lp_mod *" . "$package" . "_mods[] = {\n";foreach (@modnames) {    $modstructname = join("_", ($_, "mod"));    print " &$modstructname ";    if($c != $#modnames) { print ","; }    print "\n";    $c++;}print "};\n\n";$c = 0;print "typedef enum {\n";foreach (@enums) {    tr/a-z -/A-Z__/;    print "  $_";    if($c != $#modnames) { print ","; }    print "\n";    $c++;}$modt = join("_", ($package, "mod_t"));print "} $modt;\n\n";$c--;$maxstr = join("_", ($PACKAGE, "MAX_MODULE"));print "#define $maxstr $c\n";print("#endif // _" . "$PACKAGE" . "_MODULES_H\n");

⌨️ 快捷键说明

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