diff options
Diffstat (limited to 'WebKitTools/android/flex-2.5.4a/MISC/Atari/Atari.patches')
-rw-r--r-- | WebKitTools/android/flex-2.5.4a/MISC/Atari/Atari.patches | 911 |
1 files changed, 0 insertions, 911 deletions
diff --git a/WebKitTools/android/flex-2.5.4a/MISC/Atari/Atari.patches b/WebKitTools/android/flex-2.5.4a/MISC/Atari/Atari.patches deleted file mode 100644 index dc04263..0000000 --- a/WebKitTools/android/flex-2.5.4a/MISC/Atari/Atari.patches +++ /dev/null @@ -1,911 +0,0 @@ -(Message inbox:32) -Date: Mon, 03 Jul 89 21:15:32 CET -From: V61%DHDURZ1.BITNET@lbl.gov -Subject: Flex, bug fix, improvments, patches for Minix & TOS -To: vern@lbl-csam.arpa - -At first I have to thank you for your wonderful program. I had ported the -old version to OS9,TOS (Atari ST) and Minix and the new version 2.1 Beta -to Minix and TOS. - -While porting and using flex I detected a bug and made some improvements. -I have included a shared, compressed and uuencoded file contaning all cdiffs -and additional files (Sorry, but I'm on EBCDIC-Bitnet) and a short discussion -of the changes. Even some of the TOS specific changes might be of general -interest ! - -I posted these cdiffs to the minix discussion group, but I think it's up -to you to post them to the unix-sources group. If you plan to post even -the TOS compiler specific patches please contact me because there might be -further compiler (P.D.) additions. If you have an interest I could also -port the new version to OS9 -- this is a little bit more difficult, because -OS9 uses CR as end of line character (the EOL char. is coded into the -initscan.c tables,...). It is necessary to change all occurences of '\n' to -macros and variables and it's useful to add a new -n options (see commented -line in main.c) - - - -The changes: (1.7.89 RAL) - - - Bug fix: The original flex didn't like trailing spaces in exclusive start - condition lists ! If you add an trailing space to line 68 in scan.l - - "%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE " - - you get a misleading error message: - - "Syntax error at line 69: bad start condition list" - - This bug can either be fixed in parse.y or in scan.l . I have chosen the - last because there the fix is minimal: Just change the rule (line 128) - - "\n" to "{OPTWS}\n" - - - Enhancements: - - new option "-?" that provides some help information about the other - flags (main.c) - - new option "-aTMPPATH" that allows a redefinition of the standard - path for the temporary file (this might be rather large >200k if - F,f options are selected). (main.c, flexdef.h (l.376)) - - hexdump of illegal characters -- this proved to be a useful debugging - tool especialy if invisible control characters occur which weren't - covered by the rules. (scan.l fprintf statement line 129,...) - - - Patches due to TOS - - General: TOS uses CR,LF as end of line char., Flex wants only a single - LF as EOL char. Therefore all I/O must be translated using f* calls. - This is done everywhere besides the YY_INPUT macro (flex.skel (scan.c), - line 31) that uses a low level 'read'. This should be definitly changed - to fread, so that all I/O calls occur on the same level. - - the short action_file_name has been "flexXXXXXX.tmp", but that's too - much for TOS,MSDOS ! I changed it to "flexXXXX.tmp" in main.c (patch - covered by the -a option additions) - - some compilers don't like external names that are ambiguous within - the first 8 characters. I defined macros that change all these long - external names to names that are unique within the first 8 characters. - Just define SHORT_EXTERNAL_NAMES to use this feature (flexdef.h) - - some statement changes that some compiler don't like: - typedef *xxx[] -> typedef **xxx (flexdef.h.,l.308) - "/*" -> '/','*' within a comment in (scan.l, l.209) - - changed short "lexyy.c" to "lex_yy.c" what's more similar to the unix - "lex.yy.c" (main.c). - - a few further really compiler dependent changes provided with - #ifdef ATARI && LATTICE res. TURBO braces. - - - Additional TOS only files - - Makefile.tos: Common makefile for all TOS compilers. If you add further - ones please email me the new makefile. - - flex.lnk: Lattice - GST linker argument extension file - - flex.tlk: Turbo linker argument extension file - - -Additional remarks: - -I didn't add a new initscan.c (= flex -ist scan.l). The current one is good -enough for a first compilation. With this first version of flex you can -rebuild your own scan.c and the final flex version ! - -Minix ST : - - I had to "chmem =70000 cv" (>50000) to get flex linked - - 'memset' (PC 1.3, EFTH40,...) is necessary - - chmem =90000 flex may be sufficient - -Minix PC : - It should be possible to port Flex to Minix PC. The current sizes of flex - are: - Minix ST (ACK) Lattice (TOS) Turbo (TOS) - - size 75300 83305 57957 - compilation time 22' 15' 3'40" - flex -is scan.l 1'49" 43" 30" - - The Minix ST size includes the bad generated code using only a subset of - the 68000 commands, long addresses only and a huge relocation table. - Therefore the PC size will be <64 k ! More serious is the fact that I had - to chmem =90000 flex to get scan.l converted to scan.c . But I never saw - a more complex lex source than scan.l -- so it should be possible to - reduce some array sizes without limitation for all day usage. - - No one volunteered yet for a Minix PC port -- but if someone will try it - I would provide him with a new scan.c and some hints. - -TOS: - Don't forget to adapt the flexskel path within flexdef.h ! - - -Bitnet: V61@DHDURZ1 Ronald Lamprecht -UUCP: ...!unido!DHDURZ1.bitnet!V61 Theoretische Physik -ARPAnet: V61%DHDURZ1.BITNET@CUNYVM.CUNY.EDU (Heidelberg, West Germany) -(Message inbox:36) -Date: Wed, 05 Jul 89 21:16:07 CET -From: V61%DHDURZ1.BITNET@csa2.lbl.gov -Subject: Re: What is TOS -To: vern@lbl-csam.arpa - -TOS is the name of the Atari ST operating system that is very similar -to MSDOS (Both use CR,LF as end of line character). Therefore I have -been astonished that no EOL convertion porblems occur within MSDOS. - -I have been aware of the double buffering when changing read to fread and I -accept your argument of a possible slow down. But if you integrate the other -Atari - TOS changes, please insert a - #ifdef ATARI - fread .... - #else - read .... - #endif -in flex.skel . - -Bitnet: V61@DHDURZ1 Ronald Lamprecht -UUCP: ...!unido!DHDURZ1.bitnet!V61 Theoretische Physik -ARPAnet: V61%DHDURZ1.BITNET@CUNYVM.CUNY.EDU (Heidelberg, West Germany) - - - - -echo x - Makefile_cdiff -sed '/^X/s///' > Makefile_cdiff << '/' -X*** Src_2.1/Makefile Thu Jun 28 00:06:42 1989 -X--- Makefile Thu Jul 3 02:12:48 1989 -X*************** -X*** 5,10 **** -X--- 5,11 ---- -X # Porting considerations: -X # -X # For System V Unix machines, add -DSYS_V to CFLAGS. -X+ # For Minix (ST), add -DSYS_V to CFLAGS -X # For Vax/VMS, add -DSYS_V to CFLAGS. -X # For MS-DOS, add "-DMS_DOS -DSYS_V" to CFLAGS. Create \tmp if not present. -X # You will also want to rename flex.skel to something with a three -X*************** -X*** 21,28 **** -X SKELETON_DIR = /usr/local/lib -X SKELETON_FILE = flex.skel -X SKELFLAGS = -DDEFAULT_SKELETON_FILE=\"$(SKELETON_DIR)/$(SKELETON_FILE)\" -X! CFLAGS = -O -X! LDFLAGS = -s -X -X FLEX_FLAGS = -X FLEX = ./flex -X--- 22,29 ---- -X SKELETON_DIR = /usr/local/lib -X SKELETON_FILE = flex.skel -X SKELFLAGS = -DDEFAULT_SKELETON_FILE=\"$(SKELETON_DIR)/$(SKELETON_FILE)\" -X! CFLAGS = -O -DSYS_V -X! LDFLAGS = -X -X FLEX_FLAGS = -X FLEX = ./flex -X*************** -X*** 57,63 **** -X yylex.c -X -X flex : $(FLEXOBJS) -X! $(CC) $(CFLAGS) -o flex $(LDFLAGS) $(FLEXOBJS) -X -X first_flex: -X cp initscan.c scan.c -X--- 58,65 ---- -X yylex.c -X -X flex : $(FLEXOBJS) -X! $(CC) $(CFLAGS) -o flex $(FLEXOBJS) $(LDFLAGS) -X! chmem =150000 flex -X -X first_flex: -X cp initscan.c scan.c -/ -echo x - flex.skel_cdif -sed '/^X/s///' > flex.skel_cdif << '/' -X*** Src_2.1/flex.skel Thu Jun 28 00:19:20 1989 -X--- flex.skel Thu Jul 2 22:18:31 1989 -X*************** -X*** 28,34 **** -X * is returned in "result". -X */ -X #define YY_INPUT(buf,result,max_size) \ -X! if ( (result = read( fileno(yyin), buf, max_size )) < 0 ) \ -X YY_FATAL_ERROR( "read() in flex scanner failed" ); -X #define YY_NULL 0 -X #define yyterminate() return ( YY_NULL ) -X--- 28,34 ---- -X * is returned in "result". -X */ -X #define YY_INPUT(buf,result,max_size) \ -X! if ( (result = fread( buf,1, max_size, yyin )) < 0 ) \ -X YY_FATAL_ERROR( "read() in flex scanner failed" ); -X #define YY_NULL 0 -X #define yyterminate() return ( YY_NULL ) -/ -echo x - flexdef.h_cdif -sed '/^X/s///' > flexdef.h_cdif << '/' -X*** Src_2.1/flexdef.h Thu Jun 28 00:43:27 1989 -X--- flexdef.h Thu Jul 3 02:45:50 1989 -X*************** -X*** 26,31 **** -X--- 26,40 ---- -X -X /* @(#) $Header: flexdef.h,v 2.0 89/06/20 15:49:50 vern Locked $ (LBL) */ -X -X+ #ifdef ATARI -X+ #define SYS_V -X+ #define abs(x) ((x) < 0 ? -(x) : (x)) -X+ #define SHORT_FILE_NAMES -X+ #ifdef TURBO -X+ #define SHORT_EXTERNAL_NAMES -X+ #endif -X+ #endif -X+ -X #ifndef FILE -X #include <stdio.h> -X #endif -X*************** -X*** 41,47 **** -X #endif -X -X #ifndef VMS -X! char *memset(); -X #else -X /* memset is needed for old versions of the VMS C runtime library */ -X #define memset(s, c, n) \ -X--- 50,58 ---- -X #endif -X -X #ifndef VMS -X! #ifndef ATARI && TURBO -X! char *memset(); -X! #endif -X #else -X /* memset is needed for old versions of the VMS C runtime library */ -X #define memset(s, c, n) \ -X*************** -X*** 81,91 **** -X--- 92,129 ---- -X #define true 1 -X #define false 0 -X -X+ #ifdef ATARI -X+ #define DEFAULT_SKELETON_FILE "D:\\include\\flexskel" -X+ #endif -X+ -X -X #ifndef DEFAULT_SKELETON_FILE -X #define DEFAULT_SKELETON_FILE "flex.skel" -X #endif -X -X+ #ifdef SHORT_EXTERNAL_NAMES -X+ /* avoid long external names that are ambiguous within the first 8 characters */ -X+ #define current_mns c__mns -X+ #define current_max_rules c__max_rules -X+ #define current_max_state_type c__max_state_type -X+ #define current_max_scs c__max_scs -X+ #define current_max_dfa_size c__max__size -X+ #define current_max_xpairs c__max_xpairs -X+ #define current_max_template_xpairs c__max_template_xpairs -X+ #define current_max_dfas c__max_dfas -X+ #define current_maxccls c__maxccles -X+ #define current_max_ccl_tbl_size c__max_ccl_tbl_size -X+ #define indent_puts ind_puts -X+ #define indent_put2s ind_put2s -X+ #define gen_next_compressed_state gen_n_comressed_state -X+ #define gen_next_match gen_n_match -X+ #define gen_next_state gen_n_state -X+ #define variable_trailing_context_rules var_tr_context_rules -X+ #define variable_trailing_rule var_tr_rule -X+ #define backtrack_report backtr_report -X+ #define backtrack_file backtr_file -X+ #endif -X+ -X /* special chk[] values marking the slots taking by end-of-buffer and action -X * numbers -X */ -X*************** -X*** 305,311 **** -X int int_val; -X } ; -X -X! typedef struct hash_entry *hash_table[]; -X -X #define NAME_TABLE_HASH_SIZE 101 -X #define START_COND_HASH_SIZE 101 -X--- 343,349 ---- -X int int_val; -X } ; -X -X! typedef struct hash_entry **hash_table; -X -X #define NAME_TABLE_HASH_SIZE 101 -X #define START_COND_HASH_SIZE 101 -X*************** -X*** 372,378 **** -X extern int datapos, dataline, linenum; -X extern FILE *skelfile, *yyin, *temp_action_file, *backtrack_file; -X extern char *infilename; -X! extern char action_file_name[]; -X -X -X /* variables for stack of states having only one out-transition: -X--- 410,416 ---- -X extern int datapos, dataline, linenum; -X extern FILE *skelfile, *yyin, *temp_action_file, *backtrack_file; -X extern char *infilename; -X! extern char *action_file_name; -X -X -X /* variables for stack of states having only one out-transition: -/ -echo x - main.c_cdiff -sed '/^X/s///' > main.c_cdiff << '/' -X*** Src_2.1/main.c Thu Jun 28 00:30:39 1989 -X--- main.c Thu Jul 3 02:27:47 1989 -X*************** -X*** 81,96 **** -X FILE *temp_action_file; -X FILE *backtrack_file; -X int end_of_buffer_state; -X! #ifndef SHORT_FILE_NAMES -X! char action_file_name[] = "/tmp/flexXXXXXX"; -X! #else -X! char action_file_name[] = "flexXXXXXX.tmp"; -X! #endif -X! -X #ifndef SHORT_FILE_NAMES -X static char outfile[] = "lex.yy.c"; -X #else -X! static char outfile[] = "lexyy.c"; -X #endif -X static int outfile_created = 0; -X -X--- 81,91 ---- -X FILE *temp_action_file; -X FILE *backtrack_file; -X int end_of_buffer_state; -X! char *action_file_name; -X #ifndef SHORT_FILE_NAMES -X static char outfile[] = "lex.yy.c"; -X #else -X! static char outfile[] = "lex_yy.c"; -X #endif -X static int outfile_created = 0; -X -X*************** -X*** 328,333 **** -X--- 323,329 ---- -X { -X int i, sawcmpflag, use_stdout; -X char *arg, *skelname = NULL, *flex_gettime(), clower(), *mktemp(); -X+ char *tmp_action =(char *)0, *malloc(); -X -X printstats = syntaxerror = trace = spprdflt = interactive = caseins = false; -X backtrack_report = performance_report = ddebug = fulltbl = fullspd = false; -X*************** -X*** 349,354 **** -X--- 345,355 ---- -X for ( i = 1; arg[i] != '\0'; ++i ) -X switch ( arg[i] ) -X { -X+ case 'a': -X+ if ( i != 1 ) -X+ flexerror( "-a flag must be given separately" ); -X+ tmp_action = &arg[i+1]; -X+ goto get_next_arg; -X case 'b': -X backtrack_report = true; -X break; -X*************** -X*** 445,452 **** -X printstats = true; -X break; -X -X! default: -X! lerrif( "unknown flag %c", (int) arg[i] ); -X break; -X } -X -X--- 446,458 ---- -X printstats = true; -X break; -X -X! case '?': -X! flexinfo(0); -X! break; -X! -X! default: -X! fprintf(stderr,"flex : unknown flag %c\n", (int) arg[i] ); -X! flexinfo(1); -X break; -X } -X -X*************** -X*** 454,459 **** -X--- 460,493 ---- -X ; -X } -X -X+ -X+ /* if you change the default tmp file names don't forget to change the -X+ initialization for i, too ! -X+ -X+ */ -X+ #ifndef SHORT_FILE_NAMES -X+ i = 10; -X+ if (!tmp_action) i += 5; -X+ #else -X+ i = 12; -X+ #endif -X+ if (tmp_action) -X+ i += strlen(tmp_action) + 1; -X+ if((action_file_name = malloc(i+1)) == (char *)0) -X+ flexerror("No memory for action_file_name"); -X+ *action_file_name = (char) NULL; -X+ if (tmp_action) -X+ strcat(action_file_name,tmp_action); -X+ #ifndef SHORT_FILE_NAMES -X+ else -X+ strcat(action_file_name,"/tmp"); -X+ strcat(action_file_name,"/flexXXXXXX"); -X+ #else -X+ if (tmp_action) -X+ strcat(action_file_name,"/"); -X+ strcat(action_file_name,"flexXXXX.tmp"); -X+ #endif -X+ -X if ( (fulltbl || fullspd) && usemecs ) -X flexerror( "full table and -cm don't make sense together" ); -X -X*************** -X*** 520,526 **** -X if ( (skelfile = fopen( skelname, "r" )) == NULL ) -X lerrsf( "can't open skeleton file %s", skelname ); -X -X! (void) mktemp( action_file_name ); -X -X if ( (temp_action_file = fopen( action_file_name, "w" )) == NULL ) -X lerrsf( "can't open temporary action file %s", action_file_name ); -X--- 554,562 ---- -X if ( (skelfile = fopen( skelname, "r" )) == NULL ) -X lerrsf( "can't open skeleton file %s", skelname ); -X -X! #ifndef ATARI && LATTICE -X! (void) mktemp( action_file_name ); -X! #endif -X -X if ( (temp_action_file = fopen( action_file_name, "w" )) == NULL ) -X lerrsf( "can't open temporary action file %s", action_file_name ); -X*************** -X*** 566,571 **** -X--- 602,640 ---- -X } -X -X -X+ flexinfo(status) -X+ int status; -X+ { -X+ fprintf(stderr,"Syntax : FLEX inp_file\n"); -X+ fprintf(stderr,"Function: fast lexical analyzer generator V%s\n",flex_version); -X+ fprintf(stderr,"Options : a dir_path : directory path for temporary files\n"); -X+ fprintf(stderr," - b : generate backtracking information to lex.backtrack\n"); -X+ fprintf(stderr," - c : compressed table, no equiv., no meta equiv.classes\n"); -X+ fprintf(stderr," e : equivalence classes\n"); -X+ fprintf(stderr," F : fast table\n"); -X+ fprintf(stderr," |f : full table\n"); -X+ fprintf(stderr," |m : meta equivalence classes\n"); -X+ fprintf(stderr," - d : generate debugging scanner\n"); -X+ fprintf(stderr," - F : fast table\n"); -X+ fprintf(stderr," - f : full (not compressed) table\n"); -X+ fprintf(stderr," - I : generate interactive scanner\n"); -X+ fprintf(stderr," - i : generate case-insensitive scanner\n"); -X+ fprintf(stderr," - L : supress #line directives\n"); -X+ /* fprintf(stderr," - n hexnum : generate scanner using <hexnum> as newline char.\n");*/ -X+ fprintf(stderr," - p : generate performance report to stderr\n"); -X+ fprintf(stderr," - S skeleton_path : file path for skeleton file\n"); -X+ fprintf(stderr," - s : suppress echo of unmatched scanner input to stdout\n"); -X+ fprintf(stderr," - T : run flex in trace mode\n"); -X+ #ifdef ATARI -X+ fprintf(stderr," - t : place result on stdout instead of lex_yy.c\n"); -X+ #else -X+ fprintf(stderr," - t : place result on stdout instead of lex.yy.c\n"); -X+ #endif -X+ fprintf(stderr," - v : print statistics of generated scanner\n"); -X+ fprintf(stderr," default = -cem\n"); -X+ exit(status); -X+ } -X+ -X /* readin - read in the rules section of the input file(s) -X * -X * synopsis -/ -echo x - scan.l_cdiff -sed '/^X/s///' > scan.l_cdiff << '/' -X*** Src_2.1/scan.l Thu Jun 30 19:42:00 1989 -X--- scan.l Thu Jul 2 22:19:26 1989 -X*************** -X*** 125,132 **** -X -X {SCNAME} RETURNNAME; -X ^{OPTWS}\n ++linenum; /* allows blank lines in section 1 */ -X! \n ++linenum; return ( '\n' ); -X! . synerr( "illegal character" ); BEGIN(RECOVER); -X -X -X <C_COMMENT>"*/" ECHO; BEGIN(0); -X--- 125,136 ---- -X -X {SCNAME} RETURNNAME; -X ^{OPTWS}\n ++linenum; /* allows blank lines in section 1 */ -X! {OPTWS}\n ++linenum; return ( '\n' ); -X! . { -X! synerr( "illegal character" ); -X! fprintf(stderr,"Char : $%x\n",yytext[yyleng-1]); -X! BEGIN(RECOVER); -X! } -X -X -X <C_COMMENT>"*/" ECHO; BEGIN(0); -X*************** -X*** 206,212 **** -X <SECT2>^{OPTWS}\n ++linenum; /* allow blank lines in section 2 */ -X -X /* this horrible mess of a rule matches indented lines which -X! * do not contain "/*". We need to make the distinction because -X * otherwise this rule will be taken instead of the rule which -X * matches the beginning of comments like this one -X */ -X--- 210,216 ---- -X <SECT2>^{OPTWS}\n ++linenum; /* allow blank lines in section 2 */ -X -X /* this horrible mess of a rule matches indented lines which -X! * do not contain '/','*'. We need to make the distinction because -X * otherwise this rule will be taken instead of the rule which -X * matches the beginning of comments like this one -X */ -/ -echo x - Makefile.tos -sed '/^X/s///' > Makefile.tos << '/' -X# make file for "flex" tool -X -X# @(#) $Header: Makefile,v 2.3 89/06/20 17:27:12 vern Exp $ (LBL) -X -X# Porting considerations: -X# -X# For System V Unix machines, add -DSYS_V to CFLAGS. -X# For Vax/VMS, add -DSYS_V to CFLAGS. -X# For MS-DOS, add "-DMS_DOS -DSYS_V" to CFLAGS. Create \tmp if not present. -X# You will also want to rename flex.skel to something with a three -X# character extension, change SKELETON_FILE below appropriately, -X# For Amiga, add "-DAMIGA -DSYS_V" to CFLAGS. -X# -X# A long time ago, flex was successfully built using Microsoft C and -X# the following options: /AL, /stack:10000, -LARGE, -Ml, -Mt128, -DSYS_V -X -X -X# the first time around use "make first_flex" -X -X# The following definitions must be set according to your compiler - -X# examples for a Lattice Compiler with GST assembler and TURBO C with -X# assembler are provided below and must just be updated (don't forget to -X# update the linker argument extension files (*.lnk,*.tlk), too) : -X# -X#CCPATH = path to compiler directory without trailing \ -X#CHPATH = path to header files without trailing \ -X#CC = filename of the compiler -X#CFLAGS = compiler option flags -X#CIEXT = extension of C sources that should be used for input filenames -X#ASMPATH = path to assembler directory without trailing \ -X#ASM = filename of the assembler -X#AFLAGS = assembler option flags -X#AIEXT = extension of assembler sources that should be used for assembler -X# input filenames -X#AEXT = general assembler filename extension -X#LNKPATH = path to linker directory without trailing \ -X#LINK = filename of the linker -X#LFLAG0 = first option (full pathname of C startupcode) -X#LFLAG1 = further options + option flag for argument extension filename -X#LFLAG2 = further options + option flag for output-filename -X#LNKEXT = extension of linker argument extension file -X#OIEXT = extension of objects that should be used for linker input files -X#OEXT = general object file extension -X -X# Lattice definitions -XCCPATH = d:\latt -XCHPATH = d:\latt\include -XCC = lc.ttp -XCFLAGS = -h -n -cw -cc -i$(CHPATH)\ -g$(CCPATH)\ -dLATTICE -dATARI -XCIEXT = -XASMPATH = d:\gst -XASM = assem.ttp -XAFLAGS = -nolist -errors errors.out -XAIEXT = -XAEXT = .asm -XLNKPATH = d:\gst -XLINK = ld.ttp -XLFLAG0 = -XLFLAG1 = -with -XLFLAG2 = -nolist -sec -mem 200 -prog -XLNKEXT = .lnk -XOIEXT = -XOEXT = .bin -X -X# Turbo definitions -X#CCPATH = d:\turbo -X#CHPATH = d:\turbo\include -X#CC = tcc.prg -X#CFLAGS = -GJMPRZ -H=$(CHPATH)\ -w- -DTURBO -DATARI -X#CIEXT = .c -X#ASMPATH = d:\turbo -X#ASM = mas.prg -X#AFLAGS = -X#AIEXT = .s -X#AEXT = .s -X#LNKPATH = d:\turbo -X#LINK = tlink.ttp -X#LFLAG0 = $(LNKPATH)\lib\tcstart.o -X#LFLAG1 = -I= -X#LFLAG2 = -O= -X#LNKEXT = .tlk -X#OIEXT = .o -X#OEXT = .o -X -X# Other definitions -X# (not used for Atari because of short argument string - defined in flexdef.h -X -XSKELETON_DIR = /usr/lib -XSKELETON_FILE = flex.skel -XSKELFLAGS = -DDEFAULT_SKELETON_FILE=\"$(SKELETON_DIR)/$(SKELETON_FILE)\" -X -X -XFLEX = d:\etc\flex.ttp -XFLEX_FLAGS = -is -XYACC = d:\etc\yacc.ttp -XRENAME = d:\bin\rename -XDEL = d:\bin\del -X -X# Internal definitions -XLNK = $(LNKPATH)\$(LINK) -X -XFLEXOBJS = \ -X ccl$(OEXT) \ -X dfa$(OEXT) \ -X ecs$(OEXT) \ -X gen$(OEXT) \ -X main$(OEXT) \ -X misc$(OEXT) \ -X nfa$(OEXT) \ -X parse$(OEXT) \ -X scan$(OEXT) \ -X sym$(OEXT) \ -X tblcmp$(OEXT) \ -X yylex$(OEXT) -X -XFLEX_C_SOURCES = \ -X ccl.c \ -X dfa.c \ -X ecs.c \ -X gen.c \ -X main.c \ -X misc.c \ -X nfa.c \ -X parse.c \ -X scan.c \ -X sym.c \ -X tblcmp.c \ -X yylex.c -X -Xflex : $(FLEXOBJS) -X $(LNK) $(LFLAG0) $(LFLAG1)flex$(LNKEXT) $(LFLAG2)flex.ttp -X -Xfirst_flex: -X cp initscan.c scan.c -X make $(MFLAGS) flex -X -Xparse.h parse.c : parse.y -X $(YACC) -d parse.y -X $(DEL) parse.c -X $(RENAME) y_tab.c parse.c -X $(DEL) parse.h -X $(RENAME) y_tab.h parse.h -X -Xscan.c : scan.l -X $(FLEX) $(FLEX_FLAGS) scan.l -X $(RENAME) lex_yy.c scan.c -X -Xscan$(OEXT) : scan.c parse.h flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) scan$(CIEXT) -X -Xmain$(OEXT) : main.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) main$(CIEXT) -X -Xccl$(OEXT) : ccl.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) ccl$(CIEXT) -X -Xdfa$(OEXT) : dfa.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) dfa$(CIEXT) -X -Xecs$(OEXT) : ecs.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) ecs$(CIEXT) -X -Xgen$(OEXT) : gen.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) gen$(CIEXT) -X -Xmisc$(OEXT) : misc.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) misc$(CIEXT) -X -Xnfa$(OEXT) : nfa.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) nfa$(CIEXT) -X -Xparse$(OEXT) : parse.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) parse$(CIEXT) -X -Xsym$(OEXT) : sym.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) sym$(CIEXT) -X -Xtblcmp$(OEXT) : tblcmp.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) tblcmp$(CIEXT) -X -Xyylex$(OEXT) : yylex.c flexdef.h -X $(CCPATH)\$(CC) $(CFLAGS) yylex$(CIEXT) -X -Xflex.man : flex.1 -X nroff -man flex.1 >flex.man -X -Xlint : $(FLEX_C_SOURCES) -X lint $(FLEX_C_SOURCES) > flex.lint -X -Xdistrib : -X mv scan.c initscan.c -X chmod 444 initscan.c -X $(MAKE) $(MFLAGS) clean -X -Xclean : -X rm -f core errs flex *$(OEXT) parse.c *.lint parse.h flex.man tags -X -Xtags : -X ctags $(FLEX_C_SOURCES) -X -Xvms : flex.man -X $(MAKE) $(MFLAGS) distrib -X -Xtest : -X $(FLEX) $(FLEX_FLAGS) scan.l -X $(RENAME) lex_yy.c scan.ctest -X cmp scan.c scan.ctest -X -/ -echo x - Readme2 -sed '/^X/s///' > Readme2 << '/' -XThe changes: (1.7.89 RAL) -X -X - Bug fix: The original flex didn't like trailing spaces in exclusive start -X condition lists ! If you add an trailing space to line 68 in scan.l -X -X "%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE " -X -X you get a misleading error message: -X -X "Syntax error at line 69: bad start condition list" -X -X This bug can either be fixed in parse.y or in scan.l . I have chosen the -X last because there the fix is minimal: Just change the rule (line 128) -X -X "\n" to "{OPTWS}\n" -X -X - Enhancements: -X - new option "-?" that provides some help information about the other -X flags (main.c) -X - new option "-aTMPPATH" that allows a redefinition of the standard -X path for the temporary file (this might be rather large >200k if -X F,f options are selected). (main.c, flexdef.h (l.376)) -X - hexdump of illegal characters -- this proved to be a useful debugging -X tool especialy if invisible control characters occur which weren't -X covered by the rules. (scan.l fprintf statement line 129,...) -X -X - Patches due to TOS -X - General: TOS uses CR,LF as end of line char., Flex wants only a single -X LF as EOL char. Therefore all I/O must be translated using f* calls. -X This is done everywhere besides the YY_INPUT macro (flex.skel (scan.c), -X line 31) that uses a low level 'read'. This should be definitly changed -X to fread, so that all I/O calls occur on the same level. -X - the short action_file_name has been "flexXXXXXX.tmp", but that's too -X much for TOS,MSDOS ! I changed it to "flexXXXX.tmp" in main.c (patch -X covered by the -a option additions) -X - some compilers don't like external names that are ambiguous within -X the first 8 characters. I defined macros that change all these long -X external names to names that are unique within the first 8 characters. -X Just define SHORT_EXTERNAL_NAMES to use this feature (flexdef.h) -X - some statement changes that some compiler don't like: -X typedef *xxx[] -> typedef **xxx (flexdef.h.,l.308) -X "/*" -> '/','*' within a comment in (scan.l, l.209) -X - changed short "lexyy.c" to "lex_yy.c" what's more similar to the unix -X "lex.yy.c" (main.c). -X - a few further really compiler dependent changes provided with -X #ifdef ATARI && LATTICE res. TURBO braces. -X -X - Additional TOS only files -X - Makefile.tos: Common makefile for all TOS compilers. If you add further -X ones please email me the new makefile. -X - flex.lnk: Lattice - GST linker argument extension file -X - flex.tlk: Turbo linker argument extension file -X -X -XAdditional remarks: -X -XI didn't add a new initscan.c (= flex -ist scan.l). The current one is good -Xenough for a first compilation. With this first version of flex you can -Xrebuild your own scan.c and the final flex version ! -X -XMinix ST : -X - I had to "chmem =70000 cv" (>50000) to get flex linked -X - 'memset' (PC 1.3, EFTH40,...) is necessary -X - chmem =90000 flex may be sufficient -X -XMinix PC : -X It should be possible to port Flex to Minix PC. The current sizes of flex -X are: -X Minix ST (ACK) Lattice (TOS) Turbo (TOS) -X -X size 75300 83305 57957 -X compilation time 22' 15' 3'40" -X flex -is scan.l 1'49" 43" 30" -X -X The Minix ST size includes the bad generated code using only a subset of -X the 68000 commands, long addresses only and a huge relocation table. -X Therefore the PC size will be <64 k ! More serious is the fact that I had -X to chmem =90000 flex to get scan.l converted to scan.c . But I never saw -X a more complex lex source than scan.l -- so it should be possible to -X reduce some array sizes without limitation for all day usage. -X -X No one volunteered yet for a Minix PC port -- but if someone will try it -X I would provide him with a new scan.c and some hints. -X -XTOS: -X Don't forget to adapt the flexskel path within flexdef.h ! -X -X -/ -echo x - flex.lnk -sed '/^X/s///' > flex.lnk << '/' -X* -X* -X* linker control file for flex.ttp -X* -X* -X* -XINPUT d:\latt\lib\startup.bin -X* -XINPUT ccl.bin -XINPUT dfa.bin -XINPUT ecs.bin -XINPUT gen.bin -XINPUT misc.bin -XINPUT nfa.bin -XINPUT parse.bin -XINPUT sym.bin -XINPUT tblcmp.bin -XINPUT main.bin -XINPUT yylex.bin -XINPUT scan.bin -X* -XLIBRARY d:\latt\lib\clib.bin -X -/ -echo x - flex.tlk -sed '/^X/s///' > flex.tlk << '/' -Xccl.o -Xdfa.o -Xecs.o -Xgen.o -Xmisc.o -Xnfa.o -Xparse.o -Xsym.o -Xtblcmp.o -Xyylex.o -Xmain.o -Xscan.o -Xd:\turbo\lib\tcstdlib.lib ; standard lib -Xd:\turbo\lib\tcextlib.lib ; extended lib -Xd:\turbo\lib\tctoslib.lib ; TOS lib -Xd:\turbo\lib\tcgemlib.lib ; AES and VDI lib -X-S=200000 -/ |