[スレッド全体]

2015/1/6 (火) 02:17:19 もか  
INCM1.23a
[2231] Re7: ダブルクォーテーション文字列の判定が変
>コードを読まないと何やってんのかわからないのでは、
>読む側は時間がかかるばっかりで嫌になっちゃうよ。

どちらかというと変な日本語読んで混乱しているより、
さくっとコード差分みるのが早いとおもうんだけど、違うかな。
特にこのパッチは簡単な部類の処理なのでC++アレルギーとかCOBOLしかわからんとかでなければ。
最近はかなりの量をコミットしてるので、全部見るのは相当しんどいと思うけど。

>正規表現とか擬似コードに頼らずに日本語で書いて欲しいな。
それBNFで定義してるHTML5とかRFCとかディスってるの?
俺に日本語期待しても無駄だぞ。

>\b(u8|u|U|L|)R"[^(]*\(
>^|[!"#$%&'()=@{};:<>?,.*/\-\+\[\]\\s]

挑戦してみた。
!"#$%&'()=@{};:<>?,.*/-+[] 半角スペース および タブ文字 のいずれかの文字
または 行頭だった場合 かつ、
それに「u8R"」「uR"」「ULR"」「LR"」「R"」のいずれかの文字列が続きかつ、
その後ろに0文字以上「(」以外の任意の文字列が続きかつ、
さらにその後ろで改行までに「(」が現れた場合に、
Raw String とみなします。
いままでは、
「R"」の後で0文字以上の任意の文字列の後に、「(」が現れた場合に、
Raw String とみなしていました。

>(サクラエディタのコードはうんこなんだから、できるだけヒントは欲しい。今北産業で。)
(否定はしないが)汚い言葉を書く以上は、ぜひSuzzさんのウルトラスーパーすばらしいコードをですね、
と思いちょっと#if 0のコードを読ませてもらいました。よければポートしたいですし。
「#if 0」「#if 1」でタブだった場合とか2文字以上スペースがある場合は考慮されてない。
#とif, else, endifの間にスペースがある場合は考慮しなくていいのかな。
wmemicmpになってるけど、「#IF 0」とかも認識しちゃうけどいいのかな(プリプロセッサの仕様は詳しく知らない)。
あとはもし、完璧を目指すなら、文字列中のコメントらしい文字は文字列になるはずなので、その考慮が必要かも。
一か所 $endifになってる。
CColor_Comment_Cpp_If1::Match_CommentTo とかのwmemicmpがバッファオーバーランしてるところがある
ちゃんと見てないけど、colorStrategyStateの取り回しは良さそう。
実行は試していない15分斜め読みクオリティーなので、間違ってる所あるかも。
ちなみに「#if 0」をコメント開始「#e」をコメント終了にしてしのいでます。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.000][st:0.000]