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:
skalogryz
2008-03-25 08:17:24 +00:00
parent 2e98ee47a3
commit d2181a25d4

View File

@ -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.