Index: asp3_gr_sakura/trunk/cfg/pass1.rb
===================================================================
--- asp3_gr_sakura/trunk/cfg/pass1.rb	(revision 317)
+++ asp3_gr_sakura/trunk/cfg/pass1.rb	(revision 318)
@@ -7,57 +7,42 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
-#
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
-#
-#  $Id: pass1.rb 126 2016-05-03 06:53:08Z ertl-hiro $
-#
-
-#
-#		ãã¹1ã®å¦ç
-#
-
-#
-#  å¤åå¾ã·ã³ãã«ãã¼ãã«ã¸ã®åºå®ç»é²
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id$
+#
+
+#
+#		パス1の処理
+#
+
+#
+#  値取得シンボルテーブルへの固定登録
 #
 $symbolValueTable = {
@@ -80,5 +65,5 @@
 
 #
-#  éçAPIãã¼ãã«ã¸ã®åºå®ç»é²
+#  静的APIテーブルへの固定登録
 #
 $apiDefinition = { "INCLUDE" =>
@@ -86,5 +71,5 @@
 
 #
-#  éçAPIãã¼ãã«ã®èª­ã¿è¾¼ã¿
+#  静的APIテーブルの読み込み
 #
 def ReadApiTableFile
@@ -102,9 +87,9 @@
     apiFile = File.open(apiTableFileName)
     apiFile.each do |line|
-      next if /^#/ =~ line			# ã³ã¡ã³ããã¹ã­ãã
-
-      fields = line.split(/\s+/)	# ãã£ã¼ã«ãã«åè§£
-
-      apiName = fields.shift		# APIåã®åãåºã
+      next if /^#/ =~ line			# コメントをスキップ
+
+      fields = line.split(/\s+/)	# フィールドに分解
+
+      apiName = fields.shift		# API名の取り出し
       if /^(.+)\[(.+)\]$/ =~ apiName
         apiName = $1
@@ -127,17 +112,16 @@
 
           case prefix
-          when "#"					# ãªãã¸ã§ã¯ãè­å¥åï¼å®ç¾©ï¼
+          when "#"					# オブジェクト識別名（定義）
             apiParam[:ID_DEF] = true
-          when "%"					# ãªãã¸ã§ã¯ãè­å¥åï¼åç
-§ï¼
+          when "%"					# オブジェクト識別名（参照）
             apiParam[:ID_REF] = true
-          when "."					# ç¬¦å·ç¡ãæ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+          when "."					# 符号無し整数定数式パラメータ
             apiParam[:EXPTYPE] = "unsigned_t"
-          when "+"					# ç¬¦å·ä»ãæ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+          when "+"					# 符号付き整数定数式パラメータ
             apiParam[:EXPTYPE] = "signed_t"
             apiParam[:SIGNED] = true
-          when "&"					# ä¸è¬æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+          when "&"					# 一般整数定数式パラメータ
             # do nothing
-          when "$"					# æå­åå®æ°å¼ãã©ã¡ã¼ã¿
+          when "$"					# 文字列定数式パラメータ
             apiParam[:STRING] = true
           else
@@ -146,9 +130,9 @@
 
           case postfix
-          when "*"					# ã­ã¼ãæ±ºãããã©ã¡ã¼ã¿
+          when "*"					# キーを決めるパラメータ
             apiDef[:KEYPAR] = name
-          when "?"					# ãªãã·ã§ã³ãã©ã¡ã¼ã¿
+          when "?"					# オプションパラメータ
             apiParam[:OPTIONAL] = true
-          when "\.\.\."				# ãªã¹ããã©ã¡ã¼ã¿
+          when "\.\.\."				# リストパラメータ
             apiParam[:LIST] = true
           end
@@ -175,5 +159,5 @@
 
 #
-#  å¤åå¾ã·ã³ãã«ãã¼ãã«ã®èª­ã¿è¾¼ã¿
+#  値取得シンボルテーブルの読み込み
 #
 def ReadSymvalTable
@@ -187,5 +171,5 @@
 						{ skip_blanks: true, skip_lines: /^#/ })
     symvalCsv.each do |record|
-      # å¤æ°å
+      # 変数名
       if record[0].nil?
         error_exit("invalid variable name in " \
@@ -196,5 +180,5 @@
       variable = record[0]
 
-      # å¼
+      # 式
       if record[1].nil? || record[1].empty?
         symbol[:EXPR] = variable
@@ -203,22 +187,22 @@
       end
 
-      # å¼ã®å
+      # 式の型
       if !record[2].nil? && !record[2].empty?
         case record[2]
-        when /^[bB]/				# çå½å¤
+        when /^[bB]/				# 真偽値
           symbol[:BOOL] = true
-        when /^[uU]/				# ç¬¦å·ç¡ãæ´æ°å¤
-          # ä½ãè¨­å®ããªã
-        else						# ç¬¦å·ä»ãæ´æ°å¤
+        when /^[uU]/				# 符号無し整数値
+          # 何も設定しない
+        else						# 符号付き整数値
           symbol[:SIGNED] = true
         end
       end
 
-      # ã³ã³ãã¤ã«æ¡ä»¶
+      # コンパイル条件
       if !record[3].nil? && !record[3].empty?
         symbol[:CONDITION] = record[3]
       end
 
-      # æ¡ä»¶ãæç«ããªãæã®å¼
+      # 条件が成立しない時の式
       if !record[4].nil? && !record[4].empty?
         symbol[:ELSE_EXPR] = record[4]
@@ -232,5 +216,5 @@
 
 #
-#  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ããã®èª­ã¿è¾¼ã¿ã¯ã©ã¹
+#  システムコンフィギュレーションファイルからの読み込みクラス
 #
 class ConfigFile
@@ -254,5 +238,5 @@
     return(nil) if line.nil?
 
-	line.encode!("UTF-16BE", "UTF-8",	# ä¸æ­£ãªãã¤ãåãé¤å¤ãã
+	line.encode!("UTF-16BE", "UTF-8",	# 不正なバイト列を除外する
 					:invalid => :replace,
 					:undef => :replace,
@@ -263,6 +247,6 @@
     if @withinComment
       case line
-      when /\*\//						# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãçµäº
-        line.sub!(/^.*?\*\//, "")		# æåã®*/ã«ãããããã */
+      when /\*\//						# C言語スタイルのコメント終了
+        line.sub!(/^.*?\*\//, "")		# 最初の*/にマッチさせる */
         @withinComment = false
       else
@@ -271,8 +255,8 @@
     end
     if !@withinComment
-      line.gsub!(/\/\*.*?\*\//, "")		# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãã®é¤å»
-										# æåã®*/ã«ãããããã */
+      line.gsub!(/\/\*.*?\*\//, "")		# C言語スタイルのコメントの除去
+										# 最初の*/にマッチさせる */
       case line
-      when /^\s*#/						# ããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+      when /^\s*#/						# プリプロセッサディレクティブ
         if withinApi
           parse_error(self, \
@@ -280,8 +264,8 @@
           line = ""
         end
-      when /\/\*/						# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãéå§
+      when /\/\*/						# C言語スタイルのコメント開始
         line.sub!(/\/\*.*$/, "")
         @withinComment = true
-      when /\/\//						# C++è¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ã
+      when /\/\//						# C++言語スタイルのコメント
         line.sub!(/\/\/.*$/, "")
       end
@@ -300,5 +284,5 @@
 
 #
-#  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ãã¼ãµã¼ã¯ã©ã¹
+#  システムコンフィギュレーションファイルのパーサークラス
 #
 class CfgParser
@@ -310,9 +294,9 @@
   def initialize
     @line = ""
-    @skipComma = false						# æ¬¡ã,ã§ããã°èª­ã¿é£ã°ã
-  end
-
-  #
-  #  æå­åæ«ã¾ã§èª­ã
+    @skipComma = false						# 次が,であれば読み飛ばす
+  end
+
+  #
+  #  文字列末まで読む
   #
   def parseString(cfgFile)
@@ -320,15 +304,15 @@
     begin
       case @line
-      when /^([^"]*\\\\)(.*)$/				# \\ã¾ã§èª­ã
+      when /^([^"]*\\\\)(.*)$/				# \\まで読む
         string += $1
         @line = $2
-      when /^([^"]*\\\")(.*)$/				# \"ã¾ã§èª­ã
+      when /^([^"]*\\\")(.*)$/				# \"まで読む
         string += $1
         @line = $2
-      when /^([^"]*\")(.*)$/				# "ã¾ã§èª­ã
+      when /^([^"]*\")(.*)$/				# "まで読む
         string += $1
         @line = $2
         return(string)
-      else									# è¡æ«ã¾ã§èª­ã
+      else									# 行末まで読む
         string += @line + "\n"
         @line = cfgFile.getNextLine(true)
@@ -340,5 +324,5 @@
 
   #
-  #  æå­æ«ã¾ã§èª­ã
+  #  文字末まで読む
   #
   def parseChar(cfgFile)
@@ -346,15 +330,15 @@
     begin
       case @line
-      when /^([^']*\\\\)(.*)$/				# \\ã¾ã§èª­ã
+      when /^([^']*\\\\)(.*)$/				# \\まで読む
         string += $1
         @line = $2
-      when /^([^']*\\\')(.*)$/				# \'ã¾ã§èª­ã
+      when /^([^']*\\\')(.*)$/				# \'まで読む
         string += $1
         @line = $2
-      when /^([^']*\')(.*)$/				# 'ã¾ã§èª­ã
+      when /^([^']*\')(.*)$/				# 'まで読む
         string += $1
         @line = $2
         return(string)
-      else									# è¡æ«ã¾ã§èª­ã
+      else									# 行末まで読む
         string += @line + "\n"
         @line = cfgFile.getNextLine(true)
@@ -366,22 +350,21 @@
 
   #
-  #  æ¹è¡ã¨ç©ºç½æå­ãèª­ã¿é£ã°ã
+  #  改行と空白文字を読み飛ばす
   #
   def skipSpace(cfgFile, withinApi)
     loop do
-      return if @line.nil?						# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
-      @line.lstrip!								# å
-é ­ã®ç©ºç½ãåé¤
-      return if @line != ""						# ç©ºè¡ã§ãªããã°ãªã¿ã¼ã³
-      @line = cfgFile.getNextLine(withinApi)	# æ¬¡ã®è¡ãèª­ã
-    end
-  end
-
-  #
-  #  æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+      return if @line.nil?						# ファイル末であればリターン
+      @line.lstrip!								# 先頭の空白を削除
+      return if @line != ""						# 空行でなければリターン
+      @line = cfgFile.getNextLine(withinApi)	# 次の行を読む
+    end
+  end
+
+  #
+  #  次の文字まで読み飛ばす
   #
   def skipToToken(cfgFile, withinApi=true)
     skipSpace(cfgFile, withinApi)
-    if @line.nil?							# ãã¡ã¤ã«æ«ã§ããã°ã¨ã©ã¼çµäº
+    if @line.nil?							# ファイル末であればエラー終了
       error_exit("unexpexced end-of-file")
     end
@@ -389,18 +372,17 @@
 
   #
-  #  ãã©ã¡ã¼ã¿ã1ã¤èª­ã
-  #
-  # @lineã®å
-é ­ãããã©ã¡ã¼ã¿ã1ã¤èª­ãã§ï¼ãããæå­åã§è¿ãï¼èª­ãã ã
-  # ã©ã¡ã¼ã¿ã¯ï¼@lineããã¯åé¤ããï¼ãã©ã¡ã¼ã¿ã®éä¸­ã§è¡æ«ã«éããæã¯ï¼
-  # cfgFileããæ¬¡ã®è¡ãåãåºãï¼ãã¡ã¤ã«æ«ã«éããæã¯ï¼nilãè¿ãï¼
+  #  パラメータを1つ読む
+  #
+  # @lineの先頭からパラメータを1つ読んで，それを文字列で返す．読んだパ
+  # ラメータは，@lineからは削除する．パラメータの途中で行末に達した時は，
+  # cfgFileから次の行を取り出す．ファイル末に達した時は，nilを返す．
   #
   def parseParam(cfgFile)
-    param = ""								# èª­ãã æå­å
-    parenLevel = 0							# æ¬å¼§ã®ãã¹ãã¬ãã«
+    param = ""								# 読んだ文字列
+    parenLevel = 0							# 括弧のネストレベル
     skipComma = @skipComma
     @skipComma = false
 
-    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    skipToToken(cfgFile)					# 次の文字まで読み飛ばす
     begin
       if parenLevel == 0
@@ -410,5 +392,5 @@
           if param == "" && skipComma
             skipComma = false
-            return(parseParam(cfgFile))		# åå¸°å¼ã³åºã
+            return(parseParam(cfgFile))		# 再帰呼び出し
           else
             return(param.strip)
@@ -425,5 +407,5 @@
           @line = $2
           parenLevel += 1
-        when /^(\s*([)}]))(.*)$/			# }ã)
+        when /^(\s*([)}]))(.*)$/			# }か)
           if param != ""
             return(param.strip)
@@ -439,14 +421,13 @@
           @line = $2
           param += $1 + parseChar(cfgFile)
-        when /^(\s*[^,{}()"'\s]+)(.*)$/		# ãã®ä»ã®æå­å
+        when /^(\s*[^,{}()"'\s]+)(.*)$/		# その他の文字列
           param += $1
           @line = $2
-        else								# è¡æ«
+        else								# 行末
           param += " "
           @line = cfgFile.getNextLine(true)
         end
       else
-        # æ¬å¼§å
-ã®å¦ç
+        # 括弧内の処理
         case @line
         when /^(\s*\()(.*)$/				# "("
@@ -464,8 +445,8 @@
           @line = $2
           param += $1 + parseChar(cfgFile)
-        when /^(\s*[^()"'\s]+)(.*)$/		# ãã®ä»ã®æå­å
+        when /^(\s*[^()"'\s]+)(.*)$/		# その他の文字列
           param += $1
           @line = $2
-        else								# è¡æ«
+        else								# 行末
           param += " "
           @line = cfgFile.getNextLine(true)
@@ -499,10 +480,10 @@
 
   def parseApi(cfgFile, apiName)
-    # éçAPIã®èª­ã¿è¾¼ã¿
+    # 静的APIの読み込み
     staticApi = {}
     tooFewParams = false
     skipUntilBrace = 0
 
-    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    skipToToken(cfgFile)					# 次の文字まで読み飛ばす
     if (/^\((.*)$/ =~ @line)
       @line = $1
@@ -515,8 +496,8 @@
 
       apiDef[:PARAM].each do |apiParam|
-        return(staticApi) if param.nil?		# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+        return(staticApi) if param.nil?		# ファイル末であればリターン
 
         if skipUntilBrace > 0
-          # APIå®ç¾©ã}ã¾ã§ã¹ã­ããä¸­
+          # API定義を}までスキップ中
           if apiParam.has_key?(:BRACE)
             case apiParam[:BRACE]
@@ -540,18 +521,18 @@
             staticApi[apiParam[:NAME]].push(getParam(apiParam, param, cfgFile))
             param = parseParam(cfgFile)
-            break if param.nil?				# ãã¡ã¤ã«æ«ã®å ´å
+            break if param.nil?				# ファイル末の場合
           end
         elsif apiParam.has_key?(:OPTBRACE)
           if param == apiParam[:BRACE]
             param = parseParam(cfgFile)
-            break if param.nil?				# ãã¡ã¤ã«æ«ã®å ´å
+            break if param.nil?				# ファイル末の場合
           else
             if param == ""
               param = parseParam(cfgFile)
-              break if param.nil?			# ãã¡ã¤ã«æ«ã®å ´å
+              break if param.nil?			# ファイル末の場合
             elsif /^([})])$/ !~ param
               parse_error(cfgFile, "`{...}' expected before #{param}")
             end
-            skipUntilBrace += 1          	# APIå®ç¾©ã}ã¾ã§ã¹ã­ãã
+            skipUntilBrace += 1          	# API定義を}までスキップ
           end
         elsif !apiParam.has_key?(:BRACE)
@@ -568,5 +549,5 @@
         else
           parse_error(cfgFile, "`#{apiParam[:BRACE]}' expected before #{param}")
-          # )ããã¡ã¤ã«æ«ã¾ã§èª­ã¿é£ã°ã
+          # )かファイル末まで読み飛ばす
           loop do
             param = parseParam(cfgFile)
@@ -577,10 +558,9 @@
       end
 
-      # æå¾
-ããããã©ã¡ã¼ã¿ããã¹ã¦èª­ãã å¾ã®å¦ç
+      # 期待されるパラメータをすべて読んだ後の処理
       if param != ")"
         begin
           param = parseParam(cfgFile)
-          return(staticApi) if param.nil?	# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+          return(staticApi) if param.nil?	# ファイル末であればリターン
         end while param != ")"
         parse_error(cfgFile, "too many parameters before `)'")
@@ -594,6 +574,6 @@
 
   def parseOpenBrace(cfgFile)
-    # {ã®èª­ã¿è¾¼ã¿
-    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    # {の読み込み
+    skipToToken(cfgFile)					# 次の文字まで読み飛ばす
     if (/^\{(.*)$/ =~ @line)
       @line = $1
@@ -609,19 +589,18 @@
       cfgFile = cfgFiles.last
 
-      skipSpace(cfgFile, false)				# æ¹è¡ã¨ç©ºç½æå­ãèª­ã¿é£ã°ã
+      skipSpace(cfgFile, false)				# 改行と空白文字を読み飛ばす
       if @line.nil?
-        # ãã¡ã¤ã«æ«ã®å¦ç
+        # ファイル末の処理
         cfgFiles.pop.close
         if cfgFiles.empty?
-          break								# ãã¼ã¹å¦ççµäº
+          break								# パース処理終了
         else
-          @line = ""						# å
-ã®ãã¡ã¤ã«ã«æ»ã£ã¦ç¶ãã
+          @line = ""						# 元のファイルに戻って続ける
         end
       elsif /^;(.*)$/ =~ @line
-        # ;ã¯èª­ã¿é£ã°ã
+        # ;は読み飛ばす
         @line = $1
       elsif /^#/ =~ @line
-        # ããªãã­ã»ããµãã£ã¬ã¯ãã£ããèª­ã
+        # プリプロセッサディレクティブを読む
         case @line
         when /^#include\b(.*)$/
@@ -662,6 +641,5 @@
             if !$domainId.has_key?(domid)
               if $inputObjid.has_key?(domid)
-                # IDçªå·å
-¥åãã¡ã¤ã«ã«å®ç¾©ããã¦ããå ´å
+                # ID番号入力ファイルに定義されていた場合
                 $domainId[domid] = $inputObjid[domid]
                 if $domainId[domid] > 32
@@ -690,10 +668,10 @@
         else
           if $apiDefinition.has_key?(apiName)
-            # éçAPIã1ã¤èª­ã
+            # 静的APIを1つ読む
             staticApi = parseApi(cfgFile, apiName)
             if staticApi.empty?
-              # ãã¡ã¤ã«æ«ãææ³ã¨ã©ã¼
+              # ファイル末か文法エラー
             elsif (staticApi[:APINAME] == "INCLUDE")
-              # INCLUDEã®å¦ç
+              # INCLUDEの処理
               includeFilePath = SearchFilePath(staticApi[:file])
               if includeFilePath.nil?
@@ -704,5 +682,5 @@
               end
             else
-              # éçAPIã®å¦ç
+              # 静的APIの処理
               if !@@currentDomain.nil?
                 staticApi[:DOMAIN] = @@currentDomain
@@ -721,5 +699,5 @@
         end
       elsif (/^\}(.*)$/ =~ @line)
-        # }ã®å¦ç
+        # }の処理
         if @@nestDC.size > 0
           case @@nestDC.pop
@@ -742,9 +720,9 @@
 
 #
-#  cfg1_out.cã®çæ
+#  cfg1_out.cの生成
 #
 module Cfg1OutC
   #
-  #  éçAPIã®ãã¡ã¤ã«åã¨è¡çªå·ã®åºå
+  #  静的APIのファイル名と行番号の出力
   #
   def self.OutLineNumber(cfgInfo)
@@ -753,5 +731,5 @@
 
   #
-  #  ã¯ã©ã¹è¨è¿°ã®ãã¡ã¤ã«åã¨è¡çªå·ã®åºå
+  #  クラス記述のファイル名と行番号の出力
   #
   def self.OutClassLineNumber(cfgInfo)
@@ -760,5 +738,5 @@
 
   #
-  #  ãã©ã¡ã¼ã¿ã«é¢ããå®ç¾©ã®åºå
+  #  パラメータに関する定義の出力
   #
   def self.OutParamDef(param, index, apiParam, cfgInfo)
@@ -774,5 +752,5 @@
 
   #
-  #  cfg1_out.cã®çæï¼ã¡ã¤ã³ã®å¦çï¼
+  #  cfg1_out.cの生成（メインの処理）
   #
   def self.Generate
@@ -785,5 +763,5 @@
 EOS
 
-    # ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«
+    # インクルードヘッダファイル
     $includeFiles.each do |file|
       @cfg1Out.add("#include #{file}")
@@ -813,5 +791,5 @@
 EOS
 
-    # å¤åå¾ã·ã³ãã«ã®å¦ç
+    # 値取得シンボルの処理
     $symbolValueTable.each do |symbolName, symbolData|
       if symbolData.has_key?(:BOOL) || symbolData.has_key?(:SIGNED)
@@ -836,5 +814,5 @@
     @cfg1Out.add
 
-    # ãã¡ã¤ã³IDã®å®ç¾©ã®çæ
+    # ドメインIDの定義の生成
     $domainId.each do |domainName, domainVal|
       if domainVal > 0
@@ -844,5 +822,5 @@
     @cfg1Out.add
 
-    # éçAPIï¼ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã®å¦ç
+    # 静的API／プリプロセッサディレクティブの処理
     $cfgFileInfo.each do |cfgInfo|
       if cfgInfo.has_key?(:DIRECTIVE)
@@ -857,5 +835,5 @@
           next unless apiParam.has_key?(:NAME)
           paramName = apiParam[:NAME]
-          next unless cfgInfo.has_key?(paramName)	# ãã©ã¡ã¼ã¿ããªãå ´å
+          next unless cfgInfo.has_key?(paramName)	# パラメータがない場合
           paramData = cfgInfo[paramName]
 
@@ -869,5 +847,5 @@
         end
         if cfgInfo.has_key?(:CLASS)
-          # ã¯ã©ã¹IDã®åå¾ã®ããã®å¦ç
+          # クラスIDの取得のための処理
           OutClassLineNumber(cfgInfo)
           @cfg1Out.add("const signed_t #{CFG1_PREFIX}valueof_CLASS_" \
@@ -881,24 +859,24 @@
 
 #
-#  ãã¹1ã®å¦ç
+#  パス1の処理
 #
 def Pass1
   # 
-  #  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+  #  タイムスタンプファイルの指定
   # 
   $timeStampFileName = CFG1_OUT_TIMESTAMP
 
   #
-  #  éçAPIãã¼ãã«ã®èª­ã¿è¾¼ã¿
+  #  静的APIテーブルの読み込み
   #
   ReadApiTableFile()
 
   #
-  #  å¤åå¾ã·ã³ãã«ãã¼ãã«ã®èª­ã¿è¾¼ã¿
+  #  値取得シンボルテーブルの読み込み
   #
   ReadSymvalTable()
 
   #
-  #  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+  #  システムコンフィギュレーションファイルの読み込み
   #
   $cfgFileInfo = []
@@ -909,8 +887,8 @@
     CfgParser.new.parseFile(configFileName)
   end
-  abort if $errorFlag					# ã¨ã©ã¼çºçæã¯abortãã
-
-  #
-  #  ãã¡ã¤ã³IDã®å²å½ã¦å¦ç
+  abort if $errorFlag					# エラー発生時はabortする
+
+  #
+  #  ドメインIDの割当て処理
   #
   nextDomainId = 1
@@ -929,10 +907,10 @@
 
   #
-  #  cfg1_out.cã®çæ
+  #  cfg1_out.cの生成
   #
   Cfg1OutC::Generate()
 
   #
-  #  ä¾å­é¢ä¿ã®åºå
+  #  依存関係の出力
   #
   if !$dependencyFileName.nil?
@@ -959,6 +937,5 @@
 
   #
-  #  ãã¹2ã«å¼ãæ¸¡ãæ
-å ±ããã¡ã¤ã«ã«çæ
+  #  パス2に引き渡す情報をファイルに生成
   #
   if $omitOutputDb.nil?
