1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
program parsewikipage;
{$mode objfpc}{$H+}
uses
Classes, sysutils, WikiParser;
type
{ TWikiParse }
TWikiParse = class
procedure OnToken(Token: TWPToken);
public
procedure Parse(Filename: string);
end;
{ TWikiParse }
procedure TWikiParse.OnToken(Token: TWPToken);
var
TextToken: TWPTextToken;
begin
exit;
write('TWikiParse.OnToken ',dbgs(Token.Token));
if Token is TWPTextToken then begin
TextToken:=TWPTextToken(Token);
write(': "',copy(TextToken.Page.Src,TextToken.StartPos,TextToken.EndPos-TextToken.StartPos),'"');
end;
writeln;
end;
procedure TWikiParse.Parse(Filename: string);
var
Page: TWikiPage;
begin
Page:=TWikiPage.Create;
try
Page.LoadFromFile(Filename);
writeln(ExtractFileName(Filename),' ID="',Page.ID,'" Title="',Page.Title,'" Revision="',Page.Revision,'" timestamp="',Page.TimeStamp,'"');
Page.Parse(@OnToken);
finally
Page.Free;
end;
end;
var
i: Integer;
Parser: TWikiParse;
begin
Parser:=TWikiParse.Create;
for i:=1 to Paramcount do begin
Parser.Parse(ParamStr(i));
end;
end.
|