Initial check in rtl
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
unit dpgrtl.token;
|
||||
|
||||
interface
|
||||
uses
|
||||
dpgrtl.types;
|
||||
|
||||
type
|
||||
TToken = class( TInterfacedObject, IToken)
|
||||
strict protected
|
||||
fTokenType : byte;
|
||||
fTokenText : AnsiString;
|
||||
fTokenLine : integer;
|
||||
fTokenColumn : integer;
|
||||
|
||||
protected
|
||||
function GetTokenType : byte;
|
||||
function GetTokenText : AnsiString;
|
||||
function GetTokenLine : integer;
|
||||
function GetTokenColumn : integer;
|
||||
|
||||
procedure SetTokenType( Value: byte);
|
||||
procedure SetTokenText( Value: AnsiString);
|
||||
procedure SetTokenLine( Value: integer);
|
||||
procedure SetTokenColumn( Value: integer);
|
||||
|
||||
public
|
||||
function Clone: IToken;
|
||||
|
||||
public
|
||||
constructor Create( ATokenType : byte=TT_INVALID;
|
||||
ATokenText : AnsiString='';
|
||||
ATokenLine : integer=0;
|
||||
ATokenColumn: integer=0);
|
||||
public
|
||||
end;
|
||||
|
||||
TTokenClass = class of TToken;
|
||||
|
||||
var
|
||||
badToken : IToken;
|
||||
nullToken: IToken;
|
||||
|
||||
implementation
|
||||
|
||||
// ================================================================================================
|
||||
// constructor
|
||||
// ================================================================================================
|
||||
constructor TToken.Create( ATokenType : byte;
|
||||
ATokenText : AnsiString;
|
||||
ATokenLine : integer;
|
||||
ATokenColumn: integer);
|
||||
begin
|
||||
fTokenType := ATokenType;
|
||||
fTokenText := ATokenText;
|
||||
fTokenLine := ATokenLine;
|
||||
fTokenColumn:= ATokenColumn
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Get Token Text
|
||||
// ================================================================================================
|
||||
function TToken.GetTokenText: AnsiString;
|
||||
begin
|
||||
result := fTokenText
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Get Token Type
|
||||
// ================================================================================================
|
||||
function TToken.GetTokenType: byte;
|
||||
begin
|
||||
result := fTokenType
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Get Token Line
|
||||
// ================================================================================================
|
||||
function TToken.GetTokenLine: integer;
|
||||
begin
|
||||
result := fTokenLine
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Get Token Column
|
||||
// ================================================================================================
|
||||
function TToken.GetTokenColumn: integer;
|
||||
begin
|
||||
result := fTokenColumn
|
||||
end;
|
||||
|
||||
|
||||
// ================================================================================================
|
||||
// Set Token Text
|
||||
// ================================================================================================
|
||||
procedure TToken.SetTokenText( Value: AnsiString);
|
||||
begin
|
||||
fTokenText := Value
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Set Token Type
|
||||
// ================================================================================================
|
||||
procedure TToken.SetTokenType( Value: byte);
|
||||
begin
|
||||
fTokenType := Value
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Set Token Line
|
||||
// ================================================================================================
|
||||
procedure TToken.SetTokenLine( Value: integer);
|
||||
begin
|
||||
fTokenLine := Value
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Set Token Line
|
||||
// ================================================================================================
|
||||
procedure TToken.SetTokenColumn( Value: integer);
|
||||
begin
|
||||
fTokenColumn := Value
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// Clone
|
||||
// ================================================================================================
|
||||
function TToken.Clone: IToken;
|
||||
begin
|
||||
result := TToken.Create( fTokenType, fTokenText, fTokenLine, fTokenColumn);
|
||||
end;
|
||||
|
||||
initialization
|
||||
badToken := TToken.Create( TT_INVALID);
|
||||
nullToken := TToken.Create( TT_INVALID);
|
||||
|
||||
finalization
|
||||
badToken := nil;
|
||||
nullToken := nil;
|
||||
end.
|
||||
Reference in New Issue
Block a user