Unit 'webidlscanner' Package
[Overview][Constants][Types][Classes][Procedures and functions][Index] [#webidl]

TDirectiveEvaluator

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Declaration

Source position: webidlscanner.pp line 151

type TDirectiveEvaluator = class

protected

type

  TDirectiveToken = (

  dtEOF,

  dtIdentifier,

  dtNumberInteger,

  dtNumberFloat,

  dtBracketOpen,

  dtBracketClose,

  dtNot,

  dtEqual,

  dtLess,

  dtLessEqual,

  dtGreater,

  dtGreaterEqual

);

  TPrecedenceLevel = (

  ceplFirst,

  ceplSecond,

  ceplThird,

  ceplFourth

);

  TStackItem = record

  Level: TPrecedenceLevel;

  Operathor: TDirectiveToken;

  Operand: string;

  OperandPos: PChar;

end;

protected

const

  BoolValues = array [boolean] of string; = ('0', '1')

  dtNames = array [TDirectiveToken] of string; = ('EOF', 'Identifier', 'Integer', 'Float', '(', ')', '!', '=', '<', '<=', '>', '>=')

protected

  FExpr: PChar;

  FToken: TDirectiveToken;

  FTokenStart: PChar;

  FTokenEnd: PChar;

  FStack: array of TStackItem;

  FStackTop: Integer;

  function IsFalse();

  function IsTrue();

  function IsInteger();

  function IsFloat();

  procedure NextToken;

  procedure Log();

  procedure LogXExpectedButTokenFound();

  procedure ReadOperand();

  procedure ReadExpression;

  procedure ResolveStack();

  function GetTokenString;

  function GetStringLiteralValue;

  procedure Push();

public

  MsgLineNumber: Integer;

  MsgPos: Integer;

  MsgNumber: Integer;

  MsgType: TMessageType;

  MsgPattern: string;

  constructor Create;

  destructor Destroy; override;

  function Eval();

  property OnEvalVariable: TDirectiveEvalVarEvent; [rw]

  property OnEvalFunction: TDirectiveEvalFunctionEvent; [rw]

  property OnLog: TDirectiveEvalLogEvent; [rw]

end;

Inheritance

TDirectiveEvaluator

|

TObject


Documentation generated on: 2023-03-18