Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r388 r389  
    66#   Copyright (C) 2008-2017 by TOPPERS Project
    77#--
    8 #   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    11 #   å¤‰ãƒ»å†é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    15 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    16 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 #       è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    23 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 #       ç”¨ã§ããªã„形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 #       ã¨ï¼Ž
    27 #     (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    31 #     (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 #         å ±å‘Šã™ã‚‹ã“と.
    35 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    40 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 #       å
    43 è²¬ã™ã‚‹ã“と.
     8#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13#       スコード中に含まれていること.
     14#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17#       の無保証規定を掲載すること.
     18#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20#       と.
     21#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     23#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24#         報告すること.
     25#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29#       免責すること.
    4430
    45 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    46 ãŠ
    47 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    49 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    50 #   ã®è²¬ä»»ã‚’負わない.
     31#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35#   の責任を負わない.
    5136
    5237#   $Id$
    5338#++
    5439
    55 # CType は C_parser で定義される型を扱う CIntType, CFloatType などに include するもの
    56 # CIntType は IntType を継承するなど、C の型では TECS の型を継承する
     40# CType は C_parser で定義される型を扱う CIntType, CFloatType などに include するもの
     41# CIntType は IntType を継承するなど、C の型では TECS の型を継承する
    5742module CType
    5843
    59   #=== 構文要素 type_specifier が複数指定されている場合に merge する
    60   # merge は const(CIntType) unsigned(CIntTtype), long(CIntType), などと他の型をマージする
    61   # const, unsigned, long などは、単体で int (CIntType) 型になりうる
     44  #=== 構文要素 type_specifier が複数指定されている場合に merge する
     45  # merge は const(CIntType) unsigned(CIntTtype), long(CIntType), などと他の型をマージする
     46  # const, unsigned, long などは、単体で int (CIntType) 型になりうる
    6247  #
    63   # mikan C の文法を厳密にはチェックしていない  long struct 等もできてしまう
     48  # mikan C の文法を厳密にはチェックしていない  long struct 等もできてしまう
    6449  def merge another
    6550
    6651    # p "self: #{self.class} kind_of( IntType ): #{self.kind_of?( IntType )}  another: #{another.class}"
    6752
    68     # signed, unsigned が Symbol として来る事は無くなった
     53    # signed, unsigned が Symbol として来る事は無くなった
    6954    # if another.instance_of? Symbol then
    70     #   # ここで Symbol は :SIGNED, :UNSIGNED のいずれか
     55    #   # ここで Symbol は :SIGNED, :UNSIGNED のいずれか
    7156    #
    72     #   # CIntType か?
     57    #   # CIntType か?
    7358    #   if self.instance_of? CIntType then
    7459    #     self.set_sign another
     
    8469          @bit_size = -5  # long long
    8570        else
    86           # self は int 型、another の bit_size が (int 以外であれば)そちらにする
    87           # mikan 上記以外で 両方 -3 でなければ、本来エラー
     71          # self は int 型、another の bit_size が (int 以外であれば)そちらにする
     72          # mikan 上記以外で 両方 -3 でなければ、本来エラー
    8873          @bit_size = another.get_bit_size
    8974        end
     
    9176
    9277      if another.get_sign then
    93         # another で sign が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
     78        # another で sign が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
    9479        @sign = another.get_sign
    9580      end
    9681
    9782#      if another.get_qualifier then
    98 #        # another で qualifier が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
     83#        # another で qualifier が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
    9984#        @qualifier = another.get_qualifier
    10085#      end
     
    11095      return another.merge self
    11196    elsif self.instance_of?( CDefinedType ) then
    112       # mikan unsigned などとの merge の不正検出
     97      # mikan unsigned などとの merge の不正検出
    11398      if another.is_const? then
    11499        @b_const = true
     
    135120    elsif self.instance_of?( CFloatType ) then
    136121      # mikan long double
    137       #   TECS には long double を表現する手段がない (double80_t を定義すればよいか?)
     122      #   TECS には long double を表現する手段がない (double80_t を定義すればよいか?)
    138123#      cdl_warning( "C1003 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.class, another.class, self.class )
    139124#      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 )
     
    145130  end
    146131
    147   #=== qualifier を設定する
    148   #     å
    149 ƒã® Type クラスでは矛盾チェックしない(TECSの本来の文法では重複指定できないため)
     132  #=== qualifier を設定する
     133  #     元の Type クラスでは矛盾チェックしない(TECSの本来の文法では重複指定できないため)
    150134  def set_qualifier( qual )
    151135
     
    184168
    185169  def initialize( bit_size )
    186     #p super.class   mikan super.class が Symbol だ、なぜ?
     170    #p super.class   mikan super.class が Symbol だ、なぜ?
    187171    super( bit_size )
    188172  end
Note: See TracChangeset for help on using the changeset viewer.