📄 genrename
字号:
#! /usr/bin/perl
#
# TOPPERS/JSP Kernel
# Toyohashi Open Platform for Embedded Real-Time Systems/
# Just Standard Profile Kernel
#
# Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
# Toyohashi Univ. of Technology, JAPAN
# Copyright (C) 2005 by Embedded and Real-Time Systems Laboratory
# Graduate School of Information Science, Nagoya Univ., JAPAN
#
# 忋婰挊嶌尃幰偼丆埲壓偺 (1)乣(4) 偺忦審偐丆Free Software Foundation
# 偵傛偭偰岞昞偝傟偰偄傞 GNU General Public License 偺 Version 2 偵婰
# 弎偝傟偰偄傞忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃傾
# 傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
# 棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
# (1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
# 尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
# 僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
# (2) 杮僜僼僩僂僃傾傪丆儔僀僽儔儕宍幃側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
# 梡偱偒傞宍偱嵞攝晍偡傞応崌偵偼丆嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡
# 幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰
# 偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
# (3) 杮僜僼僩僂僃傾傪丆婡婍偵慻傒崬傓側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
# 梡偱偒側偄宍偱嵞攝晍偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙
# 偲丏
# (a) 嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊
# 嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
# (b) 嵞攝晍偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆TOPPERS僾儘僕僃僋僩偵
# 曬崘偡傞偙偲丏
# (4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
# 奞偐傜傕丆忋婰挊嶌尃幰偍傛傃TOPPERS僾儘僕僃僋僩傪柶愑偡傞偙偲丏
#
# 杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偍
# 傛傃TOPPERS僾儘僕僃僋僩偼丆杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕
# 娷傔偰丆偄偐側傞曐徹傕峴傢側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈
# 愙揑傑偨偼娫愙揑偵惗偠偨偄偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
#
# @(#) $Id: genrename,v 1.1 2006/04/14 02:46:33 9564907 Exp $
#
#
# 儕僱乕儉掕媊傪惗惉偡傞
#
sub generate_define
{
local($sym, $prefix) = @_;
print FILE "#define ",$prefix,$sym;
print FILE "\t" if (length($prefix.$sym) < 8);
print FILE "\t" if (length($prefix.$sym) < 16);
print FILE "\t",$prefix,"_kernel_",$sym,"\n";
}
#
# 儕僱乕儉夝彍傪惗惉偡傞
#
sub generate_undef
{
local($sym, $prefix) = @_;
print FILE "#undef ",$prefix,$sym,"\n";
}
#
# 僄儔乕僠僃僢僋
#
if ($#ARGV != 0) {
die "Usage: genrename <prefix>\n";
}
#
# 弶婜壔
#
@syms = ();
$name = $ARGV[0];
$NAME = $name; $NAME =~ y/a-z/A-Z/;
$infile = $name."_rename.def";
$defsym_rename = "_".$NAME."_RENAME_H_";
$defsym_unrename = "_".$NAME."_UNRENAME_H_";
#
# 僔儞儃儖儕僗僩傪撉傒崬傓
#
open(INFILE, $infile) || die "Cannot open $infile";
while ($line = <INFILE>) {
chomp $line;
@syms = (@syms, $line);
}
close(INFILE);
#
# ???_rename.h 傪惗惉偡傞
#
$file = $name."_rename.h";
open(FILE, "> ".$file);
print FILE <<END;
/* This file is generated from $infile by genrename. */
#ifndef $defsym_rename
#define $defsym_rename
END
foreach $sym (@syms) {
if ($sym =~ /^#(.*)$/) {
print FILE "/*\n";
print FILE " * ",$1,"\n";
print FILE " */\n";
}
elsif ($sym ne "") {
do generate_define($sym, "");
}
else {
print FILE "\n";
}
}
print FILE <<END;
#ifdef LABEL_ASM
END
foreach $sym (@syms) {
if ($sym =~ /^#(.*)$/) {
print FILE "/*\n";
print FILE " * ",$1,"\n";
print FILE " */\n";
}
elsif ($sym ne "") {
do generate_define($sym, "_");
}
else {
print FILE "\n";
}
}
print FILE <<END;
#endif /* LABEL_ASM */
#endif /* $defsym_rename */
END
#
# ???_unrename.h 傪惗惉偡傞
#
$file = $name."_unrename.h";
open(FILE, "> ".$file);
print FILE <<END;
/* This file is generated from $infile by genrename. */
#ifdef $defsym_unrename
#undef $defsym_unrename
END
foreach $sym (@syms) {
if ($sym =~ /^#(.*)$/) {
print FILE "/*\n";
print FILE " * ",$1,"\n";
print FILE " */\n";
}
elsif ($sym ne "") {
do generate_undef($sym, "");
}
else {
print FILE "\n";
}
}
print FILE <<END;
#ifdef LABEL_ASM
END
foreach $sym (@syms) {
if ($sym =~ /^#(.*)$/) {
print FILE "/*\n";
print FILE " * ",$1,"\n";
print FILE " */\n";
}
elsif ($sym ne "") {
do generate_undef($sym, "_");
}
else {
print FILE "\n";
}
}
print FILE <<END;
#endif /* LABEL_ASM */
#endif /* $defsym_unrename */
END
close(FILE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -