Files
bds.mr.dpg/src.lib/dpglib.SynPredBlock.pas
T
2026-01-03 18:33:48 +01:00

61 lines
2.0 KiB
ObjectPascal

unit dpglib.SynPredBlock;
interface
uses
dpgrtl.types,
dpglib.types,
dpglib.AlternativeBlock;
type
// =========================================================================
// Class TSynPredBlock declaration
// =========================================================================
TSynPredBlock = class( TAlternativeBlock,
ISynPredBlock,
IAlternativeBlock,
IAlternativeElem,
IGrammarElem)
// ---------------------------------------------------------------
// IGrammarElem overrides
// ---------------------------------------------------------------
public
procedure Generate;
function Look( pK: integer): ILookahead;
function AsString : AnsiString;
end;
implementation
uses
dpglib.lookahead;
// ****************************************************************************
// IGrammarElem overrides
// ****************************************************************************
// ----------------------------------------------------------------------------
// Generate
// ----------------------------------------------------------------------------
procedure TSynPredBlock.Generate;
begin
fGrammar.Generator.Gen( self);
end;
// ----------------------------------------------------------------------------
// Look
// ----------------------------------------------------------------------------
function TSynPredBlock.Look(pK: integer): ILookahead;
begin
result := TLookahead.Create;
// result := fGrammar.LLkAnalyzer.Look( pK, self);
end;
// ----------------------------------------------------------------------------
// ToString
// ----------------------------------------------------------------------------
function TSynPredBlock.AsString: AnsiString;
begin
result := inherited AsString + '=>';
end;
end.