⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 borland-2.4

📁 Minix比较全的源码
💻 4
字号:
Received: from 128.140.1.1 by ee.lbl.gov for <vern@ee.lbl.gov> (8.6.9/1.43r)	id HAA01193; Thu, 29 Sep 1994 07:26:54 -0700Received: from larry-le0.cc.emory.edu by	emoryu1.cc.emory.edu (5.65/Emory_cc.4.0.1) via SMTP	id AA07292 ; Thu, 29 Sep 94 10:26:41 -0400From: tkane01@unix.cc.emory.edu (Terrence O Kane)Received: by larry.cc.emory.edu (5.0) id AA11757; Thu, 29 Sep 1994 10:26:43 +0500Message-Id: <9409291426.AA11757@larry.cc.emory.edu>Subject: patches and makefile for Borland C 4.02, flex 2.4.7To: vern@ee.lbl.govDate: Thu, 29 Sep 1994 10:26:42 -0400 (EDT)X-Mailer: ELM [version 2.4 PL23]Mime-Version: 1.0Content-Type: text/plain; charset=US-ASCIIContent-Transfer-Encoding: 7bitContent-Length: 9900      Enclosed are unified diffs and a makefile for Borland 4.02The changes in the enclosed are 1) make the size parameters for memoryallocation "size_t", 2) change an include file when the lexer is compiled within 'extern "C" {...}' in a C++ file, and 3) include pragmas in the header suitable for BCC 4.02 to hush on warnings.The latter is done because of the limit on command line size.  A tradeoff exists between putting pragmas in the header, or #defines in the header - I put in the pragmas since they're suppoed to be ignored unless understood - *and* they're enclosed in BCC specific ifdefs, anyway.All changes are enclosed in "#ifdef __BORLANDC__".--- misc.c	Tue Jan 04 14:33:10 1994+++ ../misc.c	Wed Sep 28 18:44:32 1994@@ -55,15 +55,19 @@ 	action_index += len; 	}   /* allocate_array - allocate memory for an integer array of the given size */  void *allocate_array( size, element_size )+#ifndef __BORLANDC__ int size, element_size;+#else /* __BORLANDC__ */+size_t size, element_size;+#endif /* __BORLANDC__ */ 	{ 	register void *mem;  	/* On 16-bit int machines (e.g., 80286) we might be trying to 	 * allocate more than a signed int can hold, and that won't 	 * work.  Cheap test: 	 */@@ -634,15 +638,19 @@ 	}   /* reallocate_array - increase the size of a dynamic array */  void *reallocate_array( array, size, element_size ) void *array;+#ifndef __BORLANDC__ int size, element_size;+#else /* __BORLANDC__ */+size_t size, element_size;+#endif /* __BORLANDC__ */ 	{ 	register void *new_array;  	/* Same worry as in allocate_array(): */ 	if ( size * element_size <= 0 ) 		flexfatal( 			"attempt to increase array size by less than 1 byte" );@@ -739,15 +747,19 @@ 	}   /* The following is only needed when building flex's parser using certain  * broken versions of bison.  */ void *yy_flex_xmalloc( size )+#ifndef __BORLANDC__ int size;+#else /* __BORLANDC__ */+size_t size;+#endif /* __BORLANDC__ */ 	{ 	void *result = flex_alloc( size );  	if ( ! result  ) 		flexfatal( "memory allocation failed in yy_flex_xmalloc()" );  	return result;--- skel.c	Wed Aug 03 11:38:32 1994+++ ../skel.c	Wed Sep 28 18:50:58 1994@@ -26,15 +26,19 @@   "",   "#ifdef __cplusplus",   "",   "#include <stdlib.h>",   "%+",   "class istream;",   "%*",+  "#ifndef __BORLANDC__",   "#include <unistd.h>",+  "#else /* __BORLANDC__ */",+  "#include <io.h>",+  "#endif /* __BORLANDC__ */",   "",   "/* Use prototypes in function declarations. */",   "#define YY_USE_PROTOS",   "",   "/* The \"const\" storage-class-modifier is valid. */",   "#define YY_USE_CONST",   "",@@ -240,16 +244,21 @@   "static int yy_start_stack_depth = 0;",   "static int *yy_start_stack = 0;",   "static void yy_push_state YY_PROTO(( int new_state ));",   "static void yy_pop_state YY_PROTO(( void ));",   "static int yy_top_state YY_PROTO(( void ));",   "%*",   "",+  "#ifndef __BORLANDC__",   "static void *yy_flex_alloc YY_PROTO(( unsigned int ));",   "static void *yy_flex_realloc YY_PROTO(( void *, unsigned int ));",+  "#else /* __BORLANDC__ */",+  "static void *yy_flex_alloc YY_PROTO(( size_t ));",+  "static void *yy_flex_realloc YY_PROTO(( void *, size_t ));",+  "#endif /* __BORLANDC__ */",   "static void yy_flex_free YY_PROTO(( void * ));",   "",   "#define yy_new_buffer yy_create_buffer",   "",   "%% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here",   "",   "#ifndef yytext_ptr",--- initscan.c	Wed Aug 03 11:42:46 1994+++ ../initscan.c	Wed Sep 28 18:51:34 1994@@ -16,15 +16,19 @@ #endif #endif   #ifdef __cplusplus  #include <stdlib.h>+#ifndef __BORLANDC__ #include <unistd.h>+#else /* __BORLANDC__ */+#include <io.h>+#endif /* __BORLANDC__ */  /* Use prototypes in function declarations. */ #define YY_USE_PROTOS  /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST @@ -220,16 +224,21 @@ static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = 0; static void yy_push_state YY_PROTO(( int new_state )); static void yy_pop_state YY_PROTO(( void )); static int yy_top_state YY_PROTO(( void )); +#ifndef __BORLANDC__ static void *yy_flex_alloc YY_PROTO(( unsigned int )); static void *yy_flex_realloc YY_PROTO(( void *, unsigned int ));+#else /* __BORLANDC__ */+static void *yy_flex_alloc YY_PROTO(( size_t ));+static void *yy_flex_realloc YY_PROTO(( void *, size_t ));+#endif /* __BORLANDC__ */ static void yy_flex_free YY_PROTO(( void * ));  #define yy_new_buffer yy_create_buffer  #define INITIAL 0 #define SECT2 1 #define SECT2PROLOG 2--- flexdef.h	Tue Jan 04 14:33:14 1994+++ ../flexdef.h	Wed Sep 28 18:53:44 1994@@ -27,14 +27,25 @@  */  /* @(#) $Header$ (LBL) */  #include <stdio.h> #include <ctype.h> +#ifdef __BORLANDC__+#include <malloc.h>++#pragma warn -pro+#pragma warn -rch+#pragma warn -use+#pragma warn -aus+#pragma warn -par+#pragma warn -pia++#endif /* __BORLANDC__ */ #if HAVE_STRING_H #include <string.h> #else #include <strings.h> #endif  #if __STDC__@@ -607,19 +618,29 @@  */  extern char nmstr[MAXLINE]; extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs; extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave; extern int num_backing_up, bol_needed; +#ifndef __BORLANDC__ void *allocate_array PROTO((int, int)); void *reallocate_array PROTO((void*, int, int));+#else /* __BORLANDC__ */+void *allocate_array PROTO((size_t, size_t));+void *reallocate_array PROTO((void*, size_t, size_t));+#endif /* __BORLANDC__ */ +#ifndef __BORLANDC__ void *flex_alloc PROTO((unsigned int)); void *flex_realloc PROTO((void*, unsigned int));+#else /* __BORLANDC__ */+void *flex_alloc PROTO((size_t));+void *flex_realloc PROTO((void*, size_t));+#endif /* __BORLANDC__ */ void flex_free PROTO((void*));  #define allocate_integer_array(size) \ 	(int *) allocate_array( size, sizeof( int ) )  #define reallocate_integer_array(array,size) \ 	(int *) reallocate_array( (void *) array, size, sizeof( int ) )@@ -772,15 +793,19 @@ /* Write out one section of the skeleton file. */ extern void skelout PROTO((void));  /* Output a yy_trans_info structure. */ extern void transition_struct_out PROTO((int, int));  /* Only needed when using certain broken versions of bison to build parse.c. */+#ifndef __BORLANDC__ extern void *yy_flex_xmalloc PROTO(( int ));+#else /* __BORLANDC__ */+extern void *yy_flex_xmalloc PROTO(( size_t ));+#endif /* __BORLANDC__ */  /* Set a region of memory to 0. */ extern void zero_out PROTO((char *, int));   /* from file nfa.c */################################################################################ Makefile for flex 2.4.7 with Borland C/C++ version 4.02## This will probably need to be adjusted for your existing lexer/parser# generators.  See definitions for FLEX and YACC near the bottom of the# makefile.## Copy initscan.c to scan.c to make your first executable.  After that,# you may choose to try alternate compression options for your everyday# flex executable.## This will build flex with the large model.  Don't use huge, but if you# feel like experimenting with other models, post your success stories to # comp.compilers, OK?## This makefile does *not* implement the big testing found in "makefile.in".## I also assume the availability of sed and the gnu file utilities on the# system - they're readily available, so if you don't have them, why not?#                                                                 <grin>## The resulting generated lexer (the real goal, right?) will compile# (and run nicely, too) as a .c file, as well as being included such as# extern "C" { #include "lexyyc" } in a .cplusplus file.################################################################################DEBUG = 1.autodependall:	flex.exe################################################################################# standard utilitities? ha.#CC	= bccCPP     = bcc################################################################################MODEL	= l!if $(DEBUG) == 1!message Building with debug.debugCompile = -vdebugLink = /v!else!message Building without debug.debugCompile =debugLink =!endifLOADER	= c0$(MODEL).objLIBS	= c$(MODEL).libLINKFLAGS = $(debugLink)DATASEG	= -dc -FfSizeOPT	= -Os -G-Defines = -DSHORT_FILE_NAMES=1 -DHAVE_STRING_H=1COMMON	= -A -c -m$(MODEL) $(SizeOPT) $(DATASEG) $(Defines) $(debugCompile)CFLAGS  = -o$@ $(COMMON)CCFLAGS  = -o$@ $(COMMON) -Pcc###############################################################################.SUFFIXES:	.cc.cc.obj:	$(CPP) $(CCFLAGS) $<.c.obj:	$(CPP) $(CFLAGS) $<################################################################################# source & object files#SRC =	ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.c \	scan.c sym.c tblcmp.c yylex.c skel.cOBJS = $(SRC:.c=.obj)objects:	$(OBJS)	@echo $(OBJS)################################################################################# Executable#flex.exe:      $(OBJS)	tlink $(LINKFLAGS) @&&!$(LOADER) $**$&.exe$&.map$(LIBS)!# ################################################################################# Lex files#FLEX	= .\flexFLEX_FLAGS = -istscan.c: scan.l	$(FLEX) $(FLEX_FLAGS) scan.l >scan.tmp	sed s,\"$(srcdir)/scan.l\",\"scan.l\", <scan.tmp >scan.c	@rm scan.tmp################################################################################# YACC files#YACC	= .\bisonYFLAGS  = -vdylparse.c: parse.y	$(YACC) -ydl parse.y	@sed "/extern char.*malloc/d" <y_tab.c >parse.c	@rm -f y_tab.c	@mv y_tab.h parse.h## end Makefile################################################################################ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -