1/* Header file for GDB CLI set and show commands implementation. 2 Copyright (C) 2000-2020 Free Software Foundation, Inc. 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17#ifndef CLI_CLI_SETSHOW_H 18#define CLI_CLI_SETSHOW_H 19 20#include <string> 21 22struct cmd_list_element; 23 24/* Parse ARG, an option to a boolean variable. 25 Returns 1 for true, 0 for false, and -1 if invalid. */ 26extern int parse_cli_boolean_value (const char *arg); 27 28/* Same as above, but work with a pointer to pointer. ARG is advanced 29 past a successfully parsed value. */ 30extern int parse_cli_boolean_value (const char **arg); 31 32/* Parse ARG, an option to a var_uinteger or var_zuinteger variable. 33 Either returns the parsed value on success or throws an error. If 34 EXPRESSION is true, *ARG is parsed as an expression; otherwise, it 35 is parsed with get_ulongest. It's not possible to parse the 36 integer as an expression when there may be valid input after the 37 integer, such as when parsing command options. E.g., "print 38 -elements NUMBER -obj --". In such case, parsing as an expression 39 would parse "-obj --" as part of the expression as well. */ 40extern unsigned int parse_cli_var_uinteger (var_types var_type, 41 const char **arg, 42 bool expression); 43 44/* Like parse_cli_var_uinteger, for var_zuinteger_unlimited. */ 45extern int parse_cli_var_zuinteger_unlimited (const char **arg, 46 bool expression); 47 48/* Parse ARG, an option to a var_enum variable. ENUM is a 49 null-terminated array of possible values. Either returns the parsed 50 value on success or throws an error. ARG is advanced past the 51 parsed value. */ 52const char *parse_cli_var_enum (const char **args, 53 const char *const *enums); 54 55extern void do_set_command (const char *arg, int from_tty, 56 struct cmd_list_element *c); 57extern void do_show_command (const char *arg, int from_tty, 58 struct cmd_list_element *c); 59 60/* Get a string version of C's current value. */ 61extern std::string get_setshow_command_value_string (const cmd_list_element *c); 62 63extern void cmd_show_list (struct cmd_list_element *list, int from_tty); 64 65#endif /* CLI_CLI_SETSHOW_H */ 66