You've already forked lazarus-ccr
more update
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@383 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1,10 +1,18 @@
|
|||||||
|
{
|
||||||
|
Project1.pas
|
||||||
|
|
||||||
|
Copyright (C) 2008 Dmitry 'Skalogryz' Boyarintsev
|
||||||
|
|
||||||
|
main parser unit
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
program Project1;
|
program Project1;
|
||||||
|
|
||||||
{$mode delphi}{$H+}
|
{$mode delphi}{$H+}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, ObjCParserUtils, ObjCParserTypes;
|
Classes, SysUtils, ObjCParserUtils, ObjCParserTypes;
|
||||||
{ add your units here }
|
|
||||||
|
|
||||||
procedure ReadAndParseFile(const FileName: AnsiString; outdata: TStrings);
|
procedure ReadAndParseFile(const FileName: AnsiString; outdata: TStrings);
|
||||||
var
|
var
|
||||||
@ -12,7 +20,9 @@ var
|
|||||||
txt : TTextParser;
|
txt : TTextParser;
|
||||||
s : AnsiString;
|
s : AnsiString;
|
||||||
begin
|
begin
|
||||||
if not FileExists(FileName) then Exit;
|
if not FileExists(FileName) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
s := StrFromFile(FileName);
|
s := StrFromFile(FileName);
|
||||||
hdr := TObjCHeader.Create;
|
hdr := TObjCHeader.Create;
|
||||||
txt := TTextParser.Create;
|
txt := TTextParser.Create;
|
||||||
@ -20,13 +30,11 @@ begin
|
|||||||
try
|
try
|
||||||
txt.Buf := s;
|
txt.Buf := s;
|
||||||
try
|
try
|
||||||
|
hdr._FileName := ExtractFileName(FileName);
|
||||||
hdr.Parse(txt);
|
hdr.Parse(txt);
|
||||||
except
|
except
|
||||||
end;
|
end;
|
||||||
outdata.Add('');
|
WriteOutIncludeFile(hdr, outdata);
|
||||||
outdata.Add('// ' + FileName);
|
|
||||||
outdata.Add('');
|
|
||||||
ReportHeader(hdr, outdata);
|
|
||||||
finally
|
finally
|
||||||
hdr.Free;
|
hdr.Free;
|
||||||
txt.TokenTable.Free;
|
txt.TokenTable.Free;
|
||||||
@ -41,43 +49,25 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
inpf, outf : AnsiString;
|
inpf : AnsiString;
|
||||||
f : Text;
|
f : Text;
|
||||||
st : TStrings;
|
st : TStrings;
|
||||||
fn : AnsiString;
|
fn : AnsiString;
|
||||||
i : integer;
|
i : integer;
|
||||||
begin
|
begin
|
||||||
inpf := ''; outf := '';
|
inpf := ParamStr(1);
|
||||||
GetParams(inpf, outf);
|
|
||||||
writeln('input file: ', inpf);
|
|
||||||
writeln('output file: ', outf);
|
|
||||||
if not FileExists(inpf) then begin
|
if not FileExists(inpf) then begin
|
||||||
writeln('input file does not exists or anavailable');
|
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
st := TStringList.Create;
|
st := TStringList.Create;
|
||||||
try
|
try
|
||||||
Assign(f, inpf); Reset(f);
|
ReadAndParseFile(inpf, st);
|
||||||
while not eof(f) do begin
|
for i := 0 to st.Count - 1 do
|
||||||
readln(f, fn);
|
writeln(st[i]);
|
||||||
try
|
except
|
||||||
ReadAndParseFile(fn, st);
|
|
||||||
except
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Close(f);
|
|
||||||
|
|
||||||
Assign(f, outf); Rewrite(f);
|
|
||||||
try
|
|
||||||
for i := 0 to st.Count - 1 do
|
|
||||||
writeln(f, st[i]);
|
|
||||||
except
|
|
||||||
end;
|
|
||||||
Close(f);
|
|
||||||
|
|
||||||
finally
|
|
||||||
st.Free;
|
|
||||||
end;
|
end;
|
||||||
|
st.Free;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user