~ashn/cdoc

ref: 9f0253ad907e0eba2e090239182f211e446d3703 cdoc/README.md -rw-r--r-- 1.4 KiB
9f0253adashn Update README 4 months ago

#CDOC

A minimalist documentation generator for the C programming language. The cdoc application transforms one or more C source files into plain HTML. An example of cdoc documentation is as follows:

//! @file readme-example.h
//!     A small file to show off cdoc

#include <stddef.h> /* size_t */
#include <stdint.h> /* uint8_t */
#include <string.h> /* memset */

//! @macro BUFFER_MAX_LENGTH
#define BUFFER_MAX_LENGTH 255

//! @struct buffer
//!     A buffer for holding some data.
//!     This is just an example so don't think about it too hard.
struct buffer
{
    //! @member data
    //!     Contents of this buffer.
    char data[BUFFER_MAX_LENGTH];
    //! @member length
    //!     Length of the buffer in bytes.
    uint8_t length;
};

//! @function clear_buffer
//!     Zero out the contents of this buffer and set its length to zero.
//! @return
//!     The previous length of the buffer.
static inline uint8_t
clear_buffer(struct buffer* buf)
{
    uint8_t const prev = buf->length;
    memset(buf->data, 0x00, BUFFER_MAX_LENGTH);
    buf->length = 0;
    return prev;
}

#Building

The cdoc application can be built using a POSIX c99 compiler:

$ make cdoc
$ ./cdoc --help
Usage: cdoc [OPTION]... [--] [FILE]...

With no FILE, or when FILE is -, read standard input.

Options:
  --help      Display usage information and exit.
  --version   Display version information and exit.