unit jtag.svfAstState; interface uses jtag.svfAstNode; type TsvfAstState = class( TsvfAstNode) private fStates : array[0..255] of byte; fCursor : integer; fAllowData : boolean; function GetStateCount: integer; function GetState(i:integer): byte; public constructor Create; public function AsText: AnsiString; override; procedure BeginData; procedure EndData; procedure AddState( State: byte); public property StateCount : integer read GetStateCount; property States[i:integer] : byte read GetState; end; implementation uses jtag.svfProgram; { TsvfAstState } // @@@: Constructor/destructor ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // // Constructor/destructor // // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ====================================================================================== // Constructor // ====================================================================================== constructor TsvfAstState.Create; begin fCursor := 0; fAllowData := false; end; // @@@: Property Handlers +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // // Property Handlers // // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ====================================================================================== // GetStateCount // ====================================================================================== function TsvfAstState.GetStateCount: integer; begin result := fCursor; end; // ====================================================================================== // GetState // ====================================================================================== function TsvfAstState.GetState(i:integer): byte; begin if (i>=0) and (i