コメントを閉じろ | spin on the RITZ

コメントを閉じろ

#include <stdio.h>

int main(void)
{
    int a = 1;
    int b = 2;  /* comment
                
    printf("a + b = %d\n", a+b);

    return 0;
}



上のプログラムのように関数内でコメント(/**/)が閉じられていないとき、エラーを知らせるプログラムを作る

C++形式のコメント(//)は省く(というより、閉じる必要が無いため)



う~ん、案外てこずるぞこれw


・関数はmain関数だけじゃない←関数の先頭を探す必要あり

・printf("/*");のように、「"」内のコメントは無効←「”」で囲まれている部分は省く←実はこれもマズイ

・関数の始まりから終わりまでを監視する必要あり←「{」と「}」を入れていくスタックにするか

・fgetsでいくか、fgetcでいくか←fgetcで諸々の処理を施しつつ1行取り込む方法にするか

・っつーかコンパイラがエラー検出してくれるのに←元も子もない



あー、めんどくさいぞこれw






ソースを読み込む時に必要のないデータは全て省くか・・・・


関数の先頭を取得(関数長を求めるプログラムで作成済み)

「/*」または「*/」が入っている行のみを保存

「”」で囲まれていたら無効化

閉じられているかどうか、処理



こんな感じでいけるかなぁ。


とりあえず、もうすこし考える