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