Index: asp3_gr_sakura/trunk/tecsgen/tecslib/core/value.rb
===================================================================
--- asp3_gr_sakura/trunk/tecsgen/tecslib/core/value.rb	(revision 317)
+++ asp3_gr_sakura/trunk/tecsgen/tecslib/core/value.rb	(revision 318)
@@ -6,63 +6,47 @@
 #   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: value.rb 2061 2014-05-31 22:15:33Z okuma-top $
+#   $Id$
 #++
 
-#= BaseVal æ´æ°ãæµ®åå°æ°ãªã©ã®å¤ãæ±ãã¯ã©ã¹ã®åºåºã¯ã©ã¹
+#= BaseVal 整数、浮動小数などの値を扱うクラスの基底クラス
 #
-# TECS ã® CDL ã§æ±ãå¤ã¯ãä»¥ä¸ã«åé¡ããã
-# ã»æ´æ°
-# ã»æµ®åå°æ°
-# ã»æå­å
-# ã»ãã¼ã«å¤
-# éæåï¼æ§é ä½ãé
-åï¼ã¨ C_EXP ã¯ããã§ã¯æ±ããªã
+# TECS の CDL で扱う値は、以下に分類される
+# ・整数
+# ・浮動小数
+# ・文字列
+# ・ブール値
+# 集成型（構造体、配列）と C_EXP はここでは扱わない
 #
-# ãã®ã¯ã©ã¹ã§å®ç¾©æ¸ã¿ã®æ¼ç®å­ã¯ãã¨ã©ã¼ã¨ãªã
-# åã«ããæ¼ç®å¯è½ãªå ´åãæ¼ç®å­ããªã¼ãã¼ã©ã¤ããã
+# このクラスで定義済みの演算子は、エラーとなる
+# 型により演算可能な場合、演算子をオーバーライドする
 #
 class BaseVal < Node
@@ -160,12 +144,11 @@
 end
 
-#= Pointer å¤ (IntegerVal ã® Pointer ç)
+#= Pointer 値 (IntegerVal の Pointer 版)
 #
-# ãã¤ã³ã¿å¤ã¯ãCDL ã§ç´æ¥çæããããã¨ã¯ãªã
-# æ´æ°å¤ã®ã­ã£ã¹ãæ¼ç®ã«ããçæããã
+# ポインタ値は、CDL で直接生成されることはない
+# 整数値のキャスト演算により生成される
 class PointerVal < BaseVal
-#@int_val:: IntegerVal: IntegerVal ã§ãªãã¦ã¯ãªããªã
-#@ptr_type:: PtrType: ãã¤ã³ã¿ã®æãå
-ã®å
+#@int_val:: IntegerVal: IntegerVal でなくてはならない
+#@ptr_type:: PtrType: ポインタの指す先の型
 
   def initialize( int_val, ptr_type )
@@ -175,7 +158,6 @@
   end
 
-  #=== ãã¤ã³ã¿ã®æãå
-ã®åãå¾ã
-  # PointerVal å°ç¨ã®ã¡ã½ãã
+  #=== ポインタの指す先の型を得る
+  # PointerVal 専用のメソッド
   def get_type
     @ptr_type
@@ -183,6 +165,5 @@
 
   def cast type
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       val = t.check_and_clip( @int_val, :IntType )
@@ -213,5 +194,5 @@
 end
 
-#= IntegerVal: æ´æ°å¤ãæ±ãã¯ã©ã¹
+#= IntegerVal: 整数値を扱うクラス
 class IntegerVal < BaseVal
 #@val:: Integer: value
@@ -250,5 +231,5 @@
   def / val
     if val.kind_of? FloatVal then
-      v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+      v2 = val.to_f   # to_f を2回評価しない
       if v2 == 0.0 then
         cdl_error( "V1009 / : divieded by zero"  )
@@ -257,5 +238,5 @@
       return FloatVal.new( @val.to_f / v2 )
     else
-      v2 = val.to_i   # to_i ã2åè©ä¾¡ããªã
+      v2 = val.to_i   # to_i を2回評価しない
       if v2 == 0 then
         cdl_error( "V1010 / : divieded by zero"  )
@@ -267,5 +248,5 @@
   def % val
     if val.kind_of? FloatVal then
-      v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+      v2 = val.to_f   # to_f を2回評価しない
       if v2 == 0.0 then
         cdl_error( "V1011 % : divieded by zero"  )
@@ -274,5 +255,5 @@
       return FloatVal.new( @val.to_f % v2 )
     else
-      v2 = val.to_i   # to_i ã2åè©ä¾¡ããªã
+      v2 = val.to_i   # to_i を2回評価しない
       if v2 == 0 then
         cdl_error( "V1012 % : divieded by zero"  )
@@ -360,6 +341,5 @@
   end
   def cast( type )
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       val = t.check_and_clip( @val, :IntType )
@@ -395,5 +375,5 @@
 end
 
-#= BoolVal: bool å¤ãæ±ãã¯ã©ã¹
+#= BoolVal: bool 値を扱うクラス
 class BoolVal < BaseVal
 #@val:: bool: true, false
@@ -437,6 +417,5 @@
   end
   def cast( type )
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if @val then
       val = 1
@@ -478,5 +457,5 @@
 end
 
-#= FloatVal: å®æ°å¤ãæ±ãã¯ã©ã¹
+#= FloatVal: 実数値を扱うクラス
 class FloatVal < BaseVal
 #@val:: Float
@@ -496,5 +475,5 @@
   end
   def / val
-    v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+    v2 = val.to_f   # to_f を2回評価しない
     if v2 == 0.0 then
       cdl_error( "V1017 / : divieded by zero"  )
@@ -504,5 +483,5 @@
   end
   def % val
-    v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+    v2 = val.to_f   # to_f を2回評価しない
     if v2 == 0.0 then
       cdl_error( "V1018 % : divieded by zero"  )
@@ -536,6 +515,5 @@
   end
   def cast( type )
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       val = t.check_and_clip( @val, :FloatType )
@@ -565,5 +543,5 @@
 end
 
-#= æå­åãªãã©ã«ãæ±ãã¯ã©ã¹
+#= 文字列リテラルを扱うクラス
 class StringVal < BaseVal
 #@str:: Token:
@@ -573,13 +551,12 @@
     super()
     @str = str
-    @specifier = spec   # mikan L"str" wide æå­åæªå¯¾å¿
+    @specifier = spec   # mikan L"str" wide 文字列未対応
   end
 
   #===
   #
-  # string ã® cast ã¯ã§ããªã mikan ãã¤ã³ã¿åã¸ã® cast ã¯ã§ããã¹ã
+  # string の cast はできない mikan ポインタ型への cast はできるべき
   def cast type
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       cdl_error( "V1022 string cannot cast to integer"  )
@@ -598,5 +575,5 @@
 
   def val
-    @str.to_s   # Token ã§æ±ããã¦ããåæ® (val ãåãåºã)
+    @str.to_s   # Token で扱われていた名残 (val を取り出す)
   end
 end
