1/* Modula 2 language support definitions for GDB, the GNU debugger.
2
3   Copyright (C) 1992-2020 Free Software Foundation, Inc.
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 M2_LANG_H
21#define M2_LANG_H
22
23struct type_print_options;
24struct parser_state;
25
26extern int m2_parse (struct parser_state *); /* Defined in m2-exp.y */
27
28/* Defined in m2-typeprint.c */
29extern void m2_print_type (struct type *, const char *, struct ui_file *, int,
30			   int, const struct type_print_options *);
31
32extern void m2_print_typedef (struct type *, struct symbol *,
33			      struct ui_file *);
34
35extern int m2_is_long_set (struct type *type);
36extern int m2_is_unbounded_array (struct type *type);
37
38/* Implement la_value_print_inner for Modula-2.  */
39
40extern void m2_value_print_inner (struct value *, struct ui_file *, int,
41				  const struct value_print_options *);
42
43extern int get_long_set_bounds (struct type *type, LONGEST *low,
44				LONGEST *high);
45
46/* Modula-2 types */
47
48struct builtin_m2_type
49{
50  struct type *builtin_char;
51  struct type *builtin_int;
52  struct type *builtin_card;
53  struct type *builtin_real;
54  struct type *builtin_bool;
55};
56
57/* Return the Modula-2 type table for the specified architecture.  */
58extern const struct builtin_m2_type *builtin_m2_type (struct gdbarch *gdbarch);
59
60#endif /* M2_LANG_H */
61