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

Subversion Repositories openrisc

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

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

Rev 154 Rev 816
/* scan.h - Utility declarations for scan-decls and fix-header programs.
/* scan.h - Utility declarations for scan-decls and fix-header programs.
   Copyright (C) 1993, 1998, 1999, 2003, 2004, 2007 Free Software Foundation, Inc.
   Copyright (C) 1993, 1998, 1999, 2003, 2004, 2007 Free Software Foundation, Inc.
 
 
   This program is free software; you can redistribute it and/or modify it
   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 3, or (at your option) any
   Free Software Foundation; either version 3, or (at your option) any
   later version.
   later version.
 
 
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License 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 this program; see the file COPYING3.  If not see
   along with this program; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */
   <http://www.gnu.org/licenses/>.  */
 
 
#include <stdio.h>
#include <stdio.h>
 
 
typedef struct sstring
typedef struct sstring
{
{
  char *base;
  char *base;
  char *ptr;
  char *ptr;
  char *limit;
  char *limit;
} sstring;
} sstring;
 
 
#define INIT_SSTRING(STR) ((STR)->base = 0, (STR)->ptr = 0, (STR)->limit = 0)
#define INIT_SSTRING(STR) ((STR)->base = 0, (STR)->ptr = 0, (STR)->limit = 0)
#define FREE_SSTRING(STR) do { if ((STR)->base) free (STR)->base; } while(0)
#define FREE_SSTRING(STR) do { if ((STR)->base) free (STR)->base; } while(0)
#define SSTRING_PUT(STR, C) do {\
#define SSTRING_PUT(STR, C) do {\
  if ((STR)->limit <= (STR)->ptr) make_sstring_space (STR, 1); \
  if ((STR)->limit <= (STR)->ptr) make_sstring_space (STR, 1); \
  *(STR)->ptr++ = (C); } while (0)
  *(STR)->ptr++ = (C); } while (0)
#define SSTRING_LENGTH(STR) ((STR)->ptr - (STR)->base)
#define SSTRING_LENGTH(STR) ((STR)->ptr - (STR)->base)
#define MAKE_SSTRING_SPACE(STR, COUNT) \
#define MAKE_SSTRING_SPACE(STR, COUNT) \
  if ((STR)->limit - (STR)->ptr < (COUNT)) make_sstring_space (STR, COUNT);
  if ((STR)->limit - (STR)->ptr < (COUNT)) make_sstring_space (STR, COUNT);
 
 
struct partial_proto;
struct partial_proto;
struct fn_decl
struct fn_decl
{
{
  const char *fname;
  const char *fname;
  const char *rtype;
  const char *rtype;
  const char *params;
  const char *params;
  struct partial_proto *partial;
  struct partial_proto *partial;
};
};
 
 
struct cpp_token;
struct cpp_token;
 
 
extern void sstring_append (sstring *, sstring *);
extern void sstring_append (sstring *, sstring *);
extern void make_sstring_space (sstring *, int);
extern void make_sstring_space (sstring *, int);
extern int skip_spaces (FILE *, int);
extern int skip_spaces (FILE *, int);
extern int scan_ident (FILE *, sstring *, int);
extern int scan_ident (FILE *, sstring *, int);
extern int scan_string (FILE *, sstring *, int);
extern int scan_string (FILE *, sstring *, int);
extern int read_upto (FILE *, sstring *, int);
extern int read_upto (FILE *, sstring *, int);
extern unsigned long hash (const char *);
extern unsigned long hash (const char *);
extern void recognized_function (const struct cpp_token *,
extern void recognized_function (const struct cpp_token *,
                                 unsigned int, int, int);
                                 unsigned int, int, int);
extern void recognized_extern (const struct cpp_token *);
extern void recognized_extern (const struct cpp_token *);
extern unsigned int hashstr (const char *, unsigned int);
extern unsigned int hashstr (const char *, unsigned int);
 
 
extern int scan_decls (struct cpp_reader *, int, char **);
extern int scan_decls (struct cpp_reader *, int, char **);
 
 
/* get_token is a simple C lexer.  */
/* get_token is a simple C lexer.  */
#define IDENTIFIER_TOKEN 300
#define IDENTIFIER_TOKEN 300
#define CHAR_TOKEN 301
#define CHAR_TOKEN 301
#define STRING_TOKEN 302
#define STRING_TOKEN 302
#define INT_TOKEN 303
#define INT_TOKEN 303
extern int get_token (FILE *, sstring *);
extern int get_token (FILE *, sstring *);
 
 
/* Current file and line numer, taking #-directives into account */
/* Current file and line numer, taking #-directives into account */
extern int source_lineno;
extern int source_lineno;
extern sstring source_filename;
extern sstring source_filename;
/* Current physical line number */
/* Current physical line number */
extern int lineno;
extern int lineno;
 
 
extern struct line_maps line_table;
extern struct line_maps line_table;
 
 

powered by: WebSVN 2.1.0

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