Index: asp3_gr_sakura/trunk/tecsgen/tecslib/core/ctypes.rb
===================================================================
--- asp3_gr_sakura/trunk/tecsgen/tecslib/core/ctypes.rb	(revision 317)
+++ asp3_gr_sakura/trunk/tecsgen/tecslib/core/ctypes.rb	(revision 318)
@@ -6,69 +6,54 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: ctypes.rb 2296 2015-11-29 11:57:33Z okuma-top $
+#   $Id$
 #++
 
-# CType ã¯ C_parser ã§å®ç¾©ãããåãæ±ã CIntType, CFloatType ãªã©ã« include ãããã®
-# CIntType ã¯ IntType ãç¶æ¿ãããªã©ãC ã®åã§ã¯ TECS ã®åãç¶æ¿ãã
+# CType は C_parser で定義される型を扱う CIntType, CFloatType などに include するもの
+# CIntType は IntType を継承するなど、C の型では TECS の型を継承する
 module CType
 
-  #=== æ§æè¦ç´  type_specifier ãè¤æ°æå®ããã¦ããå ´åã« merge ãã
-  # merge ã¯ const(CIntType) unsigned(CIntTtype), long(CIntType), ãªã©ã¨ä»ã®åããã¼ã¸ãã
-  # const, unsigned, long ãªã©ã¯ãåä½ã§ int (CIntType) åã«ãªããã
+  #=== 構文要素 type_specifier が複数指定されている場合に merge する
+  # merge は const(CIntType) unsigned(CIntTtype), long(CIntType), などと他の型をマージする
+  # const, unsigned, long などは、単体で int (CIntType) 型になりうる
   #
-  # mikan C ã®ææ³ãå³å¯ã«ã¯ãã§ãã¯ãã¦ããªã  long struct ç­ãã§ãã¦ãã¾ã
+  # mikan C の文法を厳密にはチェックしていない  long struct 等もできてしまう
   def merge another
 
     # p "self: #{self.class} kind_of( IntType ): #{self.kind_of?( IntType )}  another: #{another.class}"
 
-    # signed, unsigned ã Symbol ã¨ãã¦æ¥ãäºã¯ç¡ããªã£ã
+    # signed, unsigned が Symbol として来る事は無くなった
     # if another.instance_of? Symbol then
-    #   # ããã§ Symbol ã¯ :SIGNED, :UNSIGNED ã®ãããã
+    #   # ここで Symbol は :SIGNED, :UNSIGNED のいずれか
     # 
-    #   # CIntType ãï¼
+    #   # CIntType か？
     #   if self.instance_of? CIntType then
     #     self.set_sign another
@@ -84,6 +69,6 @@
           @bit_size = -5  # long long
         else
-          # self ã¯ int åãanother ã® bit_size ã (int ä»¥å¤ã§ããã°)ãã¡ãã«ãã
-          # mikan ä¸è¨ä»¥å¤ã§ ä¸¡æ¹ -3 ã§ãªããã°ãæ¬æ¥ã¨ã©ã¼
+          # self は int 型、another の bit_size が (int 以外であれば)そちらにする
+          # mikan 上記以外で 両方 -3 でなければ、本来エラー
           @bit_size = another.get_bit_size
         end
@@ -91,10 +76,10 @@
 
       if another.get_sign then
-        # another ã§ sign ãæå®ããã¦ããã°ããã¡ãã®ãã®ãæ¡ç¨ãã mikan çç¾ã®ãã§ãã¯
+        # another で sign が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
         @sign = another.get_sign
       end
 
 #      if another.get_qualifier then
-#        # another ã§ qualifier ãæå®ããã¦ããã°ããã¡ãã®ãã®ãæ¡ç¨ãã mikan çç¾ã®ãã§ãã¯
+#        # another で qualifier が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
 #        @qualifier = another.get_qualifier
 #      end
@@ -110,5 +95,5 @@
       return another.merge self
     elsif self.instance_of?( CDefinedType ) then
-      # mikan unsigned ãªã©ã¨ã® merge ã®ä¸æ­£æ¤åº
+      # mikan unsigned などとの merge の不正検出
       if another.is_const? then
         @b_const = true
@@ -135,5 +120,5 @@
     else
       # mikan long double
-      #   TECS ã«ã¯ long double ãè¡¨ç¾ããææ®µããªã (double80_t ãå®ç¾©ããã°ããã?)
+      #   TECS には long double を表現する手段がない (double80_t を定義すればよいか?)
 #      cdl_warning( "C1003 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.class, another.class, self.class )
       cdl_warning( "W9999 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.get_type_str, another.get_type_str, self.get_type_str )
@@ -142,7 +127,6 @@
   end
 
-  #=== qualifier ãè¨­å®ãã
-  #     å
-ã® Type ã¯ã©ã¹ã§ã¯çç¾ãã§ãã¯ããªãï¼TECSã®æ¬æ¥ã®ææ³ã§ã¯éè¤æå®ã§ããªãããï¼
+  #=== qualifier を設定する
+  #     元の Type クラスでは矛盾チェックしない（TECSの本来の文法では重複指定できないため）
   def set_qualifier( qual )
 
@@ -181,5 +165,5 @@
 
   def initialize( bit_size )
-    #p super.class   mikan super.class ã Symbol ã ããªãï¼
+    #p super.class   mikan super.class が Symbol だ、なぜ？
     super( bit_size )
   end
