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/C_parser.tab.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r388 r389  
    107107#               b_asm   = false
    108108
    109                 # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
     109                # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
    110110                TECS_LANG::set_kcode_binary
    111111
    112                 # 800U, 0xffLL など (整数リテラルにå
    113 ±é€šã®ä¿®é£¾å­)
     112                # 800U, 0xffLL など (整数リテラルに共通の修飾子)
    114113                integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
    115114
     
    126125                                if comment
    127126                                        case line
    128                                         # コメント終了
     127                                        # コメント終了
    129128                                        when /\A\*\//
    130129                                                comment = false
     
    134133                                else
    135134                                        case line
    136                                         # 空白、プリプロセスディレクティブ
     135                                        # 空白、プリプロセスディレクティブ
    137136                                        when /\A\s+/
    138137                                                ;
    139                                         # 識別子
     138                                        # 識別子
    140139                                        when /\A[a-zA-Z_]\w*/
    141140                                                word = $&
    142141                                                @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
    143                                         # 16 進数定数
     142                                        # 16 進数定数
    144143                                        when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
    145144                                                @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
    146                                         # 8 進数定数
     145                                        # 8 進数定数
    147146                                        when /\A0[0-7]+#{integer_qualifier}/
    148147                                                @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
    149                                         # 浮動小数定数
     148                                        # 浮動小数定数
    150149                                        when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
    151150                                                @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
    152                                         # 整数定数
     151                                        # 整数定数
    153152                                        when /\A\d+#{integer_qualifier}/
    154153                                        # when /\A\d+/
    155154                                                @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
    156                                         # 文字
     155                                        # 文字
    157156                                        when /\A'(?:[^'\\]|\\.)'/
    158157                                                @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
    159                                         # 文字列
    160 #                                       "#include  #include #include \"../systask/logtask.cfg\"       æœ€å¾Œã® " 忘れ)で無限ループ
     158                                        # 文字列
     159#                                       "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
    161160#                                       when /\A"(?:[^"\\]+|\\.)*"/
    162                                         when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
     161                                        when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
    163162                                                @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
    164                                         # 行コメント
     163                                        # 行コメント
    165164                                        when /\A\/\/.*$/
    166                                                 # 読み飛ばすだけ
    167                                         # コメント開始
     165                                                # 読み飛ばすだけ
     166                                        # コメント開始
    168167                                        when /\A\/\*/
    169168                                                comment = true
     
    196195        }
    197196
    198         # 終了の印
     197        # 終了の印
    199198        @q << nil
    200199
     
    223222                        end
    224223
    225                         # TYPE_NAME トークンへ置き換え
     224                        # TYPE_NAME トークンへ置き換え
    226225                        if @b_no_type_name == false
    227226                                if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
     
    232231                        end
    233232
    234                         if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
     233                        if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
    235234                                locale = @@current_locale[@@generator_nest]
    236235                                if token then
     
    262261        @@n_info = 0
    263262
    264         # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
     263        # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
    265264        def self.error( msg )
    266265                @@n_error += 1
     
    274273        end
    275274
    276         # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
     275        # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
    277276        def self.warning( msg )
    278277                @@n_warning += 1
     
    281280        end
    282281
    283         # このメソッドは構文解析、意味解析からのみ呼出し可
     282        # このメソッドは構文解析、意味解析からのみ呼出し可
    284283        def self.info( msg )
    285284                @@n_info += 1
     
    17961795module_eval(<<'.,.,', 'C_parser.y.rb', 228)
    17971796  def _reduce_83(val, _values, result)
    1798                         result = Expression.new( val[2] )    # ',' の後ろを採用
     1797                        result = Expression.new( val[2] )    # ',' の後ろを採用
    17991798               
    18001799    result
     
    18221821module_eval(<<'.,.,', 'C_parser.y.rb', 261)
    18231822  def _reduce_86(val, _values, result)
    1824                         result = CIntType.new( -3 )    # storage class は無視
     1823                        result = CIntType.new( -3 )    # storage class は無視
    18251824               
    18261825    result
     
    18301829module_eval(<<'.,.,', 'C_parser.y.rb', 265)
    18311830  def _reduce_87(val, _values, result)
    1832                         result = val[1]                # storage class は無視
     1831                        result = val[1]                # storage class は無視
    18331832               
    18341833    result
     
    25872586  def _reduce_268(val, _values, result)
    25882587                while true
    2589                         # ';' が表れるまで、トークンを読み飛ばす。
    2590                         # gcc の構文拡張に対応すべきだが、単純な実è£
    2591 ã¨ã—て、';' まで読み飛ばす。
    2592                         # トークン単位で読み飛ばしているので、文字列やコメントå†
    2593 ã® ';' は対象にならない。
     2588                        # ';' が表れるまで、トークンを読み飛ばす。
     2589                        # gcc の構文拡張に対応すべきだが、単純な実装として、';' まで読み飛ばす。
     2590                        # トークン単位で読み飛ばしているので、文字列やコメント内の ';' は対象にならない。
    25942591                        token = next_token
    25952592                        if token[1].val == ";"
Note: See TracChangeset for help on using the changeset viewer.