Class: CDLString
Overview
CDL の文字列リテラルを扱うためのクラス
CDL の文字列リテラルそのものではない
Class Method Summary collapse
-
.escape(str) ⇒ Object
エスケープ文字を変換.
-
.remove_dquote(str) ⇒ Object
CDLString#前後の “ を取り除く.
Class Method Details
.escape(str) ⇒ Object
エスケープ文字を変換
1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 |
# File 'lib/tecsgen/core/syntaxobj.rb', line 1179 def self.escape(str) str = str.dup str.gsub!(/\\a/, "\x07") str.gsub!(/\\b/, "\x08") str.gsub!(/\\f/, "\x0c") str.gsub!(/\\n/, "\x0a") str.gsub!(/\\r/, "\x0d") str.gsub!(/\\t/, "\x08") str.gsub!(/\\v/, "\x0b") str.gsub!(/(\\[Xx][0-9A-Fa-f]{1,2})/, '{printf \"\\1\"}') str.gsub!(/(\\[0-7]{1,3})/, '{printf \"\\1\"}') str.gsub!(/\\(.)/, "\\1") # mikan 未定義のエスケープシーケンスを変換してしまう (gcc V3.4.4 では警告が出される) return str end |
.remove_dquote(str) ⇒ Object
CDLString#前後の “ を取り除く
1195 1196 1197 1198 1199 |
# File 'lib/tecsgen/core/syntaxobj.rb', line 1195 def self.remove_dquote(str) s = str.sub(/\A"/, "") s.sub!(/"\z/, "") return s end |