From 961e3c8428be81ae74f7e8ee293b16808a74d45e Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Thu, 18 Jun 2020 17:04:18 -0400 Subject: vlib: add recursive macro expander to debug cli All of the pieces have been sitting around for years. Added several debug CLI commands: "define " "undefine " "show macro [noeval]" "echo " Macros may refer to other macros. To defer evaluation: "define foo \$(bar)" or some such. The macro evaluator is not smart about "define foo \$(foo)" or more complicated circular definitions, so don't do that. Environment variables are available, simply use $ The macro expander has a table of (overrideable) builtin names, which are evaluated by calling functions. Simple example: echo $USER define ip1 192.168.1.1/24 define ip2 192.168.2.1/24 loop create loop create set int ip address loop0 $ip1 set int ip address loop1 $ip2 show int addr show macro undefine ip1 undefine ip2 Type: feature Signed-off-by: Dave Barach Change-Id: I08a800647bac573d8ae3cfd75c40061d41c5f976 --- src/vppinfra/test_macros.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/vppinfra/test_macros.c') diff --git a/src/vppinfra/test_macros.c b/src/vppinfra/test_macros.c index cf6172ab1f1..f130604d691 100644 --- a/src/vppinfra/test_macros.c +++ b/src/vppinfra/test_macros.c @@ -16,12 +16,12 @@ #include -macro_main_t macro_main; +clib_macro_main_t clib_macro_main; int test_macros_main (unformat_input_t * input) { - macro_main_t *mm = ¯o_main; + clib_macro_main_t *mm = &clib_macro_main; clib_macro_init (mm); -- cgit 1.2.3-korg