OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [input.h] - Diff between revs 38 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 38 Rev 154
/* Declarations for variables relating to reading the source file.
/* Declarations for variables relating to reading the source file.
   Used by parsers, lexical analyzers, and error message routines.
   Used by parsers, lexical analyzers, and error message routines.
   Copyright (C) 1993, 1997, 1998, 2000, 2003, 2004, 2007
   Copyright (C) 1993, 1997, 1998, 2000, 2003, 2004, 2007
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
 
 
This file is part of GCC.
This file is part of GCC.
 
 
GCC is free software; you can redistribute it and/or modify it under
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
Software Foundation; either version 3, or (at your option) any later
version.
version.
 
 
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.
for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */
<http://www.gnu.org/licenses/>.  */
 
 
#ifndef GCC_INPUT_H
#ifndef GCC_INPUT_H
#define GCC_INPUT_H
#define GCC_INPUT_H
 
 
#include "line-map.h"
#include "line-map.h"
extern struct line_maps line_table;
extern struct line_maps line_table;
 
 
/* The location for declarations in "<built-in>" */
/* The location for declarations in "<built-in>" */
#define BUILTINS_LOCATION ((source_location) 2)
#define BUILTINS_LOCATION ((source_location) 2)
 
 
#ifdef USE_MAPPED_LOCATION
#ifdef USE_MAPPED_LOCATION
 
 
typedef struct
typedef struct
{
{
  /* The name of the source file involved.  */
  /* The name of the source file involved.  */
  const char *file;
  const char *file;
 
 
  /* The line-location in the source file.  */
  /* The line-location in the source file.  */
  int line;
  int line;
 
 
  int column;
  int column;
} expanded_location;
} expanded_location;
 
 
extern expanded_location expand_location (source_location);
extern expanded_location expand_location (source_location);
 
 
#define UNKNOWN_LOCATION ((source_location) 0)
#define UNKNOWN_LOCATION ((source_location) 0)
typedef source_location location_t; /* deprecated typedef */
typedef source_location location_t; /* deprecated typedef */
typedef source_location source_locus; /* to be removed */
typedef source_location source_locus; /* to be removed */
 
 
#else /* ! USE_MAPPED_LOCATION */
#else /* ! USE_MAPPED_LOCATION */
 
 
struct location_s GTY(())
struct location_s GTY(())
{
{
  /* The name of the source file involved.  */
  /* The name of the source file involved.  */
  const char *file;
  const char *file;
 
 
  /* The line-location in the source file.  */
  /* The line-location in the source file.  */
  int line;
  int line;
};
};
 
 
typedef struct location_s expanded_location;
typedef struct location_s expanded_location;
typedef struct location_s location_t;
typedef struct location_s location_t;
typedef location_t *source_locus;
typedef location_t *source_locus;
 
 
#define expand_location(FILELINE) (FILELINE)
#define expand_location(FILELINE) (FILELINE)
extern location_t unknown_location;
extern location_t unknown_location;
#define UNKNOWN_LOCATION unknown_location
#define UNKNOWN_LOCATION unknown_location
 
 
#endif /* ! USE_MAPPED_LOCATION */
#endif /* ! USE_MAPPED_LOCATION */
 
 
struct file_stack
struct file_stack
{
{
  struct file_stack *next;
  struct file_stack *next;
  location_t location;
  location_t location;
};
};
 
 
/* Top-level source file.  */
/* Top-level source file.  */
extern const char *main_input_filename;
extern const char *main_input_filename;
 
 
extern location_t input_location;
extern location_t input_location;
#ifdef USE_MAPPED_LOCATION
#ifdef USE_MAPPED_LOCATION
extern void push_srcloc (location_t);
extern void push_srcloc (location_t);
#else /* ! USE_MAPPED_LOCATION */
#else /* ! USE_MAPPED_LOCATION */
extern void push_srcloc (const char *name, int line);
extern void push_srcloc (const char *name, int line);
#endif /* ! USE_MAPPED_LOCATION */
#endif /* ! USE_MAPPED_LOCATION */
extern void pop_srcloc (void);
extern void pop_srcloc (void);
extern void restore_input_file_stack (int);
extern void restore_input_file_stack (int);
 
 
#define LOCATION_FILE(LOC) ((expand_location (LOC)).file)
#define LOCATION_FILE(LOC) ((expand_location (LOC)).file)
#define LOCATION_LINE(LOC) ((expand_location (LOC)).line)
#define LOCATION_LINE(LOC) ((expand_location (LOC)).line)
 
 
#define input_line LOCATION_LINE(input_location)
#define input_line LOCATION_LINE(input_location)
#define input_filename LOCATION_FILE(input_location)
#define input_filename LOCATION_FILE(input_location)
 
 
/* Stack of currently pending input files.
/* Stack of currently pending input files.
   The line member is not accurate for the innermost file on the stack.  */
   The line member is not accurate for the innermost file on the stack.  */
extern struct file_stack *input_file_stack;
extern struct file_stack *input_file_stack;
 
 
/* Incremented on each change to input_file_stack.  */
/* Incremented on each change to input_file_stack.  */
extern int input_file_stack_tick;
extern int input_file_stack_tick;
 
 
/* The number of bits available for input_file_stack_tick.  */
/* The number of bits available for input_file_stack_tick.  */
#define INPUT_FILE_STACK_BITS   31
#define INPUT_FILE_STACK_BITS   31
 
 
#endif
#endif
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.