input.h 1.49 KB
Newer Older
1 2
/* Declarations for variables relating to reading the source file.
   Used by parsers, lexical analyzers, and error message routines.
Jeff Law committed
3
   Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

This file is part of GNU CC.

GNU CC 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 Software Foundation; either version 2, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
Richard Kenner committed
19 20
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */
21

Richard Stallman committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
/* Source file current line is coming from.  */
extern char *input_filename;

/* Top-level source file.  */
extern char *main_input_filename;

/* Line number in current source file.  */
extern int lineno;

/* Stream for reading from input file.  */
extern FILE *finput;

struct file_stack
  {
    char *name;
    struct file_stack *next;
    int line;
Jeff Law committed
39
    int indent_level;
Richard Stallman committed
40 41 42 43 44 45 46 47
  };

/* Stack of currently pending input files.
   The line member is not accurate for the innermost file on the stack.  */
extern struct file_stack *input_file_stack;

/* Incremented on each change to input_file_stack.  */
extern int input_file_stack_tick;