Concurrent Clean + CodeGeneratorの日本語化
C言語の型キャストが全然分からない・・・。てか、getcの動きが分からない。ドキュメントには、getcはunsigned charで読み込んで、intに変換して返すと書いてあったのに。あ、Microsoftには、読み取った文字を int 型で返すと書いてある。gccでも、-mno-cygwinだから、動作が違うのか?
とりあえず、こんな感じに書いてみました。とりあえず、動くようです。
static int parse_string_character (char *c_p) { if (last_char==EOF) return 0; if (last_char < 0) { last_char = 0x80 | (0x7F & last_char); } if(is_2nd_byte_of_sjis){ // japanese Shift_JIS character is_2nd_byte_of_sjis = 0; *c_p = last_char; last_char = getc(abc_file); } else if(((0x81 <= last_char) && (last_char <= 0x9F)) || ((0xE0 <= last_char) && (last_char <= 0xFF))){ // japanese Shift_JIS character is_2nd_byte_of_sjis = 1; *c_p = last_char; last_char = getc(abc_file);