X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fmware%2Fparser.h;h=281db3964c05e51c8a85fe110daf8a670fb3947b;hb=751e0228258e4c9e738fdcbfd43e45cdf873a553;hp=7e837c60f32c48a71a3c86331f8d57a43b29254c;hpb=c0b2348ac2e28dd063bb5f5b571c3eac4d308203;p=bertos.git diff --git a/bertos/mware/parser.h b/bertos/mware/parser.h index 7e837c60..281db396 100644 --- a/bertos/mware/parser.h +++ b/bertos/mware/parser.h @@ -70,8 +70,8 @@ * // Declare a buzzer command * MAKE_CMD(beep, "d", "", * ({ - * buz_beep(args[1].l); - * RC_OK; + * buz_beep(args[1].l); + * RC_OK; * }), 0) * * // initialize the parser @@ -92,7 +92,7 @@ * //Execute command * if(!parser_execute_cmd(templ, args)) * { - * // error + * // error * } * // Now args contain the outputs of the function, you can send it * // back to the caller @@ -118,6 +118,7 @@ #include "cfg/cfg_parser.h" #include +#include /** * Error generated by the commands through the return code. @@ -163,7 +164,11 @@ struct CmdTemplate * * \param NAME Command name to register */ -#define REGISTER_CMD(NAME) REGISTER_FUNCTION(&cmd_ ## NAME ## _template) +#define REGISTER_CMD(NAME) \ + do { \ + if (!REGISTER_FUNCTION(&cmd_ ## NAME ## _template)) \ + ASSERT2(0, "Error in registering command, no space left"); \ + } while (0) /** * Utility macro to create a command template. @@ -219,7 +224,7 @@ MAKE_TEMPLATE(NAME, ARGS, RES, FLAGS) */ void parser_init(void); -void parser_register_cmd(const struct CmdTemplate* cmd); +bool parser_register_cmd(const struct CmdTemplate* cmd); /**