mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-27 17:34:55 +02:00
57 lines
1.1 KiB
ObjectPascal
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.
|
|
|