GDB (xrefs)
mi-parse.h
Go to the documentation of this file.
1 /* MI Command Set - MI Command Parser.
2  Copyright (C) 2000-2015 Free Software Foundation, Inc.
3  Contributed by Cygnus Solutions (a Red Hat company).
4 
5  This file is part of GDB.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #ifndef MI_PARSE_H
21 #define MI_PARSE_H
22 
23 #include <sys/time.h>
24 
25 /* MI parser */
26 
27 /* Timestamps for current command and last asynchronous command. */
28 struct mi_timestamp {
29  struct timeval wallclock;
30  struct timeval utime;
31  struct timeval stime;
32 };
33 
35  {
37  };
38 
39 struct mi_parse
40  {
42  char *command;
43  char *token;
44  const struct mi_cmd *cmd;
46  char *args;
47  char **argv;
48  int argc;
49  int all;
50  int thread_group; /* At present, the same as inferior number. */
51  int thread;
52  int frame;
53 
54  /* The language that should be used to evaluate the MI command.
55  Ignored if set to language_unknown. */
57  };
58 
59 /* Attempts to parse CMD returning a ``struct mi_parse''. If CMD is
60  invalid, an exception is thrown. For an MI_COMMAND COMMAND, ARGS
61  and OP are initialized. Un-initialized fields are zero. *TOKEN is
62  set to the token, even if an exception is thrown. It is allocated
63  with xmalloc; it must either be freed with xfree, or assigned to
64  the TOKEN field of the resultant mi_parse object, to be freed by
65  mi_parse_free. */
66 
67 extern struct mi_parse *mi_parse (const char *cmd, char **token);
68 
69 /* Free a command returned by mi_parse_command. */
70 
71 extern void mi_parse_free (struct mi_parse *cmd);
72 
73 /* Parse a string argument into a print_values value. */
74 
75 enum print_values mi_parse_print_values (const char *name);
76 
77 #endif
struct mi_timestamp * cmd_start
Definition: mi-parse.h:45
const struct mi_cmd * cmd
Definition: mi-parse.h:44
char ** argv
Definition: mi-parse.h:47
Definition: c-exp.c:4859
void mi_parse_free(struct mi_parse *cmd)
Definition: mi-parse.c:212
enum mi_command_type op
Definition: mi-parse.h:41
const char *const name
Definition: aarch64-tdep.c:68
char * command
Definition: mi-parse.h:42
int argc
Definition: mi-parse.h:48
struct timeval stime
Definition: mi-parse.h:31
enum print_values mi_parse_print_values(const char *name)
Definition: mi-parse.c:405
struct timeval utime
Definition: mi-parse.h:30
mi_command_type
Definition: mi-parse.h:34
char * token
Definition: mi-parse.h:43
int thread_group
Definition: mi-parse.h:50
struct timeval wallclock
Definition: mi-parse.h:29
int frame
Definition: mi-parse.h:52
language
Definition: defs.h:167
enum language language
Definition: mi-parse.h:56
int thread
Definition: mi-parse.h:51
int all
Definition: mi-parse.h:49
print_values
Definition: mi-cmds.h:25
char * args
Definition: mi-parse.h:46
struct mi_parse * mi_parse(const char *cmd, char **token)
Definition: mi-parse.c:236