breflf で \x??\x5c強調No.02129
安久津 さん 01/05/03 11:17
 
breflf で \x??\x5c強調
● 思い出すきっかけ。
 $ cat a.c
 #include <stdio.h>
 main(){
   puts("正規表現。");
 }

 $ gcc a.c -o a.exe
 a.c: In function `main':
 a.c:4: warning: unknown escape sequence: `\' followed by char code 0x8c

● sjis の \ の問題。
 これはもうあらゆるところで見聞している。
 sjis の2バイト目が \x5c である文字は、誤作動の基。
 "正規表\現" で回避。euc で書けというのは無し。(^^;)

● そういえば・・・
 fj の何処かで、でるもんたさんが言ってた。
 エディタが対応しているのなら、
 sjis の2バイト目が \x5c の文字を色づけしておけ。

83,表(?!\\).?

 てな感じ。(特に強調2)

● sjis の2バイト目が \x5c である文字用の強調正規表現生成。

newfile;
  ##i = 0x8100;
  while( ##i <= 0x9f00 ){
    insert "83,";
    insert char(##i | 0x5c);
    insert "(?!\\\\).?\n";
    ##i = ##i + 0x100;
  }
  ##i = 0xe000;
  while( ##i <= 0xfc00 ){
    insert "83,";
    insert char(##i | 0x5c);
    insert "(?!\\\\).?\n";
    ##i = ##i + 0x100;
  }
endmacro;

 まとめると。
83,(?:―|ソ|Ы|\|噂|表)(?!\\).?
...
 でも良い。

● 効果。
 "表示"  は強調される。(表示の"示"も含めて)
 "表\示" は強調されない。

● jre32 オリジナルなら。
83,表[^\\]
とか
83,(―|ソ|Ы|\|噂|表)[^\\]

では。

[ ]
RE:02129 breflf で \x??\x5c強調No.02131
Arimac さん 01/05/03 11:57
 
> $ gcc a.c -o a.exe
> a.c: In function `main':
> a.c:4: warning: unknown escape sequence: `\' followed by char code 0x8c
 
ロケールを設定してないか、使用したgccが日本語文字として
eucにしか対応してないからでは?
sjisのソースをコンパイルしようとするところに無理がある
ような気が・・・(^^;
 
「表\示」は私もだいぶ昔、8ビットコードが通るという
だけで日本語対応、というコンパイラでよくやってました(^^;
(おそらくは日本語対応というのはANKのカナだけだった
 のではないかと・・・)

[ ]