- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCelltypePlugin.rb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r388 r389 6 6 # Copyright (C) 2008-2017 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 37 # $Id$ … … 67 52 68 53 # 69 ##== celltype ãã©ã°ã¤ã³ã®å 70 ±éã®è¦ªã¯ã©ã¹ 54 ##== celltype プラグインの共通の親クラス 71 55 #class MrubyBridgeCelltypePlugin < CelltypePlugin 72 56 # 73 # # ãã©ã°ã¤ã³å¼æ°å=> Proc57 # # プラグイン引数名 => Proc 74 58 # MrubyBridgePluginArgProc = { 75 59 # "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs }, … … 85 69 # @@count = 1 86 70 # 87 # #celltype:: Celltype ã»ã«ã¿ã¤ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼71 # #celltype:: Celltype セルタイプ(インスタンス) 88 72 # def initialize( celltype, option ) 89 73 # dbgPrint "#{self.class.name}: initialzie: #{celltype.get_name}\n" … … 107 91 # end 108 92 # 109 # #=== æ°ããã»ã«110 # #cell:: Cell ã»ã«93 # #=== 新しいセル 94 # #cell:: Cell セル 111 95 # # 112 # # celltype ãã©ã°ã¤ã³ãæå®ãããã»ã«ã¿ã¤ãã®ã»ã«ãçæããã113 # # ã»ã«ã¿ã¤ããã©ã°ã¤ã³ã«å¯¾ããæ°ããã»ã«ã®å ±å114 # # generate æã«ããå¼ã³åºãããå ´åãããã¾ã§ã«å®ç¾©ããã cell ã«ã¤ãã¦ã¯ãinitialize ã®ã¿ã¤ãã³ã°ã§å¼ã³åºããã96 # # celltype プラグインを指定されたセルタイプのセルが生成された 97 # # セルタイププラグインに対する新しいセルの報告 98 # # generate 文により呼び出された場合、それまでに定義された cell については、initialize のタイミングで呼び出される 115 99 # def new_cell( cell ) 116 100 # dbgPrint "MrubyBridgeCelltypePlugin: new_cell: #{cell.get_name}\n" 117 101 # 118 # return if @cell_list.include? cell # ãã®è¡ã¯ãæ¬æ¥ä¸è¦ã®ã¯ã119 # if TECSGEN.post_coded? # post_code 以éã®ã»ã«ã¯å¯¾è±¡ããå¤ã102 # return if @cell_list.include? cell # この行は、本来不要のはず 103 # if TECSGEN.post_coded? # post_code 以降のセルは対象から外す 120 104 # cdl_info( "I9999 MrubyBridgeCelltypePlugin: $1 is excluded because cell generated after post_coded", cell.get_name ) 121 105 # return … … 160 144 # end 161 145 # 162 #### æå³è§£æ段éã§å¼ã³åºãããã¡ã½ãã###163 # #=== CDL ãã¡ã¤ã«ã®çæ164 # # typedef, signature, celltype, cell ã®ã³ã¼ããçæ165 # # éè¤ãã¦çæãã¦ã¯ãªããªã166 # # ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã167 # # ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã168 # #file:: FILE çæãããã¡ã¤ã«146 #### 意味解析段階で呼び出されるメソッド ### 147 # #=== CDL ファイルの生成 148 # # typedef, signature, celltype, cell のコードを生成 149 # # 重複して生成してはならない 150 # # すでに生成されている場合は出力しないこと。 151 # # もしくは同名の import により、重複を避けること。 152 # #file:: FILE 生成するファイル 169 153 # def gen_cdl_file file 170 ## ãã®æ®µéã§å¼ã³ã ã㨠generate æãå¼ã³åºãããåã®ã»ã«ã®ã¿ã®åºåã¨ãªã154 ## この段階で呼びだすと generate 文が呼び出される前のセルのみの出力となる 171 155 # 172 156 ## dbgPrint "MrubyBridgeCelltypePlugin: gen_cdl_file: #{@celltype.get_name}\n" … … 189 173 # end 190 174 # 191 # #=== tCelltype_factory.h ã«æ¿å 192 ¥ããã³ã¼ããçæãã 193 # # file 以å¤ã®ä»ã®ãã¡ã¤ã«ã«ãã¡ã¯ããªã³ã¼ããçæãã¦ããã 194 # # ã»ã«ã¿ã¤ããã©ã°ã¤ã³ãæå®ãããã»ã«ã¿ã¤ãã®ã¿å¼ã³åºããã 175 # #=== tCelltype_factory.h に挿入するコードを生成する 176 # # file 以外の他のファイルにファクトリコードを生成してもよい 177 # # セルタイププラグインが指定されたセルタイプのみ呼び出される 195 178 # def gen_factory file 196 179 # end … … 200 183 # end 201 184 # 202 # #=== å¾ãã® CDL ã³ã¼ããçæ203 # # ãã©ã°ã¤ã³ã®å¾ãã® CDL ã³ã¼ããçæ185 # #=== 後ろの CDL コードを生成 186 # #プラグインの後ろの CDL コードを生成 204 187 # #file:: File: 205 188 # def self.gen_post_code( file ) 206 189 # dbgPrint "#{self.name}: gen_post_code_body\n" 207 190 # print "#{self.name}: gen_post_code_body\n" 208 ## ãã®æ®µéã§çæããã¨ãåããã¹ãã³ã¼ãã§åºåããã mruby ã®åæåã³ã¼ãã«åæ ãããªã191 ## この段階で生成すると、同じポストコードで出力される mruby の初期化コードに反映されない 209 192 # 210 ## # MrubyBridgeCelltypePlugin ã®çæãã generate æã¯ã193 ## # MrubyBridgeCelltypePlugin の生成する generate 文は、 211 194 ## fn2 = "#{$gen}/tmp_MrubyBridgeCelltypePlugin_post.cdl" 212 195 ## f2 = File.open( fn2, "w" ) 213 ## # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ããããã以ä¸ã®ãããªè¦åºããã¤ãããã¨196 ## # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること 214 197 ## dbgPrint "MrubyBridgeCelltypePlugin: gen_post_code\n" 215 198 ## f2.print "/* '#{self.name}' post code */\n" … … 229 212 # end 230 213 # 231 # #=== ãã©ã°ã¤ã³å¼æ°232 # 233 # #=== ãã©ã°ã¤ã³å¼æ°ignoreUnsigned214 # #=== プラグイン引数 215 # 216 # #=== プラグイン引数 ignoreUnsigned 234 217 # def set_ignoreUnsigned rhs 235 218 # if rhs == "true" || rhs == nil then … … 266 249 # end 267 250 # 268 # #=== ãã©ã°ã¤ã³å¼æ°exclude_port_func251 # #=== プラグイン引数 exclude_port_func 269 252 # def set_exclude_port_func rhs 270 253 # port_funcs = rhs.split ',' … … 297 280 # end 298 281 # 299 # #=== ãã©ã°ã¤ã³å¼æ°auto_exclude282 # #=== プラグイン引数 auto_exclude 300 283 # def set_auto_exclude rhs 301 284 # # print "MrubyBridgeCellPlugin: auto_exclude=#{rhs}\n" -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.