Initial check in lib
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
unit dpglib.DelphiCharFormatter;
|
||||
|
||||
interface
|
||||
uses
|
||||
System.Classes,
|
||||
dpglib.types;
|
||||
|
||||
type
|
||||
TDelphiCharFormatter = class( TInterfacedObject, ICharFormatter)
|
||||
// ----------------------------------------------------------------------
|
||||
// IdpgCharFormatter methods
|
||||
// ----------------------------------------------------------------------
|
||||
public
|
||||
function EscapeChar( pChar : integer;
|
||||
pForCharLiteral : boolean) : AnsiString;
|
||||
function EscapeString( pString : AnsiString) : AnsiString;
|
||||
function LiteralChar( pChar : integer) : AnsiString;
|
||||
function LiteralString( pString : AnsiString) : AnsiString;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TDelphiCharFormatter }
|
||||
|
||||
// @@@: IdpgCharFormatter +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
//
|
||||
// IdpgCharFormatter
|
||||
//
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// ================================================================================================
|
||||
// EscapeChar
|
||||
//
|
||||
// Given a character value, return a string representing the character that can be embedded
|
||||
// inside a string literal or character literal.
|
||||
// ================================================================================================
|
||||
function TDelphiCharFormatter.EscapeChar( pChar : integer;
|
||||
pForCharLiteral: boolean): AnsiString;
|
||||
begin
|
||||
result := AnsiChar(pChar);
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// EscapeString
|
||||
//
|
||||
// Converts a string into a representation that can be uses as a literal when surrounded by
|
||||
// quotes.
|
||||
// ================================================================================================
|
||||
function TDelphiCharFormatter.EscapeString(pString: AnsiString): AnsiString;
|
||||
var
|
||||
i: integer;
|
||||
|
||||
begin
|
||||
result := '';
|
||||
|
||||
for i:=1 to Length(pString) do
|
||||
result := result + EscapeChar( ord(pString[i]), false);
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// LiteralChar
|
||||
//
|
||||
// Given a character value, return a string representing a character literal that can be
|
||||
// recognized by the target language compiler.
|
||||
// ================================================================================================
|
||||
function TDelphiCharFormatter.LiteralChar(pChar: integer): AnsiString;
|
||||
begin
|
||||
result := '''' + EscapeChar( ord(pChar), true) + '''';
|
||||
end;
|
||||
|
||||
// ================================================================================================
|
||||
// LiteralString
|
||||
// ================================================================================================
|
||||
function TDelphiCharFormatter.LiteralString(pString: AnsiString): AnsiString;
|
||||
begin
|
||||
result := '''' + EscapeString( pString) + '''';
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user