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/cfg/pass1.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    77#              Graduate School of Information Science, Nagoya Univ., JAPAN
    88#
    9 #  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11 #  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12 #  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14 #  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15 #      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16 #      スコード中に含まれていること.
    17 #  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18 #      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21 #      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23 #      の無保証規定を掲載すること.
    24 #  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25 #      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27 #      と.
    28 #    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31 #        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32 #    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35 #        報告すること.
    36 #  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37 #      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40 #      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41 #      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43 #      å
    44 è²¬ã™ã‚‹ã“と.
    45 #
    46 #  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48 #  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49 #  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50 #  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51 #  の責任を負わない.
    52 #
    53 #  $Id: pass1.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
    54 #
    55 
    56 #
    57 #               ãƒ‘ス1の処理
    58 #
    59 
    60 #
    61 #  値取得シンボルテーブルへの固定登録
     9#  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10#  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11#  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12#  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13#      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14#      スコード中に含まれていること.
     15#  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16#      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17#      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18#      の無保証規定を掲載すること.
     19#  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20#      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21#      と.
     22#    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23#        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24#    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25#        報告すること.
     26#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27#      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28#      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29#      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30#      免責すること.
     31#
     32#  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33#  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34#  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35#  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36#  の責任を負わない.
     37#
     38#  $Id$
     39#
     40
     41#
     42#               パス1の処理
     43#
     44
     45#
     46#  値取得シンボルテーブルへの固定登録
    6247#
    6348$symbolValueTable = {
     
    8065
    8166#
    82 é™çš„APIテーブルへの固定登録
     67静的APIテーブルへの固定登録
    8368#
    8469$apiDefinition = { "INCLUDE" =>
     
    8671
    8772#
    88 é™çš„APIテーブルの読み込み
     73静的APIテーブルの読み込み
    8974#
    9075def ReadApiTableFile
     
    10287    apiFile = File.open(apiTableFileName)
    10388    apiFile.each do |line|
    104       next if /^#/ =~ line                      # コメントをスキップ
    105 
    106       fields = line.split(/\s+/)        # フィールドに分解
    107 
    108       apiName = fields.shift            # API名の取り出し
     89      next if /^#/ =~ line                      # コメントをスキップ
     90
     91      fields = line.split(/\s+/)        # フィールドに分解
     92
     93      apiName = fields.shift            # API名の取り出し
    10994      if /^(.+)\[(.+)\]$/ =~ apiName
    11095        apiName = $1
     
    127112
    128113          case prefix
    129           when "#"                                      # オブジェクト識別名(定義)
     114          when "#"                                      # オブジェクト識別名(定義)
    130115            apiParam[:ID_DEF] = true
    131           when "%"                                      # オブジェクト識別名(参ç
    132 §ï¼‰
     116          when "%"                                      # オブジェクト識別名(参照)
    133117            apiParam[:ID_REF] = true
    134           when "."                                      # 符号無し整数定数式パラメータ
     118          when "."                                      # 符号無し整数定数式パラメータ
    135119            apiParam[:EXPTYPE] = "unsigned_t"
    136           when "+"                                      # 符号付き整数定数式パラメータ
     120          when "+"                                      # 符号付き整数定数式パラメータ
    137121            apiParam[:EXPTYPE] = "signed_t"
    138122            apiParam[:SIGNED] = true
    139           when "&"                                      # 一般整数定数式パラメータ
     123          when "&"                                      # 一般整数定数式パラメータ
    140124            # do nothing
    141           when "$"                                      # 文字列定数式パラメータ
     125          when "$"                                      # 文字列定数式パラメータ
    142126            apiParam[:STRING] = true
    143127          else
     
    146130
    147131          case postfix
    148           when "*"                                      # キーを決めるパラメータ
     132          when "*"                                      # キーを決めるパラメータ
    149133            apiDef[:KEYPAR] = name
    150           when "?"                                      # オプションパラメータ
     134          when "?"                                      # オプションパラメータ
    151135            apiParam[:OPTIONAL] = true
    152           when "\.\.\."                         # リストパラメータ
     136          when "\.\.\."                         # リストパラメータ
    153137            apiParam[:LIST] = true
    154138          end
     
    175159
    176160#
    177 å€¤å–得シンボルテーブルの読み込み
     161値取得シンボルテーブルの読み込み
    178162#
    179163def ReadSymvalTable
     
    186170    symvalCsv = CSV.open(symvalTableFileName)
    187171    symvalCsv.each do |record|
    188       # 変数名
     172      # 変数名
    189173      if record[0].nil?
    190174        error_exit("invalid variable name in `#{fileName}'")
     
    194178      variable = record[0]
    195179
    196       # 式
     180      #
    197181      if record[1].nil? || record[1].empty?
    198182        symbol[:EXPR] = variable
     
    201185      end
    202186
    203       # 式の型
     187      # 式の型
    204188      if !record[2].nil? && !record[2].empty?
    205189        case record[2]
    206         when /^[bB]/                            # 真偽値
     190        when /^[bB]/                            # 真偽値
    207191          symbol[:BOOL] = true
    208         when /^[uU]/                            # 符号無し整数値
    209           # 何も設定しない
    210         else                                            # 符号付き整数値
     192        when /^[uU]/                            # 符号無し整数値
     193          # 何も設定しない
     194        else                                            # 符号付き整数値
    211195          symbol[:SIGNED] = true
    212196        end
    213197      end
    214198
    215       # コンパイル条件
     199      # コンパイル条件
    216200      if !record[3].nil? && !record[3].empty?
    217201        symbol[:CONDITION] = record[3]
    218202      end
    219203
    220       # 条件が成立しない時の式
     204      # 条件が成立しない時の式
    221205      if !record[4].nil? && !record[4].empty?
    222206        symbol[:ELSE_EXPR] = record[4]
     
    230214
    231215#
    232 ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®èª­ã¿è¾¼ã¿ã‚¯ãƒ©ã‚¹
     216システムコンフィギュレーションファイルからの読み込みクラス
    233217#
    234218class ConfigFile
     
    256240    if @withinComment
    257241      case line
    258       when /\*\//                                               # C言語スタイルのコメント終了
    259         line.sub!(/^.*?\*\//, "")               # 最初の*/にマッチさせる */
     242      when /\*\//                                               # C言語スタイルのコメント終了
     243        line.sub!(/^.*?\*\//, "")               # 最初の*/にマッチさせる */
    260244        @withinComment = false
    261245      else
     
    264248    end
    265249    if !@withinComment
    266       line.gsub!(/\/\*.*?\*\//, "")             # C言語スタイルのコメントの除去
    267                                                                                 # 最初の*/にマッチさせる */
     250      line.gsub!(/\/\*.*?\*\//, "")             # C言語スタイルのコメントの除去
     251                                                                                # 最初の*/にマッチさせる */
    268252      case line
    269       when /^\s*#/                                              # プリプロセッサディレクティブ
     253      when /^\s*#/                                              # プリプロセッサディレクティブ
    270254        if withinApi
    271255          parse_error(self, \
     
    273257          line = ""
    274258        end
    275       when /\/\*/                                               # C言語スタイルのコメント開始
     259      when /\/\*/                                               # C言語スタイルのコメント開始
    276260        line.sub!(/\/\*.*$/, "")
    277261        @withinComment = true
    278       when /\/\//                                               # C++言語スタイルのコメント
     262      when /\/\//                                               # C++言語スタイルのコメント
    279263        line.sub!(/\/\/.*$/, "")
    280264      end
     
    293277
    294278#
    295 ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‘ーサークラス
     279システムコンフィギュレーションファイルのパーサークラス
    296280#
    297281class CfgParser
     
    303287  def initialize
    304288    @line = ""
    305     @skipComma = false                                          # 次が,であれば読み飛ばす
    306   end
    307 
    308   #
    309   #  文字列末まで読む
     289    @skipComma = false                                          # 次が,であれば読み飛ばす
     290  end
     291
     292  #
     293  #  文字列末まで読む
    310294  #
    311295  def parseString(cfgFile)
     
    313297    begin
    314298      case @line
    315       when /^([^"]*\\\\)(.*)$/                          # \\まで読む
     299      when /^([^"]*\\\\)(.*)$/                          # \\まで読む
    316300        string += $1
    317301        @line = $2
    318       when /^([^"]*\\\")(.*)$/                          # \"まで読む
     302      when /^([^"]*\\\")(.*)$/                          # \"まで読む
    319303        string += $1
    320304        @line = $2
    321       when /^([^"]*\")(.*)$/                            # "まで読む
     305      when /^([^"]*\")(.*)$/                            # "まで読む
    322306        string += $1
    323307        @line = $2
    324308        return(string)
    325       else                                                                      # 行末まで読む
     309      else                                                                      # 行末まで読む
    326310        string += @line + "\n"
    327311        @line = cfgFile.getNextLine(true)
     
    333317
    334318  #
    335   #  文字末まで読む
     319  #  文字末まで読む
    336320  #
    337321  def parseChar(cfgFile)
     
    339323    begin
    340324      case @line
    341       when /^([^']*\\\\)(.*)$/                          # \\まで読む
     325      when /^([^']*\\\\)(.*)$/                          # \\まで読む
    342326        string += $1
    343327        @line = $2
    344       when /^([^']*\\\')(.*)$/                          # \'まで読む
     328      when /^([^']*\\\')(.*)$/                          # \'まで読む
    345329        string += $1
    346330        @line = $2
    347       when /^([^']*\')(.*)$/                            # 'まで読む
     331      when /^([^']*\')(.*)$/                            # 'まで読む
    348332        string += $1
    349333        @line = $2
    350334        return(string)
    351       else                                                                      # 行末まで読む
     335      else                                                                      # 行末まで読む
    352336        string += @line + "\n"
    353337        @line = cfgFile.getNextLine(true)
     
    359343
    360344  #
    361   #  改行と空白文字を読み飛ばす
     345  #  改行と空白文字を読み飛ばす
    362346  #
    363347  def skipSpace(cfgFile, withinApi)
    364348    loop do
    365       return if @line.nil?                                              # ファイル末であればリターン
    366       @line.lstrip!                                                             # å
    367 ˆé ­ã®ç©ºç™½ã‚’削除
    368       return if @line != ""                                             # 空行でなければリターン
    369       @line = cfgFile.getNextLine(withinApi)    # 次の行を読む
    370     end
    371   end
    372 
    373   #
    374   #  次の文字まで読み飛ばす
     349      return if @line.nil?                                              # ファイル末であればリターン
     350      @line.lstrip!                                                             # 先頭の空白を削除
     351      return if @line != ""                                             # 空行でなければリターン
     352      @line = cfgFile.getNextLine(withinApi)    # 次の行を読む
     353    end
     354  end
     355
     356  #
     357  #  次の文字まで読み飛ばす
    375358  #
    376359  def skipToToken(cfgFile, withinApi=true)
    377360    skipSpace(cfgFile, withinApi)
    378     if @line.nil?                                                       # ファイル末であればエラー終了
     361    if @line.nil?                                                       # ファイル末であればエラー終了
    379362      error_exit("unexpexced end-of-file")
    380363    end
     
    382365
    383366  #
    384   #  パラメータを1つ読む
    385   #
    386   # @lineのå
    387 ˆé ­ã‹ã‚‰ãƒ‘ラメータを1つ読んで,それを文字列で返す.読んだパ
    388   # ラメータは,@lineからは削除する.パラメータの途中で行末に達した時は,
    389   # cfgFileから次の行を取り出す.ファイル末に達した時は,nilを返す.
     367  #  パラメータを1つ読む
     368  #
     369  # @lineの先頭からパラメータを1つ読んで,それを文字列で返す.読んだパ
     370  # ラメータは,@lineからは削除する.パラメータの途中で行末に達した時は,
     371  # cfgFileから次の行を取り出す.ファイル末に達した時は,nilを返す.
    390372  #
    391373  def parseParam(cfgFile)
    392     param = ""                                                          # 読んだ文字列
    393     parenLevel = 0                                                      # 括弧のネストレベル
     374    param = ""                                                          # 読んだ文字列
     375    parenLevel = 0                                                      # 括弧のネストレベル
    394376    skipComma = @skipComma
    395377    @skipComma = false
    396378
    397     skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
     379    skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
    398380    begin
    399381      if parenLevel == 0
     
    403385          if param == "" && skipComma
    404386            skipComma = false
    405             return(parseParam(cfgFile))         # 再帰呼び出し
     387            return(parseParam(cfgFile))         # 再帰呼び出し
    406388          else
    407389            return(param.strip)
     
    418400          @line = $2
    419401          parenLevel += 1
    420         when /^(\s*([)}]))(.*)$/                        # }か)
     402        when /^(\s*([)}]))(.*)$/                        # })
    421403          if param != ""
    422404            return(param.strip)
     
    432414          @line = $2
    433415          param += $1 + parseChar(cfgFile)
    434         when /^(\s*[^,{}()"'\s]+)(.*)$/         # その他の文字列
     416        when /^(\s*[^,{}()"'\s]+)(.*)$/         # その他の文字列
    435417          param += $1
    436418          @line = $2
    437         else                                                            # 行末
     419        else                                                            # 行末
    438420          param += " "
    439421          @line = cfgFile.getNextLine(true)
    440422        end
    441423      else
    442         # 括弧å†
    443 ã®å‡¦ç†
     424        # 括弧内の処理
    444425        case @line
    445426        when /^(\s*\()(.*)$/                            # "("
     
    457438          @line = $2
    458439          param += $1 + parseChar(cfgFile)
    459         when /^(\s*[^()"'\s]+)(.*)$/            # その他の文字列
     440        when /^(\s*[^()"'\s]+)(.*)$/            # その他の文字列
    460441          param += $1
    461442          @line = $2
    462         else                                                            # 行末
     443        else                                                            # 行末
    463444          param += " "
    464445          @line = cfgFile.getNextLine(true)
     
    492473
    493474  def parseApi(cfgFile, apiName)
    494     # 静的APIの読み込み
     475    # 静的APIの読み込み
    495476    staticApi = {}
    496477    tooFewParams = false
    497478    skipUntilBrace = 0
    498479
    499     skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
     480    skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
    500481    if (/^\((.*)$/ =~ @line)
    501482      @line = $1
     
    508489
    509490      apiDef[:PARAM].each do |apiParam|
    510         return(staticApi) if param.nil?         # ファイル末であればリターン
     491        return(staticApi) if param.nil?         # ファイル末であればリターン
    511492
    512493        if skipUntilBrace > 0
    513           # API定義を}までスキップ中
     494          # API定義を}までスキップ中
    514495          if apiParam.has_key?(:BRACE)
    515496            case apiParam[:BRACE]
     
    533514            staticApi[apiParam[:NAME]].push(getParam(apiParam, param, cfgFile))
    534515            param = parseParam(cfgFile)
    535             break if param.nil?                         # ファイル末の場合
     516            break if param.nil?                         # ファイル末の場合
    536517          end
    537518        elsif apiParam.has_key?(:OPTBRACE)
    538519          if param == apiParam[:BRACE]
    539520            param = parseParam(cfgFile)
    540             break if param.nil?                         # ファイル末の場合
     521            break if param.nil?                         # ファイル末の場合
    541522          else
    542523            if param == ""
    543524              param = parseParam(cfgFile)
    544               break if param.nil?                       # ファイル末の場合
     525              break if param.nil?                       # ファイル末の場合
    545526            elsif /^([})])$/ !~ param
    546527              parse_error(cfgFile, "`{...}' expected before #{param}")
    547528            end
    548             skipUntilBrace += 1                 # API定義を}までスキップ
     529            skipUntilBrace += 1                 # API定義を}までスキップ
    549530          end
    550531        elsif !apiParam.has_key?(:BRACE)
     
    561542        else
    562543          parse_error(cfgFile, "`#{apiParam[:BRACE]}' expected before #{param}")
    563           # )かファイル末まで読み飛ばす
     544          # )かファイル末まで読み飛ばす
    564545          loop do
    565546            param = parseParam(cfgFile)
     
    570551      end
    571552
    572       # 期å¾
    573 ã•ã‚Œã‚‹ãƒ‘ラメータをすべて読んだ後の処理
     553      # 期待されるパラメータをすべて読んだ後の処理
    574554      if param != ")"
    575555        begin
    576556          param = parseParam(cfgFile)
    577           return(staticApi) if param.nil?       # ファイル末であればリターン
     557          return(staticApi) if param.nil?       # ファイル末であればリターン
    578558        end while param != ")"
    579559        parse_error(cfgFile, "too many parameters before `)'")
     
    587567
    588568  def parseOpenBrace(cfgFile)
    589     # {の読み込み
    590     skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
     569    # {の読み込み
     570    skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
    591571    if (/^\{(.*)$/ =~ @line)
    592572      @line = $1
     
    602582      cfgFile = cfgFiles.last
    603583
    604       skipSpace(cfgFile, false)                         # 改行と空白文字を読み飛ばす
     584      skipSpace(cfgFile, false)                         # 改行と空白文字を読み飛ばす
    605585      if @line.nil?
    606         # ファイル末の処理
     586        # ファイル末の処理
    607587        cfgFiles.pop.close
    608588        if cfgFiles.empty?
    609           break                                                         # パース処理終了
     589          break                                                         # パース処理終了
    610590        else
    611           @line = ""                                            # å
    612 ƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã«æˆ»ã£ã¦ç¶šã‘ã‚‹
     591          @line = ""                                            # 元のファイルに戻って続ける
    613592        end
    614593      elsif /^;(.*)$/ =~ @line
    615         # ;は読み飛ばす
     594        # ;は読み飛ばす
    616595        @line = $1
    617596      elsif /^#/ =~ @line
    618         # プリプロセッサディレクティブを読む
     597        # プリプロセッサディレクティブを読む
    619598        case @line
    620599        when /^#include\b(.*)$/
     
    655634            if !$domainId.has_key?(domid)
    656635              if $inputObjid.has_key?(domid)
    657                 # ID番号å
    658 ¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã«å®šç¾©ã•ã‚Œã¦ã„た場合
     636                # ID番号入力ファイルに定義されていた場合
    659637                $domainId[domid] = $inputObjid[domid]
    660638                if $domainId[domid] > 32
     
    683661        else
    684662          if $apiDefinition.has_key?(apiName)
    685             # 静的APIを1つ読む
     663            # 静的APIを1つ読む
    686664            staticApi = parseApi(cfgFile, apiName)
    687665            if staticApi.empty?
    688               # ファイル末か文法エラー
     666              # ファイル末か文法エラー
    689667            elsif (staticApi[:APINAME] == "INCLUDE")
    690               # INCLUDEの処理
     668              # INCLUDEの処理
    691669              includeFilePath = SearchFilePath(staticApi[:file])
    692670              if includeFilePath.nil?
     
    697675              end
    698676            else
    699               # 静的APIの処理
     677              # 静的APIの処理
    700678              if !@@currentDomain.nil?
    701679                staticApi[:DOMAIN] = @@currentDomain
     
    714692        end
    715693      elsif (/^\}(.*)$/ =~ @line)
    716         # }の処理
     694        # }の処理
    717695        if @@nestDC.size > 0
    718696          case @@nestDC.pop
     
    735713
    736714#
    737 #  cfg1_out.cの生成
     715#  cfg1_out.cの生成
    738716#
    739717module Cfg1OutC
    740718  #
    741   #  静的APIのファイル名と行番号の出力
     719  #  静的APIのファイル名と行番号の出力
    742720  #
    743721  def self.OutLineNumber(cfgInfo)
     
    746724
    747725  #
    748   #  クラス記述のファイル名と行番号の出力
     726  #  クラス記述のファイル名と行番号の出力
    749727  #
    750728  def self.OutClassLineNumber(cfgInfo)
     
    753731
    754732  #
    755   #  パラメータに関する定義の出力
     733  #  パラメータに関する定義の出力
    756734  #
    757735  def self.OutParamDef(param, index, apiParam, cfgInfo)
     
    767745
    768746  #
    769   #  cfg1_out.cの生成(メインの処理)
     747  #  cfg1_out.cの生成(メインの処理)
    770748  #
    771749  def self.Generate
     
    778756EOS
    779757
    780     # インクルードヘッダファイル
     758    # インクルードヘッダファイル
    781759    $includeFiles.each do |file|
    782760      @cfg1Out.add("#include #{file}")
     
    800778EOS
    801779
    802     # 値取得シンボルの処理
     780    # 値取得シンボルの処理
    803781    $symbolValueTable.each do |symbolName, symbolData|
    804782      if symbolData.has_key?(:BOOL) || symbolData.has_key?(:SIGNED)
     
    823801    @cfg1Out.add
    824802
    825     # ドメインIDの定義の生成
     803    # ドメインIDの定義の生成
    826804    $domainId.each do |domainName, domainVal|
    827805      if domainVal > 0
     
    831809    @cfg1Out.add
    832810
    833     # 静的API/プリプロセッサディレクティブの処理
     811    # 静的API/プリプロセッサディレクティブの処理
    834812    $cfgFileInfo.each do |cfgInfo|
    835813      if cfgInfo.has_key?(:DIRECTIVE)
     
    844822          next unless apiParam.has_key?(:NAME)
    845823          paramName = apiParam[:NAME]
    846           next unless cfgInfo.has_key?(paramName)       # パラメータがない場合
     824          next unless cfgInfo.has_key?(paramName)       # パラメータがない場合
    847825          paramData = cfgInfo[paramName]
    848826
     
    856834        end
    857835        if cfgInfo.has_key?(:CLASS)
    858           # クラスIDの取得のための処理
     836          # クラスIDの取得のための処理
    859837          OutClassLineNumber(cfgInfo)
    860838          @cfg1Out.add("const signed_t #{CFG1_PREFIX}valueof_CLASS_" \
     
    868846
    869847#
    870 ãƒ‘ス1の処理
     848パス1の処理
    871849#
    872850def Pass1
    873851  #
    874   #  タイムスタンプファイルの指定
     852  #  タイムスタンプファイルの指定
    875853  #
    876854  $timeStampFileName = CFG1_OUT_TIMESTAMP
    877855
    878856  #
    879   #  静的APIテーブルの読み込み
     857  #  静的APIテーブルの読み込み
    880858  #
    881859  ReadApiTableFile()
    882860
    883861  #
    884   #  値取得シンボルテーブルの読み込み
     862  #  値取得シンボルテーブルの読み込み
    885863  #
    886864  ReadSymvalTable()
    887865
    888866  #
    889   #  システムコンフィギュレーションファイルの読み込み
     867  #  システムコンフィギュレーションファイルの読み込み
    890868  #
    891869  $cfgFileInfo = []
     
    896874    CfgParser.new.parseFile(configFileName)
    897875  end
    898   abort if $errorFlag                                   # エラー発生時はabortする
    899 
    900   #
    901   #  ドメインIDの割当て処理
     876  abort if $errorFlag                                   # エラー発生時はabortする
     877
     878  #
     879  #  ドメインIDの割当て処理
    902880  #
    903881  nextDomainId = 1
     
    916894
    917895  #
    918   #  cfg1_out.cの生成
     896  #  cfg1_out.cの生成
    919897  #
    920898  Cfg1OutC::Generate()
    921899
    922900  #
    923   #  依存関係の出力
     901  #  依存関係の出力
    924902  #
    925903  if !$dependencyFileName.nil?
     
    946924
    947925  #
    948   #  パス2に引き渡すæƒ
    949 å ±ã‚’ファイルに生成
     926  #  パス2に引き渡す情報をファイルに生成
    950927  #
    951928  if $omitOutputDb.nil?
Note: See TracChangeset for help on using the changeset viewer.