Comment detail

/*コメント*/を取り除く (Nested Flatten)
単純に実装するとこれが最もシンプルでしょうか。
入力文字列が複数行にわたることも考えられるので、getstrは利用していません。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#module
#defcfunc remove_comment str p1
    source = p1
    result = ""
    index = 0
    repeat
        ins = instr( source, index, "/*" )
        if ( ins < 0 ) {
            result += strmid( source, index, strlen( source ) - index)
            break
        }
        result += strmid( source, index, ins )
        index += ins + strlen( "/*" )

        ins = instr( source, index, "*/" )
        if ( ins < 0 ) {
            break
        }
        index += ins + strlen( "*/" )
    loop
    return result
#global
    mes remove_comment( "AAA" )
    mes remove_comment( "AAA/*BBB*/" )
    mes remove_comment( "AAA/*BBB" )
    mes remove_comment( "AAA/*BBB*/CCC" )
    mes remove_comment( "AAA/*BBB/*CCC*/DDD*/EEE" )
    mes remove_comment( "AAA/a//*BB*B**/CCC" )

Index

Feed

Other

Link

Pathtraq

loading...