1 /* labels.h - declarations for labels.c */
2 #ifndef LABELS_H
3 #define LABELS_H
4 /* Copyright 2010-2021 Free Software Foundation, Inc.
5 
6    This program is free software: you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation, either version 3 of the License, or
9    (at your option) any later version.
10 
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
18 
19 #include "tree_types.h"
20 
21 /* Information about a possible target of a cross-reference, often a node. */
22 typedef struct {
23     /* Pointer to the element for the command defining this label, usually a
24        node element.  FIXME: I'm not sure if we actualy need to get to the
25        target - much of the use of the labels_information is to check that
26        references are to real places. */
27     ELEMENT *target;
28 } LABEL;
29 
30 extern LABEL *labels_list;
31 extern size_t labels_number;
32 void register_label (ELEMENT *current, ELEMENT *label);
33 void reset_labels (void);
34 
35 
36 extern ELEMENT **internal_xref_list;
37 extern size_t internal_xref_number;
38 extern size_t internal_xref_space;
39 
40 void remember_internal_xref (ELEMENT *element);
41 void reset_internal_xrefs (void);
42 #endif
43