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.