Files
bds.mr.dpg/src.rtl/dpgrtl.llkparser.pas
T
2026-01-03 18:32:50 +01:00

104 lines
4.2 KiB
ObjectPascal

unit dpgrtl.llkparser;
interface
uses
dpgrtl.types,
dpgrtl.parser;
type
TllkParser = class( TParser)
protected
fK : integer;
// ----------------------------------------------------------------------
// Interface
// ----------------------------------------------------------------------
public
procedure Consume; override;
function LA(i:integer):byte; override;
function LT(i:integer):IToken; override;
// ----------------------------------------------------------------------
// Construction/destruction
// ----------------------------------------------------------------------
public
constructor Create( AParserState: IParserState; K: integer); overload;
constructor Create( ATokenBuffer: ITokenBuffer; K: integer); overload;
constructor Create( ATokenStream: ITokenStream; K: integer); overload;
end;
implementation
{ TllkParser }
// @@@: Construction/destruction ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Construction/destruction
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ================================================================================================
// Constructor(ParserState)
// ================================================================================================
constructor TllkParser.Create(AParserState: IParserState; K: integer);
begin
inherited Create( AParserState);
fK := K
end;
// ================================================================================================
// Constructor(TokenBuffer)
// ================================================================================================
constructor TllkParser.Create(ATokenBuffer: ITokenBuffer; K: integer);
begin
inherited Create(ATokenBuffer);
fK := K
end;
// ================================================================================================
// Constructor(TokenStream)
// ================================================================================================
constructor TllkParser.Create(ATokenStream: ITokenStream; K: integer);
begin
inherited Create(ATokenStream);
fK := K
end;
// @@@: Interface +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Interface
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ================================================================================================
// Consume
// ================================================================================================
procedure TllkParser.Consume;
begin
fParserState.InputBuffer.Consume
end;
// ================================================================================================
// LA
// ================================================================================================
function TllkParser.LA(i: integer): byte;
begin
result := fParserState.InputBuffer.LA(i)
end;
// ================================================================================================
// LT
// ================================================================================================
function TllkParser.LT(i: integer): IToken;
begin
result := fParserState.InputBuffer.LT(i)
end;
end.