* CDECL changed to CVAR for variables

specifications are read in structures also
  + started adding GPC compatibility mode ( option  -Sp)
  * names changed to lowercase
This commit is contained in:
pierre 1998-08-25 12:42:36 +00:00
parent 03ae46b6ca
commit b94116497c
7 changed files with 435 additions and 180 deletions

View File

@ -32,6 +32,7 @@ no_nested_response_file,
no_source_found, no_source_found,
illegal_para, illegal_para,
help_pages_para, help_pages_para,
too_many_cfg_files,
unable_open_file, unable_open_file,
reading_further_from, reading_further_from,
target_is_already_set, target_is_already_set,

View File

@ -5,6 +5,7 @@ nested response files are not supported
No source file name in command line No source file name in command line
Illegal parameter: $1 Illegal parameter: $1
-? writes help pages -? writes help pages
Too many config files nested
Unable to open file $1 Unable to open file $1
Reading further options from $1 Reading further options from $1
Target is already set to: $1 Target is already set to: $1

View File

@ -1,149 +1,340 @@
const optiontxt : array[0..00021,1..240] of char=( const optiontxt : array[1..05077] of char=(
' [options] <inputfile> [options]'#000+ ' ','[','o','p','t','i','o','n','s',']',' ','<','i','n','p',
'Only one source file supported'#000+ 'u','t','f','i','l','e','>',' ','[','o','p','t','i','o','n',
'DEF file can be created only for OS/2'#000+ 's',']',#000,'O','n','l','y',' ','o','n','e',' ','s','o','u',
'nested response files are not supported'#000+ 'r','c','e',' ','f','i','l','e',' ','s','u','p','p','o','r',
'No source file name in command line'#000+ 't','e','d',#000,'D','E','F',' ','f','i','l','e',' ','c','a',
'Illegal parameter: $1'#000+ 'n',' ','b','e',' ','c','r','e','a','t','e','d',' ','o','n',
'-? writes help pages'#000+ 'l','y',' ','f','o','r',' ','O','S','/','2',#000,'n','e','s',
'Unable to open file',' $1'#000+ 't','e','d',' ','r','e','s','p','o','n','s','e',' ','f','i',
'Reading further options from $1'#000+ 'l','e','s',' ','a','r','e',' ','n','o','t',' ','s','u','p',
'Target is already set to: $1'#000+ 'p','o','r','t','e','d',#000,'N','o',' ','s','o','u','r','c',
'Shared libs not supported on DOS platform, reverting to static'#000+ 'e',' ','f','i','l','e',' ','n','a','m','e',' ','i','n',' ',
'too many IF(N)DEFs'#000+ 'c','o','m','m','a','n','d',' ','l','i','n','e',#000,'I','l',
'too many ENDIFs'#000+ 'l','e','g','a','l',' ','p','a','r','a','m','e','t','e','r',
'open conditional at the end of the file'#000+ ':',' ','$','1',#000,'-','?',' ','w','r','i','t','e','s',' ',
'Debug information generation is not s','upported by this executable'#000+ 'h','e','l','p',' ','p','a','g','e','s',#000,'T','o','o',' ',
'Try recompiling with -dGDB'#000+ 'm','a','n','y',' ','c','o','n','f','i','g',' ','f','i','l',
'Free Pascal Compiler version $VER for $TARGET'#000+ 'e','s',' ','n','e','s','t','e','d',#000,'U','n','a','b','l',
'Copyright (c) 1993-98 by Florian Klaempfl'#000+ 'e',' ','t','o',' ','o','p','e','n',' ','f','i','l','e',' ',
'Free Pascal Compiler version $VER'#000+ '$','1',#000,'R','e','a','d','i','n','g',' ','f','u','r','t',
#000+ 'h','e','r',' ','o','p','t','i','o','n','s',' ','f','r','o',
'This program comes under the GNU General Public Licence'#000+ 'm',' ','$','1',#000,'T','a','r','g','e','t',' ','i','s',' ',
'For mo','re information read COPYING'#000+ 'a','l','r','e','a','d','y',' ','s','e','t',' ','t','o',':',
#000+ ' ','$','1',#000,'S','h','a','r','e','d',' ','l','i','b','s',
'Report bugs,suggestions etc to:'#000+ ' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',' ',
' ba2395@fen.baynet.de'#000+ 'o','n',' ','D','O','S',' ','p','l','a','t','f','o','r','m',
'**0*_+ switch option on, - off'#000+ ',',' ','r','e','v','e','r','t','i','n','g',' ','t','o',' ',
'**1a_the compiler doesn'#039't delete the generated assembler file'#000+ 's','t','a','t','i','c',#000,'t','o','o',' ','m','a','n','y',
'*t1b_use EMS'#000+ ' ','I','F','(','N',')','D','E','F','s',#000,'t','o','o',' ',
'**1B+_build'#000+ 'm','a','n','y',' ','E','N','D','I','F','s',#000,'o','p','e',
'**1C_code generation opt','ions'#000+ 'n',' ','c','o','n','d','i','t','i','o','n','a','l',' ','a',
'**2Ca_not implemented'#000+ 't',' ','t','h','e',' ','e','n','d',' ','o','f',' ','t','h',
'**2Ce_not implemented'#000+ 'e',' ','f','i','l','e',#000,'D','e','b','u','g',' ','i','n',
'3*2CD_Dynamic linking'#000+ 'f','o','r','m','a','t','i','o','n',' ','g','e','n','e','r',
'**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#000+ 'a','t','i','o','n',' ','i','s',' ','n','o','t',' ','s','u',
'**2Ci_IO-checking'#000+ 'p','p','o','r','t','e','d',' ','b','y',' ','t','h','i','s',
'**2Cn_omit linking stage'#000+ ' ','e','x','e','c','u','t','a','b','l','e',#000,'T','r','y',
'**2Co_check overflow of integer operations'#000+ ' ','r','e','c','o','m','p','i','l','i','n','g',' ','w','i',
'**2Cr_range checking'#000+ 't','h',' ','-','d','G','D','B',#000,'F','r','e','e',' ','P',
'*O2Cs<n>_s','et stack size to <n>'#000+ 'a','s','c','a','l',' ','C','o','m','p','i','l','e','r',' ',
'**2Ct_stack checking'#000+ 'v','e','r','s','i','o','n',' ','$','V','E','R',' ','f','o',
'3*2CS_static linking'#000+ 'r',' ','$','T','A','R','G','E','T',#000,'C','o','p','y','r',
'**1d<x>_defines the symbol <x>'#000+ 'i','g','h','t',' ','(','c',')',' ','1','9','9','3','-','9',
'*O1D_controls the generation of DEF file (only OS/2)'#000+ '8',' ','b','y',' ','F','l','o','r','i','a','n',' ','K','l',
'*O2Dd<x>_set description to <x>'#000+ 'a','e','m','p','f','l',#000,'F','r','e','e',' ','P','a','s',
'*O2Do_generate DEF file'#000+ 'c','a','l',' ','C','o','m','p','i','l','e','r',' ','v','e',
'*O2Dw_PM application'#000+ 'r','s','i','o','n',' ','$','V','E','R',#000,#000,'T','h','i',
'*L1e<x>_set path',' to executables'#000+ 's',' ','p','r','o','g','r','a','m',' ','c','o','m','e','s',
'**1E_same as -Cn'#000+ ' ','u','n','d','e','r',' ','t','h','e',' ','G','N','U',' ',
'**1g_generate debugger information'#000+ 'G','e','n','e','r','a','l',' ','P','u','b','l','i','c',' ',
'**1F_set file names and paths'#000+ 'L','i','c','e','n','c','e',#000,'F','o','r',' ','m','o','r',
'**2Fe<x>_redirect error output to <x>'#000+ 'e',' ','i','n','f','o','r','m','a','t','i','o','n',' ','r',
'*L2Fg<x>_<x> search path for the GNU C lib'#000+ 'e','a','d',' ','C','O','P','Y','I','N','G',#000,#000,'R','e',
'*L2Fr<x>_<x> search path for the error message file'#000+ 'p','o','r','t',' ','b','u','g','s',',','s','u','g','g','e',
'**2Fi<x>_','adds <x> to include path'#000+ 's','t','i','o','n','s',' ','e','t','c',' ','t','o',':',#000,
'**2Fl<x>_adds <x> to library path'#000+ ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
'*L2FL<x>_uses <x> as dynamic linker'#000+ ' ','b','a','2','3','9','5','@','f','e','n','.','b','a','y',
'**2Fu<x>_adds <x> to unit path'#000+ 'n','e','t','.','d','e',#000,'*','*','0','*','_','+',' ','s',
'**1k<x>_Pass <x> to the linker'#000+ 'w','i','t','c','h',' ','o','p','t','i','o','n',' ','o','n',
'**1L_set language'#000+ ',',' ','-',' ','o','f','f',#000,'*','*','1','a','_','t','h',
'**2LD_German'#000+ 'e',' ','c','o','m','p','i','l','e','r',' ','d','o','e','s',
'**2LE_English'#000+ 'n',#039,'t',' ','d','e','l','e','t','e',' ','t','h','e',' ',
'**2LN_Dutch'#000+ 'g','e','n','e','r','a','t','e','d',' ','a','s','s','e','m',
'**1l_write logo'#000+ 'b','l','e','r',' ','f','i','l','e',#000,'*','t','1','b','_',
'**1i_infor','mation'#000+ 'u','s','e',' ','E','M','S',#000,'*','*','1','B','+','_','b',
'**1n_don'#039't read the default config file'#000+ 'u','i','l','d',#000,'*','*','1','C','_','c','o','d','e',' ',
'**1o<x>_change the name of the executable produced to <x>'#000+ 'g','e','n','e','r','a','t','i','o','n',' ','o','p','t','i',
'**1pg_generate profile code for gprof'#000+ 'o','n','s',#000,'*','*','2','C','a','_','n','o','t',' ','i',
'*L1P_use pipes instead of creating temporary assembler files'#000+ 'm','p','l','e','m','e','n','t','e','d',#000,'*','*','2','C',
'**1S_syntax options'#000+ 'e','_','n','o','t',' ','i','m','p','l','e','m','e','n','t',
'**2S2_switch som','e Delphi 2 extension on'#000+ 'e','d',#000,'3','*','2','C','D','_','D','y','n','a','m','i',
'**2Sc_supports operators like C (*=,+=,/= and -=)'#000+ 'c',' ','l','i','n','k','i','n','g',#000,'*','*','2','C','h',
'**2Sd_compiler disposes asm lists (uses less memory but slower)'#000+ '<','n','>','_','<','n','>',' ','b','y','t','e','s',' ','h',
'**2Se_compiler stops after the first error'#000+ 'e','a','p',' ','(','b','e','t','w','e','e','n',' ','1','0',
'**2Sg_allows LABEL and GOTO'#000+ '2','3',' ','a','n','d',' ','6','7','1','0','7','8','4','0',
'**2Si_support C++ stlyed INLINE',#000+ ')',#000,'*','*','2','C','i','_','I','O','-','c','h','e','c',
'**2Sm_support macros like C (global)'#000+ 'k','i','n','g',#000,'*','*','2','C','n','_','o','m','i','t',
'**2So_tries to be TP/BP 7.0 compatible'#000+ ' ','l','i','n','k','i','n','g',' ','s','t','a','g','e',#000,
'**2Ss_constructor name must be init (destructor must be done)'#000+ '*','*','2','C','o','_','c','h','e','c','k',' ','o','v','e',
'**2St_allows static keyword in objects'#000+ 'r','f','l','o','w',' ','o','f',' ','i','n','t','e','g','e',
'**1s_don'#039't call assembler and linker (only with -a)'#000+ 'r',' ','o','p','e','r','a','t','i','o','n','s',#000,'*','*',
'**1T<x>_Ta','rget operating system'#000+ '2','C','r','_','r','a','n','g','e',' ','c','h','e','c','k',
'3*2TGO32V1_version 1 of DJ Delorie DOS extender'#000+ 'i','n','g',#000,'*','O','2','C','s','<','n','>','_','s','e',
'3*2TGO32V2_version 2 of DJ Delorie DOS extender'#000+ 't',' ','s','t','a','c','k',' ','s','i','z','e',' ','t','o',
'3*2TLINUX_Linux'#000+ ' ','<','n','>',#000,'*','*','2','C','t','_','s','t','a','c',
'3*2TOS2_OS/2 2.x'#000+ 'k',' ','c','h','e','c','k','i','n','g',#000,'3','*','2','C',
'3*2TWin32_Windows 32 Bit'#000+ 'S','_','s','t','a','t','i','c',' ','l','i','n','k','i','n',
'6*2TAMIGA_Commodore Amiga'#000+ 'g',#000,'*','*','1','d','<','x','>','_','d','e','f','i','n',
'6*2TATARI_Atari ST/STe/TT'#000+ 'e','s',' ','t','h','e',' ','s','y','m','b','o','l',' ','<',
'6*2TMACOS_Ma','cintosh m68k'#000+ 'x','>',#000,'*','O','1','D','_','c','o','n','t','r','o','l',
'6*2TLINUX_Linux-68k'#000+ 's',' ','t','h','e',' ','g','e','n','e','r','a','t','i','o',
'**1u<x>_undefines the symbol <x>'#000+ 'n',' ','o','f',' ','D','E','F',' ','f','i','l','e',' ','(',
'**1U_unit options'#000+ 'o','n','l','y',' ','O','S','/','2',')',#000,'*','O','2','D',
'**2Uls_make static library from unit'#000+ 'd','<','x','>','_','s','e','t',' ','d','e','s','c','r','i',
'**2Uld_make dynamic library from unit'#000+ 'p','t','i','o','n',' ','t','o',' ','<','x','>',#000,'*','O',
'**2Un_don'#039't check the unit name'#000+ '2','D','o','_','g','e','n','e','r','a','t','e',' ','D','E',
'**2Up<x>_same as -Fu<x>'#000+ 'F',' ','f','i','l','e',#000,'*','O','2','D','w','_','P','M',
'**2Us_compile a system un','it'#000+ ' ','a','p','p','l','i','c','a','t','i','o','n',#000,'*','L',
'**1v<x>_Be verbose. <x> is a combination of the following letters :'#000+ '1','e','<','x','>','_','s','e','t',' ','p','a','t','h',' ',
'**2*_e : Show errors (default) d : Show debug info'#000+ 't','o',' ','e','x','e','c','u','t','a','b','l','e','s',#000,
'**2*_w : Show warnings u : Show used files'#000+ '*','*','1','E','_','s','a','m','e',' ','a','s',' ','-','C',
'**2*_n : Show notes t : Show tried fil','es'#000+ 'n',#000,'*','*','1','g','_','g','e','n','e','r','a','t','e',
'**2*_h : Show hints m : Show defined macros'#000+ ' ','d','e','b','u','g','g','e','r',' ','i','n','f','o','r',
'**2*_i : Show general info p : Show compiled procedures'#000+ 'm','a','t','i','o','n',#000,'*','*','1','F','_','s','e','t',
'**2*_l : Show linenumbers c : Show conditionals'#000+ ' ','f','i','l','e',' ','n','a','m','e','s',' ','a','n','d',
'**2*_a : Show everything 0 : Show nothi','ng (except errors'+ ' ','p','a','t','h','s',#000,'*','*','2','F','e','<','x','>',
')'#000+ '_','r','e','d','i','r','e','c','t',' ','e','r','r','o','r',
'**1X_executable options'#000+ ' ','o','u','t','p','u','t',' ','t','o',' ','<','x','>',#000,
'*L2Xc_link with the c library'#000+ '*','L','2','F','g','<','x','>','_','<','x','>',' ','s','e',
'**2Xs_strip all symbols from executable'#000+ 'a','r','c','h',' ','p','a','t','h',' ','f','o','r',' ','t',
'**0*_Processor specific options:'#000+ 'h','e',' ','G','N','U',' ','C',' ','l','i','b',#000,'*','L',
'3*1A_output format'#000+ '2','F','r','<','x','>','_','<','x','>',' ','s','e','a','r',
'3*2Ao_coff file using GNU AS'#000+ 'c','h',' ','p','a','t','h',' ','f','o','r',' ','t','h','e',
'3*2Anasmcoff_coff file using Nasm'#000+ ' ','e','r','r','o','r',' ','m','e','s','s','a','g','e',' ',
'3*2Anasmelf_','elf32 (linux) file using Nasm'#000+ 'f','i','l','e',#000,'*','*','2','F','i','<','x','>','_','a',
'3*2Anasmobj_obj file using Nasm'#000+ 'd','d','s',' ','<','x','>',' ','t','o',' ','i','n','c','l',
'3*2Amasm_obj using Masm (Mircosoft)'#000+ 'u','d','e',' ','p','a','t','h',#000,'*','*','2','F','l','<',
'3*2Atasm_obj using Tasm (Borland)'#000+ 'x','>','_','a','d','d','s',' ','<','x','>',' ','t','o',' ',
'3*1R_assembler reading style'#000+ 'l','i','b','r','a','r','y',' ','p','a','t','h',#000,'*','L',
'3*2Ratt_read AT&T style assembler'#000+ '2','F','L','<','x','>','_','u','s','e','s',' ','<','x','>',
'3*2Rintel_read Intel style assembler'#000+ ' ','a','s',' ','d','y','n','a','m','i','c',' ','l','i','n',
'3*2Rdire','ct_copy assembler text directly to assembler file'#000+ 'k','e','r',#000,'*','*','2','F','u','<','x','>','_','a','d',
'3*1O<x>_optimizations'#000+ 'd','s',' ','<','x','>',' ','t','o',' ','u','n','i','t',' ',
'3*2Og_generate smaller code'#000+ 'p','a','t','h',#000,'*','*','1','k','<','x','>','_','P','a',
'3*2OG_generate faster code (default)'#000+ 's','s',' ','<','x','>',' ','t','o',' ','t','h','e',' ','l',
'3*2Or_keep certain variables in registers (still BUGGY!!!)'#000+ 'i','n','k','e','r',#000,'*','*','1','L','_','s','e','t',' ',
'3*2Ou_enable uncertain optimizations (see do','cs)'#000+ 'l','a','n','g','u','a','g','e',#000,'*','*','2','L','D','_',
'3*2O1_level 1 optimizations (quick optimizations)'#000+ 'G','e','r','m','a','n',#000,'*','*','2','L','E','_','E','n',
'3*2O2_level 2 optimizations (-O1 + slower optimizations)'#000+ 'g','l','i','s','h',#000,'*','*','2','L','N','_','D','u','t',
'3*2O3_level 3 optimizations (same as -O2u)'#000+ 'c','h',#000,'*','*','1','l','_','w','r','i','t','e',' ','l',
'3*2Op_target processor'#000+ 'o','g','o',#000,'*','*','1','i','_','i','n','f','o','r','m',
'3*3Op1_set target processor to 386/486'#000+ 'a','t','i','o','n',#000,'*','*','1','n','_','d','o','n',#039,
'3*3Op2_set target proces','sor to Pentium/PentiumMMX (tm)'#000+ 't',' ','r','e','a','d',' ','t','h','e',' ','d','e','f','a',
'3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#000+ 'u','l','t',' ','c','o','n','f','i','g',' ','f','i','l','e',
'6*1A_output format'#000+ #000,'*','*','1','o','<','x','>','_','c','h','a','n','g','e',
'6*2Ao_Unix o-file using GNU AS'#000+ ' ','t','h','e',' ','n','a','m','e',' ','o','f',' ','t','h',
'6*2Agas_GNU Motorola assembler'#000+ 'e',' ','e','x','e','c','u','t','a','b','l','e',' ','p','r',
'6*2Amit_MIT Syntax (old GAS)'#000+ 'o','d','u','c','e','d',' ','t','o',' ','<','x','>',#000,'*',
'6*2Amot_Standard Motorola assembler'#000+ '*','1','p','g','_','g','e','n','e','r','a','t','e',' ','p',
'6*1O_opti','mizations'#000+ 'r','o','f','i','l','e',' ','c','o','d','e',' ','f','o','r',
'6*2Oa_turn on the optimizer'#000+ ' ','g','p','r','o','f',#000,'*','L','1','P','_','u','s','e',
'6*2Og_generate smaller code'#000+ ' ','p','i','p','e','s',' ','i','n','s','t','e','a','d',' ',
'6*2OG_generate faster code (default)'#000+ 'o','f',' ','c','r','e','a','t','i','n','g',' ','t','e','m',
'6*2Ox_optimize maximum (still BUGGY!!!)'#000+ 'p','o','r','a','r','y',' ','a','s','s','e','m','b','l','e',
'6*2O2_set target processor to a MC68020+'#000+ 'r',' ','f','i','l','e','s',#000,'*','*','1','S','_','s','y',
'**1*_'#000+ 'n','t','a','x',' ','o','p','t','i','o','n','s',#000,'*','*',
'**1?_shows this help'#000+ '2','S','2','_','s','w','i','t','c','h',' ','s','o','m','e',
'**1h_shows this help without ','waiting'#000 ' ','D','e','l','p','h','i',' ','2',' ','e','x','t','e','n',
); 's','i','o','n',' ','o','n',#000,'*','*','2','S','c','_','s',
'u','p','p','o','r','t','s',' ','o','p','e','r','a','t','o',
'r','s',' ','l','i','k','e',' ','C',' ','(','*','=',',','+',
'=',',','/','=',' ','a','n','d',' ','-','=',')',#000,'*','*',
'2','S','d','_','c','o','m','p','i','l','e','r',' ','d','i',
's','p','o','s','e','s',' ','a','s','m',' ','l','i','s','t',
's',' ','(','u','s','e','s',' ','l','e','s','s',' ','m','e',
'm','o','r','y',' ','b','u','t',' ','s','l','o','w','e','r',
')',#000,'*','*','2','S','e','_','c','o','m','p','i','l','e',
'r',' ','s','t','o','p','s',' ','a','f','t','e','r',' ','t',
'h','e',' ','f','i','r','s','t',' ','e','r','r','o','r',#000,
'*','*','2','S','g','_','a','l','l','o','w','s',' ','L','A',
'B','E','L',' ','a','n','d',' ','G','O','T','O',#000,'*','*',
'2','S','i','_','s','u','p','p','o','r','t',' ','C','+','+',
' ','s','t','l','y','e','d',' ','I','N','L','I','N','E',#000,
'*','*','2','S','m','_','s','u','p','p','o','r','t',' ','m',
'a','c','r','o','s',' ','l','i','k','e',' ','C',' ','(','g',
'l','o','b','a','l',')',#000,'*','*','2','S','o','_','t','r',
'i','e','s',' ','t','o',' ','b','e',' ','T','P','/','B','P',
' ','7','.','0',' ','c','o','m','p','a','t','i','b','l','e',
#000,'*','*','2','S','s','_','c','o','n','s','t','r','u','c',
't','o','r',' ','n','a','m','e',' ','m','u','s','t',' ','b',
'e',' ','i','n','i','t',' ','(','d','e','s','t','r','u','c',
't','o','r',' ','m','u','s','t',' ','b','e',' ','d','o','n',
'e',')',#000,'*','*','2','S','t','_','a','l','l','o','w','s',
' ','s','t','a','t','i','c',' ','k','e','y','w','o','r','d',
' ','i','n',' ','o','b','j','e','c','t','s',#000,'*','*','1',
's','_','d','o','n',#039,'t',' ','c','a','l','l',' ','a','s',
's','e','m','b','l','e','r',' ','a','n','d',' ','l','i','n',
'k','e','r',' ','(','o','n','l','y',' ','w','i','t','h',' ',
'-','a',')',#000,'*','*','1','T','<','x','>','_','T','a','r',
'g','e','t',' ','o','p','e','r','a','t','i','n','g',' ','s',
'y','s','t','e','m',#000,'3','*','2','T','G','O','3','2','V',
'1','_','v','e','r','s','i','o','n',' ','1',' ','o','f',' ',
'D','J',' ','D','e','l','o','r','i','e',' ','D','O','S',' ',
'e','x','t','e','n','d','e','r',#000,'3','*','2','T','G','O',
'3','2','V','2','_','v','e','r','s','i','o','n',' ','2',' ',
'o','f',' ','D','J',' ','D','e','l','o','r','i','e',' ','D',
'O','S',' ','e','x','t','e','n','d','e','r',#000,'3','*','2',
'T','L','I','N','U','X','_','L','i','n','u','x',#000,'3','*',
'2','T','O','S','2','_','O','S','/','2',' ','2','.','x',#000,
'3','*','2','T','W','i','n','3','2','_','W','i','n','d','o',
'w','s',' ','3','2',' ','B','i','t',#000,'6','*','2','T','A',
'M','I','G','A','_','C','o','m','m','o','d','o','r','e',' ',
'A','m','i','g','a',#000,'6','*','2','T','A','T','A','R','I',
'_','A','t','a','r','i',' ','S','T','/','S','T','e','/','T',
'T',#000,'6','*','2','T','M','A','C','O','S','_','M','a','c',
'i','n','t','o','s','h',' ','m','6','8','k',#000,'6','*','2',
'T','L','I','N','U','X','_','L','i','n','u','x','-','6','8',
'k',#000,'*','*','1','u','<','x','>','_','u','n','d','e','f',
'i','n','e','s',' ','t','h','e',' ','s','y','m','b','o','l',
' ','<','x','>',#000,'*','*','1','U','_','u','n','i','t',' ',
'o','p','t','i','o','n','s',#000,'*','*','2','U','l','s','_',
'm','a','k','e',' ','s','t','a','t','i','c',' ','l','i','b',
'r','a','r','y',' ','f','r','o','m',' ','u','n','i','t',#000,
'*','*','2','U','l','d','_','m','a','k','e',' ','d','y','n',
'a','m','i','c',' ','l','i','b','r','a','r','y',' ','f','r',
'o','m',' ','u','n','i','t',#000,'*','*','2','U','n','_','d',
'o','n',#039,'t',' ','c','h','e','c','k',' ','t','h','e',' ',
'u','n','i','t',' ','n','a','m','e',#000,'*','*','2','U','p',
'<','x','>','_','s','a','m','e',' ','a','s',' ','-','F','u',
'<','x','>',#000,'*','*','2','U','s','_','c','o','m','p','i',
'l','e',' ','a',' ','s','y','s','t','e','m',' ','u','n','i',
't',#000,'*','*','1','v','<','x','>','_','B','e',' ','v','e',
'r','b','o','s','e','.',' ','<','x','>',' ','i','s',' ','a',
' ','c','o','m','b','i','n','a','t','i','o','n',' ','o','f',
' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ',
'l','e','t','t','e','r','s',' ',':',#000,'*','*','2','*','_',
'e',' ',':',' ','S','h','o','w',' ','e','r','r','o','r','s',
' ','(','d','e','f','a','u','l','t',')',' ',' ',' ',' ',' ',
' ',' ','d',' ',':',' ','S','h','o','w',' ','d','e','b','u',
'g',' ','i','n','f','o',#000,'*','*','2','*','_','w',' ',':',
' ','S','h','o','w',' ','w','a','r','n','i','n','g','s',' ',
' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','u',
' ',':',' ','S','h','o','w',' ','u','s','e','d',' ','f','i',
'l','e','s',#000,'*','*','2','*','_','n',' ',':',' ','S','h',
'o','w',' ','n','o','t','e','s',' ',' ',' ',' ',' ',' ',' ',
' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','t',' ',':',' ',
'S','h','o','w',' ','t','r','i','e','d',' ','f','i','l','e',
's',#000,'*','*','2','*','_','h',' ',':',' ','S','h','o','w',
' ','h','i','n','t','s',' ',' ',' ',' ',' ',' ',' ',' ',' ',
' ',' ',' ',' ',' ',' ',' ',' ',' ','m',' ',':',' ','S','h',
'o','w',' ','d','e','f','i','n','e','d',' ','m','a','c','r',
'o','s',#000,'*','*','2','*','_','i',' ',':',' ','S','h','o',
'w',' ','g','e','n','e','r','a','l',' ','i','n','f','o',' ',
' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','p',' ',':',' ','S',
'h','o','w',' ','c','o','m','p','i','l','e','d',' ','p','r',
'o','c','e','d','u','r','e','s',#000,'*','*','2','*','_','l',
' ',':',' ','S','h','o','w',' ','l','i','n','e','n','u','m',
'b','e','r','s',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
' ','c',' ',':',' ','S','h','o','w',' ','c','o','n','d','i',
't','i','o','n','a','l','s',#000,'*','*','2','*','_','a',' ',
':',' ','S','h','o','w',' ','e','v','e','r','y','t','h','i',
'n','g',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
'0',' ',':',' ','S','h','o','w',' ','n','o','t','h','i','n',
'g',' ','(','e','x','c','e','p','t',' ','e','r','r','o','r',
's',')',#000,'*','*','1','X','_','e','x','e','c','u','t','a',
'b','l','e',' ','o','p','t','i','o','n','s',#000,'*','L','2',
'X','c','_','l','i','n','k',' ','w','i','t','h',' ','t','h',
'e',' ','c',' ','l','i','b','r','a','r','y',#000,'*','*','2',
'X','s','_','s','t','r','i','p',' ','a','l','l',' ','s','y',
'm','b','o','l','s',' ','f','r','o','m',' ','e','x','e','c',
'u','t','a','b','l','e',#000,'*','*','0','*','_','P','r','o',
'c','e','s','s','o','r',' ','s','p','e','c','i','f','i','c',
' ','o','p','t','i','o','n','s',':',#000,'3','*','1','A','_',
'o','u','t','p','u','t',' ','f','o','r','m','a','t',#000,'3',
'*','2','A','o','_','c','o','f','f',' ','f','i','l','e',' ',
'u','s','i','n','g',' ','G','N','U',' ','A','S',#000,'3','*',
'2','A','n','a','s','m','c','o','f','f','_','c','o','f','f',
' ','f','i','l','e',' ','u','s','i','n','g',' ','N','a','s',
'm',#000,'3','*','2','A','n','a','s','m','e','l','f','_','e',
'l','f','3','2',' ','(','l','i','n','u','x',')',' ','f','i',
'l','e',' ','u','s','i','n','g',' ','N','a','s','m',#000,'3',
'*','2','A','n','a','s','m','o','b','j','_','o','b','j',' ',
'f','i','l','e',' ','u','s','i','n','g',' ','N','a','s','m',
#000,'3','*','2','A','m','a','s','m','_','o','b','j',' ','u',
's','i','n','g',' ','M','a','s','m',' ','(','M','i','r','c',
'o','s','o','f','t',')',#000,'3','*','2','A','t','a','s','m',
'_','o','b','j',' ','u','s','i','n','g',' ','T','a','s','m',
' ','(','B','o','r','l','a','n','d',')',#000,'3','*','1','R',
'_','a','s','s','e','m','b','l','e','r',' ','r','e','a','d',
'i','n','g',' ','s','t','y','l','e',#000,'3','*','2','R','a',
't','t','_','r','e','a','d',' ','A','T','&','T',' ','s','t',
'y','l','e',' ','a','s','s','e','m','b','l','e','r',#000,'3',
'*','2','R','i','n','t','e','l','_','r','e','a','d',' ','I',
'n','t','e','l',' ','s','t','y','l','e',' ','a','s','s','e',
'm','b','l','e','r',#000,'3','*','2','R','d','i','r','e','c',
't','_','c','o','p','y',' ','a','s','s','e','m','b','l','e',
'r',' ','t','e','x','t',' ','d','i','r','e','c','t','l','y',
' ','t','o',' ','a','s','s','e','m','b','l','e','r',' ','f',
'i','l','e',#000,'3','*','1','O','<','x','>','_','o','p','t',
'i','m','i','z','a','t','i','o','n','s',#000,'3','*','2','O',
'g','_','g','e','n','e','r','a','t','e',' ','s','m','a','l',
'l','e','r',' ','c','o','d','e',#000,'3','*','2','O','G','_',
'g','e','n','e','r','a','t','e',' ','f','a','s','t','e','r',
' ','c','o','d','e',' ','(','d','e','f','a','u','l','t',')',
#000,'3','*','2','O','r','_','k','e','e','p',' ','c','e','r',
't','a','i','n',' ','v','a','r','i','a','b','l','e','s',' ',
'i','n',' ','r','e','g','i','s','t','e','r','s',' ','(','s',
't','i','l','l',' ','B','U','G','G','Y','!','!','!',')',#000,
'3','*','2','O','u','_','e','n','a','b','l','e',' ','u','n',
'c','e','r','t','a','i','n',' ','o','p','t','i','m','i','z',
'a','t','i','o','n','s',' ','(','s','e','e',' ','d','o','c',
's',')',#000,'3','*','2','O','1','_','l','e','v','e','l',' ',
'1',' ','o','p','t','i','m','i','z','a','t','i','o','n','s',
' ','(','q','u','i','c','k',' ','o','p','t','i','m','i','z',
'a','t','i','o','n','s',')',#000,'3','*','2','O','2','_','l',
'e','v','e','l',' ','2',' ','o','p','t','i','m','i','z','a',
't','i','o','n','s',' ','(','-','O','1',' ','+',' ','s','l',
'o','w','e','r',' ','o','p','t','i','m','i','z','a','t','i',
'o','n','s',')',#000,'3','*','2','O','3','_','l','e','v','e',
'l',' ','3',' ','o','p','t','i','m','i','z','a','t','i','o',
'n','s',' ','(','s','a','m','e',' ','a','s',' ','-','O','2',
'u',')',#000,'3','*','2','O','p','_','t','a','r','g','e','t',
' ','p','r','o','c','e','s','s','o','r',#000,'3','*','3','O',
'p','1','_','s','e','t',' ','t','a','r','g','e','t',' ','p',
'r','o','c','e','s','s','o','r',' ','t','o',' ','3','8','6',
'/','4','8','6',#000,'3','*','3','O','p','2','_','s','e','t',
' ','t','a','r','g','e','t',' ','p','r','o','c','e','s','s',
'o','r',' ','t','o',' ','P','e','n','t','i','u','m','/','P',
'e','n','t','i','u','m','M','M','X',' ','(','t','m',')',#000,
'3','*','3','O','p','3','_','s','e','t',' ','t','a','r','g',
'e','t',' ','p','r','o','c','e','s','s','o','r',' ','t','o',
' ','P','P','r','o','/','P','I','I','/','c','6','x','8','6',
'/','K','6',' ','(','t','m',')',#000,'6','*','1','A','_','o',
'u','t','p','u','t',' ','f','o','r','m','a','t',#000,'6','*',
'2','A','o','_','U','n','i','x',' ','o','-','f','i','l','e',
' ','u','s','i','n','g',' ','G','N','U',' ','A','S',#000,'6',
'*','2','A','g','a','s','_','G','N','U',' ','M','o','t','o',
'r','o','l','a',' ','a','s','s','e','m','b','l','e','r',#000,
'6','*','2','A','m','i','t','_','M','I','T',' ','S','y','n',
't','a','x',' ','(','o','l','d',' ','G','A','S',')',#000,'6',
'*','2','A','m','o','t','_','S','t','a','n','d','a','r','d',
' ','M','o','t','o','r','o','l','a',' ','a','s','s','e','m',
'b','l','e','r',#000,'6','*','1','O','_','o','p','t','i','m',
'i','z','a','t','i','o','n','s',#000,'6','*','2','O','a','_',
't','u','r','n',' ','o','n',' ','t','h','e',' ','o','p','t',
'i','m','i','z','e','r',#000,'6','*','2','O','g','_','g','e',
'n','e','r','a','t','e',' ','s','m','a','l','l','e','r',' ',
'c','o','d','e',#000,'6','*','2','O','G','_','g','e','n','e',
'r','a','t','e',' ','f','a','s','t','e','r',' ','c','o','d',
'e',' ','(','d','e','f','a','u','l','t',')',#000,'6','*','2',
'O','x','_','o','p','t','i','m','i','z','e',' ','m','a','x',
'i','m','u','m',' ','(','s','t','i','l','l',' ','B','U','G',
'G','Y','!','!','!',')',#000,'6','*','2','O','2','_','s','e',
't',' ','t','a','r','g','e','t',' ','p','r','o','c','e','s',
's','o','r',' ','t','o',' ','a',' ','M','C','6','8','0','2',
'0','+',#000,'*','*','1','*','_',#000,'*','*','1','?','_','s',
'h','o','w','s',' ','t','h','i','s',' ','h','e','l','p',#000,
'*','*','1','h','_','s','h','o','w','s',' ','t','h','i','s',
' ','h','e','l','p',' ','w','i','t','h','o','u','t',' ','w',
'a','i','t','i','n','g',#000);

View File

@ -205,7 +205,8 @@ unit pdecl;
{$endif i386} {$endif i386}
{ c var } { c var }
Csym : pvarsym; Csym : pvarsym;
is_cdecl,extern_Csym,export_Csym : boolean; newtype : ptypesym;
is_gpc_name,is_cdecl,extern_Csym,export_Csym : boolean;
C_name : string; C_name : string;
{ case } { case }
p,casedef : pdef; p,casedef : pdef;
@ -216,6 +217,7 @@ unit pdecl;
begin begin
old_block_type:=block_type; old_block_type:=block_type;
block_type:=bt_type; block_type:=bt_type;
is_gpc_name:=false;
{ Force an expected ID error message } { Force an expected ID error message }
if not (token in [ID,_CASE,_END]) then if not (token in [ID,_CASE,_END]) then
consume(ID); consume(ID);
@ -228,10 +230,32 @@ unit pdecl;
C_name:=orgpattern; C_name:=orgpattern;
sc:=idlist; sc:=idlist;
consume(COLON); consume(COLON);
if (cs_gpc_compatible in aktmoduleswitches) and
not(is_record or is_object) and
(token=ID) and (orgpattern='__asmname__') then
begin
consume(ID);
C_name:=get_stringconst;
Is_gpc_name:=true;
end;
p:=read_type(''); p:=read_type('');
symdone:=false; symdone:=false;
if is_gpc_name then
begin
s:=sc^.get_with_tokeninfo(filepos);
if not sc^.empty then
Message(parser_e_absolute_only_one_var);
dispose(sc,done);
Csym:=new(pvarsym,init_C(s,C_name,p));
Csym^.fileinfo:=filepos;
Csym^.var_options:=Csym^.var_options or vo_is_external;
externals^.concat(new(pai_external,init(Csym^.mangledname,EXT_NEAR)));
symtablestack^.insert(Csym);
symdone:=true;
end;
{ check for absolute } { check for absolute }
if (token=ID) and (pattern='ABSOLUTE') and not(is_record or is_object) then if not symdone and (token=ID) and
(pattern='ABSOLUTE') and not(is_record or is_object) then
begin begin
consume(ID); consume(ID);
{ only allowed for one var } { only allowed for one var }
@ -303,8 +327,16 @@ unit pdecl;
{ for a record there doesn't need to be a ; before the END or ) } { for a record there doesn't need to be a ; before the END or ) }
if not((is_record or is_object) and (token in [_END,RKLAMMER])) then if not((is_record or is_object) and (token in [_END,RKLAMMER])) then
consume(SEMICOLON); consume(SEMICOLON);
if (p^.deftype=procvardef) and (p^.sym=nil) then
begin
newtype:=new(ptypesym,init('unnamed',p));
parse_var_proc_directives(newtype);
newtype^.definition:=nil;
p^.sym:=nil;
dispose(newtype,done);
end;
{ Check for variable directives } { Check for variable directives }
if (token=ID) then if not symdone and (token=ID) then
begin begin
{ Check for C Variable declarations } { Check for C Variable declarations }
if (cs_support_c_var in aktmoduleswitches) and if (cs_support_c_var in aktmoduleswitches) and
@ -312,7 +344,7 @@ unit pdecl;
((pattern='EXPORT') or ((pattern='EXPORT') or
(pattern='EXTERNAL') or (pattern='EXTERNAL') or
(pattern='PUBLIC') or (pattern='PUBLIC') or
(pattern='CDECL')) then (pattern='CVAR')) then
begin begin
{ only allowed for one var } { only allowed for one var }
s:=sc^.get_with_tokeninfo(filepos); s:=sc^.get_with_tokeninfo(filepos);
@ -324,7 +356,7 @@ unit pdecl;
extern_csym:=false; extern_csym:=false;
export_Csym:=false; export_Csym:=false;
{ cdecl } { cdecl }
if pattern='CDECL' then if pattern='CVAR' then
begin begin
consume(ID); consume(ID);
consume(SEMICOLON); consume(SEMICOLON);
@ -365,12 +397,6 @@ unit pdecl;
{ insert in the symtable } { insert in the symtable }
Csym:=new(pvarsym,init_C(s,C_name,p)); Csym:=new(pvarsym,init_C(s,C_name,p));
Csym^.fileinfo:=filepos; Csym^.fileinfo:=filepos;
{ locally defined procvar type with
CDECL need to use C calling convention }
if (p^.deftype=procvardef) and
(p^.sym=nil) then
pprocvardef(p)^.options:=
pprocvardef(p)^.options or (pocdecl+poclearstack);
if export_Csym then if export_Csym then
inc(Csym^.refs); inc(Csym^.refs);
if extern_Csym then if extern_Csym then
@ -393,7 +419,7 @@ unit pdecl;
symdone:=true; symdone:=true;
end; end;
end; end;
{ insert it in the symtable, if not done yet } { insert it in the symtable, if not done yet }
if not symdone then if not symdone then
insert_syms(symtablestack,sc,p); insert_syms(symtablestack,sc,p);
end; end;
@ -1643,6 +1669,7 @@ unit pdecl;
LKLAMMER: LKLAMMER:
begin begin
consume(LKLAMMER); consume(LKLAMMER);
{ allow negativ values }
l:=-1; l:=-1;
aufsym := Nil; aufsym := Nil;
aufdef:=new(penumdef,init); aufdef:=new(penumdef,init);
@ -1667,7 +1694,10 @@ unit pdecl;
else else
break; break;
until false; until false;
aufdef^.max:=l; {aufdef^.max:=l;
if we allow unordered enums
this can be wrong
min and max are now set in tenumsym.init PM }
p:=aufdef; p:=aufdef;
consume(RKLAMMER); consume(RKLAMMER);
end; end;
@ -1679,7 +1709,11 @@ unit pdecl;
consume(_OF); consume(_OF);
hp1:=read_type(''); hp1:=read_type('');
case hp1^.deftype of case hp1^.deftype of
enumdef : p:=new(psetdef,init(hp1,penumdef(hp1)^.max)); { don't forget that min can be negativ PM }
enumdef : if penumdef(hp1)^.min>=0 then
p:=new(psetdef,init(hp1,penumdef(hp1)^.max))
else
Message(sym_e_ill_type_decl_set);
orddef : begin orddef : begin
case porddef(hp1)^.typ of case porddef(hp1)^.typ of
uchar : p:=new(psetdef,init(hp1,255)); uchar : p:=new(psetdef,init(hp1,255));
@ -1935,7 +1969,13 @@ unit pdecl;
end. end.
{ {
$Log$ $Log$
Revision 1.41 1998-08-23 21:04:36 florian Revision 1.42 1998-08-25 12:42:41 pierre
* CDECL changed to CVAR for variables
specifications are read in structures also
+ started adding GPC compatibility mode ( option -Sp)
* names changed to lowercase
Revision 1.41 1998/08/23 21:04:36 florian
+ rtti generation for classes added + rtti generation for classes added
+ new/dispose do now also a call to INITIALIZE/FINALIZE, if necessaray + new/dispose do now also a call to INITIALIZE/FINALIZE, if necessaray

View File

@ -672,7 +672,7 @@
{ generate two constant for bounds } { generate two constant for bounds }
getlabelnr(rangenr); getlabelnr(rangenr);
if (cs_smartlink in aktmoduleswitches) then if (cs_smartlink in aktmoduleswitches) then
datasegment^.concat(new(pai_symbol,init_global('R_'+current_module^.mainsource^+tostr(rangenr)))) datasegment^.concat(new(pai_symbol,init_global('R_'+current_module^.modulename^+tostr(rangenr))))
else else
datasegment^.concat(new(pai_symbol,init('R_'+tostr(rangenr)))); datasegment^.concat(new(pai_symbol,init('R_'+tostr(rangenr))));
if low<=high then if low<=high then
@ -687,7 +687,7 @@
datasegment^.concat(new(pai_const,init_32bit($7fffffff))); datasegment^.concat(new(pai_const,init_32bit($7fffffff)));
inc(nextlabelnr); inc(nextlabelnr);
if (cs_smartlink in aktmoduleswitches) then if (cs_smartlink in aktmoduleswitches) then
datasegment^.concat(new(pai_symbol,init_global('R_'+current_module^.mainsource^+tostr(rangenr+1)))) datasegment^.concat(new(pai_symbol,init_global('R_'+current_module^.modulename^+tostr(rangenr+1))))
else else
datasegment^.concat(new(pai_symbol,init('R_'+tostr(rangenr+1)))); datasegment^.concat(new(pai_symbol,init('R_'+tostr(rangenr+1))));
datasegment^.concat(new(pai_const,init_32bit($80000000))); datasegment^.concat(new(pai_const,init_32bit($80000000)));
@ -2535,7 +2535,13 @@
{ {
$Log$ $Log$
Revision 1.25 1998-08-23 21:04:38 florian Revision 1.26 1998-08-25 12:42:44 pierre
* CDECL changed to CVAR for variables
specifications are read in structures also
+ started adding GPC compatibility mode ( option -Sp)
* names changed to lowercase
Revision 1.25 1998/08/23 21:04:38 florian
+ rtti generation for classes added + rtti generation for classes added
+ new/dispose do now also a call to INITIALIZE/FINALIZE, if necessaray + new/dispose do now also a call to INITIALIZE/FINALIZE, if necessaray

View File

@ -1351,6 +1351,10 @@
typ:=enumsym; typ:=enumsym;
definition:=def; definition:=def;
value:=v; value:=v;
if def^.min>v then
def^.min:=v;
if def^.max<v then
def^.max:=v;
{$ifdef GDB} {$ifdef GDB}
order; order;
{$endif GDB} {$endif GDB}
@ -1552,7 +1556,13 @@
{ {
$Log$ $Log$
Revision 1.34 1998-08-21 14:08:53 pierre Revision 1.35 1998-08-25 12:42:46 pierre
* CDECL changed to CVAR for variables
specifications are read in structures also
+ started adding GPC compatibility mode ( option -Sp)
* names changed to lowercase
Revision 1.34 1998/08/21 14:08:53 pierre
+ TEST_FUNCRET now default (old code removed) + TEST_FUNCRET now default (old code removed)
works also for m68k (at least compiles) works also for m68k (at least compiles)

View File

@ -200,12 +200,12 @@ implementation
{$ifdef i386} {$ifdef i386}
( (
name : 'GO32 V1 DOS extender'; name : 'GO32 V1 DOS extender';
sharedlibext : '.DLL'; sharedlibext : '.dll';
staticlibext : '.A'; staticlibext : '.a';
sourceext : '.PP'; sourceext : '.pp';
pasext : '.PAS'; pasext : '.pas';
exeext : ''; { No .exe, the linker only output a.out ! } exeext : ''; { No .exe, the linker only output a.out ! }
scriptext : '.BAT'; scriptext : '.bat';
libprefix : ''; libprefix : '';
Cprefix : '_'; Cprefix : '_';
newline : #13#10; newline : #13#10;
@ -214,12 +214,12 @@ implementation
), ),
( (
name : 'GO32 V2 DOS extender'; name : 'GO32 V2 DOS extender';
sharedlibext : '.DLL'; sharedlibext : '.dll';
staticlibext : '.A'; staticlibext : '.a';
sourceext : '.PP'; sourceext : '.pp';
pasext : '.PAS'; pasext : '.pas';
exeext : '.EXE'; exeext : '.exe';
scriptext : '.BAT'; scriptext : '.bat';
libprefix : ''; libprefix : '';
Cprefix : '_'; Cprefix : '_';
newline : #13#10; newline : #13#10;
@ -876,7 +876,13 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.27 1998-08-21 15:16:57 peter Revision 1.28 1998-08-25 12:42:47 pierre
* CDECL changed to CVAR for variables
specifications are read in structures also
+ started adding GPC compatibility mode ( option -Sp)
* names changed to lowercase
Revision 1.27 1998/08/21 15:16:57 peter
* win32 compiles a bit better, no growheap crash * win32 compiles a bit better, no growheap crash
Revision 1.26 1998/08/19 16:07:55 jonas Revision 1.26 1998/08/19 16:07:55 jonas