1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- PROGRAM def2def;
- { converts the rpoc section of a def file
- from function prototye format to function varaible format
- if not already in right form }
- VAR
- Fin, Fout : Text;
- I, J, K, L : Word;
- S, T, U, V : String;
- Mode : Word;
- PROCEDURE UpString(VAR S:String);
- VAR
- I : Word;
- BEGIN
- FOR I := 1 TO Length(S) DO
- S[I] := UpCase(S[I]);
- END;
- BEGIN
- IF ParamCount<>2 THEN
- BEGIN
- WriteLn('Error: Invalid parameter count');
- WriteLn('Usage:');
- WriteLn(' def2def [source] [destination]');
- Halt(1);
- END;
- IF ParamStr(1)=ParamStr(2) THEN
- BEGIN
- WriteLn('Error: files must be different');
- WriteLn('Usage:');
- WriteLn(' def2def [source] [destination]');
- Halt(1);
- END;
- Assign(Fin,ParamStr(1));
- Reset(Fin);
- Assign(Fout,ParamStr(2));
- ReWrite(Fout);
- WriteLn('Converting...');
- Mode := 0;
- WHILE Not(EOF(Fin)) DO
- BEGIN
- ReadLn(Fin,S);
- IF Length(S)>0 THEN
- IF S[1]='%' THEN
- BEGIN
- IF S='%END' THEN Mode:=0 ELSE
- IF S='%COPY_INTERFACE' THEN Mode:=1 ELSE
- IF S='%PROCS' THEN Mode:=2 ELSE
- (* Unknown *) Mode:=0;
- END ELSE
- BEGIN
- CASE Mode OF
- 0 : { nothing };
- 1 : { nothing };
- 2 : BEGIN
- T := S;
- WHILE Pos(' ',T)=1 DO
- Delete(T,1,1);
- I := Pos(' ',T);
- U := Copy(T,1,I-1);
- V := U;
- UpString(U);
- IF (U='PROCEDURE') OR (U='FUNCTION') THEN
- BEGIN
- { this line needs swapping }
- Delete(T,1,I);
- WHILE Pos(' ',T)=1 DO
- Delete(T,1,1);
- I := Pos('(',T);
- J := Pos(' ',T);
- K := Pos(':',T);
- L := Pos(';',T);
- IF L>0 THEN
- BEGIN
- IF (I>0) AND (I<L) THEN L := I;
- IF (J>0) AND (J<L) THEN L := J;
- IF (K>0) AND (K<L) THEN L := K;
- Insert(': '+V,T,L);
- S := T;
- END;
- END;
- END;
- ELSE { nothing };
- END;
- END;
- WriteLn(Fout,S);
- END;
- Close(Fin);
- Close(Fout);
- WriteLn('Done.');
- END.
|