Ignore:
Timestamp:
Jul 23, 2017, 2:29:40 PM (7 years ago)
Author:
coas-nagasima
Message:

SVNプロパティを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/cfg/pass1.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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 #  の責任を負わない.
     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#  の責任を負わない.
    5237#
    5338#  $Id: pass1.rb 133 2017-03-26 05:37:50Z ertl-hiro $
     
    5540
    5641#
    57 #               ãƒ‘ス1の処理
    58 #
    59 
    60 #
    61 å€¤å–得シンボルテーブルへの固定登録
     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
     
    187171                                                { skip_blanks: true, skip_lines: /^#/ })
    188172    symvalCsv.each do |record|
    189       # 変数名
     173      # 変数名
    190174      if record[0].nil?
    191175        error_exit("invalid variable name in " \
     
    196180      variable = record[0]
    197181
    198       # 式
     182      #
    199183      if record[1].nil? || record[1].empty?
    200184        symbol[:EXPR] = variable
     
    203187      end
    204188
    205       # 式の型
     189      # 式の型
    206190      if !record[2].nil? && !record[2].empty?
    207191        case record[2]
    208         when /^[bB]/                            # 真偽値
     192        when /^[bB]/                            # 真偽値
    209193          symbol[:BOOL] = true
    210         when /^[uU]/                            # 符号無し整数値
    211           # 何も設定しない
    212         else                                            # 符号付き整数値
     194        when /^[uU]/                            # 符号無し整数値
     195          # 何も設定しない
     196        else                                            # 符号付き整数値
    213197          symbol[:SIGNED] = true
    214198        end
    215199      end
    216200
    217       # コンパイル条件
     201      # コンパイル条件
    218202      if !record[3].nil? && !record[3].empty?
    219203        symbol[:CONDITION] = record[3]
    220204      end
    221205
    222       # 条件が成立しない時の式
     206      # 条件が成立しない時の式
    223207      if !record[4].nil? && !record[4].empty?
    224208        symbol[:ELSE_EXPR] = record[4]
     
    232216
    233217#
    234 ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®èª­ã¿è¾¼ã¿ã‚¯ãƒ©ã‚¹
     218システムコンフィギュレーションファイルからの読み込みクラス
    235219#
    236220class ConfigFile
     
    254238    return(nil) if line.nil?
    255239
    256         line.encode!("UTF-16BE", "UTF-8",       # 不正なバイト列を除外する
     240        line.encode!("UTF-16BE", "UTF-8",       # 不正なバイト列を除外する
    257241                                        :invalid => :replace,
    258242                                        :undef => :replace,
     
    263247    if @withinComment
    264248      case line
    265       when /\*\//                                               # C言語スタイルのコメント終了
    266         line.sub!(/^.*?\*\//, "")               # 最初の*/にマッチさせる */
     249      when /\*\//                                               # C言語スタイルのコメント終了
     250        line.sub!(/^.*?\*\//, "")               # 最初の*/にマッチさせる */
    267251        @withinComment = false
    268252      else
     
    271255    end
    272256    if !@withinComment
    273       line.gsub!(/\/\*.*?\*\//, "")             # C言語スタイルのコメントの除去
    274                                                                                 # 最初の*/にマッチさせる */
     257      line.gsub!(/\/\*.*?\*\//, "")             # C言語スタイルのコメントの除去
     258                                                                                # 最初の*/にマッチさせる */
    275259      case line
    276       when /^\s*#/                                              # プリプロセッサディレクティブ
     260      when /^\s*#/                                              # プリプロセッサディレクティブ
    277261        if withinApi
    278262          parse_error(self, \
     
    280264          line = ""
    281265        end
    282       when /\/\*/                                               # C言語スタイルのコメント開始
     266      when /\/\*/                                               # C言語スタイルのコメント開始
    283267        line.sub!(/\/\*.*$/, "")
    284268        @withinComment = true
    285       when /\/\//                                               # C++言語スタイルのコメント
     269      when /\/\//                                               # C++言語スタイルのコメント
    286270        line.sub!(/\/\/.*$/, "")
    287271      end
     
    300284
    301285#
    302 ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‘ーサークラス
     286システムコンフィギュレーションファイルのパーサークラス
    303287#
    304288class CfgParser
     
    310294  def initialize
    311295    @line = ""
    312     @skipComma = false                                          # 次が,であれば読み飛ばす
    313   end
    314 
    315   #
    316   #  文字列末まで読む
     296    @skipComma = false                                          # 次が,であれば読み飛ばす
     297  end
     298
     299  #
     300  #  文字列末まで読む
    317301  #
    318302  def parseString(cfgFile)
     
    320304    begin
    321305      case @line
    322       when /^([^"]*\\\\)(.*)$/                          # \\まで読む
     306      when /^([^"]*\\\\)(.*)$/                          # \\まで読む
    323307        string += $1
    324308        @line = $2
    325       when /^([^"]*\\\")(.*)$/                          # \"まで読む
     309      when /^([^"]*\\\")(.*)$/                          # \"まで読む
    326310        string += $1
    327311        @line = $2
    328       when /^([^"]*\")(.*)$/                            # "まで読む
     312      when /^([^"]*\")(.*)$/                            # "まで読む
    329313        string += $1
    330314        @line = $2
    331315        return(string)
    332       else                                                                      # 行末まで読む
     316      else                                                                      # 行末まで読む
    333317        string += @line + "\n"
    334318        @line = cfgFile.getNextLine(true)
     
    340324
    341325  #
    342   #  文字末まで読む
     326  #  文字末まで読む
    343327  #
    344328  def parseChar(cfgFile)
     
    346330    begin
    347331      case @line
    348       when /^([^']*\\\\)(.*)$/                          # \\まで読む
     332      when /^([^']*\\\\)(.*)$/                          # \\まで読む
    349333        string += $1
    350334        @line = $2
    351       when /^([^']*\\\')(.*)$/                          # \'まで読む
     335      when /^([^']*\\\')(.*)$/                          # \'まで読む
    352336        string += $1
    353337        @line = $2
    354       when /^([^']*\')(.*)$/                            # 'まで読む
     338      when /^([^']*\')(.*)$/                            # 'まで読む
    355339        string += $1
    356340        @line = $2
    357341        return(string)
    358       else                                                                      # 行末まで読む
     342      else                                                                      # 行末まで読む
    359343        string += @line + "\n"
    360344        @line = cfgFile.getNextLine(true)
     
    366350
    367351  #
    368   #  改行と空白文字を読み飛ばす
     352  #  改行と空白文字を読み飛ばす
    369353  #
    370354  def skipSpace(cfgFile, withinApi)
    371355    loop do
    372       return if @line.nil?                                              # ファイル末であればリターン
    373       @line.lstrip!                                                             # å
    374 ˆé ­ã®ç©ºç™½ã‚’削除
    375       return if @line != ""                                             # 空行でなければリターン
    376       @line = cfgFile.getNextLine(withinApi)    # 次の行を読む
    377     end
    378   end
    379 
    380   #
    381   #  次の文字まで読み飛ばす
     356      return if @line.nil?                                              # ファイル末であればリターン
     357      @line.lstrip!                                                             # 先頭の空白を削除
     358      return if @line != ""                                             # 空行でなければリターン
     359      @line = cfgFile.getNextLine(withinApi)    # 次の行を読む
     360    end
     361  end
     362
     363  #
     364  #  次の文字まで読み飛ばす
    382365  #
    383366  def skipToToken(cfgFile, withinApi=true)
    384367    skipSpace(cfgFile, withinApi)
    385     if @line.nil?                                                       # ファイル末であればエラー終了
     368    if @line.nil?                                                       # ファイル末であればエラー終了
    386369      error_exit("unexpexced end-of-file")
    387370    end
     
    389372
    390373  #
    391   #  パラメータを1つ読む
    392   #
    393   # @lineのå
    394 ˆé ­ã‹ã‚‰ãƒ‘ラメータを1つ読んで,それを文字列で返す.読んだパ
    395   # ラメータは,@lineからは削除する.パラメータの途中で行末に達した時は,
    396   # cfgFileから次の行を取り出す.ファイル末に達した時は,nilを返す.
     374  #  パラメータを1つ読む
     375  #
     376  # @lineの先頭からパラメータを1つ読んで,それを文字列で返す.読んだパ
     377  # ラメータは,@lineからは削除する.パラメータの途中で行末に達した時は,
     378  # cfgFileから次の行を取り出す.ファイル末に達した時は,nilを返す.
    397379  #
    398380  def parseParam(cfgFile)
    399     param = ""                                                          # 読んだ文字列
    400     parenLevel = 0                                                      # 括弧のネストレベル
     381    param = ""                                                          # 読んだ文字列
     382    parenLevel = 0                                                      # 括弧のネストレベル
    401383    skipComma = @skipComma
    402384    @skipComma = false
    403385
    404     skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
     386    skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
    405387    begin
    406388      if parenLevel == 0
     
    410392          if param == "" && skipComma
    411393            skipComma = false
    412             return(parseParam(cfgFile))         # 再帰呼び出し
     394            return(parseParam(cfgFile))         # 再帰呼び出し
    413395          else
    414396            return(param.strip)
     
    425407          @line = $2
    426408          parenLevel += 1
    427         when /^(\s*([)}]))(.*)$/                        # }か)
     409        when /^(\s*([)}]))(.*)$/                        # })
    428410          if param != ""
    429411            return(param.strip)
     
    439421          @line = $2
    440422          param += $1 + parseChar(cfgFile)
    441         when /^(\s*[^,{}()"'\s]+)(.*)$/         # その他の文字列
     423        when /^(\s*[^,{}()"'\s]+)(.*)$/         # その他の文字列
    442424          param += $1
    443425          @line = $2
    444         else                                                            # 行末
     426        else                                                            # 行末
    445427          param += " "
    446428          @line = cfgFile.getNextLine(true)
    447429        end
    448430      else
    449         # 括弧å†
    450 ã®å‡¦ç†
     431        # 括弧内の処理
    451432        case @line
    452433        when /^(\s*\()(.*)$/                            # "("
     
    464445          @line = $2
    465446          param += $1 + parseChar(cfgFile)
    466         when /^(\s*[^()"'\s]+)(.*)$/            # その他の文字列
     447        when /^(\s*[^()"'\s]+)(.*)$/            # その他の文字列
    467448          param += $1
    468449          @line = $2
    469         else                                                            # 行末
     450        else                                                            # 行末
    470451          param += " "
    471452          @line = cfgFile.getNextLine(true)
     
    499480
    500481  def parseApi(cfgFile, apiName)
    501     # 静的APIの読み込み
     482    # 静的APIの読み込み
    502483    staticApi = {}
    503484    tooFewParams = false
    504485    skipUntilBrace = 0
    505486
    506     skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
     487    skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
    507488    if (/^\((.*)$/ =~ @line)
    508489      @line = $1
     
    515496
    516497      apiDef[:PARAM].each do |apiParam|
    517         return(staticApi) if param.nil?         # ファイル末であればリターン
     498        return(staticApi) if param.nil?         # ファイル末であればリターン
    518499
    519500        if skipUntilBrace > 0
    520           # API定義を}までスキップ中
     501          # API定義を}までスキップ中
    521502          if apiParam.has_key?(:BRACE)
    522503            case apiParam[:BRACE]
     
    540521            staticApi[apiParam[:NAME]].push(getParam(apiParam, param, cfgFile))
    541522            param = parseParam(cfgFile)
    542             break if param.nil?                         # ファイル末の場合
     523            break if param.nil?                         # ファイル末の場合
    543524          end
    544525        elsif apiParam.has_key?(:OPTBRACE)
    545526          if param == apiParam[:BRACE]
    546527            param = parseParam(cfgFile)
    547             break if param.nil?                         # ファイル末の場合
     528            break if param.nil?                         # ファイル末の場合
    548529          else
    549530            if param == ""
    550531              param = parseParam(cfgFile)
    551               break if param.nil?                       # ファイル末の場合
     532              break if param.nil?                       # ファイル末の場合
    552533            elsif /^([})])$/ !~ param
    553534              parse_error(cfgFile, "`{...}' expected before #{param}")
    554535            end
    555             skipUntilBrace += 1                 # API定義を}までスキップ
     536            skipUntilBrace += 1                 # API定義を}までスキップ
    556537          end
    557538        elsif !apiParam.has_key?(:BRACE)
     
    568549        else
    569550          parse_error(cfgFile, "`#{apiParam[:BRACE]}' expected before #{param}")
    570           # )かファイル末まで読み飛ばす
     551          # )かファイル末まで読み飛ばす
    571552          loop do
    572553            param = parseParam(cfgFile)
     
    577558      end
    578559
    579       # 期å¾
    580 ã•ã‚Œã‚‹ãƒ‘ラメータをすべて読んだ後の処理
     560      # 期待されるパラメータをすべて読んだ後の処理
    581561      if param != ")"
    582562        begin
    583563          param = parseParam(cfgFile)
    584           return(staticApi) if param.nil?       # ファイル末であればリターン
     564          return(staticApi) if param.nil?       # ファイル末であればリターン
    585565        end while param != ")"
    586566        parse_error(cfgFile, "too many parameters before `)'")
     
    594574
    595575  def parseOpenBrace(cfgFile)
    596     # {の読み込み
    597     skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
     576    # {の読み込み
     577    skipToToken(cfgFile)                                        # 次の文字まで読み飛ばす
    598578    if (/^\{(.*)$/ =~ @line)
    599579      @line = $1
     
    609589      cfgFile = cfgFiles.last
    610590
    611       skipSpace(cfgFile, false)                         # 改行と空白文字を読み飛ばす
     591      skipSpace(cfgFile, false)                         # 改行と空白文字を読み飛ばす
    612592      if @line.nil?
    613         # ファイル末の処理
     593        # ファイル末の処理
    614594        cfgFiles.pop.close
    615595        if cfgFiles.empty?
    616           break                                                         # パース処理終了
     596          break                                                         # パース処理終了
    617597        else
    618           @line = ""                                            # å
    619 ƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã«æˆ»ã£ã¦ç¶šã‘ã‚‹
     598          @line = ""                                            # 元のファイルに戻って続ける
    620599        end
    621600      elsif /^;(.*)$/ =~ @line
    622         # ;は読み飛ばす
     601        # ;は読み飛ばす
    623602        @line = $1
    624603      elsif /^#/ =~ @line
    625         # プリプロセッサディレクティブを読む
     604        # プリプロセッサディレクティブを読む
    626605        case @line
    627606        when /^#include\b(.*)$/
     
    662641            if !$domainId.has_key?(domid)
    663642              if $inputObjid.has_key?(domid)
    664                 # ID番号å
    665 ¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã«å®šç¾©ã•ã‚Œã¦ã„た場合
     643                # ID番号入力ファイルに定義されていた場合
    666644                $domainId[domid] = $inputObjid[domid]
    667645                if $domainId[domid] > 32
     
    690668        else
    691669          if $apiDefinition.has_key?(apiName)
    692             # 静的APIを1つ読む
     670            # 静的APIを1つ読む
    693671            staticApi = parseApi(cfgFile, apiName)
    694672            if staticApi.empty?
    695               # ファイル末か文法エラー
     673              # ファイル末か文法エラー
    696674            elsif (staticApi[:APINAME] == "INCLUDE")
    697               # INCLUDEの処理
     675              # INCLUDEの処理
    698676              includeFilePath = SearchFilePath(staticApi[:file])
    699677              if includeFilePath.nil?
     
    704682              end
    705683            else
    706               # 静的APIの処理
     684              # 静的APIの処理
    707685              if !@@currentDomain.nil?
    708686                staticApi[:DOMAIN] = @@currentDomain
     
    721699        end
    722700      elsif (/^\}(.*)$/ =~ @line)
    723         # }の処理
     701        # }の処理
    724702        if @@nestDC.size > 0
    725703          case @@nestDC.pop
     
    742720
    743721#
    744 #  cfg1_out.cの生成
     722#  cfg1_out.cの生成
    745723#
    746724module Cfg1OutC
    747725  #
    748   #  静的APIのファイル名と行番号の出力
     726  #  静的APIのファイル名と行番号の出力
    749727  #
    750728  def self.OutLineNumber(cfgInfo)
     
    753731
    754732  #
    755   #  クラス記述のファイル名と行番号の出力
     733  #  クラス記述のファイル名と行番号の出力
    756734  #
    757735  def self.OutClassLineNumber(cfgInfo)
     
    760738
    761739  #
    762   #  パラメータに関する定義の出力
     740  #  パラメータに関する定義の出力
    763741  #
    764742  def self.OutParamDef(param, index, apiParam, cfgInfo)
     
    774752
    775753  #
    776   #  cfg1_out.cの生成(メインの処理)
     754  #  cfg1_out.cの生成(メインの処理)
    777755  #
    778756  def self.Generate
     
    785763EOS
    786764
    787     # インクルードヘッダファイル
     765    # インクルードヘッダファイル
    788766    $includeFiles.each do |file|
    789767      @cfg1Out.add("#include #{file}")
     
    813791EOS
    814792
    815     # 値取得シンボルの処理
     793    # 値取得シンボルの処理
    816794    $symbolValueTable.each do |symbolName, symbolData|
    817795      if symbolData.has_key?(:BOOL) || symbolData.has_key?(:SIGNED)
     
    836814    @cfg1Out.add
    837815
    838     # ドメインIDの定義の生成
     816    # ドメインIDの定義の生成
    839817    $domainId.each do |domainName, domainVal|
    840818      if domainVal > 0
     
    844822    @cfg1Out.add
    845823
    846     # 静的API/プリプロセッサディレクティブの処理
     824    # 静的API/プリプロセッサディレクティブの処理
    847825    $cfgFileInfo.each do |cfgInfo|
    848826      if cfgInfo.has_key?(:DIRECTIVE)
     
    857835          next unless apiParam.has_key?(:NAME)
    858836          paramName = apiParam[:NAME]
    859           next unless cfgInfo.has_key?(paramName)       # パラメータがない場合
     837          next unless cfgInfo.has_key?(paramName)       # パラメータがない場合
    860838          paramData = cfgInfo[paramName]
    861839
     
    869847        end
    870848        if cfgInfo.has_key?(:CLASS)
    871           # クラスIDの取得のための処理
     849          # クラスIDの取得のための処理
    872850          OutClassLineNumber(cfgInfo)
    873851          @cfg1Out.add("const signed_t #{CFG1_PREFIX}valueof_CLASS_" \
     
    881859
    882860#
    883 ãƒ‘ス1の処理
     861パス1の処理
    884862#
    885863def Pass1
    886864  #
    887   #  タイムスタンプファイルの指定
     865  #  タイムスタンプファイルの指定
    888866  #
    889867  $timeStampFileName = CFG1_OUT_TIMESTAMP
    890868
    891869  #
    892   #  静的APIテーブルの読み込み
     870  #  静的APIテーブルの読み込み
    893871  #
    894872  ReadApiTableFile()
    895873
    896874  #
    897   #  値取得シンボルテーブルの読み込み
     875  #  値取得シンボルテーブルの読み込み
    898876  #
    899877  ReadSymvalTable()
    900878
    901879  #
    902   #  システムコンフィギュレーションファイルの読み込み
     880  #  システムコンフィギュレーションファイルの読み込み
    903881  #
    904882  $cfgFileInfo = []
     
    909887    CfgParser.new.parseFile(configFileName)
    910888  end
    911   abort if $errorFlag                                   # エラー発生時はabortする
    912 
    913   #
    914   #  ドメインIDの割当て処理
     889  abort if $errorFlag                                   # エラー発生時はabortする
     890
     891  #
     892  #  ドメインIDの割当て処理
    915893  #
    916894  nextDomainId = 1
     
    929907
    930908  #
    931   #  cfg1_out.cの生成
     909  #  cfg1_out.cの生成
    932910  #
    933911  Cfg1OutC::Generate()
    934912
    935913  #
    936   #  依存関係の出力
     914  #  依存関係の出力
    937915  #
    938916  if !$dependencyFileName.nil?
     
    959937
    960938  #
    961   #  パス2に引き渡すæƒ
    962 å ±ã‚’ファイルに生成
     939  #  パス2に引き渡す情報をファイルに生成
    963940  #
    964941  if $omitOutputDb.nil?
Note: See TracChangeset for help on using the changeset viewer.