📄 cnkeywords.pas
字号:
{******************************************************************************}
{ CnPack For Delphi/C++Builder }
{ 中国人自己的开放源码第三方开发包 }
{ (C)Copyright 2001-2007 CnPack 开发组 }
{ ------------------------------------ }
{ }
{ 本开发包是开源的自由软件,您可以遵照 CnPack 的发布协议来修 }
{ 改和重新发布这一程序。 }
{ }
{ 发布这一开发包的目的是希望它有用,但没有任何担保。甚至没有 }
{ 适合特定目的而隐含的担保。更详细的情况请参阅 CnPack 发布协议。 }
{ }
{ 您应该已经和开发包一起收到一份 CnPack 发布协议的副本。如果 }
{ 还没有,可访问我们的网站: }
{ }
{ 网站地址:http://www.cnpack.org }
{ 电子邮件:master@cnpack.org }
{ }
{******************************************************************************}
unit CnKeywords;
{* |<PRE>
================================================================================
* 软件名称:CnPack 代码格式化专家
* 单元名称:ObjectPascal 关键字检索类
* 单元作者:CnPack开发组
* 备 注:使用该类来检索指定字符串是否是OP的关键字,目前使用简单的顺序查找。
如果以后对速度要求提高了,可以改为HASH表查找方式。
* 开发平台:Win2003 + Delphi 5.0
* 兼容测试:not test yet
* 本 地 化:not test hell
* 修改记录:
* 2003-12-16 V0.1
建立
* 2004-04-07 废弃
================================================================================
|</PRE>}
interface
uses
Classes, SysUtils, CnTokens;
type
TKeyword = class(TStringList)
private
public
function IsKeyword(Str: String): Boolean;
function KeywordToken(Str: String): TPascalToken;
class function NewInstance: TObject; override;
end;
var
Keyword: TKeyword;
implementation
{ TKeyword }
function TKeyword.IsKeyword(Str: String): Boolean;
begin
Result := IndexOf(Str) <> -1;
end;
function TKeyword.KeywordToken(Str: String): TPascalToken;
begin
{ TODO: Here need to opitimize }
Result := StringToToken(Str);
end;
class function TKeyword.NewInstance: TObject;
begin
if Assigned(Keyword) then
Result := Keyword
else
Result := inherited NewInstance;
end;
initialization
Keyword := TKeyword.Create;
finalization
Keyword.Free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -