X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/186fb2b18b89a0280b8cc4b5ea8f7a59d3bd0853..7766e753fefb962209f1898a234053f8c7bbe59d:/projects/sgconf/api_action.cpp diff --git a/projects/sgconf/api_action.cpp b/projects/sgconf/api_action.cpp new file mode 100644 index 00000000..1ff0e596 --- /dev/null +++ b/projects/sgconf/api_action.cpp @@ -0,0 +1,21 @@ +#include "api_action.h" + +#include "parser_state.h" + +SGCONF::PARSER_STATE SGCONF::API_ACTION::Parse(int argc, char ** argv) +{ +PARSER_STATE state(false, argc, argv); +if (!m_argument.empty()) + { + if (argc == 0 || + argv == NULL || + *argv == NULL) + throw ERROR("Missing argument."); + m_argument = *argv; + --state.argc; + ++state.argv; + } +m_suboptions.Parse(state.argc, state.argv); +m_commands.Add(m_funPtr, m_argument, m_params); +return state; +}