diff options
Diffstat (limited to 'gcc/treelang/treelang.h')
-rw-r--r-- | gcc/treelang/treelang.h | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/gcc/treelang/treelang.h b/gcc/treelang/treelang.h deleted file mode 100644 index f42a2e2e2e9..00000000000 --- a/gcc/treelang/treelang.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - - TREELANG Compiler common definitions (treelang.h) - - Copyright (C) 1986, 87, 89, 92-96, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - - 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 - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program 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 this program; if not, write to the Free Software - Foundation, 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. - - In other words, you are welcome to use, share and improve this program. - You are forbidden to forbid anyone else to use, share and improve - what you give them. Help stamp out software-hoarding! - - --------------------------------------------------------------------------- - - Written by Tim Josling 1999, 2000, 2001, based in part on other - parts of the GCC compiler. - -*/ - -/* Parse structure type. */ -enum category_enum -{ /* These values less likely to be there by chance unlike 0/1, - make checks more meaningful */ - token_category = 111, - production_category = 222, - parameter_category = 333 -}; - -/* Input file name and FILE. */ -extern unsigned char* in_fname; -extern FILE* yyin; - -/* Forward references to satisfy mutually recursive definitions. */ -struct token_part; -struct production_part; -struct prod_token_parm_item; -typedef struct GTY(()) prod_token_parm_item item; - -/* A token from the input file. */ - -struct token_part GTY(()) -{ - unsigned int lineno; - unsigned int charno; - unsigned int length; /* The value. */ - unsigned char* chars; -}; - -/* Definitions for fields in production. */ -#define NESTING_LEVEL(a) a->tp.pro.info[0] /* Level used for variable definitions. */ -#define NUMERIC_TYPE(a) a->tp.pro.info[1] /* Numeric type used in type definitions and expressions. */ -#define SUB_COUNT 5 -#define SYMBOL_TABLE_NAME(a) (a->tp.pro.sub[0]) /* Name token. */ -#define EXPRESSION_TYPE(a) (a->tp.pro.sub[1]) /* Type identifier. */ -#define OP1(a) (a->tp.pro.sub[2]) /* Exp operand1. */ -#define PARAMETERS(a) (a->tp.pro.sub[2]) /* Function parameters. */ -#define VARIABLE(a) (a->tp.pro.sub[2]) /* Parameter variable ptr. */ -#define VAR_INIT(a) (a->tp.pro.sub[2]) /* Variable init. */ -#define OP2(a) (a->tp.pro.sub[3]) /* Exp operand2. */ -#define FIRST_PARMS(a) (a->tp.pro.sub[3]) /* Function parameters linked via struct tree_parameter_list. */ -#define OP3(a) (a->tp.pro.sub[4]) /* Exp operand3. */ -#define STORAGE_CLASS_TOKEN(a) (a->tp.pro.sub[4]) /* Storage class token. */ -#define STORAGE_CLASS(a) a->tp.pro.flag1 /* Values in treetree.h. */ - -struct production_part GTY(()) -{ - struct prod_token_parm_item *main_token; /* Main token for error msgs; variable name token. */ - - unsigned int info[2]; /* Extra information. */ - - struct prod_token_parm_item *sub[SUB_COUNT]; /* Sub productions or tokens. */ - tree code; /* Back end hook for this item. */ - struct prod_token_parm_item *next; /* Next in chains of various types. */ - - unsigned int flag1:2; - unsigned int flag2:1; - unsigned int flag3:1; - unsigned int flag4:1; - unsigned int flag5:1; - unsigned int flag6:1; - unsigned int flag7:1; - -}; - -/* Storage modes. */ -#define STATIC_STORAGE 0 -#define AUTOMATIC_STORAGE 1 -#define EXTERNAL_REFERENCE_STORAGE 2 -#define EXTERNAL_DEFINITION_STORAGE 3 - -/* Numeric types. */ -#define SIGNED_CHAR 1 -#define UNSIGNED_CHAR 2 -#define SIGNED_INT 3 -#define UNSIGNED_INT 4 -#define VOID_TYPE 5 - -/* Expression types. */ -#define EXP_PLUS 0 /* Addition expression. */ -#define EXP_REFERENCE 1 /* Variable reference. */ -#define EXP_ASSIGN 2 /* Assignment. */ -#define EXP_FUNCTION_INVOCATION 3 /* Call function. */ -#define EXP_MINUS 4 /* Subtraction. */ -#define EXP_EQUALS 5 /* Equality test. */ - -/* Parameter list passed to back end. */ -struct parameter_part GTY(()) -{ - struct prod_token_parm_item *next; /* Next entry. */ - unsigned char* variable_name; /* Name. */ - tree * GTY ((length ("1"))) where_to_put_var_tree; /* Where to save decl. */ -}; - -/* A production or a token. */ -struct prod_token_parm_item GTY(()) -{ - enum category_enum category; /* Token or production. */ - unsigned int type; /* Token or production type. */ - union t_or_p - { - struct token_part GTY((tag ("token_category"))) tok; - struct production_part GTY((tag ("production_category"))) pro; - struct parameter_part GTY((tag ("parameter_category"))) par; - } GTY((desc ("((item *)&%1)->category"))) tp; -}; - - -/* For parser. Alternatively you can define it using %union (bison) or - union. */ -#define YYSTYPE void * - -void *my_malloc (size_t size); -int insert_tree_name (struct prod_token_parm_item *prod); -struct prod_token_parm_item *lookup_tree_name (struct prod_token_parm_item *prod); -struct prod_token_parm_item *make_production (int type, struct prod_token_parm_item *main_tok); -void mark_production_used (struct prod_token_parm_item *pp); -void mark_token_used (struct prod_token_parm_item *tt); -void treelang_debug (void); - |