Initial check in rtl
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user