local M = {} -- local function header_def_start( name ) local s = "" local name = string.upper( name ) s = s .. "#ifndef __" .. name .. "_H\n" s = s .. "#define __" .. name .. "_H\n" s = s .. "#include \n" s = s .. "void parse_args( int argc, char **argv, cmd_config *cmd );" return s end M.header_def_start = header_def_start -- local function header_def_end( ) local s = "" s = s .. [[ #endif ]] return s end M.header_def_end = header_def_end local function implement_start( headername ) local s = "" s = s .. [[//auto-generated file no meaning to edit it #include "]].. headername .. [[" ]] return s end M.implement_start = implement_start local function implement_end() local s = "" return s end M.implement_end = implement_end local function config_structure( values ) local s = "" return s end M.config_structure = config_structure --make as separete function --just to make it easy to generate and then embed in code -- to not make name coalisions local function getopt_start( sup_args ) local s = "" if sup_args == nil then sup_args = "\"\"" end s = s .. [[ void parse_args( int argc, char **argv, cmd_config *cmd ) { int c; char *cvalue; while ( (c = getopt(argc, argv, "]] .. sup_args .. [[" )) != -1 ) switch ( c ) { ]] return s end M.getopt_start = getopt_start local function getopt_end() local s = "" s = s .. [[ default: printf("Unknown option\n"); } } ]] return s end M.getopt_end = getopt_end -- local function getopt_int( param_config ) local s = "" s = s .. [[ case ']] .. param_config.shortopt .. [[':{ ]] .. param_config.name .. [[ = atoi( optarg ); } ]] return s end M.getopt_int = getopt_int -- local function getopt_string( param_config ) local s = "" s = s .. [[ case ']] .. param_config.shortopt .. [[':{ ]] .. param_config.name .. [[ = atoi( optarg ); } ]] return s end M.getopt_string = getopt_string -- local function getopt_file( param_config ) local s = "" s = s .. [[ case ']] .. param_config.shortopt .. [[':{ ]] .. param_config.name .. [[ = atoi( optarg ); } ]] return s end M.getopt_file = getopt_file print("cconsts module loaded") return M