Eliminados archivos dentro del STUB que no se utilizaban (parser.* y compiler.*)
This commit is contained in:
parent
e6e5db02cb
commit
4f482df658
File diff suppressed because it is too large
Load diff
|
@ -1,44 +0,0 @@
|
|||
/*
|
||||
* eDiv Compiler
|
||||
* Copyleft (C) 2000-2002 Sion Entertainment
|
||||
* http://www.sion-e.com
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#ifdef _WINBASE_
|
||||
# undef lstrcpy
|
||||
# undef lstrcat
|
||||
# undef lstrlen
|
||||
#endif
|
||||
|
||||
#define long_header 9 //Longitud de la cabecera al inicio de los programas
|
||||
|
||||
#define default_buffer (16384*8)
|
||||
#define security_distance (4096*8)
|
||||
#define buffer_grow (16384*8)
|
||||
|
||||
int * mem_ory, * frm;
|
||||
int * mem, * loc;
|
||||
int imem, imem_max;
|
||||
int iloc, iloc_max;
|
||||
int itxt, ifrm_max;
|
||||
|
||||
byte * imemptr;
|
||||
|
||||
int iloc_len; // final de las variables locales incluyendo las privadas
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,185 +0,0 @@
|
|||
/*
|
||||
* eDiv Compiler
|
||||
* Copyleft (C) 2000-2002 Sion Entertainment
|
||||
* http://www.sion-e.com
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
|
||||
|
||||
/* A continuacion viene el asunto de los objetos. Para el que no se haya estudiado a fondo
|
||||
* el DIVC.CPP (ejem) diré que un objeto es cada una de las variables, constantes, tipos
|
||||
* de proceso (declarados con PROCESS), tipos de funcion (declarados con FUNCTION), funciones
|
||||
* de DLL, estructuras, etc. etc. etc.
|
||||
* Estudiaros la siguiente tabla para entenderlo mejor...
|
||||
* y familiarizaros con las abreviaturas... ;)
|
||||
*/
|
||||
|
||||
#define max_obj 4096 //Limite maximo de objetos del compilador
|
||||
#define long_med_id 16 //Longitud media de los identificadores (+4+4+1)
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Tabla de objetos - - - - - - - - - - - - - - - - - *iobj primer objeto libre
|
||||
|
||||
struct objeto {
|
||||
byte tipo; // Tipo de objeto
|
||||
byte usado; // Indica si el objeto ha sido usado antes de definirse
|
||||
byte * name; // Puntero al nombre, para algún listado
|
||||
byte * ierror;// Puntero al código para determinar la columna si es necesario
|
||||
int linea; // Línea de código fuente, para informar del error
|
||||
int param; // Indica que es un objeto declarado en los parámetros
|
||||
short dll; // En qué dll se declara el objeto, -1 = pertenece al prg
|
||||
struct objeto * anterior; // Anterior objeto de igual nombre
|
||||
struct objeto * bloque; // Bloque de este proceso (0-global/local N-private)
|
||||
struct objeto * member; // Indica a que struct pertenece (0-n/a)
|
||||
union {
|
||||
struct { // Constante
|
||||
int valor;
|
||||
int literal; // 0-no, 1-si
|
||||
} cons;
|
||||
struct { // Variable global
|
||||
int offset;
|
||||
} vglo;
|
||||
struct { // Tabla global
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
int len1,len2,len3; // len2/3==-1 si n/a
|
||||
} tglo,pigl;
|
||||
struct { // Byte global
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
int len1,len2,len3; // len2/3==-1 si n/a
|
||||
} bglo,pbgl;
|
||||
struct { // Word global
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
int len1,len2,len3; // len2/3==-1 si n/a
|
||||
} wglo,pwgl;
|
||||
struct { // Cadena (string) global
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
} cglo,pcgl;
|
||||
struct { // Struct
|
||||
int offset;
|
||||
int len_item; // Número de campos
|
||||
int totalitems; // Numero total de registros
|
||||
int items1,items2,items3; // -1 si n/a
|
||||
} sglo,sloc;
|
||||
struct { // Struct pointer
|
||||
int offset;
|
||||
struct objeto * ostruct; // Puntero al struct
|
||||
int totalitems; // Número total de registros
|
||||
int items1,items2,items3; // -1 si n/a
|
||||
} psgl,pslo;
|
||||
struct { // Variable local
|
||||
int offset;
|
||||
} vloc;
|
||||
struct { // Tabla local
|
||||
int offset;
|
||||
int totalen;
|
||||
int len1,len2,len3;
|
||||
} tloc,pilo;
|
||||
struct { // Byte local
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
int len1,len2,len3; // len2/3==-1 si n/a
|
||||
} bloc,pblo;
|
||||
struct { // Word local
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
int len1,len2,len3; // len2/3==-1 si n/a
|
||||
} wloc,pwlo;
|
||||
struct { // Cadena (string) local
|
||||
int offset;
|
||||
int totalen; // numero total de elementos
|
||||
} cloc,pclo;
|
||||
struct { // Proceso
|
||||
struct objeto * bloque;
|
||||
int offset;
|
||||
int num_par; // Número de parámetros
|
||||
} proc;
|
||||
|
||||
// qsort requiere como parametros un nombre de estructura y un campo
|
||||
// Ya le buscaremos una solución (p.ej. una función complementaria a EDIV_Export)
|
||||
|
||||
struct { // Funcion externa (DLL)
|
||||
int codigo;
|
||||
int num_par;
|
||||
} fext;
|
||||
};
|
||||
} obj[max_obj], * iobj; // - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#define tnone 0 // Tipos de objetos en obj[]
|
||||
#define tcons 1 // Constantes
|
||||
#define tvglo 2 // Int global
|
||||
#define ttglo 3 // Tabla int global
|
||||
#define tcglo 4 // Cadena global
|
||||
#define tvloc 5 // Locales
|
||||
#define ttloc 6
|
||||
#define tcloc 7
|
||||
#define tproc 8 // Proceso
|
||||
#define tfunc 9
|
||||
#define tsglo 10 // Structs
|
||||
#define tsloc 11
|
||||
#define tfext 12 // Función de una librer¡a externa
|
||||
|
||||
#define tbglo 13 // Byte global
|
||||
#define twglo 14 // Word global
|
||||
#define tbloc 15 // Byte local
|
||||
#define twloc 16 // Word local
|
||||
|
||||
#define tpigl 17 // Puntero a ints global (un ttglo direccionable)
|
||||
#define tpilo 18 // Puntero a ints local (idem)
|
||||
|
||||
#define tpwgl 19 // Punteros a word
|
||||
#define tpwlo 20
|
||||
#define tpbgl 21 // Punteros a byte
|
||||
#define tpblo 22
|
||||
|
||||
#define tpcgl 23 // Punteros a string
|
||||
#define tpclo 24
|
||||
#define tpsgl 25 // Punteros a struct
|
||||
#define tpslo 26
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
byte * vnom; // Vector de nombres (cad_hash:int, pieza (o iobj):int, asciiz)
|
||||
|
||||
union {
|
||||
byte *b;
|
||||
byte **p;
|
||||
} ivnom;
|
||||
|
||||
byte * inicio_objetos; // Para el crear listado de la tabla de objetos
|
||||
|
||||
byte * vhash[256]; // Punteros al vector de nombres;
|
||||
|
||||
|
||||
struct objeto * o; // Cuando pieza=p_id, objeto de tipo (**o).tipo
|
||||
struct objeto * bloque_actual; // Bloque que esta siendo analizado
|
||||
struct objeto * bloque_lexico; // Es 0 hasta las privadas del program
|
||||
|
||||
struct objeto * member; // !=0 al declarar/acceder un miembro de un struct
|
||||
|
||||
// número de nodos, número de objetos
|
||||
int num_nodos, num_obj;
|
||||
|
||||
int num_obj_predefinidos;
|
||||
|
Loading…
Reference in a new issue