Fixes applied to address C++17 warnings. See section in mbc4.bas for details
This commit is contained in:
parent
cd1708fb0f
commit
3ed35071d2
50
mbc4.bas
50
mbc4.bas
@ -48,7 +48,7 @@ $EXECON
|
|||||||
|
|
||||||
|
|
||||||
'
|
'
|
||||||
CONST Version$ = "4.0-Beta3 (2018/12/09)" 'BCX version number and date (YYYY/MM/DD)
|
CONST Version$ = "4.0-Beta4 (2022/07/26)" 'BCX version number and date (YYYY/MM/DD)
|
||||||
'*******************************************************************************
|
'*******************************************************************************
|
||||||
'
|
'
|
||||||
'BCX is distributed under the terms of the GNU General Public License Ver.(2).
|
'BCX is distributed under the terms of the GNU General Public License Ver.(2).
|
||||||
@ -102,6 +102,14 @@ cue that a new Basic function is needed.
|
|||||||
This section is used to communicate to-do 's, changes, ideas, suggestions, etc.
|
This section is used to communicate to-do 's, changes, ideas, suggestions, etc.
|
||||||
******************************************************************************************
|
******************************************************************************************
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
2022-07-26 Armando Rivera
|
||||||
|
After a LONG time away....
|
||||||
|
* Changed max size of szTmp$, Src$, and AbortSrc$ (65535)to avoid potential buffer overflows
|
||||||
|
* Changed max size of WarnMsg$ (65536) to avoid potential buffer overflow
|
||||||
|
* Removed the "register" decorator from EOF function to comply with C++17 standard
|
||||||
|
* The above addressed warnings thrown by C++17, which is the standard on modern Linux.
|
||||||
|
* Removed cdecl/stdcall from "Declare Function" (dynamic linking), since cdecl is the standard on *nix systems
|
||||||
|
-------------------------------------------
|
||||||
2018-12-12 Armando Rivera
|
2018-12-12 Armando Rivera
|
||||||
* Changed BcxRegEx function to REGMATCH
|
* Changed BcxRegEx function to REGMATCH
|
||||||
* Changed BcxRegEx keyword to REGMATCH
|
* Changed BcxRegEx keyword to REGMATCH
|
||||||
@ -1082,10 +1090,14 @@ END SET
|
|||||||
' CODE BEGINS
|
' CODE BEGINS
|
||||||
'*************************************************************************
|
'*************************************************************************
|
||||||
FUNCTION main(ARGC AS INTEGER, ARGV AS PCHAR PTR)
|
FUNCTION main(ARGC AS INTEGER, ARGV AS PCHAR PTR)
|
||||||
GLOBAL szTmp$ * 1048576 'This is a problem, cannot exceed 2047+1 or bad things *WILL* happen.
|
' ** AIR 2022/07/26 changed to 65535 from 2047+1 to avoid buffer overflow **
|
||||||
GLOBAL Src$ * 1048576 'This is a problem, cannot exceed 2047+1 or bad things *WILL* happen.
|
GLOBAL szTmp$ * 65535 'This is a problem, cannot exceed 2047+1 or bad things *WILL* happen.
|
||||||
GLOBAL AbortSrc$ * 1048576 'This must be at least the size of Src$
|
GLOBAL Src$ * 65535 'This is a problem, cannot exceed 2047+1 or bad things *WILL* happen.
|
||||||
GLOBAL WarnMsg$ * 32767 'This must be MORE than the size of Src$
|
GLOBAL AbortSrc$ * 65535 'This must be at least the size of Src$
|
||||||
|
|
||||||
|
' ** AIR 2022/07/26 changed to 65535 from 32767 to avoid buffer overflow **
|
||||||
|
GLOBAL WarnMsg$ * 65535+1 'This must be MORE than the size of Src$
|
||||||
|
|
||||||
GLOBAL RmLibs$ * 32767 ' libraries to remove
|
GLOBAL RmLibs$ * 32767 ' libraries to remove
|
||||||
LOCAL bitz as INTEGER ' is OS 32/64 bit
|
LOCAL bitz as INTEGER ' is OS 32/64 bit
|
||||||
ProtoCnt = 0 ' Prototypes counter
|
ProtoCnt = 0 ' Prototypes counter
|
||||||
@ -2465,7 +2477,7 @@ FUNCTION PrintWriteFormat$(DoWrite)
|
|||||||
DIM RAW Stak[128] AS ARGTYPE
|
DIM RAW Stak[128] AS ARGTYPE
|
||||||
DIM RAW Frmat$
|
DIM RAW Frmat$
|
||||||
DIM RAW Arg$
|
DIM RAW Arg$
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
DIM RAW Cast$
|
DIM RAW Cast$
|
||||||
DIM RAW NewLineFlag = 0
|
DIM RAW NewLineFlag = 0
|
||||||
DIM RAW Argcount = 0
|
DIM RAW Argcount = 0
|
||||||
@ -2634,7 +2646,7 @@ SUB EmitInputCode
|
|||||||
DIM RAW Frmat$
|
DIM RAW Frmat$
|
||||||
DIM Stak$[128]
|
DIM Stak$[128]
|
||||||
DIM RAW Y$
|
DIM RAW Y$
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
Use_Inputbuffer = TRUE
|
Use_Inputbuffer = TRUE
|
||||||
Use_Scan = TRUE
|
Use_Scan = TRUE
|
||||||
Use_Split = TRUE
|
Use_Split = TRUE
|
||||||
@ -2748,7 +2760,7 @@ SUB EmitFileInputCode
|
|||||||
DIM RAW Frmat$
|
DIM RAW Frmat$
|
||||||
DIM RAW FHandle$
|
DIM RAW FHandle$
|
||||||
DIM RAW Y$
|
DIM RAW Y$
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
DIM Stak$[128]
|
DIM Stak$[128]
|
||||||
Arg$ = ""
|
Arg$ = ""
|
||||||
Frmat$ = ""
|
Frmat$ = ""
|
||||||
@ -2840,14 +2852,14 @@ SUB EmitFileInputCode
|
|||||||
VarCnt++
|
VarCnt++
|
||||||
END SELECT
|
END SELECT
|
||||||
NEXT
|
NEXT
|
||||||
FPRINT Outfile,Scoot$, "AR_fgets_retval=fgets(InputBuffer,1048576," ; FHandle$ ; ");"
|
FPRINT Outfile,Scoot$, "AR_fgets_retval=fgets(InputBuffer,65535," ; FHandle$ ; ");"
|
||||||
FPRINT Outfile,Scoot$, "if(InputBuffer[strlen(InputBuffer)-1]== 10)"
|
FPRINT Outfile,Scoot$, "if(InputBuffer[strlen(InputBuffer)-1]== 10)"
|
||||||
FPRINT Outfile,Scoot$, " InputBuffer[strlen(InputBuffer)-1]=0;"
|
FPRINT Outfile,Scoot$, " InputBuffer[strlen(InputBuffer)-1]=0;"
|
||||||
FPRINT Outfile,Scoot$, "ScanError = scan(InputBuffer," + ENC$(Frmat$) + Arg$ + ");\n"
|
FPRINT Outfile,Scoot$, "ScanError = scan(InputBuffer," + ENC$(Frmat$) + Arg$ + ");\n"
|
||||||
FPRINT Outfile,Scoot$, "*InputBuffer=0;"
|
FPRINT Outfile,Scoot$, "*InputBuffer=0;"
|
||||||
END SUB ' EmitFileInputCode
|
END SUB ' EmitFileInputCode
|
||||||
SUB AddFuncs
|
SUB AddFuncs
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
DIM RAW Last$
|
DIM RAW Last$
|
||||||
Last$ = ""
|
Last$ = ""
|
||||||
CALL CloseAll
|
CALL CloseAll
|
||||||
@ -6639,7 +6651,7 @@ SUB HandleNonsense
|
|||||||
NEXT
|
NEXT
|
||||||
END SUB ' HandleNonsense
|
END SUB ' HandleNonsense
|
||||||
SUB ValidVar(v$)
|
SUB ValidVar(v$)
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
IF NOT isalpha(*v$) AND *v$ <> ASC("_") THEN
|
IF NOT isalpha(*v$) AND *v$ <> ASC("_") THEN
|
||||||
IF NOT iMatchLft(v$, "(*") THEN ' Allow byref format (*A).xxx
|
IF NOT iMatchLft(v$, "(*") THEN ' Allow byref format (*A).xxx
|
||||||
Abort("Invalid String Variable Name")
|
Abort("Invalid String Variable Name")
|
||||||
@ -6796,7 +6808,7 @@ SUB Emit
|
|||||||
DIM RAW Keyword$
|
DIM RAW Keyword$
|
||||||
DIM RAW lszTmp$
|
DIM RAW lszTmp$
|
||||||
DIM RAW Var1$
|
DIM RAW Var1$
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
DIM RAW IsSubOrFuncPtr
|
DIM RAW IsSubOrFuncPtr
|
||||||
DIM RAW dms
|
DIM RAW dms
|
||||||
STATIC NoBreak
|
STATIC NoBreak
|
||||||
@ -6967,7 +6979,7 @@ SUB Emit
|
|||||||
CASE "int","fint"
|
CASE "int","fint"
|
||||||
Reg$ = SPC$
|
Reg$ = SPC$
|
||||||
LoopLocalVar[LoopLocalCnt++] = 1
|
LoopLocalVar[LoopLocalCnt++] = 1
|
||||||
FPRINT Outfile,Scoot$," {register int ";
|
FPRINT Outfile,Scoot$," {int ";
|
||||||
CASE "single", "float"
|
CASE "single", "float"
|
||||||
Reg$ = SPC$
|
Reg$ = SPC$
|
||||||
LoopLocalVar[LoopLocalCnt++] = 1
|
LoopLocalVar[LoopLocalCnt++] = 1
|
||||||
@ -7675,11 +7687,11 @@ SUB Emit
|
|||||||
CALL BumpUp
|
CALL BumpUp
|
||||||
IF INCHR(Stk$[2],"-") THEN
|
IF INCHR(Stk$[2],"-") THEN
|
||||||
IF LEFT$(lszTmp$,1) = "-" THEN lszTmp$ = MID$(lszTmp$,2)
|
IF LEFT$(lszTmp$,1) = "-" THEN lszTmp$ = MID$(lszTmp$,2)
|
||||||
FPRINT Outfile,Scoot$,"{register int BCX_REPEAT;"
|
FPRINT Outfile,Scoot$,"{int BCX_REPEAT;"
|
||||||
FPRINT Outfile,Scoot$,"for(BCX_REPEAT=";lszTmp$;";BCX_REPEAT>=1;BCX_REPEAT--)"
|
FPRINT Outfile,Scoot$,"for(BCX_REPEAT=";lszTmp$;";BCX_REPEAT>=1;BCX_REPEAT--)"
|
||||||
FPRINT Outfile,Scoot$,"{"
|
FPRINT Outfile,Scoot$,"{"
|
||||||
ELSE
|
ELSE
|
||||||
FPRINT Outfile,Scoot$,"{register int BCX_REPEAT;"
|
FPRINT Outfile,Scoot$,"{int BCX_REPEAT;"
|
||||||
FPRINT Outfile,Scoot$,"for(BCX_REPEAT=1;BCX_REPEAT<=";lszTmp$;";BCX_REPEAT++)"
|
FPRINT Outfile,Scoot$,"for(BCX_REPEAT=1;BCX_REPEAT<=";lszTmp$;";BCX_REPEAT++)"
|
||||||
FPRINT Outfile,Scoot$,"{"
|
FPRINT Outfile,Scoot$,"{"
|
||||||
END IF
|
END IF
|
||||||
@ -7893,7 +7905,7 @@ SUB Emit
|
|||||||
IF i = vt_STRLIT OR i = vt_STRVAR THEN
|
IF i = vt_STRLIT OR i = vt_STRVAR THEN
|
||||||
IF i <> vt_STRLIT THEN Stk$[2] = Clean$(Stk$[2])
|
IF i <> vt_STRLIT THEN Stk$[2] = Clean$(Stk$[2])
|
||||||
FPRINT Outfile,Scoot$,"printf(", ENC$("%s"), ",", Stk$[2], ");"
|
FPRINT Outfile,Scoot$,"printf(", ENC$("%s"), ",", Stk$[2], ");"
|
||||||
FPRINT Outfile,Scoot$,"AR_fgets_retval=fgets(", Clean$(Stk$[3]), ",2048-1,stdin);"
|
FPRINT Outfile,Scoot$,"AR_fgets_retval=fgets(", Clean$(Stk$[3]), ",65535,stdin);"
|
||||||
FPRINT Outfile,Scoot$,Clean$(Stk$[3]),"[strlen(",Clean$(Stk$[3]),")-1]=0;"
|
FPRINT Outfile,Scoot$,Clean$(Stk$[3]),"[strlen(",Clean$(Stk$[3]),")-1]=0;"
|
||||||
EXIT SELECT
|
EXIT SELECT
|
||||||
END IF
|
END IF
|
||||||
@ -7932,7 +7944,7 @@ SUB Emit
|
|||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
FPRINT Outfile,Scoot$, Var$ ; "[0]=0;"
|
FPRINT Outfile,Scoot$, Var$ ; "[0]=0;"
|
||||||
FPRINT Outfile,Scoot$, "AR_fgets_retval=fgets(" ; Var$ ; ",1048576,"; Clean$(Stk$[2]) ; ");"
|
FPRINT Outfile,Scoot$, "AR_fgets_retval=fgets(" ; Var$ ; ",65535,"; Clean$(Stk$[2]) ; ");"
|
||||||
FPRINT Outfile,Scoot$, "if(" ; CVar$ ; "[strlen(" ;CVar$ ; ")-1]==10)";
|
FPRINT Outfile,Scoot$, "if(" ; CVar$ ; "[strlen(" ;CVar$ ; ")-1]==10)";
|
||||||
FPRINT Outfile,CVar$ ; "[strlen(" ; CVar$ ; ")-1]=0;"
|
FPRINT Outfile,CVar$ ; "[strlen(" ; CVar$ ; ")-1]=0;"
|
||||||
IF Var1$ <> "" THEN
|
IF Var1$ <> "" THEN
|
||||||
@ -9986,7 +9998,7 @@ SUB DeclareVariables
|
|||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF Use_Inputbuffer = TRUE THEN
|
IF Use_Inputbuffer = TRUE THEN
|
||||||
FPRINT Outfile,"char InputBuffer[1048576];"
|
FPRINT Outfile,"char InputBuffer[65535];"
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF Use_Findfirst OR Use_Findnext THEN
|
IF Use_Findfirst OR Use_Findnext THEN
|
||||||
@ -10345,7 +10357,7 @@ SUB GetVarCode(varcode AS VARCODE PTR)
|
|||||||
END SUB ' GetVarCode
|
END SUB ' GetVarCode
|
||||||
SUB AddProtos
|
SUB AddProtos
|
||||||
DIM RAW SaveMain$
|
DIM RAW SaveMain$
|
||||||
DIM RAW ZZ$
|
DIM RAW ZZ$*65535
|
||||||
DIM RAW A
|
DIM RAW A
|
||||||
SaveMain$ = ""
|
SaveMain$ = ""
|
||||||
OPEN FileOut$ FOR INPUT AS FP1
|
OPEN FileOut$ FOR INPUT AS FP1
|
||||||
|
145
mbc4.cc
145
mbc4.cc
@ -1,5 +1,5 @@
|
|||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
// Created with MBC (V) 4.0-Beta3 (2018/12/09)Ported to OSX by Armando Rivera
|
// Created with MBC (V) 4.0-Beta4 (2022/07/26)Ported to OSX by Armando Rivera
|
||||||
// Ported from BCX32 BASIC To C/C++ Translator (V) 5.12
|
// Ported from BCX32 BASIC To C/C++ Translator (V) 5.12
|
||||||
// BCX (c) 1999 - 2018 by Kevin Diggins
|
// BCX (c) 1999 - 2018 by Kevin Diggins
|
||||||
// LinuxBC (c) 2009 by Mike Henning
|
// LinuxBC (c) 2009 by Mike Henning
|
||||||
@ -78,7 +78,7 @@ typedef long (*CPP_FARPROC)(char *);
|
|||||||
// User Defined Constants
|
// User Defined Constants
|
||||||
// *************************************************
|
// *************************************************
|
||||||
|
|
||||||
#define Version "4.0-Beta3 (2018/12/09)"
|
#define Version "4.0-Beta4 (2022/07/26)"
|
||||||
#define __BCX__ 1
|
#define __BCX__ 1
|
||||||
#define vt_VarMin 2
|
#define vt_VarMin 2
|
||||||
#define vt_VarMax vt_VARIANT
|
#define vt_VarMax vt_VARIANT
|
||||||
@ -886,6 +886,14 @@ static char* ReservedWord[]=
|
|||||||
// This section is used to communicate to-do 's, changes, ideas, suggestions, etc.
|
// This section is used to communicate to-do 's, changes, ideas, suggestions, etc.
|
||||||
// ******************************************************************************************
|
// ******************************************************************************************
|
||||||
// -------------------------------------------
|
// -------------------------------------------
|
||||||
|
// 2022-07-26 Armando Rivera
|
||||||
|
// After a LONG time away....
|
||||||
|
// * Changed max size of szTmp$, Src$, and AbortSrc$ (65535)to avoid potential buffer overflows
|
||||||
|
// * Changed max size of WarnMsg$ (65536) to avoid potential buffer overflow
|
||||||
|
// * Removed the "register" decorator from EOF function to comply with C++17 standard
|
||||||
|
// * The above addressed warnings thrown by C++17, which is the standard on modern Linux.
|
||||||
|
// * Removed cdecl/stdcall from "Declare Function" (dynamic linking), since cdecl is the standard on *nix systems
|
||||||
|
// -------------------------------------------
|
||||||
// 2018-12-12 Armando Rivera
|
// 2018-12-12 Armando Rivera
|
||||||
// * Changed BcxRegEx function to REGMATCH
|
// * Changed BcxRegEx function to REGMATCH
|
||||||
// * Changed BcxRegEx keyword to REGMATCH
|
// * Changed BcxRegEx keyword to REGMATCH
|
||||||
@ -1351,7 +1359,7 @@ int str_cmp (char *a, char *b)
|
|||||||
|
|
||||||
int EoF (FILE* stream)
|
int EoF (FILE* stream)
|
||||||
{
|
{
|
||||||
register int c, status = ((c = fgetc(stream)) == EOF);
|
int c, status = ((c = fgetc(stream)) == EOF);
|
||||||
ungetc(c,stream);
|
ungetc(c,stream);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@ -2175,10 +2183,10 @@ int main (int argc, PCHAR* argv)
|
|||||||
{
|
{
|
||||||
G_argc=argc;
|
G_argc=argc;
|
||||||
G_argv=argv;
|
G_argv=argv;
|
||||||
szTmp=(char*)calloc(256+1048576,1);
|
szTmp=(char*)calloc(256+65535,1);
|
||||||
Src=(char*)calloc(256+1048576,1);
|
Src=(char*)calloc(256+65535,1);
|
||||||
AbortSrc=(char*)calloc(256+1048576,1);
|
AbortSrc=(char*)calloc(256+65535,1);
|
||||||
WarnMsg=(char*)calloc(256+32767,1);
|
WarnMsg=(char*)calloc(256+65535+1,1);
|
||||||
RmLibs=(char*)calloc(256+32767,1);
|
RmLibs=(char*)calloc(256+32767,1);
|
||||||
static int bitz;
|
static int bitz;
|
||||||
memset(&bitz,0,sizeof(bitz));
|
memset(&bitz,0,sizeof(bitz));
|
||||||
@ -2242,7 +2250,7 @@ int main (int argc, PCHAR* argv)
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
Quiet=FALSE;
|
Quiet=FALSE;
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=2; i<=argc-1; i+=1)
|
for(i=2; i<=argc-1; i+=1)
|
||||||
{
|
{
|
||||||
if(instr_b(lcase(argv[i]),"-f"))
|
if(instr_b(lcase(argv[i]),"-f"))
|
||||||
@ -2434,7 +2442,7 @@ READSRCLINE:;
|
|||||||
if(SplitCnt==0)
|
if(SplitCnt==0)
|
||||||
{
|
{
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
StripCode(Src);
|
StripCode(Src);
|
||||||
@ -2710,7 +2718,7 @@ READNEXTLINE:;
|
|||||||
while(!EoF(FP2))
|
while(!EoF(FP2))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP2);
|
AR_fgets_retval=fgets(Z,65535,FP2);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(FP3,"%s\n",Z);
|
fprintf(FP3,"%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -2720,7 +2728,7 @@ READNEXTLINE:;
|
|||||||
{
|
{
|
||||||
static int bMainOut=0;
|
static int bMainOut=0;
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP1);
|
AR_fgets_retval=fgets(Z,65535,FP1);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
if(iMatchLft(Lastlyne,"#if"))
|
if(iMatchLft(Lastlyne,"#if"))
|
||||||
{
|
{
|
||||||
@ -2749,7 +2757,7 @@ READNEXTLINE:;
|
|||||||
while(str_cmp(trim(Z),"{")!=0)
|
while(str_cmp(trim(Z),"{")!=0)
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP1);
|
AR_fgets_retval=fgets(Z,65535,FP1);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(FP3,"%s\n",Z);
|
fprintf(FP3,"%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -2808,7 +2816,7 @@ void EmitCmdLineConst (void)
|
|||||||
fprintf(FP7,"%s\n","");
|
fprintf(FP7,"%s\n","");
|
||||||
Ftmp=FP6;
|
Ftmp=FP6;
|
||||||
FP6=FP7;
|
FP6=FP7;
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=1; i<=tally(CmdLineConst,chr(1)); i+=1)
|
for(i=1; i<=tally(CmdLineConst,chr(1)); i+=1)
|
||||||
{
|
{
|
||||||
strcpy(Src,StrToken(CmdLineConst,chr(1),i));
|
strcpy(Src,StrToken(CmdLineConst,chr(1),i));
|
||||||
@ -3037,7 +3045,7 @@ void ProcessSetCommand (int GS)
|
|||||||
while(!EoF(SourceFile))
|
while(!EoF(SourceFile))
|
||||||
{
|
{
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
StripCode(Src);
|
StripCode(Src);
|
||||||
@ -3517,7 +3525,7 @@ int Directives (void)
|
|||||||
Abort("$Interface Without $EndInterface");
|
Abort("$Interface Without $EndInterface");
|
||||||
}
|
}
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
if(iMatchLft(ltrim(Src),"$endinterface"))
|
if(iMatchLft(ltrim(Src),"$endinterface"))
|
||||||
@ -3539,7 +3547,7 @@ int Directives (void)
|
|||||||
Abort("Unbalanced $Comment");
|
Abort("Unbalanced $Comment");
|
||||||
}
|
}
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
StripTabs();
|
StripTabs();
|
||||||
@ -3562,7 +3570,7 @@ int Directives (void)
|
|||||||
Abort("Unbalanced $Ccode");
|
Abort("Unbalanced $Ccode");
|
||||||
}
|
}
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
StripTabs();
|
StripTabs();
|
||||||
@ -3623,7 +3631,7 @@ int Directives (void)
|
|||||||
Abort("Unbalanced $Header");
|
Abort("Unbalanced $Header");
|
||||||
}
|
}
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
StripTabs();
|
StripTabs();
|
||||||
@ -3652,7 +3660,7 @@ int Directives (void)
|
|||||||
Abort("Unbalanced $Asm");
|
Abort("Unbalanced $Asm");
|
||||||
}
|
}
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
if(SrcFlag)
|
if(SrcFlag)
|
||||||
@ -3816,7 +3824,8 @@ char * PrintWriteFormat (int DoWrite)
|
|||||||
ARGTYPE Stak[128];
|
ARGTYPE Stak[128];
|
||||||
char Frmat[2048];
|
char Frmat[2048];
|
||||||
char Arg[2048];
|
char Arg[2048];
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
char Cast[2048];
|
char Cast[2048];
|
||||||
int NewLineFlag=0;
|
int NewLineFlag=0;
|
||||||
int Argcount=0;
|
int Argcount=0;
|
||||||
@ -4073,6 +4082,7 @@ PRINTWRITELABEL:;
|
|||||||
strcat(Frmat,"\\n");
|
strcat(Frmat,"\\n");
|
||||||
}
|
}
|
||||||
BCX_RetStr=join(4,"printf(",enc(Frmat),Clean(Arg),");");
|
BCX_RetStr=join(4,"printf(",enc(Frmat),Clean(Arg),");");
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
return BCX_RetStr;
|
return BCX_RetStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4090,7 +4100,8 @@ void EmitInputCode (void)
|
|||||||
static char Stak[128][2048];
|
static char Stak[128][2048];
|
||||||
memset(&Stak,0,sizeof(Stak));
|
memset(&Stak,0,sizeof(Stak));
|
||||||
char Y[2048];
|
char Y[2048];
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
Use_Inputbuffer=TRUE;
|
Use_Inputbuffer=TRUE;
|
||||||
Use_Scan=TRUE;
|
Use_Scan=TRUE;
|
||||||
Use_Split=TRUE;
|
Use_Split=TRUE;
|
||||||
@ -4243,6 +4254,7 @@ DOAGAIN:;
|
|||||||
fprintf(Outfile,"%s%s\n",Scoot,"InputBuffer[strlen(InputBuffer)-1]=0;");
|
fprintf(Outfile,"%s%s\n",Scoot,"InputBuffer[strlen(InputBuffer)-1]=0;");
|
||||||
fprintf(Outfile,"%s%s%s%s%s\n",Scoot,"ScanError = scan(InputBuffer,",enc(Frmat),Arg,");\n");
|
fprintf(Outfile,"%s%s%s%s%s\n",Scoot,"ScanError = scan(InputBuffer,",enc(Frmat),Arg,");\n");
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"*InputBuffer=0;");
|
fprintf(Outfile,"%s%s\n",Scoot,"*InputBuffer=0;");
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4256,7 +4268,8 @@ void EmitFileInputCode (void)
|
|||||||
char Frmat[2048];
|
char Frmat[2048];
|
||||||
char FHandle[2048];
|
char FHandle[2048];
|
||||||
char Y[2048];
|
char Y[2048];
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
static char Stak[128][2048];
|
static char Stak[128][2048];
|
||||||
memset(&Stak,0,sizeof(Stak));
|
memset(&Stak,0,sizeof(Stak));
|
||||||
*Arg=0;
|
*Arg=0;
|
||||||
@ -4401,17 +4414,19 @@ DOAGAIN:;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf(Outfile,"%s%s%s%s\n",Scoot,"AR_fgets_retval=fgets(InputBuffer,1048576,",FHandle,");");
|
fprintf(Outfile,"%s%s%s%s\n",Scoot,"AR_fgets_retval=fgets(InputBuffer,65535,",FHandle,");");
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"if(InputBuffer[strlen(InputBuffer)-1]== 10)");
|
fprintf(Outfile,"%s%s\n",Scoot,"if(InputBuffer[strlen(InputBuffer)-1]== 10)");
|
||||||
fprintf(Outfile,"%s%s\n",Scoot," InputBuffer[strlen(InputBuffer)-1]=0;");
|
fprintf(Outfile,"%s%s\n",Scoot," InputBuffer[strlen(InputBuffer)-1]=0;");
|
||||||
fprintf(Outfile,"%s%s%s%s%s\n",Scoot,"ScanError = scan(InputBuffer,",enc(Frmat),Arg,");\n");
|
fprintf(Outfile,"%s%s%s%s%s\n",Scoot,"ScanError = scan(InputBuffer,",enc(Frmat),Arg,");\n");
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"*InputBuffer=0;");
|
fprintf(Outfile,"%s%s\n",Scoot,"*InputBuffer=0;");
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AddFuncs (void)
|
void AddFuncs (void)
|
||||||
{
|
{
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
char Last[2048];
|
char Last[2048];
|
||||||
*Last=0;
|
*Last=0;
|
||||||
CloseAll();
|
CloseAll();
|
||||||
@ -4436,7 +4451,7 @@ void AddFuncs (void)
|
|||||||
while(!EoF(FP1))
|
while(!EoF(FP1))
|
||||||
{
|
{
|
||||||
ZZ[0]=0;
|
ZZ[0]=0;
|
||||||
AR_fgets_retval=fgets(ZZ,1048576,FP1);
|
AR_fgets_retval=fgets(ZZ,65535,FP1);
|
||||||
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
||||||
if(instr_b(ZZ,"DefWindowProc"))
|
if(instr_b(ZZ,"DefWindowProc"))
|
||||||
{
|
{
|
||||||
@ -4460,6 +4475,7 @@ void AddFuncs (void)
|
|||||||
remove (ovrFile);
|
remove (ovrFile);
|
||||||
remove (setFile);
|
remove (setFile);
|
||||||
remove (enuFile);
|
remove (enuFile);
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4474,7 +4490,7 @@ int CheckLocal (char *ZZ, int* varidx)
|
|||||||
{
|
{
|
||||||
strcpy(TT,left(TT,instr_b(TT,"[")-1));
|
strcpy(TT,left(TT,instr_b(TT,"[")-1));
|
||||||
}
|
}
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=1; i<=LocalVarCnt; i+=1)
|
for(i=1; i<=LocalVarCnt; i+=1)
|
||||||
{
|
{
|
||||||
if(str_cmp(TT,LocalVars[i].VarName)==0)
|
if(str_cmp(TT,LocalVars[i].VarName)==0)
|
||||||
@ -5453,7 +5469,7 @@ void AddLibrary (char *LibName)
|
|||||||
}
|
}
|
||||||
if(nTimes==0)
|
if(nTimes==0)
|
||||||
{
|
{
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=0; i<=MaxLib-1; i+=1)
|
for(i=0; i<=MaxLib-1; i+=1)
|
||||||
{
|
{
|
||||||
*Library[i]=0;
|
*Library[i]=0;
|
||||||
@ -5505,7 +5521,7 @@ void EmitLibs (void)
|
|||||||
fprintf(FP7,"%s\n","");
|
fprintf(FP7,"%s\n","");
|
||||||
fprintf(FP7,"%s\n","#ifndef LINUXBCX");
|
fprintf(FP7,"%s\n","#ifndef LINUXBCX");
|
||||||
fprintf(FP7,"%s\n","#if !defined( __LCC__ )");
|
fprintf(FP7,"%s\n","#if !defined( __LCC__ )");
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=0; i<=MaxLib-1; i+=1)
|
for(i=0; i<=MaxLib-1; i+=1)
|
||||||
{
|
{
|
||||||
if(Library[i][0]==0&&nCount>0)
|
if(Library[i][0]==0&&nCount>0)
|
||||||
@ -5536,7 +5552,7 @@ void EmitLibs (void)
|
|||||||
NEXTLIB:;
|
NEXTLIB:;
|
||||||
fprintf(FP7,"%s\n","#else");
|
fprintf(FP7,"%s\n","#else");
|
||||||
strcat(RmLibs,",<libc.lib>,<kernel32.lib>,<comdlg32.lib>,<user32.lib>,<gdi32.lib>,<advapi32.lib>,<comctl32.lib>,<crtdll.lib>");
|
strcat(RmLibs,",<libc.lib>,<kernel32.lib>,<comdlg32.lib>,<user32.lib>,<gdi32.lib>,<advapi32.lib>,<comctl32.lib>,<crtdll.lib>");
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=0; i<=MaxLib-1; i+=1)
|
for(i=0; i<=MaxLib-1; i+=1)
|
||||||
{
|
{
|
||||||
if(Library[i][0]==0&&nCount>0)
|
if(Library[i][0]==0&&nCount>0)
|
||||||
@ -5840,7 +5856,7 @@ void CheckParQuotes (void)
|
|||||||
|
|
||||||
void ClearIfThenStacks (void)
|
void ClearIfThenStacks (void)
|
||||||
{
|
{
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=0; i<=127; i+=1)
|
for(i=0; i<=127; i+=1)
|
||||||
{
|
{
|
||||||
*SrcStk[i]=0;
|
*SrcStk[i]=0;
|
||||||
@ -5877,7 +5893,7 @@ void PostProcess (void)
|
|||||||
while(!EoF(FP1))
|
while(!EoF(FP1))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP1);
|
AR_fgets_retval=fgets(Z,65535,FP1);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
printf("%s\n",Z);
|
printf("%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -6248,7 +6264,7 @@ void XParse (char *Arg)
|
|||||||
{
|
{
|
||||||
if(iMatchWrd(Stk[2],"sub")||iMatchWrd(Stk[2],"function"))
|
if(iMatchWrd(Stk[2],"sub")||iMatchWrd(Stk[2],"function"))
|
||||||
{
|
{
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=2; i<=Ndx; i+=1)
|
for(i=2; i<=Ndx; i+=1)
|
||||||
{
|
{
|
||||||
if(iMatchLft(Stk[i],"as")&&iMatchWrd(Stk[i+1],"string"))
|
if(iMatchLft(Stk[i],"as")&&iMatchWrd(Stk[i+1],"string"))
|
||||||
@ -7158,7 +7174,7 @@ void TokenSubstitutions (void)
|
|||||||
Abort("Unbalanced ENUM");
|
Abort("Unbalanced ENUM");
|
||||||
}
|
}
|
||||||
Src[0]=0;
|
Src[0]=0;
|
||||||
AR_fgets_retval=fgets(Src,1048576,SourceFile);
|
AR_fgets_retval=fgets(Src,65535,SourceFile);
|
||||||
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
if(Src[strlen(Src)-1]==10)Src[strlen(Src)-1]=0;
|
||||||
ModuleLineNos[ModuleNdx]++;
|
ModuleLineNos[ModuleNdx]++;
|
||||||
StripCode(Src);
|
StripCode(Src);
|
||||||
@ -7411,7 +7427,7 @@ void TokenSubstitutions (void)
|
|||||||
strcpy(LocalName,Stk[Tmp-2]);
|
strcpy(LocalName,Stk[Tmp-2]);
|
||||||
if(LocalVarCnt)
|
if(LocalVarCnt)
|
||||||
{
|
{
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=1; i<=LocalVarCnt; i+=1)
|
for(i=1; i<=LocalVarCnt; i+=1)
|
||||||
{
|
{
|
||||||
if(str_cmp(LocalName,LocalVars[i].VarName)==0)
|
if(str_cmp(LocalName,LocalVars[i].VarName)==0)
|
||||||
@ -9674,7 +9690,7 @@ void Parse (char *Arg)
|
|||||||
{
|
{
|
||||||
if(iMatchNQ(Src,"->lpVtbl"))
|
if(iMatchNQ(Src,"->lpVtbl"))
|
||||||
{
|
{
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=1; i<=Ndx; i+=1)
|
for(i=1; i<=Ndx; i+=1)
|
||||||
{
|
{
|
||||||
if(iMatchRgt(Stk[i],"->lpVtbl"))
|
if(iMatchRgt(Stk[i],"->lpVtbl"))
|
||||||
@ -10652,7 +10668,8 @@ void HandleNonsense (void)
|
|||||||
|
|
||||||
void ValidVar (char *v)
|
void ValidVar (char *v)
|
||||||
{
|
{
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
if(!isalpha(*v)&&*v!=95)
|
if(!isalpha(*v)&&*v!=95)
|
||||||
{
|
{
|
||||||
if(!iMatchLft(v,"(*"))
|
if(!iMatchLft(v,"(*"))
|
||||||
@ -10666,6 +10683,7 @@ void ValidVar (char *v)
|
|||||||
strcpy(ZZ, join(5,ZZ,str(ModuleLineNos[ModuleNdx])," in Module: ",trim(Modules[ModuleNdx])," is a Restricted Word"));
|
strcpy(ZZ, join(5,ZZ,str(ModuleLineNos[ModuleNdx])," in Module: ",trim(Modules[ModuleNdx])," is a Restricted Word"));
|
||||||
Warning(ZZ);
|
Warning(ZZ);
|
||||||
}
|
}
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -10856,7 +10874,8 @@ void Emit (void)
|
|||||||
char Keyword[2048];
|
char Keyword[2048];
|
||||||
char lszTmp[2048];
|
char lszTmp[2048];
|
||||||
char Var1[2048];
|
char Var1[2048];
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
int IsSubOrFuncPtr;
|
int IsSubOrFuncPtr;
|
||||||
int dms;
|
int dms;
|
||||||
static int NoBreak;
|
static int NoBreak;
|
||||||
@ -10873,6 +10892,7 @@ void Emit (void)
|
|||||||
EMITAGAIN:;
|
EMITAGAIN:;
|
||||||
if(Ndx==0)
|
if(Ndx==0)
|
||||||
{
|
{
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Statements++;
|
Statements++;
|
||||||
@ -10880,6 +10900,7 @@ EMITAGAIN:;
|
|||||||
{
|
{
|
||||||
fprintf(Outfile,"%s\n","");
|
fprintf(Outfile,"%s\n","");
|
||||||
fprintf(Outfile,"%s%s\n",ucase(Stk[1]),";");
|
fprintf(Outfile,"%s%s\n",ucase(Stk[1]),";");
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for(i=1; i<=Ndx; i+=1)
|
for(i=1; i<=Ndx; i+=1)
|
||||||
@ -11065,7 +11086,7 @@ EMITAGAIN:;
|
|||||||
{
|
{
|
||||||
strcpy(Reg,SPC);
|
strcpy(Reg,SPC);
|
||||||
LoopLocalVar[LoopLocalCnt++]=1;
|
LoopLocalVar[LoopLocalCnt++]=1;
|
||||||
fprintf(Outfile,"%s%s",Scoot," {register int ");
|
fprintf(Outfile,"%s%s",Scoot," {int ");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(str_cmp(Reg,"single")==0 || str_cmp(Reg,"float")==0)
|
if(str_cmp(Reg,"single")==0 || str_cmp(Reg,"float")==0)
|
||||||
@ -12035,13 +12056,13 @@ EMITAGAIN:;
|
|||||||
{
|
{
|
||||||
strcpy(lszTmp,mid(lszTmp,2));
|
strcpy(lszTmp,mid(lszTmp,2));
|
||||||
}
|
}
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"{register int BCX_REPEAT;");
|
fprintf(Outfile,"%s%s\n",Scoot,"{int BCX_REPEAT;");
|
||||||
fprintf(Outfile,"%s%s%s%s\n",Scoot,"for(BCX_REPEAT=",lszTmp,";BCX_REPEAT>=1;BCX_REPEAT--)");
|
fprintf(Outfile,"%s%s%s%s\n",Scoot,"for(BCX_REPEAT=",lszTmp,";BCX_REPEAT>=1;BCX_REPEAT--)");
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"{");
|
fprintf(Outfile,"%s%s\n",Scoot,"{");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"{register int BCX_REPEAT;");
|
fprintf(Outfile,"%s%s\n",Scoot,"{int BCX_REPEAT;");
|
||||||
fprintf(Outfile,"%s%s%s%s\n",Scoot,"for(BCX_REPEAT=1;BCX_REPEAT<=",lszTmp,";BCX_REPEAT++)");
|
fprintf(Outfile,"%s%s%s%s\n",Scoot,"for(BCX_REPEAT=1;BCX_REPEAT<=",lszTmp,";BCX_REPEAT++)");
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"{");
|
fprintf(Outfile,"%s%s\n",Scoot,"{");
|
||||||
}
|
}
|
||||||
@ -12344,7 +12365,7 @@ EMITAGAIN:;
|
|||||||
strcpy(Stk[2],Clean(Stk[2]));
|
strcpy(Stk[2],Clean(Stk[2]));
|
||||||
}
|
}
|
||||||
fprintf(Outfile,"%s%s%s%s%s%s\n",Scoot,"printf(",enc("%s"),",",Stk[2],");");
|
fprintf(Outfile,"%s%s%s%s%s%s\n",Scoot,"printf(",enc("%s"),",",Stk[2],");");
|
||||||
fprintf(Outfile,"%s%s%s%s\n",Scoot,"AR_fgets_retval=fgets(",Clean(Stk[3]),",2048-1,stdin);");
|
fprintf(Outfile,"%s%s%s%s\n",Scoot,"AR_fgets_retval=fgets(",Clean(Stk[3]),",65535,stdin);");
|
||||||
fprintf(Outfile,"%s%s%s%s%s\n",Scoot,Clean(Stk[3]),"[strlen(",Clean(Stk[3]),")-1]=0;");
|
fprintf(Outfile,"%s%s%s%s%s\n",Scoot,Clean(Stk[3]),"[strlen(",Clean(Stk[3]),")-1]=0;");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -12390,7 +12411,7 @@ EMITAGAIN:;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf(Outfile,"%s%s%s\n",Scoot,Var,"[0]=0;");
|
fprintf(Outfile,"%s%s%s\n",Scoot,Var,"[0]=0;");
|
||||||
fprintf(Outfile,"%s%s%s%s%s%s\n",Scoot,"AR_fgets_retval=fgets(",Var,",1048576,",Clean(Stk[2]),");");
|
fprintf(Outfile,"%s%s%s%s%s%s\n",Scoot,"AR_fgets_retval=fgets(",Var,",65535,",Clean(Stk[2]),");");
|
||||||
fprintf(Outfile,"%s%s%s%s%s%s",Scoot,"if(",CVar,"[strlen(",CVar,")-1]==10)");
|
fprintf(Outfile,"%s%s%s%s%s%s",Scoot,"if(",CVar,"[strlen(",CVar,")-1]==10)");
|
||||||
fprintf(Outfile,"%s%s%s%s\n",CVar,"[strlen(",CVar,")-1]=0;");
|
fprintf(Outfile,"%s%s%s%s\n",CVar,"[strlen(",CVar,")-1]=0;");
|
||||||
if(Var1[0]!=0)
|
if(Var1[0]!=0)
|
||||||
@ -12692,13 +12713,13 @@ EMITAGAIN:;
|
|||||||
if(iMatchWrd(Stk[1],"constructor")||iMatchWrd(Stk[1],"destructor"))
|
if(iMatchWrd(Stk[1],"constructor")||iMatchWrd(Stk[1],"destructor"))
|
||||||
{
|
{
|
||||||
strcpy(Stk[1],"sub");
|
strcpy(Stk[1],"sub");
|
||||||
{register int ct;
|
{int ct;
|
||||||
for(ct=1; ct<=Ndx; ct+=1)
|
for(ct=1; ct<=Ndx; ct+=1)
|
||||||
{
|
{
|
||||||
if(str_cmp(Stk[ct],"using")==0)
|
if(str_cmp(Stk[ct],"using")==0)
|
||||||
{
|
{
|
||||||
New_Ndx=ct-1;
|
New_Ndx=ct-1;
|
||||||
{register int ut;
|
{int ut;
|
||||||
for(ut=ct; ut<=Ndx; ut+=1)
|
for(ut=ct; ut<=Ndx; ut+=1)
|
||||||
{
|
{
|
||||||
strcat(CTOR_USE,Stk[ut]);
|
strcat(CTOR_USE,Stk[ut]);
|
||||||
@ -13616,7 +13637,7 @@ EMITAGAIN:;
|
|||||||
strcpy(vproc, join(2,Stk[Ndx-1],Stk[Ndx]));
|
strcpy(vproc, join(2,Stk[Ndx-1],Stk[Ndx]));
|
||||||
Ndx-=2;
|
Ndx-=2;
|
||||||
}
|
}
|
||||||
{register int act;
|
{int act;
|
||||||
for(act=3; act<=Ndx; act+=1)
|
for(act=3; act<=Ndx; act+=1)
|
||||||
{
|
{
|
||||||
strcpy(Stk[act-1],Stk[act]);
|
strcpy(Stk[act-1],Stk[act]);
|
||||||
@ -14302,6 +14323,7 @@ EMITAGAIN:;
|
|||||||
{
|
{
|
||||||
FuncRetnFlag=0;
|
FuncRetnFlag=0;
|
||||||
*Stk[1]=0;
|
*Stk[1]=0;
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -14497,6 +14519,7 @@ PROCESSNUMERIC:;
|
|||||||
}
|
}
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,"return BCX_RetStr;");
|
fprintf(Outfile,"%s%s\n",Scoot,"return BCX_RetStr;");
|
||||||
}
|
}
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -14897,7 +14920,7 @@ void DeclareVariables (void)
|
|||||||
while(!EoF(FP3))
|
while(!EoF(FP3))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP3);
|
AR_fgets_retval=fgets(Z,65535,FP3);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(Outfile,"%s\n",ltrim(Z));
|
fprintf(Outfile,"%s\n",ltrim(Z));
|
||||||
}
|
}
|
||||||
@ -14919,7 +14942,7 @@ void DeclareVariables (void)
|
|||||||
while(!EoF(FP8))
|
while(!EoF(FP8))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP8);
|
AR_fgets_retval=fgets(Z,65535,FP8);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(Outfile,"%s\n",Z);
|
fprintf(Outfile,"%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -14944,7 +14967,7 @@ void DeclareVariables (void)
|
|||||||
while(!EoF(FP3))
|
while(!EoF(FP3))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP3);
|
AR_fgets_retval=fgets(Z,65535,FP3);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,Z);
|
fprintf(Outfile,"%s%s\n",Scoot,Z);
|
||||||
}
|
}
|
||||||
@ -15113,7 +15136,7 @@ void DeclareVariables (void)
|
|||||||
}
|
}
|
||||||
if(Use_Inputbuffer==TRUE)
|
if(Use_Inputbuffer==TRUE)
|
||||||
{
|
{
|
||||||
fprintf(Outfile,"%s\n","char InputBuffer[1048576];");
|
fprintf(Outfile,"%s\n","char InputBuffer[65535];");
|
||||||
}
|
}
|
||||||
if(Use_Findfirst||Use_Findnext)
|
if(Use_Findfirst||Use_Findnext)
|
||||||
{
|
{
|
||||||
@ -15309,7 +15332,7 @@ void DeclareVariables (void)
|
|||||||
while(!EoF(FP5))
|
while(!EoF(FP5))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP5);
|
AR_fgets_retval=fgets(Z,65535,FP5);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(Outfile,"%s\n",Z);
|
fprintf(Outfile,"%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -15323,7 +15346,7 @@ void DeclareVariables (void)
|
|||||||
while(!EoF(FP1))
|
while(!EoF(FP1))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP1);
|
AR_fgets_retval=fgets(Z,65535,FP1);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(Outfile,"%s\n",Z);
|
fprintf(Outfile,"%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -15660,7 +15683,8 @@ void GetVarCode (VARCODE* varcode)
|
|||||||
void AddProtos (void)
|
void AddProtos (void)
|
||||||
{
|
{
|
||||||
char SaveMain[2048];
|
char SaveMain[2048];
|
||||||
char ZZ[2048];
|
char *ZZ;
|
||||||
|
ZZ=(char*)calloc(256+65535,1);
|
||||||
int A;
|
int A;
|
||||||
*SaveMain=0;
|
*SaveMain=0;
|
||||||
if((FP1=fopen(FileOut,"r"))==0)
|
if((FP1=fopen(FileOut,"r"))==0)
|
||||||
@ -15676,7 +15700,7 @@ void AddProtos (void)
|
|||||||
while(!EoF(FP1))
|
while(!EoF(FP1))
|
||||||
{
|
{
|
||||||
ZZ[0]=0;
|
ZZ[0]=0;
|
||||||
AR_fgets_retval=fgets(ZZ,1048576,FP1);
|
AR_fgets_retval=fgets(ZZ,65535,FP1);
|
||||||
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
||||||
if(instr_b(ZZ,"int main"))
|
if(instr_b(ZZ,"int main"))
|
||||||
{
|
{
|
||||||
@ -16619,7 +16643,7 @@ void AddProtos (void)
|
|||||||
while(!EoF(FP8))
|
while(!EoF(FP8))
|
||||||
{
|
{
|
||||||
ZZ[0]=0;
|
ZZ[0]=0;
|
||||||
AR_fgets_retval=fgets(ZZ,1048576,FP8);
|
AR_fgets_retval=fgets(ZZ,65535,FP8);
|
||||||
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
||||||
if(instr_b(ZZ,"overloaded"))
|
if(instr_b(ZZ,"overloaded"))
|
||||||
{
|
{
|
||||||
@ -16648,7 +16672,7 @@ void AddProtos (void)
|
|||||||
while(!EoF(FP5))
|
while(!EoF(FP5))
|
||||||
{
|
{
|
||||||
Z[0]=0;
|
Z[0]=0;
|
||||||
AR_fgets_retval=fgets(Z,1048576,FP5);
|
AR_fgets_retval=fgets(Z,65535,FP5);
|
||||||
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
if(Z[strlen(Z)-1]==10)Z[strlen(Z)-1]=0;
|
||||||
fprintf(Outfile,"%s\n",Z);
|
fprintf(Outfile,"%s\n",Z);
|
||||||
}
|
}
|
||||||
@ -16685,7 +16709,7 @@ void AddProtos (void)
|
|||||||
while(!EoF(FP1))
|
while(!EoF(FP1))
|
||||||
{
|
{
|
||||||
ZZ[0]=0;
|
ZZ[0]=0;
|
||||||
AR_fgets_retval=fgets(ZZ,1048576,FP1);
|
AR_fgets_retval=fgets(ZZ,65535,FP1);
|
||||||
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
if(ZZ[strlen(ZZ)-1]==10)ZZ[strlen(ZZ)-1]=0;
|
||||||
fprintf(Outfile,"%s%s\n",Scoot,ZZ);
|
fprintf(Outfile,"%s%s\n",Scoot,ZZ);
|
||||||
}
|
}
|
||||||
@ -16697,6 +16721,7 @@ void AddProtos (void)
|
|||||||
CloseAll();
|
CloseAll();
|
||||||
remove (FileOut);
|
remove (FileOut);
|
||||||
rename ("$t$e$m$p",FileOut);
|
rename ("$t$e$m$p",FileOut);
|
||||||
|
if(ZZ)free(ZZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -16883,7 +16908,7 @@ void RunTimeFunctions (void)
|
|||||||
{
|
{
|
||||||
fprintf(Outfile,"%s\n","int EoF (FILE* stream)");
|
fprintf(Outfile,"%s\n","int EoF (FILE* stream)");
|
||||||
fprintf(Outfile,"%s\n","{");
|
fprintf(Outfile,"%s\n","{");
|
||||||
fprintf(Outfile,"%s\n"," register int c, status = ((c = fgetc(stream)) == EOF);");
|
fprintf(Outfile,"%s\n"," int c, status = ((c = fgetc(stream)) == EOF);");
|
||||||
fprintf(Outfile,"%s\n"," ungetc(c,stream);");
|
fprintf(Outfile,"%s\n"," ungetc(c,stream);");
|
||||||
fprintf(Outfile,"%s\n"," return status;");
|
fprintf(Outfile,"%s\n"," return status;");
|
||||||
fprintf(Outfile,"%s\n","}\n\n");
|
fprintf(Outfile,"%s\n","}\n\n");
|
||||||
@ -19059,7 +19084,7 @@ void RunTimeFunctions (void)
|
|||||||
{
|
{
|
||||||
fprintf(Outfile,"%s\n","int BCX_StartupCode_(void)");
|
fprintf(Outfile,"%s\n","int BCX_StartupCode_(void)");
|
||||||
fprintf(Outfile,"%s\n","{");
|
fprintf(Outfile,"%s\n","{");
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=1; i<=StartNdx; i+=1)
|
for(i=1; i<=StartNdx; i+=1)
|
||||||
{
|
{
|
||||||
fprintf(Outfile,"%s%s%s\n"," ",StartSub[i],"();");
|
fprintf(Outfile,"%s%s%s\n"," ",StartSub[i],"();");
|
||||||
@ -19072,7 +19097,7 @@ void RunTimeFunctions (void)
|
|||||||
{
|
{
|
||||||
fprintf(Outfile,"%s\n","int BCX_ExitCode_(void)");
|
fprintf(Outfile,"%s\n","int BCX_ExitCode_(void)");
|
||||||
fprintf(Outfile,"%s\n","{");
|
fprintf(Outfile,"%s\n","{");
|
||||||
{register int i;
|
{int i;
|
||||||
for(i=1; i<=ExitNdx; i+=1)
|
for(i=1; i<=ExitNdx; i+=1)
|
||||||
{
|
{
|
||||||
fprintf(Outfile,"%s%s%s\n"," atexit(",ExitSub[i],");");
|
fprintf(Outfile,"%s%s%s\n"," atexit(",ExitSub[i],");");
|
||||||
@ -19390,7 +19415,7 @@ LFTLSE:;
|
|||||||
{
|
{
|
||||||
SplitCnt--;
|
SplitCnt--;
|
||||||
}
|
}
|
||||||
{register int BCX_REPEAT;
|
{int BCX_REPEAT;
|
||||||
for(BCX_REPEAT=1;BCX_REPEAT<=NdIfs;BCX_REPEAT++)
|
for(BCX_REPEAT=1;BCX_REPEAT<=NdIfs;BCX_REPEAT++)
|
||||||
{
|
{
|
||||||
strcpy(SplitStk[SplitCnt++],"END IF");
|
strcpy(SplitStk[SplitCnt++],"END IF");
|
||||||
|
@ -160,7 +160,7 @@ IF NoRT=TRUE THEN EXIT SUB
|
|||||||
IF Use_Eof THEN
|
IF Use_Eof THEN
|
||||||
FPRINT Outfile,"int EoF (FILE* stream)"
|
FPRINT Outfile,"int EoF (FILE* stream)"
|
||||||
FPRINT Outfile,"{"
|
FPRINT Outfile,"{"
|
||||||
FPRINT Outfile," register int c, status = ((c = fgetc(stream)) == EOF);"
|
FPRINT Outfile," int c, status = ((c = fgetc(stream)) == EOF);"
|
||||||
FPRINT Outfile," ungetc(c,stream);"
|
FPRINT Outfile," ungetc(c,stream);"
|
||||||
FPRINT Outfile," return status;"
|
FPRINT Outfile," return status;"
|
||||||
FPRINT Outfile,"}\n\n"
|
FPRINT Outfile,"}\n\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user