Blame cmd.h

Packit Service f629e6
/*
Packit Service f629e6
 * cmd.h - definitions for command parser
Packit Service f629e6
 */
Packit Service f629e6
Packit Service f629e6
/*
Packit Service f629e6
 * Copyright (C) 2004, 2010, 2011, 2013, 2014, 2017,
Packit Service f629e6
 * the Free Software Foundation, Inc.
Packit Service f629e6
 *
Packit Service f629e6
 * This file is part of GAWK, the GNU implementation of the
Packit Service f629e6
 * AWK Programming Language.
Packit Service f629e6
 *
Packit Service f629e6
 * GAWK is free software; you can redistribute it and/or modify
Packit Service f629e6
 * it under the terms of the GNU General Public License as published by
Packit Service f629e6
 * the Free Software Foundation; either version 3 of the License, or
Packit Service f629e6
 * (at your option) any later version.
Packit Service f629e6
 *
Packit Service f629e6
 * GAWK is distributed in the hope that it will be useful,
Packit Service f629e6
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service f629e6
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service f629e6
 * GNU General Public License for more details.
Packit Service f629e6
 *
Packit Service f629e6
 * You should have received a copy of the GNU General Public License
Packit Service f629e6
 * along with this program; if not, write to the Free Software
Packit Service f629e6
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
Packit Service f629e6
 */
