- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r270 r321 102 102 comment = false 103 103 104 # euc ã®ã³ã¡ã³ãã utf8 ã¨ãã¦æ±ãã¨ãã³ã¡ã³ãã®çµããã誤ãåé¡ã®å¯¾ç104 # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策 105 105 TECS_LANG::set_kcode_binary 106 106 107 # 800U, 0xffLL ãªã© (æ´æ°ãªãã©ã«ã«å 108 ±éã®ä¿®é£¾å) 107 # 800U, 0xffLL など (整数リテラルに共通の修飾子) 109 108 integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?" 110 109 … … 121 120 if comment 122 121 case line 123 # ã³ã¡ã³ãçµäº122 # コメント終了 124 123 when /\A\*\// 125 124 comment = false … … 129 128 else 130 129 case line 131 # 空ç½ãããªããã»ã¹ãã£ã¬ã¯ãã£ã130 # 空白、プリプロセスディレクティブ 132 131 when /\A\s+/ 133 132 ; 134 # èå¥å133 # 識別子 135 134 when /\A[a-zA-Z_]\w*/ 136 135 word = $& 137 136 @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)] 138 # 16 é²æ°å®æ°137 # 16 進数定数 139 138 when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/ 140 139 @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)] 141 # 8 é²æ°å®æ°140 # 8 進数定数 142 141 when /\A0[0-7]+#{integer_qualifier}/ 143 142 @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)] 144 # æµ®åå°æ°å®æ°143 # 浮動小数定数 145 144 when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/ 146 145 @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)] 147 # æ´æ°å®æ°146 # 整数定数 148 147 when /\A\d+#{integer_qualifier}/ 149 148 # when /\A\d+/ 150 149 @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)] 151 # æå150 # 文字 152 151 when /\A'(?:[^'\\]|\\.)'/ 153 152 @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)] 154 # æåå155 # "#include #include #include \"../systask/logtask.cfg\" æå¾ã® " å¿ã)ã§ç¡éã«ã¼ã153 # 文字列 154 # "#include #include #include \"../systask/logtask.cfg\" 最後の " 忘れ)で無限ループ 156 155 # when /\A"(?:[^"\\]+|\\.)*"/ 157 when /\A"(?:[^"\\]|\\.)*"/ # ããã¯ãã¾ãè¡ãããã156 when /\A"(?:[^"\\]|\\.)*"/ # これはうまく行くようだ 158 157 @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)] 159 # è¡ã³ã¡ã³ã158 # 行コメント 160 159 when /\A\/\/.*$/ 161 # èªã¿é£ã°ãã ã162 # ã³ã¡ã³ãéå§160 # 読み飛ばすだけ 161 # コメント開始 163 162 when /\A\/\*/ 164 163 comment = true … … 189 188 } 190 189 191 # çµäºã®å°190 # 終了の印 192 191 @q << nil 193 192 … … 216 215 end 217 216 218 # TYPE_NAME ãã¼ã¯ã³ã¸ç½®ãæã217 # TYPE_NAME トークンへ置き換え 219 218 if @b_no_type_name == false 220 219 if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then … … 223 222 end 224 223 225 if $debug then # 070107 token ç¡å¹æãããéããªããããã (through å¯¾å¿ -d ã®æã«ä¾å¤çºç)224 if $debug then # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 226 225 locale = @@current_locale[@@generator_nest] 227 226 if token then … … 252 251 @@n_warning = 0 253 252 254 # ãã®ã¡ã½ããã¯æ§æ解æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¨ã©ã¼çºçã¯ä¸é©åï¼253 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切) 255 254 def self.error( msg ) 256 255 @@n_error += 1 … … 264 263 end 265 264 266 # ãã®ã¡ã½ããã¯æ§æ解æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¦ã©ã¼ãã³ã°çºçã¯ä¸é©åï¼265 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切) 267 266 def self.warning( msg ) 268 267 @@n_warning += 1 … … 1676 1675 module_eval(<<'.,.,', 'C_parser.y.rb', 237) 1677 1676 def _reduce_70(val, _values, result) 1678 result = CIntType.new( -3 ) # storage class ã¯ç¡è¦1677 result = CIntType.new( -3 ) # storage class は無視 1679 1678 1680 1679 result … … 1695 1694 module_eval(<<'.,.,', 'C_parser.y.rb', 247) 1696 1695 def _reduce_73(val, _values, result) 1697 result = val[1] # storage class ã¯ç¡è¦1696 result = val[1] # storage class は無視 1698 1697 1699 1698 result -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.