lazarus/components/wiki/parsewikipage.lpr
mattias ec110f77c0 started some tools for the wiki
git-svn-id: trunk@35615 -
2012-02-28 19:22:41 +00:00

57 lines
1.1 KiB
ObjectPascal

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.