126 lines
4.8 KiB
ObjectPascal
126 lines
4.8 KiB
ObjectPascal
unit dpgrtl.parserstate;
|
|
|
|
interface
|
|
uses
|
|
dpgrtl.types;
|
|
|
|
type
|
|
TParserState = class( TInterfacedObject, IParserState)
|
|
protected
|
|
fFileName : string;
|
|
fGuessing : integer;
|
|
fInputBuffer : ITokenBuffer;
|
|
|
|
// ----------------------------------------------------------------------
|
|
// IParserState
|
|
// ----------------------------------------------------------------------
|
|
protected
|
|
function GetInputBuffer : ITokenBuffer;
|
|
function GetFileName : string;
|
|
function GetGuessing : integer;
|
|
|
|
procedure SetFileName( Value: string);
|
|
procedure SetGuessing( Value: integer);
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Construction/destruction
|
|
// ----------------------------------------------------------------------
|
|
public
|
|
constructor Create( ABuffer: ITokenBuffer);
|
|
|
|
procedure AfterConstruction; override;
|
|
procedure BeforeDestruction; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TParserState }
|
|
|
|
// @@@: Construction/destruction ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
//
|
|
// Construction/destruction
|
|
//
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ================================================================================================
|
|
// Constructor
|
|
// ================================================================================================
|
|
constructor TParserState.Create(ABuffer: ITokenBuffer);
|
|
begin
|
|
inherited Create;
|
|
fInputBuffer := ABuffer
|
|
end;
|
|
|
|
// ================================================================================================
|
|
// After Construction
|
|
// ================================================================================================
|
|
procedure TParserState.AfterConstruction;
|
|
begin
|
|
inherited;
|
|
fFileName := '';
|
|
fGuessing := 0
|
|
end;
|
|
|
|
// ================================================================================================
|
|
// Before Destruction
|
|
// ================================================================================================
|
|
procedure TParserState.BeforeDestruction;
|
|
begin
|
|
fInputBuffer := nil;
|
|
inherited
|
|
end;
|
|
|
|
// @@@: IParserState implementation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
//
|
|
// IParserState implementation
|
|
//
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// ================================================================================================
|
|
// Get File Name
|
|
// ================================================================================================
|
|
function TParserState.GetFileName: string;
|
|
begin
|
|
result := fFileName
|
|
end;
|
|
|
|
// ================================================================================================
|
|
// Get Guessing
|
|
// ================================================================================================
|
|
function TParserState.GetGuessing: integer;
|
|
begin
|
|
result := fGuessing
|
|
end;
|
|
|
|
// ================================================================================================
|
|
// Get Input Buffer
|
|
// ================================================================================================
|
|
function TParserState.GetInputBuffer: ITokenBuffer;
|
|
begin
|
|
result := fInputBuffer
|
|
end;
|
|
|
|
// ================================================================================================
|
|
// Set File Name
|
|
// ================================================================================================
|
|
procedure TParserState.SetFileName(Value: string);
|
|
begin
|
|
fFileName := Value
|
|
end;
|
|
|
|
// ================================================================================================
|
|
// Set Guessing
|
|
// ================================================================================================
|
|
procedure TParserState.SetGuessing(Value: integer);
|
|
begin
|
|
fGuessing := Value
|
|
end;
|
|
|
|
end.
|