]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/command.h
Merge pull request #105 from opensourcerouting/cli_merge_step_prep
[mirror_frr.git] / lib / command.h
index 1e490cc4cdb2511c47b7c7a4b01aa93dcbb8d6c3..ff1b1a0e835d3a7d6b32b926f202bec022912622 100644 (file)
@@ -177,11 +177,12 @@ enum cmd_token_type
   IPV6_PREFIX_TKN,  // IPV6 network prefixes
 
   /* plumbing types */
-  SELECTOR_TKN,     // marks beginning of selector
-  OPTION_TKN,       // marks beginning of option
-  NUL_TKN,          // dummy token
+  FORK_TKN,         // marks subgraph beginning
+  JOIN_TKN,         // marks subgraph end
   START_TKN,        // first token in line
   END_TKN,          // last token in line
+
+  SPECIAL_TKN = FORK_TKN,
 };
 
 /* Command attributes */
@@ -203,6 +204,8 @@ struct cmd_token
   char *desc;                   // token description
   long long min, max;           // for ranges
   char *arg;                    // user input that matches this token
+
+  struct graph_node *forkjoin;  // paired FORK/JOIN for JOIN/FORK
 };
 
 /* Structure of command element. */
@@ -420,12 +423,16 @@ extern void cmd_terminate (void);
 extern void cmd_exit (struct vty *vty);
 extern int cmd_list_cmds (struct vty *vty, int do_permute);
 
+/* NOT safe for general use; call this only if DEV_BUILD! */
+extern void grammar_sandbox_init (void);
+
 /* memory management for cmd_token */
 extern struct cmd_token *new_cmd_token (enum cmd_token_type, u_char attr,
                                         const char *text, const char *desc);
 extern void del_cmd_token (struct cmd_token *);
 extern struct cmd_token *copy_cmd_token (struct cmd_token *);
 
+extern vector completions_to_vec (struct list *completions);
 extern void command_parse_format (struct graph *graph, struct cmd_element *cmd);
 
 /* Export typical functions. */