source: anotherchoice/tags/jsp-1.4.4-full-UTF8/utils/h8/grep_def_inh.pl@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 5.4 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS/JSP Kernel
4# Toyohashi Open Platform for Embedded Real-Time Systems/
5# Just Standard Profile Kernel
6#
7# Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
10# Graduate School of Information Science, Nagoya Univ., JAPAN
11# Copyright (C) 2005-2007 by Industrial Technology Institute,
12# Miyagi Prefectural Government, JAPAN
13#
14# 上記著作権者
15は,以下の (1)〜(4) の条件か,Free Software Foundation
16# によってå…
17¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
18# 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
19# を改変したものを含む.以下同じ)を使用・複製・改変・再é…
20å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
21# 利用と呼ぶ)することを無償で許諾する.
22# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
24# スコード中に含まれていること.
25# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
26# 用できる形で再é…
27å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
28å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
29# 者
30マニュアルなど)に,上記の著作権表示,この利用条件および下記
31# の無保証規定を掲載すること.
32# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
33# 用できない形で再é…
34å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
35# と.
36# (a) 再é…
37å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
38マニュアルなど)に,上記の著
39# 作権表示,この利用条件および下記の無保証規定を掲載すること.
40# (b) 再é…
41å¸ƒã®å½¢æ…
42‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
43# 報告すること.
44# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
45# 害からも,上記著作権者
46およびTOPPERSプロジェクトをå…
47è²¬ã™ã‚‹ã“と.
48#
49# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
50お
51# よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
52# 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
53# 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
54#
55# @(#) $Id: grep_def_inh.pl,v 1.1 2007/03/23 07:19:00 honda Exp $
56#
57
58
59#
60# ベクタテーブル生成用フィルタ
61#  コンフィギュレーション・ファイルのプリプロセス結果を
62#  ベクタテーブル生成スクリプト(perl)に変換する。
63#  生成されたスクリプトはgenvector.plから呼び出される。
64#
65#
66# 使い方
67#  grep_def_inh.pl file_name
68#   引数file_name:å…
69¥åŠ›ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«
70#           コンフィギュレーション・ファイルのプリプロセス
71#           結果が渡されることを想定している。
72
73# 処理内
74容
75#  ・DEF_INH文を&define_inh(xx, "*******");の形に変換して出力する。
76#  
77#  備考
78#  ・第2引数(割込みハンドラ属性)にTA_HLNGが指定されていると仮定している
79#    ・第2引数はチェックを行っていない
80#    ・TA_HLNGの値(0x00u)を文字列置換の正規表現に用いている
81
82#
83# DEF_INH文の途中で改行されても正しく処理するため、
84# 一度、すべての行を連結してから、;で区切り直す。
85#
86# 基本的に別の環境で作ったå…
87¥åŠ›ãƒ‡ãƒ¼ã‚¿ã‚’読み込むことは考æ…
88®ã—ていない。
89# つまり、改行コードの違いで、上記のwhile文で一行ずつ読み込むつもりで
90# すべての行が1度に読み込まれてしまう可能性は無視している。
91#
92$text = "";
93while($line = <>) {
94 # #で始まる行はプリプロセッサによるコメントなので、スキップする
95 if ($line !~ /^#/) {
96 $text .= $line;
97 }
98}
99
100# 環境に依存しない改行コードの置換
101#  ・正規表現を(\x0D?\x0A?)としないのは、空文字にヒットさせないため
102$text =~ s/(\x0D\x0A)|\x0D|\x0A//g;
103
104$text =~ s/(\s)+//g; # 空白文字を削除
105@list = split(/;/, $text); # ;毎に区切る
106
107#
108# &define_inh(xx, "*******");の形で出力する。
109#
110# ここで、ラベル名の前後に__kernel_と_entryを付加しないのは
111# gcc版とHEW版でå…
112±é€šã«ä½¿ãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ãŸã‚ã€‚
113# HEW版では、tmp_script.plが以下の2つの目的で使用される。
114#  ・ベクタテーブルの生成
115#  ・割込みの出å…
116¥å£å‡¦ç†ã®ç”Ÿæˆ
117#
118foreach $line (@list) {
119 if ($line =~ s/^DEF_INH\(/\&define_inh\(/) {
120
121 # TA_HLNGの値が0x00uであることを仮定している
122 $line =~ s/,{0x00u,/\,"/;
123 $line =~ s/}\)/"\)/g;
124
125 # 割込み番号の末尾にu,ulが付いている場合は削除する
126 $line =~ s/((ul)|(lu)|(u)|(l))\,/\,/i;
127 printf "\t%s;\n", $line;
128 }
129}
130
131# ライブラリとして呼び出せるように戻り値を1にする。
132print "1;\n";
133
Note: See TracBrowser for help on using the repository browser.