359
344
s1:=GetSwitch('-path');
360
345
expandname(name,s1);
366
blockread(f,buf^,size);
347
assign(finclude,name);
349
sizeinclude:=filesize(finclude);
350
GetMem(bufinclude,sizeinclude);
351
blockread(finclude,bufinclude^,sizeinclude);
368
353
case Language(name)of
370
do_C(buf,size,@saveProc);
355
do_C(bufinclude,sizeinclude,@saveProc);
372
do_pascal(buf,size,@saveProc);
357
do_pascal(bufinclude,sizeinclude,@saveProc);
359
FreeMem(bufinclude,sizeinclude);
375
360
do_include:=true;
377
362
function CheckRight(const s:str255;pos:longint):longbool;
441
427
if isSwitch('-disable-nested-pascal-comments')then
442
428
PasNesting:=false;
443
429
excludeComments(buf,size);
446
if entry(buf,size,i,'#include',true)then
447
do_include(GetWord(buf,size,i+length('#include'),nextpos));
450
getmem(Accel,sizeof(pReplaceRec)*ChainLen);
459
for i:=1 to pred(Chainlen)do
460
for j:=succ(i)to Chainlen do
461
if length(Accel^[j]^.newvalue^)>=length(Accel^[i]^.oldvalue^)then
431
AConstList:=TStringList.Create;
433
AConstList.BeginUpdate;
438
if entry(buf,size,i,'#include',true)then
439
do_include(GetWord(buf,size,i+length('#include'),nextpos));
442
AConstList.EndUpdate; //end;
444
//replace const-value if needed and evaluate
445
For i:=0 to (AConstList.Count-1) do begin
446
sValue1:=AConstList.ValueFromIndex[i];
463
MustBeReplaced:=false;
464
for kk:=1 to length(Accel^[j]^.newvalue^)do
466
sss:=copy(Accel^[j]^.newvalue^,kk,length(Accel^[i]^.oldvalue^));
467
if length(sss)<>length(Accel^[i]^.oldvalue^)then
469
else if sss=Accel^[i]^.oldvalue^ then
471
MustBeReplaced:=(CheckLeft(Accel^[j]^.newvalue^,kk)and CheckRight(Accel^[j]^.newvalue^,kk-1+
472
length(Accel^[i]^.oldvalue^)));
473
if MustBeReplaced then
477
if MustBeReplaced then
479
sss:=Accel^[j]^.newvalue^;
480
delete(sss,kk,length(Accel^[i]^.oldvalue^));
481
insert(Accel^[i]^.newvalue^,sss,kk);
482
freemem(Accel^[j]^.newvalue,length(Accel^[j]^.newvalue^));
483
getmem(Accel^[j]^.newvalue,length(sss));
484
Accel^[j]^.newvalue^:=sss;
486
until not MustBeReplaced;
487
for j:=1 to Chainlen do
489
sss:=Evaluate(Accel^[j]^.newvalue^);
490
freemem(Accel^[j]^.newvalue,length(Accel^[j]^.newvalue^));
491
getmem(Accel^[j]^.newvalue,length(sss));
492
Accel^[j]^.newvalue^:=sss;
494
if isSwitch('C')or isSwitch('-Cheader')then
495
for i:=1 to Chainlen do
497
if Accel^[i]^.newvalue^<>''then
498
writeln('#define ',Accel^[i]^.oldvalue^,' ',Accel^[i]^.newvalue^)
511
while(sss<>'')and(sss[1]<=#32)do
514
for j:=1 to length(sst)do
515
sst[j]:=upcase(sst[j]);
516
if pos('#INCLUDE',sst)=0 then
519
for kk:=1 to length(sss)do
448
sValue2:=AConstList.Values[sValue1];
449
bNoMore:=Length(sValue2)=0;
450
if (not bNoMore) then sValue1:=sValue2;
452
sValue2:=Evaluate(sValue1);
454
then AConstList.ValueFromIndex[i]:=Evaluate(sValue1);
457
if isSwitch('C')or isSwitch('-Cheader')then begin
458
for i:=0 to AConstList.Count-1
459
do writeln('#define ',AConstList.Names[i],' ',AConstList.ValueFromIndex[i]);
469
while(sss<>'')and(sss[1]<=#32)do
472
for j:=1 to length(sst)do sst[j]:=upcase(sst[j]);
473
if pos('#INCLUDE',sst)=0 then
476
for kk:=1 to length(sss)do
525
for j:=1 to ChainLen do
527
if accel^[j]^.casesentitive then
529
if(accel^[j]^.oldvalue^=s)and(accel^[j]^.newvalue^<>'')then
531
s:=accel^[j]^.newvalue^;
537
if(accel^[j]^.oldvalue^=Up(s))and(accel^[j]^.newvalue^<>'')then
539
s:=accel^[j]^.newvalue^;
482
sValue1:=AConstList.Values[Up(s)];
484
then write(sValue1,' ')
557
freemem(Accel,sizeof(pReplaceRec)*ChainLen);
563
if c^.oldvalue<>nil then
564
freemem(c^.oldvalue,succ(length(c^.oldvalue^)));
565
if c^.newvalue<>nil then
566
freemem(c^.newvalue,succ(length(c^.newvalue^)));
501
AConstList.Free; //end;