- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r270 r321 6 6 # Copyright (C) 2008-2014 by TOPPERS Project 7 7 #-- 8 # ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 # ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 # å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 # ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 # è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 # ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 # ã¨ï¼ 27 # (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 # (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 # å ±åãããã¨ï¼ 35 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 # 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 # ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 # ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 # å 43 責ãããã¨ï¼ 8 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 # スコード中に含まれていること. 14 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 # の無保証規定を掲載すること. 18 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 # と. 21 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 # 報告すること. 25 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 # 免責すること. 44 30 # 45 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 # ã®è²¬ä»»ãè² ããªãï¼ 31 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 # の責任を負わない. 51 36 # 52 # $Id : ThroughPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima$37 # $Id$ 53 38 #++ 54 39 55 # mikan through plugin: namespace ãèæ 56 ®ããã¦ããªã 57 58 #== ã¹ã«ã¼ãã©ã°ã¤ã³ã®å 59 ±éã®è¦ªã¯ã©ã¹ãã㤠ï¼ä½ãããï¼ã¹ã«ã¼ããã»ã«ãæ¿å 60 ¥ããã¹ã«ã¼ãã©ã°ã¤ã³ 61 # ã¹ã«ã¼ãã©ã°ã¤ã³ã¯ ThroughPlugin ã®åã¯ã©ã¹ã¨ãã¦å®ç¾©ãã 40 # mikan through plugin: namespace が考慮されていない 41 42 #== スループラグインの共通の親クラス かつ (何もせず)スルーするセルを挿入するスループラグイン 43 # スループラグインは ThroughPlugin の子クラスとして定義する 62 44 class ThroughPlugin < Plugin 63 #@cell_name:: Symbol çæããã»ã«åï¼è¤æ°ã»ã«ãçæããå ´åãåãå£å´ã®ã»ã«ï¼ 64 #@plugin_arg_str:: string through ã§æå®ãããå¼æ° 65 #@next_cell:: Cell å¼ã³å£ãçµåããã»ã« 66 #@next_cell_port_name:: Symbol å¼ã³å£ãçµåããåå£ã®åå 67 #@signature:: Signature ã·ã°ãã㣠68 #@celltype:: Celltype å¼ã³å 69 ã®ã»ã«ã®ã»ã«ã¿ã¤ã. through ãé£æ¥ããå ´åãæçµçãªå¼ã³å 70 ã®ã»ã«ã®ã»ã«ã¿ã¤ã 71 #@entry_port_name::Symbol çæããã»ã«ã®åãå£å "eThroughEntry" 72 #@call_port_name:: Symbol çæããã»ã«ã®å¼ã³å£å "cCall" 73 #@ct_name:: Symbol çæããã»ã«ã®ã»ã«ã¿ã¤ãå "t#{self.class.name}_#{@signature.get_global_name}" 74 #@plugin_arg_list:: Hash ãã©ã°ã¤ã³å¼æ°ããã¼ã¹ããçµæã®ããã·ã¥å¤æ° 75 #@caller_cell:: Cell å¼ã³å 76 ã®ã»ã«ï¼through ãã©ã°ã¤ã³ãé£æ¥ããå ´åã§ã¯ãæãå¼ã³å 77 ã®ã»ã«ï¼($source$) 78 # through ãã©ã°ã¤ã³ãåæµããã±ã¼ã¹ã§ã¯ã1ã¤ç®ã®å¼ã³å 79 ã»ã«ã®ã¿å¼æ°ã¨ãã¦ä¸ãããã 80 # å¾ã£ã¦ TracePlugin ã®å¼ã³å 81 ã®å¤å¥ã«å©ç¨ããå ´åã¯ãç°ãªãå¼ã³å 82 ããå¼ã°ããå¯è½æ§ããããã¨ã«æ³¨æããªãã¦ã¯ãªããªã 83 #@callee_cell:: Cell å¼ã³å 84 ã®ã»ã«($destination$) 85 #@plugin_arg_check_proc_tab:: [string => Proc] ãã©ã°ã¤ã³å¼æ°åâãã§ãã¯é¢æ° 86 # 以ä¸ã®å¤æ°ã¯ãinitialize ã§ã¯ãªããå¾ããè¨å®ããã 87 #@start_@region:: Region å§ã¾ãã®ãªã¼ã¸ã§ã³ï¼ caller_cell ã®ãªã¼ã¸ã§ã³ã¨ã¯ç°ãªãå¯è½æ§ããã ($start_region$) 88 #@end_region:: Region çµããã®ãªã¼ã¸ã§ã³ï¼ next_cell ã®ãªã¼ã¸ã§ã³ã¨ã¯ç°ãªãå¯è½æ§ããã ($end_region$) 89 #@region:: Region @start_region 㨠@end_region ã®ããããã§ãcell ãç½®ãã®ã好ã¾ãããªã¼ã¸ã§ã³ ($preferred_region$) 90 #@through_type:: Symbol :THROUGH, :TO_THROUGH, :IN_THROUGH, :OUT_THROUGH ã®ãããã 91 92 # ãã® Plugin ãçæããã»ã«ã¿ã¤ãã®ãªã¹ã 45 #@cell_name:: Symbol 生成するセル名(複数セルを生成する場合、受け口側のセル) 46 #@plugin_arg_str:: string through で指定された引数 47 #@next_cell:: Cell 呼び口を結合するセル 48 #@next_cell_port_name:: Symbol 呼び口を結合する受口の名前 49 #@signature:: Signature シグニチャ 50 #@celltype:: Celltype 呼び先のセルのセルタイプ. through が連接する場合、最終的な呼び先のセルのセルタイプ 51 #@entry_port_name::Symbol 生成するセルの受け口名 "eThroughEntry" 52 #@call_port_name:: Symbol 生成するセルの呼び口名 "cCall" 53 #@ct_name:: Symbol 生成するセルのセルタイプ名 "t#{self.class.name}_#{@signature.get_global_name}" 54 #@plugin_arg_list:: Hash プラグイン引数をパースした結果のハッシュ変数 55 #@caller_cell:: Cell 呼び元のセル.through プラグインが連接する場合では、最も呼び元のセル.($source$) 56 # through プラグインが合流するケースでは、1つ目の呼び元セルのみ引数として与えられる 57 # 従って TracePlugin の呼び元の判別に利用する場合は、異なる呼び元から呼ばれる可能性があることに注意しなくてはならない 58 #@callee_cell:: Cell 呼び先のセル($destination$) 59 #@plugin_arg_check_proc_tab:: [string => Proc] プラグイン引数名⇒チェック関数 60 # 以下の変数は、initialize ではなく、後から設定される 61 #@start_@region:: Region 始まりのリージョン: caller_cell のリージョンとは異なる可能性がある ($start_region$) 62 #@end_region:: Region 終わりのリージョン: next_cell のリージョンとは異なる可能性がある ($end_region$) 63 #@region:: Region @start_region と @end_region のいずれかで、cell を置くのが好ましいリージョン ($preferred_region$) 64 #@through_type:: Symbol :THROUGH, :TO_THROUGH, :IN_THROUGH, :OUT_THROUGH のいずれか 65 66 # この Plugin が生成したセルタイプのリスト 93 67 @@generated_celltype = {} 94 68 95 #=== ThroughPlugin ã®åæå 96 # through ãæå®ãããæç¹ã§çæãè¡ããã 97 # åæåã§ã¯ãæå®ãããå¼æ°ãè¨é²ããã«çãã 98 #cell_name:: Symbol çæãã¹ãã»ã«åï¼åå£å´ï¼ 99 #plugin_arg:: string through ã§æå®ãããå¼æ° 100 #next_cell:: Cell å¼ã³å£ãæ¥ç¶ããã»ã« 101 #next_cell_port_name:: Symbol å¼ã³å£ãæ¥ç¶ããåå£ã®åå 102 #signature:: Signature ã·ã°ãã㣠103 #celltype:: Celltype ã»ã«ã¿ã¤ã (å¼ã³å 104 ã®ã»ã«ã®ã»ã«ã¿ã¤ã) 105 #caller_cell:: Cell å¼ã³å 106 ã®ã»ã«ï¼@caller_cell ã®é 107 ãåç 108 § 69 #=== ThroughPlugin の初期化 70 # through が指定された時点で生成が行われる 71 # 初期化では、指定された引数を記録するに留める 72 #cell_name:: Symbol 生成すべきセル名(受口側) 73 #plugin_arg:: string through で指定された引数 74 #next_cell:: Cell 呼び口を接続するセル 75 #next_cell_port_name:: Symbol 呼び口を接続する受口の名前 76 #signature:: Signature シグニチャ 77 #celltype:: Celltype セルタイプ (呼び先のセルのセルタイプ) 78 #caller_cell:: Cell 呼び元のセル.@caller_cell の項を参照 109 79 def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell ) 110 80 super() 111 @cell_name = cell_name # çæãã¹ãã»ã«åï¼åãå£å´ã®ã»ã«åï¼ 112 # ãã®å¼ã³å 113 ã«å¥ã»ã«ãçæããå ´åããã®ååãæ¥é è¾ã¨ãã¹ã 114 @next_cell = next_cell # å¼ã³å 115 ã®ã»ã« 81 @cell_name = cell_name # 生成すべきセル名(受け口側のセル名) 82 # この呼び先に別セルを生成する場合、この名前を接頭辞とすべき 83 @next_cell = next_cell # 呼び先のセル 116 84 @next_cell_port_name = next_cell_port_name 117 85 @signature = signature … … 121 89 @celltype = celltype 122 90 @plugin_arg_str = plugin_arg 123 @plugin_arg_list = {} # ãã©ã°ã¤ã³å¼æ°ããã¼ã¹ããçµæã®ããã·ã¥å¤æ°91 @plugin_arg_list = {} # プラグイン引数をパースした結果のハッシュ変数 124 92 @caller_cell = caller_cell 125 Join.set_through_info self # å¼æ°ã§æ¸¡ããªã(å¾ãã追å ããã)ãã®ã¯ set_through_info ã§è¨å®ããã93 Join.set_through_info self # 引数で渡らない(後から追加された)ものは set_through_info で設定される 126 94 print( "#{self.class.name}.new( '#{cell_name}', '#{plugin_arg}', '#{next_cell.get_name}', '#{next_cell_port_name}', #{celltype.get_name} )\n" ) 127 95 end 128 96 129 #=== æ 130 å ±ãè¨å®ãã 131 # å 132 ±æãã£ã³ãã«ã®å ´å caller_cell, next_cell ã®ãããã® region ã§ããªãã±ã¼ã¹ããã 133 # å¾ãã追å ããã®ã§ initialize ã®å¼æ°ã§ã¯ãªããå¥ã¡ã½ããã§è¨å® 134 # ãã®ã¡ã½ããã¯ããªã¼ãã¼ã©ã¤ãããªãã§ãã ãã 135 # Join 㨠ThrougPlugin ã®éã®é£çµ¡ç¨ã§ãä»å¾ã¨ãå¼æ°ã追å ãããå¯è½æ§ããããã 136 # ãã®ã¡ã½ãã㯠V1.C.0.34 ã§ä½ç½®ã移åãããThroughPlugin#initialize ã§å¼ã³åºããã 97 #=== 情報を設定する 98 # 共有チャンネルの場合 caller_cell, next_cell のいずれの region でもないケースがある 99 # 後から追加したので initialize の引数ではなく、別メソッドで設定 100 # このメソッドは、オーバーライドしないでください 101 # Join と ThrougPlugin の間の連絡用で、今後とも引数が追加される可能性があるため 102 # このメソッドは V1.C.0.34 で位置が移動され、ThroughPlugin#initialize で呼び出される 137 103 def set_through_info( start_region, end_region, through_type, join, callee_cell, count ) 138 104 @start_region = start_region … … 143 109 @count = count 144 110 145 # preferred_region ã®è¨å®111 # preferred_region の設定 146 112 case through_type 147 113 when :IN_THROUGH, :THROUGH … … 154 120 end 155 121 156 #=== ã»ã«ã®ååãå¾ã122 #=== セルの名前を得る 157 123 def get_cell_name 158 124 @cell_name 159 125 end 160 126 161 #=== NamespacePath ãå¾ã162 # çæããã»ã«ã® namespace path ãçæãã127 #=== NamespacePath を得る 128 # 生成するセルの namespace path を生成する 163 129 def get_cell_namespace_path 164 130 # nsp = @region.get_namespace.get_namespace_path … … 167 133 end 168 134 169 #=== çæãããã»ã«ã®åãå£ã®ååãå¾ã135 #=== 生成されたセルの受け口の名前を得る 170 136 def get_through_entry_port_name 171 137 @entry_port_name 172 138 end 173 139 174 #=== 宣è¨ã³ã¼ãã®çæ175 # typedef, signature, celltype ãªã©ï¼cell 以å¤ï¼ã®ã³ã¼ããçæ176 # éè¤ãã¦çæãã¦ã¯ãªããªãï¼ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ï¼177 #file:: FILE çæãããã¡ã¤ã«140 #=== 宣言コードの生成 141 # typedef, signature, celltype など(cell 以外)のコードを生成 142 # 重複して生成してはならない(すでに生成されている場合は出力しないこと) 143 #file:: FILE 生成するファイル 178 144 def gen_plugin_decl_code( file ) 179 145 180 # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼146 # このセルタイプ(同じシグニチャ)は既に生成されているか? 181 147 if @@generated_celltype[ @ct_name ] == nil then 182 148 @@generated_celltype[ @ct_name ] = [ self ] … … 223 189 end 224 190 225 #=== CDL ãã¡ã¤ã«ã®çæ226 #file:: FILE çæãããã¡ã¤ã«191 #=== CDL ファイルの生成 192 #file:: FILE 生成するファイル 227 193 def gen_cdl_file( file ) 228 194 gen_plugin_decl_code( file ) … … 230 196 end 231 197 232 #=== ã»ã«ã³ã¼ãã®çæ233 # through æå®ã«ããçããã»ã«ã³ã¼ã(CDL)ãçæãã234 #file:: FILE çæãããã¡ã¤ã«198 #=== セルコードの生成 199 # through 指定により生じるセルコード(CDL)を生成する 200 #file:: FILE 生成するファイル 235 201 def gen_through_cell_code( file ) 236 202 … … 247 213 end 248 214 249 #=== å¾ãã®ã³ã¼ããçæ250 # ãã©ã°ã¤ã³ã®å¾ãã®ã³ã¼ã (CDL) ãçæ215 #=== 後ろのコードを生成 216 #プラグインの後ろのコード (CDL) を生成 251 217 #file:: File: 252 218 def self.gen_post_code( file ) 253 # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ããããã以ä¸ã®ãããªè¦åºããã¤ãããã¨219 # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること 254 220 # file.print "/* '#{self.class.name}' post code */\n" 255 221 end 256 222 257 #=== åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã 258 # é常ã§ããã°ãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã 259 # ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿ 260 è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã 261 #file:: FILE åºåå 262 ãã¡ã¤ã« 223 #=== 受け口関数の本体(C言語)を生成する 224 # 通常であれば、ジェネレータは受け口関数のテンプレートを生成する 225 # プラグインの場合、変更する必要のないセルタイプコードを生成する 226 #file:: FILE 出力先ファイル 263 227 #b_singleton:: bool true if singleton 264 228 #ct_name:: Symbol … … 285 249 p_cellcb = #{global_ct_name}_GET_CELLCB(idx); 286 250 }else{ 287 /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°*/251 /* エラー処理コードをここに記述 */ 288 252 } 289 253 … … 318 282 end 319 283 320 #=== Through ãã©ã°ã¤ã³ã®å¼æ°ã®ååãç½®æãã284 #=== Through プラグインの引数の名前を置換する 321 285 def check_plugin_arg( ident, rhs ) 322 286 rhs = subst_name rhs … … 324 288 end 325 289 326 #=== ThroughPlugin#ååã®ç½®æ 327 # ãã©ã°ã¤ã³ãªãã·ã§ã³å¼æ°å 328 ã®æååãç½®æãã 329 # $source$ ⦠å¼ã³å 330 ã®ã»ã«å 331 # $destination$ ⦠å¼ã³å 332 ã®ã»ã«å 333 # $SOURCE$ ⦠å¼ã³å 334 ã®ã»ã«å (ãªã¼ã¸ã§ã³åã '_' ã§é£çµãã global_name) 335 # $DESTINATION$ ⦠å¼ã³å 336 ã®ã»ã«å (ãªã¼ã¸ã§ã³åã '_' ã§é£çµãã global_name) 337 # $next$ ⦠次ã®ã»ã«å 338 # è¤æ°ã® through ãã¤ãªãã£ã¦ããå ´åãããå¾ãã«æ¥ããã® 339 # $NEXT$ ⦠次ã®ã»ã«å (ãªã¼ã¸ã§ã³åã '_' ã§é£çµãã global_name) 340 # è¤æ°ã® through ãã¤ãªãã£ã¦ããå ´åãããå¾ãã«æ¥ããã® 341 # $start_region$ ⦠$source$ ã®ã»ã«ã®åå¨ãã region (global_name) 342 # $end_region$ ⦠$destination$ ã®ã»ã«ã®åå¨ãã region (global_name) 343 # $preferred_region$ ⦠é©å㪠region (global_name), start_region ã¾ã㯠end_region 344 # $count$ ⦠region éã® through ã®é©ç¨æ° 345 # $$ ⦠$ ã«ç½®æ 290 #=== ThroughPlugin#名前の置換 291 # プラグインオプション引数内の文字列を置換する 292 # $source$ … 呼び元のセル名 293 # $destination$ … 呼び先のセル名 294 # $SOURCE$ … 呼び元のセル名 (リージョン名を '_' で連結した global_name) 295 # $DESTINATION$ … 呼び先のセル名 (リージョン名を '_' で連結した global_name) 296 # $next$ … 次のセル名 297 # 複数の through がつながっている場合、すぐ後ろに来るもの 298 # $NEXT$ … 次のセル名 (リージョン名を '_' で連結した global_name) 299 # 複数の through がつながっている場合、すぐ後ろに来るもの 300 # $start_region$ … $source$ のセルの存在する region (global_name) 301 # $end_region$ … $destination$ のセルの存在する region (global_name) 302 # $preferred_region$ … 適切な region (global_name), start_region または end_region 303 # $count$ … region 間の through の適用数 304 # $$ … $ に置換 346 305 def subst_name( str ) 347 # ã»ã«åã®ç½®æ306 # セル名の置換 348 307 str = str.gsub( /(^|[^\$])\$source\$/, "\\1#{@caller_cell.get_name}" ) 349 308 str = str.gsub( /(^|[^\$])\$destination\$/, "\\1#{@callee_cell.get_name}" ) … … 352 311 str = str.gsub( /(^|[^\$])\$next\$/, "\\1#{@next_cell.get_name}" ) 353 312 str = str.gsub( /(^|[^\$])\$NEXT\$/, "\\1#{@next_cell.get_global_name}" ) 354 # region åã®ç½®æ313 # region 名の置換 355 314 str = str.gsub( /(^|[^\$])\$start_region\$/, "\\1#{@start_region.get_global_name}" ) 356 315 str = str.gsub( /(^|[^\$])\$end_region\$/, "\\1#{@end_region.get_global_name}" ) … … 358 317 str = str.gsub( /(^|[^\$])\$count\$/, "\\1#{@count}" ) 359 318 360 str = str.gsub( /\$\$/, "\$" ) # $$ ã $ ã«ç½®æ319 str = str.gsub( /\$\$/, "\$" ) # $$ を $ に置換 361 320 362 321 return str -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.