From: Rafał Długołęcki Date: Fri, 12 Jul 2013 19:57:24 +0000 (+0200) Subject: Removed duplicate of genint.h X-Git-Tag: 3.1~49 X-Git-Url: https://git.dlugolecki.net.pl/?p=vlp.git;a=commitdiff_plain;h=f47409c684234fe7e58406b5768a9d5b55d924c4 Removed duplicate of genint.h --- diff --git a/src/global/head_genint1.h b/src/global/head_genint1.h deleted file mode 100644 index 66890fb..0000000 --- a/src/global/head_genint1.h +++ /dev/null @@ -1,177 +0,0 @@ -/* Loglan82 Compiler&Interpreter - Copyright (C) 1993 Institute of Informatics, University of Warsaw - Copyright (C) 1993, 1994 LITA, Pau - - 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 of the License, 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, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - contacts: Andrzej.Salwicki@univ-pau.fr - -or Andrzej Salwicki - LITA Departement d'Informatique - Universite de Pau - Avenue de l'Universite - 64000 Pau FRANCE - tel. ++33 59923154 fax. ++33 59841696 - -======================================================================= -*/ - -#if GEN -#define word address -#endif - - -/* Appetites of values : */ -#define APINT 1 /* integer,boolean,string,char */ -#define APREAL sizeof(real)/sizeof(word) /* real */ -#define APVIRT 4 /* TO TELL APART A VIRTUAL ADDRESS */ - /* (ANY REFERENCE TYPE) FROM ANY OTHER TYPE */ -#define APREF 2 /* ACTUAL SIZE OF REFERENCE TYPE */ -#define APFMTYPE 2 /* FORMAL TYPE VALUE */ -#define APFMPROC 3 /* FORMAL PROCEURE OR FUNCTION VALUE, = APREF+1*/ -#define APOPCODE (sizeof(extopcode)+sizeof(word)-1)/sizeof(word) - - - - -/* Values identifying types and formal parameters : */ - -#define FORMFUNC 7 /* parameter "function" */ -#define FORMPROC 8 /* parameter "procedure" */ -#define FORMTYPE 9 /* parameter "type", also formal type */ -#define PARIN 11 /* parameter "input" */ -#define PAROUT 12 /* parameter "output" */ -#define PARINOUT 16 /* parameter "inout" */ -#define PUREPROCESS 13 /* type PROCESS */ -#define PURECOROUTINE 14 /* type COROUTINE */ -#define PRIMITIVETYPE 15 /* simple type */ -#define CLASSTYPE 17 /* class type */ -#define FILETYPE 18 /* file type */ - - -/* Values to identify kinds of array elements : */ - -#define AINT -1 /* arrayof integer */ -#define AREAL -3 /* arrayof real */ -#define AVIRT -2 /* arrayof reference */ -#define APROCESS -4 /* process reference implemented as arrayof */ -#define FILEOBJECT -11 /* file object */ -#define SKILLED -99 /* killed object, only for compactification */ - - -#define DUMMY -1 /* dummy unit or prefix : SL for main block */ -#define MAINBLOCK 0 /* main block prototype number */ -#define MAXPROT 500 /* limit for the number of prototypes */ - - -/* L-code instruction addressing modes : */ - -#define GLOBAL 0 /* M[ N ] */ -#define LOCAL 1 /* M[ c1+N ] */ -#define TEMPLOCAL 2 /* M[ c2+N ] */ -#define REMOTE 3 /* M[ M[ K ]+N ] */ -#define INDIRECT 4 /* M[ M[ N ] ] */ -#define IMMEDIATE 5 /* N */ -#define CONSTANT 6 /* M[ N ] */ -#define DOTACCESS 7 /* M[ M[ display+K ]+N ] */ -#define NOARGUMENT 8 /* ------ */ - - -/* Prototype kind : */ - -#define CLASS 0 -#define RECORD 1 -#define COROUTINE 2 -#define PROCESS 3 -#define BLOCK 4 -#define PREFBLOCK 5 -#define FUNCTION 6 -#define PROCEDURE 7 -#define HANDLER 8 - -#if GEN -#define LRECORD RECORD -#define LFUNCTION FUNCTION -#define LPROCEDURE PROCEDURE -#endif - - -#if GEN -typedef int protaddr ; /* mainblock..maxprot ; mainblock = 0; */ - /* INDIRECT ADDRESS OF PROTOTYPE */ -typedef int dprotaddr ; /* PROTADDR + DUMMY */ -typedef int protkind ; - - - -#else -#define protaddr int -#define dprotaddr int -#define protkind int -#endif - - - -#define TRUE 1 -#define FALSE 0 - - -typedef int word; - - -/* Prototype : */ - -typedef struct { - dprotaddr slprototype ; /* PROTOTYPE OF SYNTACTIC FATHER */ - /* OR DUMMY FOR THE MAIN BLOCK */ - word codeaddr; /* address of code */ - word appetite; /* object's total length */ - word span; /* distance from beginning of object to */ - /* temporary reference variables */ - word reflist; /* beginning and length of table with */ - - int lthreflist; /* offsets of reference values in object; */ - /* without SL, DL, CL and temporary values */ - word parlist; /* beginning and length of table with */ - int lthparlist; /* offsets of parameters */ - - word preflist; /* beginning and length of table with */ - int lthpreflist; /* prototype numbers of prefix sequence */ - - word lastwill; /* lastwill code address */ - word handlerlist; /* list of handlers, 0 if empty */ - word virtlist; /* address of table for conversion: */ - /* virtual number --> prototype */ - - /* only for processes : */ - protaddr maskbase ; /* lowest procedure prototype number */ - int masksize ; /* size of RPC mask for that process */ - - /* for procedures and functions */ - int virtnumber; /* virtual number or -1 if not virtual */ - - /* for all : */ - protkind kind ; /* kind of unit */ - - /* only for procedures, functions and processes : */ - word pfdescr; /* address of table with parameters descr. addresses */ - - /* only for functions : */ - int nrarray; - word finaltype; /* type of result */ - -} protdescr,*pointprdsc; - -