Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

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 to text/x-ruby;charset=UTF-8
    r270 r321  
    66#   Copyright (C) 2008-2014 by TOPPERS Project
    77#--
    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#       免責すること.
    4430
    45 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    46 ãŠ
    47 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    49 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    50 #   ã®è²¬ä»»ã‚’負わない.
     31#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35#   の責任を負わない.
    5136
    52 #   $Id: ThroughPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
     37#   $Id$
    5338#++
    5439
    55 # mikan through plugin: namespace が考æ
    56 ®ã•ã‚Œã¦ã„ない
    57 
    58 #==  スループラグインのå
    59 ±é€šã®è¦ªã‚¯ãƒ©ã‚¹ã€€ã‹ã¤ (何もせず)スルーするセルを挿å
    60 ¥ã™ã‚‹ã‚¹ãƒ«ãƒ¼ãƒ—ラグイン
    61 #    スループラグインは ThroughPlugin の子クラスとして定義する
     40# mikan through plugin: namespace が考慮されていない
     41
     42#==  スループラグインの共通の親クラス かつ (何もせず)スルーするセルを挿入するスループラグイン
     43#    スループラグインは ThroughPlugin の子クラスとして定義する
    6244class 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 が生成したセルタイプのリスト
    9367  @@generated_celltype = {}
    9468
    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 の項を参照
    10979  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
    11080    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                      # 呼び先のセル
    11684    @next_cell_port_name = next_cell_port_name
    11785    @signature = signature
     
    12189    @celltype = celltype
    12290    @plugin_arg_str = plugin_arg
    123     @plugin_arg_list = {}                       # プラグイン引数をパースした結果のハッシュ変数
     91    @plugin_arg_list = {}                       # プラグイン引数をパースした結果のハッシュ変数
    12492    @caller_cell     = caller_cell
    125     Join.set_through_info self                  # 引数で渡らない(後から追加された)ものは set_through_info で設定される
     93    Join.set_through_info self                  # 引数で渡らない(後から追加された)ものは set_through_info で設定される
    12694    print( "#{self.class.name}.new( '#{cell_name}', '#{plugin_arg}', '#{next_cell.get_name}', '#{next_cell_port_name}', #{celltype.get_name} )\n" )
    12795  end
    12896
    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 で呼び出される
    137103  def set_through_info( start_region, end_region, through_type, join, callee_cell, count )
    138104    @start_region = start_region
     
    143109    @count = count
    144110
    145     # preferred_region の設定
     111    # preferred_region の設定
    146112    case through_type
    147113    when :IN_THROUGH, :THROUGH
     
    154120  end
    155121
    156   #===  セルの名前を得る
     122  #===  セルの名前を得る
    157123  def get_cell_name
    158124    @cell_name
    159125  end
    160126
    161   #=== NamespacePath を得る
    162   # 生成するセルの namespace path を生成する
     127  #=== NamespacePath を得る
     128  # 生成するセルの namespace path を生成する
    163129  def get_cell_namespace_path
    164130#    nsp = @region.get_namespace.get_namespace_path
     
    167133  end
    168134
    169   #===  生成されたセルの受け口の名前を得る
     135  #===  生成されたセルの受け口の名前を得る
    170136  def get_through_entry_port_name
    171137    @entry_port_name
    172138  end
    173139
    174   #===  宣言コードの生成
    175   #      typedef, signature, celltype など(cell 以外)のコードを生成
    176   #          重複して生成してはならない(すでに生成されている場合は出力しないこと)
    177   #file::        FILE       ç”Ÿæˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«
     140  #===  宣言コードの生成
     141  #      typedef, signature, celltype など(cell 以外)のコードを生成
     142  #          重複して生成してはならない(すでに生成されている場合は出力しないこと)
     143  #file::        FILE       生成するファイル
    178144  def gen_plugin_decl_code( file )
    179145
    180     # このセルタイプ(同じシグニチャ)は既に生成されているか?
     146    # このセルタイプ(同じシグニチャ)は既に生成されているか?
    181147    if @@generated_celltype[ @ct_name ] == nil then
    182148      @@generated_celltype[ @ct_name ] = [ self ]
     
    223189  end
    224190
    225   #=== CDL ファイルの生成
    226   #file::     FILE    生成するファイル
     191  #=== CDL ファイルの生成
     192  #file::     FILE    生成するファイル
    227193  def gen_cdl_file( file )
    228194    gen_plugin_decl_code( file )
     
    230196  end
    231197
    232   #===  セルコードの生成
    233   #     through 指定により生じるセルコード(CDL)を生成する
    234   #file::        FILE       ç”Ÿæˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«
     198  #===  セルコードの生成
     199  #     through 指定により生じるセルコード(CDL)を生成する
     200  #file::        FILE       生成するファイル
    235201  def gen_through_cell_code( file )
    236202
     
    247213  end
    248214
    249   #=== 後ろのコードを生成
    250   #プラグインの後ろのコード (CDL) を生成
     215  #=== 後ろのコードを生成
     216  #プラグインの後ろのコード (CDL) を生成
    251217  #file:: File:
    252218  def self.gen_post_code( file )
    253     # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     219    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
    254220    # file.print "/* '#{self.class.name}' post code */\n"
    255221  end
    256222
    257   #===  受け口関数の本体(C言語)を生成する
    258   #     é€šå¸¸ã§ã‚れば、ジェネレータは受け口関数のテンプレートを生成する
    259   #     ãƒ—ラグインの場合、変更するå¿
    260 è¦ã®ãªã„セルタイプコードを生成する
    261   #file::           FILE        出力å
    262 ˆãƒ•ã‚¡ã‚¤ãƒ«
     223  #===  受け口関数の本体(C言語)を生成する
     224  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
     225  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
     226  #file::           FILE        出力先ファイル
    263227  #b_singleton::    bool        true if singleton
    264228  #ct_name::        Symbol
     
    285249    p_cellcb = #{global_ct_name}_GET_CELLCB(idx);
    286250  }else{
    287      /* エラー処理コードをここに記述 */
     251     /* エラー処理コードをここに記述 */
    288252  }
    289253
     
    318282  end
    319283
    320   #=== Through プラグインの引数の名前を置換する
     284  #=== Through プラグインの引数の名前を置換する
    321285  def check_plugin_arg( ident, rhs )
    322286    rhs = subst_name rhs
     
    324288  end
    325289
    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  #   $$             … $ に置換
    346305  def subst_name( str )
    347     # セル名の置換
     306    # セル名の置換
    348307    str = str.gsub( /(^|[^\$])\$source\$/, "\\1#{@caller_cell.get_name}" )
    349308    str = str.gsub( /(^|[^\$])\$destination\$/, "\\1#{@callee_cell.get_name}" )
     
    352311    str = str.gsub( /(^|[^\$])\$next\$/, "\\1#{@next_cell.get_name}" )
    353312    str = str.gsub( /(^|[^\$])\$NEXT\$/, "\\1#{@next_cell.get_global_name}" )
    354     # region 名の置換
     313    # region 名の置換
    355314    str = str.gsub( /(^|[^\$])\$start_region\$/, "\\1#{@start_region.get_global_name}" )
    356315    str = str.gsub( /(^|[^\$])\$end_region\$/, "\\1#{@end_region.get_global_name}" )
     
    358317    str = str.gsub( /(^|[^\$])\$count\$/, "\\1#{@count}" )
    359318
    360     str = str.gsub( /\$\$/, "\$" )                       # $$ を $ に置換
     319    str = str.gsub( /\$\$/, "\$" )                       # $$ を $ に置換
    361320
    362321    return str
Note: See TracChangeset for help on using the changeset viewer.