CCMT(3)                    Library Functions Manual                    CCMT(3)



NAME
       ccmt - grep comments from c-lang srccode

SYNOPSIS
       #include "ccmt.h"

       char* ccmt(void* src [, const char* mode] );
       char* ccmt_v(void* src [, const char* mode] );
       //needs free rtnptr




TL_DR
       #include "ccmt.h"

       int main(int argc, char** argv) {
         const char* src = "//1.cmt\n 2."//nocmt"\n /*3.cmt\n *" "/\n";
         char* p = ccmt(src);
         puts(p); free(p);      //: 1. (2.removed) 3.

         char* p = ccmt_v(src); //: grep -v
         puts(p); free(p);      //: (1.) 2. (3.)

         p = ccmt(stdin, "fp"); //: ag1 == filepointer
         free(p);
         p = ccmt("mysrc.c", "file");     //: ag1 == filename
         free(p);
         return 0;
       }
       //~$ gcc src.c
       //~$ printf '//1\n 2\n' | ./a.out


DESCRIPTION
       ccmt  greps c-lang cmt(// or /*..+/) using posix-ERE/BRE regex from src
       and rtn malloc()ed ptr. param is:


       src    src str/fp/filename pointer. treat as strptr if ag2 isnt.

       mode   optional. set ag1 pointer type with string.
              "p"/"str"/noset >> src is literal string, cosnt char*
              "fp" >> src is opened file pointer, FILE*
              "file" >> src is filename. do open-read-close sequence.


       ccmt_v() gets cmt removed string as 'grep -v XXX'.
       ccmt assumes the src doesnt holds trigraphs ??X  and  long-line  syntax
       \(\n).

RETURN_VALUE
       malloc()ed pointer. rtn NULL + set errno if error.

CONFORMING_TO
       posix-2001+

COPYRIGHT
       Copyright 2022 momi-g, GPLv3+

VERSION
       2022-03-16 v1.0.0 (2022-03-16 v1.0.0)

SEE_ALSO
       regex(3)
       https://gcc.gnu.org/onlinedocs/gcc-3.2.3/cpp/Initial-processing.html
       https://math.stackexchange.com/ques‐
       tions/2482191/how-do-you-draw-a-dfa-from-a-regular-expression
       https://cs.stackexchange.com/questions/311/deriving-the-regular-expres‐
       sion-for-c-style-comments
       https://cyberzhg.github.io/toolbox/nfa2dfa?regex=KChiKikoYWIpKGIqKSkq




                                                                       CCMT(3)