Packit Service f629e6
Packit Service f629e6
#ifdef HAVE_LIBREADLINE
Packit Service f629e6
#include <readline/readline.h>
Packit Service f629e6
#include <readline/history.h>
Packit Service f629e6
extern char **command_completion(const char *text, int start, int end);
Packit Service f629e6
extern void initialize_pager(FILE *fp); /* debug.c */
Packit Service f629e6
extern NODE *get_function(void);
Packit Service f629e6
#else
Packit Service f629e6
#define initialize_pager(x)		/* nothing */
Packit Service f629e6
#define add_history(x)		/* nothing */
Packit Service f629e6
#endif
Packit Service f629e6
Packit Service f629e6
extern int gprintf(FILE *fp, const char *format, ...);
Packit Service f629e6
extern jmp_buf pager_quit_tag;
Packit Service f629e6
extern int pager_quit_tag_valid;
Packit Service f629e6
Packit Service f629e6
extern bool output_is_tty;
Packit Service f629e6
extern int input_fd;
Packit Service f629e6
extern bool input_from_tty;
Packit Service f629e6
extern FILE *out_fp;
Packit Service f629e6
extern char *dbg_prompt;
Packit Service f629e6
extern char *commands_prompt;
Packit Service f629e6
extern char *eval_prompt;
Packit Service f629e6
extern char *dgawk_prompt;
Packit Service f629e6
Packit Service f629e6
enum argtype {
Packit Service f629e6
	D_illegal,
Packit Service f629e6
Packit Service f629e6
	/* commands */
Packit Service f629e6
	D_backtrace,
Packit Service f629e6
	D_break,
Packit Service f629e6
	D_clear,
Packit Service f629e6
	D_commands,
Packit Service f629e6
	D_condition,
Packit Service f629e6
	D_continue,
Packit Service f629e6
	D_delete,
Packit Service f629e6
	D_disable,
Packit Service f629e6
	D_display,
Packit Service f629e6
	D_down,
Packit Service f629e6
	D_dump,
Packit Service f629e6
	D_enable,
Packit Service f629e6
	D_end,
Packit Service f629e6
	D_eval,
Packit Service f629e6
	D_finish,
Packit Service f629e6
	D_frame,
Packit Service f629e6
	D_help,
Packit Service f629e6
	D_ignore,
Packit Service f629e6
	D_info,
Packit Service f629e6
	D_list,
Packit Service f629e6
	D_next,
Packit Service f629e6
	D_nexti,
Packit Service f629e6
	D_option,
Packit Service f629e6
	D_print,
Packit Service f629e6
	D_printf,
Packit Service f629e6
	D_quit,
Packit Service f629e6
	D_return,
Packit Service f629e6
	D_run,
Packit Service f629e6
	D_save,
Packit Service f629e6
	D_set,
Packit Service f629e6
	D_silent,
Packit Service f629e6
	D_source,
Packit Service f629e6
	D_step,
Packit Service f629e6
	D_stepi,
Packit Service f629e6
	D_tbreak,
Packit Service f629e6
	D_trace,
Packit Service f629e6
	D_undisplay,
Packit Service f629e6
	D_until,
Packit Service f629e6
	D_unwatch,
Packit Service f629e6
	D_up,
Packit Service f629e6
	D_watch,
Packit Service f629e6
Packit Service f629e6
	/* arguments */
Packit Service f629e6
	D_argument,
Packit Service f629e6
	D_int,
Packit Service f629e6
	D_string,
Packit Service f629e6
	D_variable,
Packit Service f629e6
	D_node,
Packit Service f629e6
	D_field,
Packit Service f629e6
	D_array,
Packit Service f629e6
	D_subscript,
Packit Service f629e6
	D_func,
Packit Service f629e6
	D_range
Packit Service f629e6
};
Packit Service f629e6
Packit Service f629e6
/* non-number arguments to commands */
Packit Service f629e6
Packit Service f629e6
enum nametypeval {
Packit Service f629e6
	A_NONE = 0,
Packit Service f629e6
	A_ARGS,
Packit Service f629e6
	A_BREAK,
Packit Service f629e6
	A_DEL,
Packit Service f629e6
	A_DISPLAY,
Packit Service f629e6
	A_FRAME,
Packit Service f629e6
	A_FUNCTIONS,
Packit Service f629e6
	A_LOCALS,
Packit Service f629e6
	A_ONCE,
Packit Service f629e6
	A_SOURCE,
Packit Service f629e6
	A_SOURCES,
Packit Service f629e6
	A_TRACE_ON,
Packit Service f629e6
	A_TRACE_OFF,
Packit Service f629e6
	A_VARIABLES,
Packit Service f629e6
	A_WATCH
Packit Service f629e6
};
Packit Service f629e6
Packit Service f629e6
typedef struct cmd_argument {
Packit Service f629e6
	struct cmd_argument *next;
Packit Service f629e6
	enum argtype type;
Packit Service f629e6
	union {
Packit Service f629e6
		long lval;
Packit Service f629e6
		char *sval;
Packit Service f629e6
		NODE *nodeval;
Packit Service f629e6
	} value;
Packit Service f629e6
Packit Service f629e6
#define a_int       value.lval	/* type = D_int or D_range */
Packit Service f629e6
#define a_argument  value.lval	/* type = D_argument */
Packit Service f629e6
#define a_string  value.sval	/* type = D_string, D_array, D_subscript or D_variable */
Packit Service f629e6
#define a_node    value.nodeval /* type = D_node, D_field or D_func */
Packit Service f629e6
Packit Service f629e6
	int a_count;		/* subscript count for D_subscript and D_array */
Packit Service f629e6
} CMDARG;
Packit Service f629e6
Packit Service f629e6
typedef int (*Func_cmd)(CMDARG *, int);
Packit Service f629e6
Packit Service f629e6
struct cmdtoken {
Packit Service f629e6
	const char *name;
Packit Service f629e6
	char *abbrvn;	/* abbreviation */
Packit Service f629e6
	enum argtype type;
Packit Service f629e6
	int class;
Packit Service f629e6
	Func_cmd cf_ptr;
Packit Service f629e6
	const char *help_txt;
Packit Service f629e6
};
Packit Service f629e6
Packit Service f629e6
/* command.c */
Packit Service f629e6
extern void free_cmdarg(CMDARG *list);
Packit Service f629e6
extern Func_cmd get_command(int ctype);
Packit Service f629e6
extern const char *get_command_name(int ctype);
Packit Service f629e6
Packit Service f629e6
/* debug.c */
Packit Service f629e6
extern void d_error(const char *mesg, ...);
Packit Service f629e6
Packit Service f629e6
/* command.c */
Packit Service f629e6
extern int find_option(char *name);
Packit Service f629e6
extern void option_help(void);
Packit Service f629e6
extern char *(*read_a_line)(const char *prompt);
Packit Service f629e6
extern char *read_commands_string(const char *prompt);
Packit Service f629e6
extern int in_cmd_src(const char *);
Packit Service f629e6
extern int get_eof_status(void);
Packit Service f629e6
extern void push_cmd_src(int fd, bool istty, char * (*readfunc)(const char *),
Packit Service f629e6
		int (*closefunc)(int), int cmd, int eofstatus);
Packit Service f629e6
extern int pop_cmd_src(void);
Packit Service f629e6
extern int has_break_or_watch_point(int *pnum, bool any);
Packit Service f629e6
extern int do_list(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_info(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_print_var(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_backtrace(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_breakpoint(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_tmp_breakpoint(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_delete_breakpoint(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_enable_breakpoint(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_disable_breakpoint(CMDARG *arg, int cmd) ;
Packit Service f629e6
extern int do_ignore_breakpoint(CMDARG *arg, int cmd) ;
Packit Service f629e6
extern int do_run(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_quit(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_continue(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_step(CMDARG *arg, int cmd) ;
Packit Service f629e6
extern int do_stepi(CMDARG *arg, int cmd) ;
Packit Service f629e6
extern int do_next(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_nexti(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_clear(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_finish(CMDARG *arg, int cmd) ;
Packit Service f629e6
extern int do_help(CMDARG *arg, int cmd) ;
Packit Service f629e6
extern int do_up(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_down(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_frame(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_until(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_set_var(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_return(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_display(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_undisplay(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_watch(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_unwatch(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_dump_instructions(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_trace_instruction(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_option(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_commands(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_print_f(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_source(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_save(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_eval(CMDARG *arg, int cmd);
Packit Service f629e6
extern int do_condition(CMDARG *arg, int cmd);