Home | History | Annotate | Download | only in src
      1 /* Named symbol references for Bison
      2 
      3    Copyright (C) 2009-2012 Free Software Foundation, Inc.
      4 
      5    This file is part of Bison, the GNU Compiler Compiler.
      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 NAMED_REF_H_
     21 # define NAMED_REF_H_
     22 
     23 #include "location.h"
     24 #include "uniqstr.h"
     25 
     26 /* Named reference object. Keeps information about
     27    a symbolic name of a symbol in a rule. */
     28 typedef struct named_ref
     29 {
     30   /* Symbolic named given by user. */
     31   uniqstr id;
     32 
     33   /* Location of the symbolic name. Not including brackets. */
     34   location loc;
     35 } named_ref;
     36 
     37 /* Allocate a named reference object. */
     38 named_ref *named_ref_new (uniqstr id, location loc);
     39 
     40 /* Allocate and return a copy.  */
     41 named_ref *named_ref_copy (const named_ref *r);
     42 
     43 /* Free a named reference object. */
     44 void named_ref_free (named_ref *r);
     45 
     46 #endif /* !NAMED_REF_H_ */
     47