From bc25e14b448edb9f41260a23cf6567e6632db267 Mon Sep 17 00:00:00 2001 From: gramanas Date: Sun, 15 Apr 2018 00:43:08 +0300 Subject: dummy init done action parser conf parser db layer --- src/actionparser.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/actionparser.h (limited to 'src/actionparser.h') diff --git a/src/actionparser.h b/src/actionparser.h new file mode 100644 index 0000000..97d9d52 --- /dev/null +++ b/src/actionparser.h @@ -0,0 +1,70 @@ +/* actionparser.h - Action parser for ck------------------------*- C -*- + * + * This file is part of ck, the config keeper + * + * --------------------------------------------------------------------- + * + * The code here and in actionparser.c is responsible for parsing + * the user's input from the command line and return a struct + * of the user's options ready to be handled by the rest of the + * procedures. + * + * Keeps track of what error occured where and provides + * printParserHelp() and printParserError() functions + * to notify the user + * + * ------------------------------------------------------------------ */ +#ifndef ACTIONPARSER_H +#define ACTIONPARSER_H + +#define CK_ACTIONS \ + X(INIT) \ + X(ADD) \ + X(DEL) \ + X(EDIT) \ + X(LIST) \ + X(SEARCH) \ + X(HELP) + +typedef enum ParseErrors ParseError; +enum ParseErrors { + PERR_NOERR = 0, +#define X(ACTION) \ + PERR_##ACTION##_WRONG, + CK_ACTIONS +#undef X + PERR_UNKONW_ACTION, +}; + +typedef enum CkActions CkAction; +enum CkActions { + CKA_INIT, + CKA_ADD, // program, path, primary, secret + CKA_DEL, // program regexp, if only programm, delete everything related + CKA_EDIT, // program regexp, if only program, edit primary + CKA_LIST, // list_type{tree,paths,programs} + CKA_SEARCH, // search_mode, regexp + CKA_HELP // help +}; + +typedef enum OptParserResults ParseResult; +enum OptParserResults { + OPR_OK, + OPR_ERR, + OPR_HELP +}; + +typedef struct UserOptions UserOpt; +struct UserOptions { + ParseError err; + CkAction action; + int argc; + char *argv[10]; // action's options +}; + + +extern ParseResult parseAction(int argc, char* argv[], UserOpt *opt); +extern void printParserError(); +extern void printParserHelp(); + +#endif // ACTIONPARSER_H -- cgit v1.2.3