mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
3441 lines
102 KiB
ObjectPascal
3441 lines
102 KiB
ObjectPascal
{-------------------------------------------------------------------------------
|
|
The contents of this file are subject to the Mozilla Public License
|
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
the specific language governing rights and limitations under the License.
|
|
|
|
The Original Code is: SynHighlighterDml.pas, released 2000-04-17.
|
|
The Original Code is based on the mwDmlSyn.pas file from the
|
|
mwEdit component suite by Martin Waldenburg and other developers, the Initial
|
|
Author of this file is Peter Adam.
|
|
Unicode translation by Maël Hörz.
|
|
All Rights Reserved.
|
|
|
|
Contributors to the SynEdit and mwEdit projects are listed in the
|
|
Contributors.txt file.
|
|
|
|
Alternatively, the contents of this file may be used under the terms of the
|
|
GNU General Public License Version 2 or later (the "GPL"), in which case
|
|
the provisions of the GPL are applicable instead of those above.
|
|
If you wish to allow use of your version of this file only under the terms
|
|
of the GPL and not to allow others to use your version of this file
|
|
under the MPL, indicate your decision by deleting the provisions above and
|
|
replace them with the notice and other provisions required by the GPL.
|
|
If you do not delete the provisions above, a recipient may use your version
|
|
of this file under either the MPL or the GPL.
|
|
|
|
$Id: SynHighlighterDml.pas,v 1.11.2.7 2008/09/14 16:25:00 maelh Exp $
|
|
|
|
You may retrieve the latest version of this file at the SynEdit home page,
|
|
located at http://SynEdit.SourceForge.net
|
|
|
|
Known Issues:
|
|
- There are no metadata qualifiers.
|
|
-------------------------------------------------------------------------------}
|
|
{
|
|
@abstract(Provides a Dml highlighter for SynEdit)
|
|
@author(Peter Adam)
|
|
@created(1999)
|
|
@lastmod(2000-06-23)
|
|
The SynHighlighterDml unit provides SynEdit with a Dml highlighter.
|
|
}
|
|
|
|
unit SynHighlighterDml;
|
|
|
|
{$I SynEdit.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Graphics,
|
|
SynEditTypes,
|
|
SynEditHighlighter,
|
|
SynUnicode,
|
|
SysUtils,
|
|
Classes;
|
|
|
|
type
|
|
TtkTokenKind = (tkBlock, tkComment, tkForm, tkFunction, tkIdentifier, tkKey,
|
|
tkNull, tkNumber, tkQualifier, tkSpace, tkSpecial, tkString, tkSymbol,
|
|
tkUnknown, tkVariable);
|
|
|
|
TRangeState = (rsANil, rsAdd, rsFind, rsUnknown);
|
|
|
|
PIdentFuncTableFunc = ^TIdentFuncTableFunc;
|
|
TIdentFuncTableFunc = function (Index: Integer): TtkTokenKind of object;
|
|
|
|
TSynDmlSyn = class(TSynCustomHighlighter)
|
|
private
|
|
FRange: TRangeState;
|
|
FIdentFuncTable: array[0..2438] of TIdentFuncTableFunc;
|
|
FTokenID: TtkTokenKind;
|
|
FFormAttri: TSynHighlighterAttributes;
|
|
FBlockAttri: TSynHighlighterAttributes;
|
|
FKeyAttri: TSynHighlighterAttributes;
|
|
FQualiAttri: TSynHighlighterAttributes;
|
|
FCommentAttri: TSynHighlighterAttributes;
|
|
FFunctionAttri: TSynHighlighterAttributes;
|
|
FVariableAttri: TSynHighlighterAttributes;
|
|
FSpecialAttri: TSynHighlighterAttributes;
|
|
FStringAttri: TSynHighlighterAttributes;
|
|
FNumberAttri: TSynHighlighterAttributes;
|
|
FSymbolAttri: TSynHighlighterAttributes;
|
|
FIdentifierAttri: TSynHighlighterAttributes;
|
|
FSpaceAttri: TSynHighlighterAttributes;
|
|
function AltFunc(Index: Integer): TtkTokenKind;
|
|
function FuncAbs(Index: Integer): TtkTokenKind;
|
|
function FuncAbsolute_position(Index: Integer): TtkTokenKind;
|
|
function FuncAccount(Index: Integer): TtkTokenKind;
|
|
function FuncAcos(Index: Integer): TtkTokenKind;
|
|
function FuncActual_break(Index: Integer): TtkTokenKind;
|
|
function FuncAdd(Index: Integer): TtkTokenKind;
|
|
function FuncAdd_form(Index: Integer): TtkTokenKind;
|
|
function FuncAlternate_form(Index: Integer): TtkTokenKind;
|
|
function FuncAscii(Index: Integer): TtkTokenKind;
|
|
function FuncAsin(Index: Integer): TtkTokenKind;
|
|
function FuncAtan(Index: Integer): TtkTokenKind;
|
|
function FuncAtan2(Index: Integer): TtkTokenKind;
|
|
function FuncAttributes(Index: Integer): TtkTokenKind;
|
|
function FuncBack(Index: Integer): TtkTokenKind;
|
|
function FuncBase(Index: Integer): TtkTokenKind;
|
|
function FuncBatch(Index: Integer): TtkTokenKind;
|
|
function FuncBegin_block(Index: Integer): TtkTokenKind;
|
|
function FuncBegin_case(Index: Integer): TtkTokenKind;
|
|
function FuncBegin_disable_trigger(Index: Integer): TtkTokenKind;
|
|
function FuncBegin_row(Index: Integer): TtkTokenKind;
|
|
function FuncBegin_signal_to_status(Index: Integer): TtkTokenKind;
|
|
function FuncBell(Index: Integer): TtkTokenKind;
|
|
function FuncBinary_to_poly(Index: Integer): TtkTokenKind;
|
|
function FuncBottom_line(Index: Integer): TtkTokenKind;
|
|
function FuncBreak(Index: Integer): TtkTokenKind;
|
|
function FuncBreak0(Index: Integer): TtkTokenKind;
|
|
function FuncCall(Index: Integer): TtkTokenKind;
|
|
function FuncCase(Index: Integer): TtkTokenKind;
|
|
function FuncCeil(Index: Integer): TtkTokenKind;
|
|
function FuncCheck(Index: Integer): TtkTokenKind;
|
|
function FuncCheck_domain(Index: Integer): TtkTokenKind;
|
|
function FuncChr(Index: Integer): TtkTokenKind;
|
|
function FuncClear_buffer(Index: Integer): TtkTokenKind;
|
|
function FuncCli(Index: Integer): TtkTokenKind;
|
|
function FuncClose(Index: Integer): TtkTokenKind;
|
|
function FuncClose_text(Index: Integer): TtkTokenKind;
|
|
function FuncCol(Index: Integer): TtkTokenKind;
|
|
function FuncColumn_heading_row(Index: Integer): TtkTokenKind;
|
|
function FuncColumn_headings(Index: Integer): TtkTokenKind;
|
|
function FuncColumn_spacing(Index: Integer): TtkTokenKind;
|
|
function FuncCommit(Index: Integer): TtkTokenKind;
|
|
function FuncCommit_rate(Index: Integer): TtkTokenKind;
|
|
function FuncCompile(Index: Integer): TtkTokenKind;
|
|
function FuncCompress(Index: Integer): TtkTokenKind;
|
|
function FuncCompress_all(Index: Integer): TtkTokenKind;
|
|
function FuncConfirm(Index: Integer): TtkTokenKind;
|
|
function FuncConnect(Index: Integer): TtkTokenKind;
|
|
function FuncContinue(Index: Integer): TtkTokenKind;
|
|
function FuncCos(Index: Integer): TtkTokenKind;
|
|
function FuncCosh(Index: Integer): TtkTokenKind;
|
|
function FuncCross_reference(Index: Integer): TtkTokenKind;
|
|
function FuncDate(Index: Integer): TtkTokenKind;
|
|
function FuncDate_seconds(Index: Integer): TtkTokenKind;
|
|
function FuncDay_of_week(Index: Integer): TtkTokenKind;
|
|
function FuncDays(Index: Integer): TtkTokenKind;
|
|
function FuncDcl(Index: Integer): TtkTokenKind;
|
|
function FuncDefault_tag(Index: Integer): TtkTokenKind;
|
|
function FuncDelete(Index: Integer): TtkTokenKind;
|
|
function FuncDelete_form(Index: Integer): TtkTokenKind;
|
|
function FuncDescription(Index: Integer): TtkTokenKind;
|
|
function FuncDir(Index: Integer): TtkTokenKind;
|
|
function FuncDisconnect(Index: Integer): TtkTokenKind;
|
|
function FuncDisplay(Index: Integer): TtkTokenKind;
|
|
function FuncDisplay_length(Index: Integer): TtkTokenKind;
|
|
function FuncDocumentation(Index: Integer): TtkTokenKind;
|
|
function FuncDomain(Index: Integer): TtkTokenKind;
|
|
function FuncEdit(Index: Integer): TtkTokenKind;
|
|
function FuncElse(Index: Integer): TtkTokenKind;
|
|
function FuncElse_if(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_block(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_case(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_disable_trigger(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_execute(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_form(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_if(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_row(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_signal_to_status(Index: Integer): TtkTokenKind;
|
|
function FuncEnd_while(Index: Integer): TtkTokenKind;
|
|
function FuncErase(Index: Integer): TtkTokenKind;
|
|
function FuncError(Index: Integer): TtkTokenKind;
|
|
function FuncExecute(Index: Integer): TtkTokenKind;
|
|
function FuncExit(Index: Integer): TtkTokenKind;
|
|
function FuncExit_forward(Index: Integer): TtkTokenKind;
|
|
function FuncExpand(Index: Integer): TtkTokenKind;
|
|
function FuncExternal(Index: Integer): TtkTokenKind;
|
|
function FuncFacility(Index: Integer): TtkTokenKind;
|
|
function FuncFailure(Index: Integer): TtkTokenKind;
|
|
function FuncFetch(Index: Integer): TtkTokenKind;
|
|
function FuncFiles(Index: Integer): TtkTokenKind;
|
|
function FuncFind(Index: Integer): TtkTokenKind;
|
|
function FuncFind_form(Index: Integer): TtkTokenKind;
|
|
function FuncFinish(Index: Integer): TtkTokenKind;
|
|
function FuncFirst(Index: Integer): TtkTokenKind;
|
|
function FuncFloor(Index: Integer): TtkTokenKind;
|
|
function FuncFooting(Index: Integer): TtkTokenKind;
|
|
function FuncFooting_form(Index: Integer): TtkTokenKind;
|
|
function FuncForm(Index: Integer): TtkTokenKind;
|
|
function FuncGenerate(Index: Integer): TtkTokenKind;
|
|
function FuncGoto(Index: Integer): TtkTokenKind;
|
|
function FuncGrouped_by(Index: Integer): TtkTokenKind;
|
|
function FuncHeading(Index: Integer): TtkTokenKind;
|
|
function FuncHeading_form(Index: Integer): TtkTokenKind;
|
|
function FuncHeight(Index: Integer): TtkTokenKind;
|
|
function FuncIdentifier(Index: Integer): TtkTokenKind;
|
|
function FuncIf(Index: Integer): TtkTokenKind;
|
|
function FuncIn(Index: Integer): TtkTokenKind;
|
|
function FuncInput_block(Index: Integer): TtkTokenKind;
|
|
function FuncInput_mask(Index: Integer): TtkTokenKind;
|
|
function FuncInput_row_height(Index: Integer): TtkTokenKind;
|
|
function FuncInt(Index: Integer): TtkTokenKind;
|
|
function FuncInvoke(Index: Integer): TtkTokenKind;
|
|
function FuncItem(Index: Integer): TtkTokenKind;
|
|
function FuncItem_block(Index: Integer): TtkTokenKind;
|
|
function FuncItem_if(Index: Integer): TtkTokenKind;
|
|
function FuncJoined_to(Index: Integer): TtkTokenKind;
|
|
function FuncLeft(Index: Integer): TtkTokenKind;
|
|
function FuncLen(Index: Integer): TtkTokenKind;
|
|
function FuncLfooting(Index: Integer): TtkTokenKind;
|
|
function FuncLheading(Index: Integer): TtkTokenKind;
|
|
function FuncLine(Index: Integer): TtkTokenKind;
|
|
function FuncLines_after(Index: Integer): TtkTokenKind;
|
|
function FuncLines_before(Index: Integer): TtkTokenKind;
|
|
function FuncList(Index: Integer): TtkTokenKind;
|
|
function FuncLoad(Index: Integer): TtkTokenKind;
|
|
function FuncLock(Index: Integer): TtkTokenKind;
|
|
function FuncLog(Index: Integer): TtkTokenKind;
|
|
function FuncLog10(Index: Integer): TtkTokenKind;
|
|
function FuncLov(Index: Integer): TtkTokenKind;
|
|
function FuncLov_auto_select(Index: Integer): TtkTokenKind;
|
|
function FuncLov_col(Index: Integer): TtkTokenKind;
|
|
function FuncLov_data(Index: Integer): TtkTokenKind;
|
|
function FuncLov_first(Index: Integer): TtkTokenKind;
|
|
function FuncLov_height(Index: Integer): TtkTokenKind;
|
|
function FuncLov_noheading(Index: Integer): TtkTokenKind;
|
|
function FuncLov_nosearch(Index: Integer): TtkTokenKind;
|
|
function FuncLov_reduced_to(Index: Integer): TtkTokenKind;
|
|
function FuncLov_row(Index: Integer): TtkTokenKind;
|
|
function FuncLov_secondary(Index: Integer): TtkTokenKind;
|
|
function FuncLov_selection(Index: Integer): TtkTokenKind;
|
|
function FuncLov_sorted_by(Index: Integer): TtkTokenKind;
|
|
function FuncLov_width(Index: Integer): TtkTokenKind;
|
|
function FuncLov_with(Index: Integer): TtkTokenKind;
|
|
function FuncLowercase(Index: Integer): TtkTokenKind;
|
|
function FuncLtrim(Index: Integer): TtkTokenKind;
|
|
function FuncMail(Index: Integer): TtkTokenKind;
|
|
function FuncMenu(Index: Integer): TtkTokenKind;
|
|
function FuncMenu_block(Index: Integer): TtkTokenKind;
|
|
function FuncMenu_form(Index: Integer): TtkTokenKind;
|
|
function FuncMessage(Index: Integer): TtkTokenKind;
|
|
function FuncMid(Index: Integer): TtkTokenKind;
|
|
function FuncMod(Index: Integer): TtkTokenKind;
|
|
function FuncModify_form(Index: Integer): TtkTokenKind;
|
|
function FuncNew(Index: Integer): TtkTokenKind;
|
|
function FuncNo_domain(Index: Integer): TtkTokenKind;
|
|
function FuncNobell(Index: Integer): TtkTokenKind;
|
|
function FuncNoclear_buffer(Index: Integer): TtkTokenKind;
|
|
function FuncNodeadlock_exit(Index: Integer): TtkTokenKind;
|
|
function FuncNoerase(Index: Integer): TtkTokenKind;
|
|
function FuncNoerror(Index: Integer): TtkTokenKind;
|
|
function FuncNoexit_forward(Index: Integer): TtkTokenKind;
|
|
function FuncNoheading(Index: Integer): TtkTokenKind;
|
|
function FuncNolov_data(Index: Integer): TtkTokenKind;
|
|
function FuncNorepeat(Index: Integer): TtkTokenKind;
|
|
function FuncNostatus(Index: Integer): TtkTokenKind;
|
|
function FuncNototals(Index: Integer): TtkTokenKind;
|
|
function FuncNounderlines(Index: Integer): TtkTokenKind;
|
|
function FuncNowait(Index: Integer): TtkTokenKind;
|
|
function FuncOpen(Index: Integer): TtkTokenKind;
|
|
function FuncOpen_text(Index: Integer): TtkTokenKind;
|
|
function FuncOpt(Index: Integer): TtkTokenKind;
|
|
function FuncOptions(Index: Integer): TtkTokenKind;
|
|
function FuncOutput(Index: Integer): TtkTokenKind;
|
|
function FuncOutput_block(Index: Integer): TtkTokenKind;
|
|
function FuncOutput_mask(Index: Integer): TtkTokenKind;
|
|
function FuncPause(Index: Integer): TtkTokenKind;
|
|
function FuncPause_block(Index: Integer): TtkTokenKind;
|
|
function FuncPerform(Index: Integer): TtkTokenKind;
|
|
function FuncPoly_to_binary(Index: Integer): TtkTokenKind;
|
|
function FuncPos(Index: Integer): TtkTokenKind;
|
|
function FuncPrint(Index: Integer): TtkTokenKind;
|
|
function FuncProcedure_form(Index: Integer): TtkTokenKind;
|
|
function FuncPrompt(Index: Integer): TtkTokenKind;
|
|
function FuncProtect(Index: Integer): TtkTokenKind;
|
|
function FuncQuery(Index: Integer): TtkTokenKind;
|
|
function FuncQuery_form(Index: Integer): TtkTokenKind;
|
|
function FuncRandom(Index: Integer): TtkTokenKind;
|
|
function FuncRead_line(Index: Integer): TtkTokenKind;
|
|
function FuncRead_only(Index: Integer): TtkTokenKind;
|
|
function FuncReceive(Index: Integer): TtkTokenKind;
|
|
function FuncReceive_arguments(Index: Integer): TtkTokenKind;
|
|
function FuncReceive_data(Index: Integer): TtkTokenKind;
|
|
function FuncReceive_table(Index: Integer): TtkTokenKind;
|
|
function FuncReduced_to(Index: Integer): TtkTokenKind;
|
|
function FuncRelease(Index: Integer): TtkTokenKind;
|
|
function FuncRemain(Index: Integer): TtkTokenKind;
|
|
function FuncRepeat(Index: Integer): TtkTokenKind;
|
|
function FuncReport(Index: Integer): TtkTokenKind;
|
|
function FuncReport_form(Index: Integer): TtkTokenKind;
|
|
function FuncReposition(Index: Integer): TtkTokenKind;
|
|
function FuncRewind_text(Index: Integer): TtkTokenKind;
|
|
function FuncRfooting(Index: Integer): TtkTokenKind;
|
|
function FuncRheading(Index: Integer): TtkTokenKind;
|
|
function FuncRight(Index: Integer): TtkTokenKind;
|
|
function FuncRollback(Index: Integer): TtkTokenKind;
|
|
function FuncRound(Index: Integer): TtkTokenKind;
|
|
function FuncRow(Index: Integer): TtkTokenKind;
|
|
function FuncRow_height(Index: Integer): TtkTokenKind;
|
|
function FuncSearch(Index: Integer): TtkTokenKind;
|
|
function FuncSecondary(Index: Integer): TtkTokenKind;
|
|
function FuncSeconds(Index: Integer): TtkTokenKind;
|
|
function FuncSelection(Index: Integer): TtkTokenKind;
|
|
function FuncSend(Index: Integer): TtkTokenKind;
|
|
function FuncSend_data(Index: Integer): TtkTokenKind;
|
|
function FuncSend_message(Index: Integer): TtkTokenKind;
|
|
function FuncSend_table(Index: Integer): TtkTokenKind;
|
|
function FuncSequence(Index: Integer): TtkTokenKind;
|
|
function FuncSeverity(Index: Integer): TtkTokenKind;
|
|
function FuncSin(Index: Integer): TtkTokenKind;
|
|
function FuncSinh(Index: Integer): TtkTokenKind;
|
|
function FuncSorted_by(Index: Integer): TtkTokenKind;
|
|
function FuncSource(Index: Integer): TtkTokenKind;
|
|
function FuncSource_if(Index: Integer): TtkTokenKind;
|
|
function FuncSqrt(Index: Integer): TtkTokenKind;
|
|
function FuncStart_stream(Index: Integer): TtkTokenKind;
|
|
function FuncStart_transaction(Index: Integer): TtkTokenKind;
|
|
function FuncStatistic(Index: Integer): TtkTokenKind;
|
|
function FuncStatus(Index: Integer): TtkTokenKind;
|
|
function FuncStream_name(Index: Integer): TtkTokenKind;
|
|
function FuncString(Index: Integer): TtkTokenKind;
|
|
function FuncSuccess(Index: Integer): TtkTokenKind;
|
|
function FuncSwitch(Index: Integer): TtkTokenKind;
|
|
function FuncSwitch_base(Index: Integer): TtkTokenKind;
|
|
function FuncSystem(Index: Integer): TtkTokenKind;
|
|
function FuncTable(Index: Integer): TtkTokenKind;
|
|
function FuncTable_form(Index: Integer): TtkTokenKind;
|
|
function FuncTable_search(Index: Integer): TtkTokenKind;
|
|
function FuncTag(Index: Integer): TtkTokenKind;
|
|
function FuncTag_length(Index: Integer): TtkTokenKind;
|
|
function FuncTan(Index: Integer): TtkTokenKind;
|
|
function FuncTanh(Index: Integer): TtkTokenKind;
|
|
function FuncTarget(Index: Integer): TtkTokenKind;
|
|
function FuncText(Index: Integer): TtkTokenKind;
|
|
function FuncText_only(Index: Integer): TtkTokenKind;
|
|
function FuncTitle(Index: Integer): TtkTokenKind;
|
|
function FuncTo(Index: Integer): TtkTokenKind;
|
|
function FuncTop_line(Index: Integer): TtkTokenKind;
|
|
function FuncTotal(Index: Integer): TtkTokenKind;
|
|
function FuncTransfer(Index: Integer): TtkTokenKind;
|
|
function FuncTrigger(Index: Integer): TtkTokenKind;
|
|
function FuncTrim(Index: Integer): TtkTokenKind;
|
|
function FuncTsuppress(Index: Integer): TtkTokenKind;
|
|
function FuncUnload(Index: Integer): TtkTokenKind;
|
|
function FuncUppercase(Index: Integer): TtkTokenKind;
|
|
function FuncUse_if(Index: Integer): TtkTokenKind;
|
|
function FuncUser_key(Index: Integer): TtkTokenKind;
|
|
function FuncUsing(Index: Integer): TtkTokenKind;
|
|
function FuncUtilities(Index: Integer): TtkTokenKind;
|
|
function FuncWait(Index: Integer): TtkTokenKind;
|
|
function FuncWhile(Index: Integer): TtkTokenKind;
|
|
function FuncWidth(Index: Integer): TtkTokenKind;
|
|
function FuncWith(Index: Integer): TtkTokenKind;
|
|
function FuncWrite(Index: Integer): TtkTokenKind;
|
|
function FuncWrite_line(Index: Integer): TtkTokenKind;
|
|
function FuncYesno_block(Index: Integer): TtkTokenKind;
|
|
function HashKey(Str: PWideChar): Cardinal;
|
|
function IdentKind(MayBe: PWideChar): TtkTokenKind;
|
|
procedure InitIdent;
|
|
procedure SymbolProc;
|
|
procedure AddressOpProc;
|
|
procedure AsciiCharProc;
|
|
procedure CRProc;
|
|
procedure GreaterProc;
|
|
procedure IdentProc;
|
|
procedure LFProc;
|
|
procedure LowerProc;
|
|
procedure NullProc;
|
|
procedure NumberProc;
|
|
procedure PointProc;
|
|
procedure SpaceProc;
|
|
procedure StringProc;
|
|
procedure UnknownProc;
|
|
procedure RemProc;
|
|
function IsQuali: Boolean;
|
|
function IsSpecial: Boolean;
|
|
protected
|
|
function IsFilterStored: Boolean; override;
|
|
public
|
|
class function GetLanguageName: string; override;
|
|
class function GetFriendlyLanguageName: UnicodeString; override;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
function GetDefaultAttribute(Index: Integer): TSynHighlighterAttributes;
|
|
override;
|
|
function GetEol: Boolean; override;
|
|
function GetRange: Pointer; override;
|
|
function GetTokenID: TtkTokenKind;
|
|
function GetTokenAttribute: TSynHighlighterAttributes; override;
|
|
function GetTokenKind: Integer; override;
|
|
procedure Next; override;
|
|
procedure SetRange(Value: Pointer); override;
|
|
procedure ResetRange; override;
|
|
published
|
|
property BlockAttri: TSynHighlighterAttributes read FBlockAttri
|
|
write FBlockAttri;
|
|
property CommentAttri: TSynHighlighterAttributes read FCommentAttri
|
|
write FCommentAttri;
|
|
property FormAttri: TSynHighlighterAttributes read FFormAttri
|
|
write FFormAttri;
|
|
property FunctionAttri: TSynHighlighterAttributes read FFunctionAttri
|
|
write FFunctionAttri;
|
|
property IdentifierAttri: TSynHighlighterAttributes read FIdentifierAttri
|
|
write FIdentifierAttri;
|
|
property KeyAttri: TSynHighlighterAttributes read FKeyAttri write FKeyAttri;
|
|
property NumberAttri: TSynHighlighterAttributes read FNumberAttri
|
|
write FNumberAttri;
|
|
property QualiAttri: TSynHighlighterAttributes read FQualiAttri
|
|
write FQualiAttri;
|
|
property SpaceAttri: TSynHighlighterAttributes read FSpaceAttri
|
|
write FSpaceAttri;
|
|
property SpecialAttri: TSynHighlighterAttributes read FSpecialAttri
|
|
write FSpecialAttri;
|
|
property StringAttri: TSynHighlighterAttributes read FStringAttri
|
|
write FStringAttri;
|
|
property SymbolAttri: TSynHighlighterAttributes read FSymbolAttri
|
|
write FSymbolAttri;
|
|
property VariableAttri: TSynHighlighterAttributes read FVariableAttri
|
|
write FVariableAttri;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SynEditStrConst;
|
|
|
|
const
|
|
KeyWords: array[0..263] of UnicodeString = (
|
|
'abs', 'absolute_position', 'account', 'acos', 'actual_break', 'add',
|
|
'add_form', 'alternate_form', 'ascii', 'asin', 'atan', 'atan2',
|
|
'attributes', 'back', 'base', 'batch', 'begin_block', 'begin_case',
|
|
'begin_disable_trigger', 'begin_row', 'begin_signal_to_status', 'bell',
|
|
'binary_to_poly', 'bottom_line', 'break', 'break0', 'call', 'case', 'ceil',
|
|
'check', 'check_domain', 'chr', 'clear_buffer', 'cli', 'close',
|
|
'close_text', 'col', 'column_heading_row', 'column_headings',
|
|
'column_spacing', 'commit', 'commit_rate', 'compile', 'compress',
|
|
'compress_all', 'confirm', 'connect', 'continue', 'cos', 'cosh',
|
|
'cross_reference', 'date', 'date_seconds', 'day_of_week', 'days', 'dcl',
|
|
'default_tag', 'delete', 'delete_form', 'description', 'dir', 'disconnect',
|
|
'display', 'display_length', 'documentation', 'domain', 'edit', 'else',
|
|
'else_if', 'end_block', 'end_case', 'end_disable_trigger', 'end_execute',
|
|
'end_form', 'end_if', 'end_row', 'end_signal_to_status', 'end_while',
|
|
'erase', 'error', 'execute', 'exit', 'exit_forward', 'expand', 'external',
|
|
'facility', 'failure', 'fetch', 'files', 'find', 'find_form', 'finish',
|
|
'first', 'floor', 'footing', 'footing_form', 'form', 'generate', 'goto',
|
|
'grouped_by', 'heading', 'heading_form', 'height', 'identifier', 'if', 'in',
|
|
'input_block', 'input_mask', 'input_row_height', 'int', 'invoke', 'item',
|
|
'item_block', 'item_if', 'joined_to', 'left', 'len', 'lfooting', 'lheading',
|
|
'line', 'lines_after', 'lines_before', 'list', 'load', 'lock', 'log',
|
|
'log10', 'lov', 'lov_auto_select', 'lov_col', 'lov_data', 'lov_first',
|
|
'lov_height', 'lov_noheading', 'lov_nosearch', 'lov_reduced_to', 'lov_row',
|
|
'lov_secondary', 'lov_selection', 'lov_sorted_by', 'lov_width', 'lov_with',
|
|
'lowercase', 'ltrim', 'mail', 'menu', 'menu_block', 'menu_form', 'message',
|
|
'mid', 'mod', 'modify_form', 'new', 'no_domain', 'nobell', 'noclear_buffer',
|
|
'nodeadlock_exit', 'noerase', 'noerror', 'noexit_forward', 'noheading',
|
|
'nolov_data', 'norepeat', 'nostatus', 'nototals', 'nounderlines', 'nowait',
|
|
'open', 'open_text', 'opt', 'options', 'output', 'output_block',
|
|
'output_mask', 'pause', 'pause_block', 'perform', 'poly_to_binary', 'pos',
|
|
'print', 'procedure_form', 'prompt', 'protect', 'query', 'query_form',
|
|
'random', 'read_line', 'read_only', 'receive', 'receive_arguments',
|
|
'receive_data', 'receive_table', 'reduced_to', 'release', 'remain',
|
|
'repeat', 'report', 'report_form', 'reposition', 'rewind_text', 'rfooting',
|
|
'rheading', 'right', 'rollback', 'round', 'row', 'row_height', 'search',
|
|
'secondary', 'seconds', 'selection', 'send', 'send_data', 'send_message',
|
|
'send_table', 'sequence', 'severity', 'sin', 'sinh', 'sorted_by', 'source',
|
|
'source_if', 'sqrt', 'start_stream', 'start_transaction', 'statistic',
|
|
'status', 'stream_name', 'string', 'success', 'switch', 'switch_base',
|
|
'system', 'table', 'table_form', 'table_search', 'tag', 'tag_length', 'tan',
|
|
'tanh', 'target', 'text', 'text_only', 'title', 'to', 'top_line', 'total',
|
|
'transfer', 'trigger', 'trim', 'tsuppress', 'unload', 'uppercase', 'use_if',
|
|
'user_key', 'using', 'utilities', 'wait', 'while', 'width', 'with', 'write',
|
|
'write_line', 'yesno_block'
|
|
);
|
|
|
|
KeyIndices: array[0..2438] of Integer = (
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 230, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 217, -1, -1, -1, -1, -1, 183, -1, 246, -1, 134, -1, -1, -1, -1,
|
|
-1, 65, -1, -1, 223, -1, -1, -1, -1, -1, 213, -1, -1, -1, 46, -1, -1, 262,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 111, 157, -1, -1, -1, -1, -1, -1, 118, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 123, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 84, -1, 154, -1, 96, -1, -1, -1, 176, -1, -1, -1, 120, 178, -1, -1, -1,
|
|
-1, 74, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, 147, -1, -1, -1, 122,
|
|
-1, 58, -1, 87, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 5, -1, -1, 194, -1, -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1,
|
|
-1, 28, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 239, -1, -1, -1, -1, 20, -1, -1, -1, -1, 79,
|
|
116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 192,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 0, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 196, -1, -1, 85, -1, -1, -1, 104, -1, 103, -1, -1, 14, -1, -1,
|
|
131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, -1,
|
|
-1, 6, -1, 182, -1, -1, 171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 41, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1,
|
|
-1, -1, -1, 115, -1, -1, 108, -1, 150, -1, -1, 42, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 224, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, 166, -1, -1,
|
|
-1, -1, -1, -1, 225, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, 92, -1, -1,
|
|
226, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1,
|
|
-1, 100, -1, -1, -1, -1, -1, -1, -1, -1, 214, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 151, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, 146, 210, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 245, -1, -1, -1, -1, -1, 68, -1,
|
|
231, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57,
|
|
-1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7,
|
|
-1, -1, 75, -1, 252, 212, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
149, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
|
|
-1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 164, 35, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1,
|
|
-1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, 229, 11,
|
|
-1, -1, 43, -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, 159, -1, -1, 238, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 181, -1, 139, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 15, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69,
|
|
258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 153,
|
|
-1, -1, 36, -1, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 48, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, 9, -1, -1, 140, 193, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 228, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
19, -1, 66, -1, -1, -1, 24, -1, -1, -1, -1, 186, -1, -1, -1, -1, 99, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 253, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 54, -1, -1, -1, -1, 259, -1, 32, -1, -1, -1, -1, -1,
|
|
121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, 209, 260, -1,
|
|
-1, -1, -1, -1, -1, -1, 76, 257, -1, -1, -1, -1, 211, -1, 90, -1, -1, -1,
|
|
-1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, 70,
|
|
-1, -1, -1, -1, -1, 63, -1, -1, -1, 25, 207, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, 167, -1, -1, -1, -1, -1, -1, -1, -1, 179, -1,
|
|
189, -1, -1, -1, 113, -1, -1, -1, 110, -1, 205, -1, 56, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 51, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, 254, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1,
|
|
235, -1, 34, -1, 218, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, 220, -1,
|
|
-1, -1, 141, -1, -1, -1, -1, 195, -1, -1, -1, 137, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, 160, -1,
|
|
-1, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 203,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 219, -1, -1, -1, -1, -1, 61, -1, -1, 30, -1, -1, 130, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 12, -1, 202, -1, -1, -1, -1, -1, 200, -1, -1, 169, -1,
|
|
-1, -1, -1, -1, -1, 16, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, 162, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 247, -1, -1, -1, -1, -1, -1, 242, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, 251, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 216, -1, -1, -1, -1, 128, 27, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1,
|
|
-1, 158, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, 173, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, -1, 17, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 135, -1, -1, 190, -1, -1, -1, 222, 60, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 168, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, 94, -1, 95, -1, -1, -1, -1, -1, 215, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1,
|
|
-1, -1, 10, 250, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, -1, -1, -1,
|
|
233, -1, -1, -1, -1, -1, 249, -1, -1, 184, -1, -1, -1, -1, -1, 263, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 26, 138, -1, -1, -1, -1, -1, -1, -1, -1, 64,
|
|
-1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 127, 206, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 165, -1,
|
|
-1, 244, -1, -1, -1, -1, -1, -1, -1, -1
|
|
);
|
|
|
|
{$Q-}
|
|
function TSynDmlSyn.HashKey(Str: PWideChar): Cardinal;
|
|
begin
|
|
Result := 0;
|
|
while IsIdentChar(Str^) do
|
|
begin
|
|
Result := Result * 798 + Ord(Str^) * 3;
|
|
Inc(Str);
|
|
end;
|
|
Result := Result mod 2439;
|
|
FStringLen := Str - FToIdent;
|
|
end;
|
|
{$Q+}
|
|
|
|
function TSynDmlSyn.IdentKind(MayBe: PWideChar): TtkTokenKind;
|
|
var
|
|
Key: Cardinal;
|
|
begin
|
|
FToIdent := MayBe;
|
|
Key := HashKey(MayBe);
|
|
if Key <= High(FIdentFuncTable) then
|
|
Result := FIdentFuncTable[Key](KeyIndices[Key])
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
procedure TSynDmlSyn.InitIdent;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i := Low(FIdentFuncTable) to High(FIdentFuncTable) do
|
|
if KeyIndices[i] = -1 then
|
|
FIdentFuncTable[i] := AltFunc;
|
|
|
|
FIdentFuncTable[435] := FuncAbs;
|
|
FIdentFuncTable[41] := FuncAbsolute_position;
|
|
FIdentFuncTable[13] := FuncAccount;
|
|
FIdentFuncTable[2405] := FuncAcos;
|
|
FIdentFuncTable[1707] := FuncActual_break;
|
|
FIdentFuncTable[300] := FuncAdd;
|
|
FIdentFuncTable[486] := FuncAdd_form;
|
|
FIdentFuncTable[839] := FuncAlternate_form;
|
|
FIdentFuncTable[735] := FuncAscii;
|
|
FIdentFuncTable[1265] := FuncAsin;
|
|
FIdentFuncTable[2300] := FuncAtan;
|
|
FIdentFuncTable[1065] := FuncAtan2;
|
|
FIdentFuncTable[1930] := FuncAttributes;
|
|
FIdentFuncTable[1202] := FuncBack;
|
|
FIdentFuncTable[464] := FuncBase;
|
|
FIdentFuncTable[1118] := FuncBatch;
|
|
FIdentFuncTable[1948] := FuncBegin_block;
|
|
FIdentFuncTable[2124] := FuncBegin_case;
|
|
FIdentFuncTable[2068] := FuncBegin_disable_trigger;
|
|
FIdentFuncTable[1385] := FuncBegin_row;
|
|
FIdentFuncTable[387] := FuncBegin_signal_to_status;
|
|
FIdentFuncTable[1061] := FuncBell;
|
|
FIdentFuncTable[166] := FuncBinary_to_poly;
|
|
FIdentFuncTable[776] := FuncBottom_line;
|
|
FIdentFuncTable[1391] := FuncBreak;
|
|
FIdentFuncTable[1524] := FuncBreak0;
|
|
FIdentFuncTable[2380] := FuncCall;
|
|
FIdentFuncTable[2044] := FuncCase;
|
|
FIdentFuncTable[337] := FuncCeil;
|
|
FIdentFuncTable[644] := FuncCheck;
|
|
FIdentFuncTable[1918] := FuncCheck_domain;
|
|
FIdentFuncTable[1512] := FuncChr;
|
|
FIdentFuncTable[1454] := FuncClear_buffer;
|
|
FIdentFuncTable[1305] := FuncCli;
|
|
FIdentFuncTable[1761] := FuncClose;
|
|
FIdentFuncTable[908] := FuncClose_text;
|
|
FIdentFuncTable[1179] := FuncCol;
|
|
FIdentFuncTable[1114] := FuncColumn_heading_row;
|
|
FIdentFuncTable[2183] := FuncColumn_headings;
|
|
FIdentFuncTable[1007] := FuncColumn_spacing;
|
|
FIdentFuncTable[697] := FuncCommit;
|
|
FIdentFuncTable[521] := FuncCommit_rate;
|
|
FIdentFuncTable[591] := FuncCompile;
|
|
FIdentFuncTable[1068] := FuncCompress;
|
|
FIdentFuncTable[1359] := FuncCompress_all;
|
|
FIdentFuncTable[1637] := FuncConfirm;
|
|
FIdentFuncTable[89] := FuncConnect;
|
|
FIdentFuncTable[898] := FuncContinue;
|
|
FIdentFuncTable[1200] := FuncCos;
|
|
FIdentFuncTable[1747] := FuncCosh;
|
|
FIdentFuncTable[954] := FuncCross_reference;
|
|
FIdentFuncTable[1630] := FuncDate;
|
|
FIdentFuncTable[320] := FuncDate_seconds;
|
|
FIdentFuncTable[368] := FuncDay_of_week;
|
|
FIdentFuncTable[1447] := FuncDays;
|
|
FIdentFuncTable[2394] := FuncDcl;
|
|
FIdentFuncTable[1583] := FuncDefault_tag;
|
|
FIdentFuncTable[820] := FuncDelete;
|
|
FIdentFuncTable[261] := FuncDelete_form;
|
|
FIdentFuncTable[608] := FuncDescription;
|
|
FIdentFuncTable[2142] := FuncDir;
|
|
FIdentFuncTable[1915] := FuncDisconnect;
|
|
FIdentFuncTable[1889] := FuncDisplay;
|
|
FIdentFuncTable[1520] := FuncDisplay_length;
|
|
FIdentFuncTable[2390] := FuncDocumentation;
|
|
FIdentFuncTable[76] := FuncDomain;
|
|
FIdentFuncTable[1387] := FuncEdit;
|
|
FIdentFuncTable[1414] := FuncElse;
|
|
FIdentFuncTable[801] := FuncElse_if;
|
|
FIdentFuncTable[1158] := FuncEnd_block;
|
|
FIdentFuncTable[1514] := FuncEnd_case;
|
|
FIdentFuncTable[1734] := FuncEnd_disable_trigger;
|
|
FIdentFuncTable[1043] := FuncEnd_execute;
|
|
FIdentFuncTable[2119] := FuncEnd_form;
|
|
FIdentFuncTable[224] := FuncEnd_if;
|
|
FIdentFuncTable[842] := FuncEnd_row;
|
|
FIdentFuncTable[1484] := FuncEnd_signal_to_status;
|
|
FIdentFuncTable[338] := FuncEnd_while;
|
|
FIdentFuncTable[893] := FuncErase;
|
|
FIdentFuncTable[392] := FuncError;
|
|
FIdentFuncTable[503] := FuncExecute;
|
|
FIdentFuncTable[253] := FuncExit;
|
|
FIdentFuncTable[1280] := FuncExit_forward;
|
|
FIdentFuncTable[1146] := FuncExpand;
|
|
FIdentFuncTable[206] := FuncExternal;
|
|
FIdentFuncTable[455] := FuncFacility;
|
|
FIdentFuncTable[176] := FuncFailure;
|
|
FIdentFuncTable[263] := FuncFetch;
|
|
FIdentFuncTable[2106] := FuncFiles;
|
|
FIdentFuncTable[1191] := FuncFind;
|
|
FIdentFuncTable[1492] := FuncFind_form;
|
|
FIdentFuncTable[1868] := FuncFinish;
|
|
FIdentFuncTable[651] := FuncFirst;
|
|
FIdentFuncTable[2081] := FuncFloor;
|
|
FIdentFuncTable[2267] := FuncFooting;
|
|
FIdentFuncTable[2269] := FuncFooting_form;
|
|
FIdentFuncTable[210] := FuncForm;
|
|
FIdentFuncTable[516] := FuncGenerate;
|
|
FIdentFuncTable[2196] := FuncGoto;
|
|
FIdentFuncTable[1401] := FuncGrouped_by;
|
|
FIdentFuncTable[711] := FuncHeading;
|
|
FIdentFuncTable[1173] := FuncHeading_form;
|
|
FIdentFuncTable[194] := FuncHeight;
|
|
FIdentFuncTable[461] := FuncIdentifier;
|
|
FIdentFuncTable[459] := FuncIf;
|
|
FIdentFuncTable[483] := FuncIn;
|
|
FIdentFuncTable[2151] := FuncInput_block;
|
|
FIdentFuncTable[947] := FuncInput_mask;
|
|
FIdentFuncTable[586] := FuncInput_row_height;
|
|
FIdentFuncTable[420] := FuncInt;
|
|
FIdentFuncTable[1579] := FuncInvoke;
|
|
FIdentFuncTable[134] := FuncItem;
|
|
FIdentFuncTable[824] := FuncItem_block;
|
|
FIdentFuncTable[1575] := FuncItem_if;
|
|
FIdentFuncTable[1988] := FuncJoined_to;
|
|
FIdentFuncTable[583] := FuncLeft;
|
|
FIdentFuncTable[393] := FuncLen;
|
|
FIdentFuncTable[1698] := FuncLfooting;
|
|
FIdentFuncTable[142] := FuncLheading;
|
|
FIdentFuncTable[439] := FuncLine;
|
|
FIdentFuncTable[218] := FuncLines_after;
|
|
FIdentFuncTable[1460] := FuncLines_before;
|
|
FIdentFuncTable[259] := FuncList;
|
|
FIdentFuncTable[193] := FuncLoad;
|
|
FIdentFuncTable[124] := FuncLock;
|
|
FIdentFuncTable[2361] := FuncLog;
|
|
FIdentFuncTable[807] := FuncLog10;
|
|
FIdentFuncTable[2406] := FuncLov;
|
|
FIdentFuncTable[2043] := FuncLov_auto_select;
|
|
FIdentFuncTable[1806] := FuncLov_col;
|
|
FIdentFuncTable[1921] := FuncLov_data;
|
|
FIdentFuncTable[467] := FuncLov_first;
|
|
FIdentFuncTable[1673] := FuncLov_height;
|
|
FIdentFuncTable[1499] := FuncLov_noheading;
|
|
FIdentFuncTable[70] := FuncLov_nosearch;
|
|
FIdentFuncTable[2134] := FuncLov_reduced_to;
|
|
FIdentFuncTable[2208] := FuncLov_row;
|
|
FIdentFuncTable[1788] := FuncLov_secondary;
|
|
FIdentFuncTable[2381] := FuncLov_selection;
|
|
FIdentFuncTable[1107] := FuncLov_sorted_by;
|
|
FIdentFuncTable[1268] := FuncLov_width;
|
|
FIdentFuncTable[1779] := FuncLov_with;
|
|
FIdentFuncTable[538] := FuncLowercase;
|
|
FIdentFuncTable[631] := FuncLtrim;
|
|
FIdentFuncTable[2233] := FuncMail;
|
|
FIdentFuncTable[2296] := FuncMenu;
|
|
FIdentFuncTable[743] := FuncMenu_block;
|
|
FIdentFuncTable[255] := FuncMenu_form;
|
|
FIdentFuncTable[1824] := FuncMessage;
|
|
FIdentFuncTable[858] := FuncMid;
|
|
FIdentFuncTable[588] := FuncMod;
|
|
FIdentFuncTable[729] := FuncModify_form;
|
|
FIdentFuncTable[1770] := FuncNew;
|
|
FIdentFuncTable[1176] := FuncNo_domain;
|
|
FIdentFuncTable[208] := FuncNobell;
|
|
FIdentFuncTable[1756] := FuncNoclear_buffer;
|
|
FIdentFuncTable[1858] := FuncNodeadlock_exit;
|
|
FIdentFuncTable[135] := FuncNoerase;
|
|
FIdentFuncTable[2073] := FuncNoerror;
|
|
FIdentFuncTable[1092] := FuncNoexit_forward;
|
|
FIdentFuncTable[1811] := FuncNoheading;
|
|
FIdentFuncTable[656] := FuncNolov_data;
|
|
FIdentFuncTable[1959] := FuncNorepeat;
|
|
FIdentFuncTable[1319] := FuncNostatus;
|
|
FIdentFuncTable[907] := FuncNototals;
|
|
FIdentFuncTable[2427] := FuncNounderlines;
|
|
FIdentFuncTable[632] := FuncNowait;
|
|
FIdentFuncTable[1560] := FuncOpen;
|
|
FIdentFuncTable[2226] := FuncOpen_text;
|
|
FIdentFuncTable[1941] := FuncOpt;
|
|
FIdentFuncTable[290] := FuncOptions;
|
|
FIdentFuncTable[491] := FuncOutput;
|
|
FIdentFuncTable[1952] := FuncOutput_block;
|
|
FIdentFuncTable[2108] := FuncOutput_mask;
|
|
FIdentFuncTable[1539] := FuncPause;
|
|
FIdentFuncTable[1182] := FuncPause_block;
|
|
FIdentFuncTable[214] := FuncPerform;
|
|
FIdentFuncTable[1294] := FuncPoly_to_binary;
|
|
FIdentFuncTable[219] := FuncPos;
|
|
FIdentFuncTable[1569] := FuncPrint;
|
|
FIdentFuncTable[1719] := FuncProcedure_form;
|
|
FIdentFuncTable[1105] := FuncPrompt;
|
|
FIdentFuncTable[488] := FuncProtect;
|
|
FIdentFuncTable[66] := FuncQuery;
|
|
FIdentFuncTable[2344] := FuncQuery_form;
|
|
FIdentFuncTable[575] := FuncRandom;
|
|
FIdentFuncTable[1396] := FuncRead_line;
|
|
FIdentFuncTable[885] := FuncRead_only;
|
|
FIdentFuncTable[1353] := FuncReceive;
|
|
FIdentFuncTable[1571] := FuncReceive_arguments;
|
|
FIdentFuncTable[2137] := FuncReceive_data;
|
|
FIdentFuncTable[264] := FuncReceive_table;
|
|
FIdentFuncTable[410] := FuncReduced_to;
|
|
FIdentFuncTable[1269] := FuncRelease;
|
|
FIdentFuncTable[303] := FuncRemain;
|
|
FIdentFuncTable[1784] := FuncRepeat;
|
|
FIdentFuncTable[452] := FuncReport;
|
|
FIdentFuncTable[2315] := FuncReport_form;
|
|
FIdentFuncTable[2025] := FuncReposition;
|
|
FIdentFuncTable[1259] := FuncRewind_text;
|
|
FIdentFuncTable[1938] := FuncRfooting;
|
|
FIdentFuncTable[2331] := FuncRheading;
|
|
FIdentFuncTable[1932] := FuncRight;
|
|
FIdentFuncTable[1849] := FuncRollback;
|
|
FIdentFuncTable[553] := FuncRound;
|
|
FIdentFuncTable[1581] := FuncRow;
|
|
FIdentFuncTable[2407] := FuncRow_height;
|
|
FIdentFuncTable[1525] := FuncSearch;
|
|
FIdentFuncTable[151] := FuncSecondary;
|
|
FIdentFuncTable[1475] := FuncSeconds;
|
|
FIdentFuncTable[744] := FuncSelection;
|
|
FIdentFuncTable[1490] := FuncSend;
|
|
FIdentFuncTable[845] := FuncSend_data;
|
|
FIdentFuncTable[85] := FuncSend_message;
|
|
FIdentFuncTable[720] := FuncSend_table;
|
|
FIdentFuncTable[2275] := FuncSequence;
|
|
FIdentFuncTable[2038] := FuncSeverity;
|
|
FIdentFuncTable[60] := FuncSin;
|
|
FIdentFuncTable[1763] := FuncSinh;
|
|
FIdentFuncTable[1909] := FuncSorted_by;
|
|
FIdentFuncTable[1775] := FuncSource;
|
|
FIdentFuncTable[1474] := FuncSource_if;
|
|
FIdentFuncTable[2141] := FuncSqrt;
|
|
FIdentFuncTable[79] := FuncStart_stream;
|
|
FIdentFuncTable[604] := FuncStart_transaction;
|
|
FIdentFuncTable[639] := FuncStatistic;
|
|
FIdentFuncTable[654] := FuncStatus;
|
|
FIdentFuncTable[1816] := FuncStream_name;
|
|
FIdentFuncTable[1368] := FuncString;
|
|
FIdentFuncTable[1064] := FuncSuccess;
|
|
FIdentFuncTable[39] := FuncSwitch;
|
|
FIdentFuncTable[803] := FuncSwitch_base;
|
|
FIdentFuncTable[1212] := FuncSystem;
|
|
FIdentFuncTable[2335] := FuncTable;
|
|
FIdentFuncTable[934] := FuncTable_form;
|
|
FIdentFuncTable[1759] := FuncTable_search;
|
|
FIdentFuncTable[1074] := FuncTag;
|
|
FIdentFuncTable[705] := FuncTag_length;
|
|
FIdentFuncTable[1095] := FuncTan;
|
|
FIdentFuncTable[382] := FuncTanh;
|
|
FIdentFuncTable[975] := FuncTarget;
|
|
FIdentFuncTable[229] := FuncText;
|
|
FIdentFuncTable[2007] := FuncText_only;
|
|
FIdentFuncTable[307] := FuncTitle;
|
|
FIdentFuncTable[2430] := FuncTo;
|
|
FIdentFuncTable[795] := FuncTop_line;
|
|
FIdentFuncTable[68] := FuncTotal;
|
|
FIdentFuncTable[2000] := FuncTransfer;
|
|
FIdentFuncTable[333] := FuncTrigger;
|
|
FIdentFuncTable[2341] := FuncTrim;
|
|
FIdentFuncTable[2301] := FuncTsuppress;
|
|
FIdentFuncTable[2029] := FuncUnload;
|
|
FIdentFuncTable[844] := FuncUppercase;
|
|
FIdentFuncTable[1437] := FuncUse_if;
|
|
FIdentFuncTable[1736] := FuncUser_key;
|
|
FIdentFuncTable[353] := FuncUsing;
|
|
FIdentFuncTable[2305] := FuncUtilities;
|
|
FIdentFuncTable[1485] := FuncWait;
|
|
FIdentFuncTable[1159] := FuncWhile;
|
|
FIdentFuncTable[1452] := FuncWidth;
|
|
FIdentFuncTable[1476] := FuncWith;
|
|
FIdentFuncTable[27] := FuncWrite;
|
|
FIdentFuncTable[92] := FuncWrite_line;
|
|
FIdentFuncTable[2350] := FuncYesno_block;
|
|
end;
|
|
|
|
function TSynDmlSyn.IsQuali: Boolean;
|
|
begin
|
|
Result:= False;
|
|
if Run > 0 then
|
|
if FLine[Run - 1] = '/' then Result:= True;
|
|
end;
|
|
|
|
function TSynDmlSyn.IsSpecial: Boolean;
|
|
begin
|
|
Result:= False;
|
|
if Run > 0 then
|
|
if FLine[Run - 1] = '%' then Result:= True;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAbs(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAbsolute_position(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAccount(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAcos(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncActual_break(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAdd(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
begin
|
|
Result := tkKey;
|
|
FRange := rsAdd;
|
|
end;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAdd_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAlternate_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAscii(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAsin(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAtan(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAtan2(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncAttributes(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBack(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBase(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBatch(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBegin_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBegin_case(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBegin_disable_trigger(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBegin_row(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBegin_signal_to_status(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBell(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBinary_to_poly(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBottom_line(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBreak(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncBreak0(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCall(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCase(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCeil(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCheck(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCheck_domain(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncChr(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncClear_buffer(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCli(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncClose(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncClose_text(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCol(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncColumn_heading_row(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncColumn_headings(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncColumn_spacing(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCommit(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCommit_rate(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCompile(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCompress(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCompress_all(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncConfirm(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncConnect(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncContinue(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCos(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCosh(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncCross_reference(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDate(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDate_seconds(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDay_of_week(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDays(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDcl(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDefault_tag(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDelete(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDelete_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDescription(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDir(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDisconnect(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDisplay(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDisplay_length(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDocumentation(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncDomain(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEdit(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncElse(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncElse_if(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_case(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_disable_trigger(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_execute(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkForm
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_if(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_row(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_signal_to_status(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncEnd_while(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncErase(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncError(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkKey;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncExecute(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncExit(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncExit_forward(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncExpand(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncExternal(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFacility(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFailure(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFetch(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFiles(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFind(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
Result := tkKey;
|
|
FRange := rsFind;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFind_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFinish(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFirst(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFloor(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFooting(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncFooting_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncForm(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkForm;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncGenerate(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncGoto(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncGrouped_by(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncHeading(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncHeading_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncHeight(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncIdentifier(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncIf(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncIn(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and (FRange = rsFind) then
|
|
begin
|
|
Result := tkKey;
|
|
FRange := rsUnknown;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncInput_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncInput_mask(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncInput_row_height(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncInt(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncInvoke(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncItem(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncItem_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncItem_if(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncJoined_to(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLeft(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLen(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkFunction;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLfooting(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLheading(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLine(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLines_after(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLines_before(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncList(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLoad(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLock(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLog(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkFunction;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLog10(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_auto_select(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_col(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_data(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_first(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_height(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_noheading(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_nosearch(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_reduced_to(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_row(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_secondary(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_selection(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_sorted_by(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_width(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLov_with(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLowercase(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncLtrim(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMail(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMenu(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMenu_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMenu_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkForm
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMessage(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMid(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncMod(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncModify_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNew(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNo_domain(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNobell(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNoclear_buffer(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNodeadlock_exit(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNoerase(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNoerror(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNoexit_forward(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNoheading(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNolov_data(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNorepeat(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNostatus(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNototals(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNounderlines(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncNowait(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOpen(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOpen_text(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOpt(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOptions(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOutput(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOutput_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncOutput_mask(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPause(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPause_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPerform(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPoly_to_binary(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPos(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPrint(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncProcedure_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkForm
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncPrompt(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncProtect(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncQuery(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncQuery_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkForm
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRandom(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRead_line(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRead_only(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReceive(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReceive_arguments(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReceive_data(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReceive_table(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReduced_to(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRelease(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRemain(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRepeat(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkKey;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReport(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReport_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkForm
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncReposition(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRewind_text(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRfooting(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRheading(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRight(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRollback(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRound(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRow(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncRow_height(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSearch(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSecondary(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSeconds(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSelection(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSend(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSend_data(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSend_message(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSend_table(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSequence(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSeverity(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSin(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSinh(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSorted_by(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSource(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSource_if(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSqrt(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncStart_stream(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncStart_transaction(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncStatistic(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncStatus(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncStream_name(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncString(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSuccess(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSwitch(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSwitch_base(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncSystem(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTable(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTable_form(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkForm
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTable_search(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTag(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTag_length(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTan(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTanh(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTarget(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncText(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkKey;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncText_only(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTitle(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
begin
|
|
if IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkKey;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTo(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and (FRange = rsAdd) then
|
|
begin
|
|
Result := tkKey;
|
|
FRange := rsUnknown;
|
|
end
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTop_line(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTotal(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTransfer(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTrigger(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTrim(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncTsuppress(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsSpecial then
|
|
Result := tkSpecial
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncUnload(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncUppercase(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkFunction
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncUse_if(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncUser_key(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncUsing(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncUtilities(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncWait(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncWhile(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncWidth(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncWith(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) and IsQuali then
|
|
Result := tkQualifier
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncWrite(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncWrite_line(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkKey
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.FuncYesno_block(Index: Integer): TtkTokenKind;
|
|
begin
|
|
if IsCurrentToken(KeyWords[Index]) then
|
|
Result := tkBlock
|
|
else
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
function TSynDmlSyn.AltFunc(Index: Integer): TtkTokenKind;
|
|
begin
|
|
Result := tkIdentifier;
|
|
end;
|
|
|
|
constructor TSynDmlSyn.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
|
|
FCaseSensitive := False;
|
|
|
|
FFormAttri:= TSynHighlighterAttributes.Create(SYNS_AttrForm, SYNS_FriendlyAttrForm);
|
|
FFormAttri.Style:= [fsBold];
|
|
FFormAttri.Foreground:= clBlue;
|
|
AddAttribute(FFormAttri);
|
|
FBlockAttri:= TSynHighlighterAttributes.Create(SYNS_AttrBlock, SYNS_FriendlyAttrBlock);
|
|
FBlockAttri.Style:= [fsBold];
|
|
FBlockAttri.Foreground:= clGreen;
|
|
AddAttribute(FBlockAttri);
|
|
FKeyAttri := TSynHighlighterAttributes.Create(SYNS_AttrKey, SYNS_FriendlyAttrKey);
|
|
FKeyAttri.Style:= [fsBold];
|
|
AddAttribute(FKeyAttri);
|
|
FCommentAttri := TSynHighlighterAttributes.Create(SYNS_AttrComment, SYNS_FriendlyAttrComment);
|
|
FCommentAttri.Style:= [fsBold];
|
|
FCommentAttri.Foreground:= clRed;
|
|
AddAttribute(FCommentAttri);
|
|
FQualiAttri:= TSynHighlighterAttributes.Create(SYNS_AttrQualifier, SYNS_FriendlyAttrQualifier);
|
|
FQualiAttri.Style:= [fsItalic];
|
|
FQualiAttri.Foreground:= clGreen;
|
|
AddAttribute(FQualiAttri);
|
|
FFunctionAttri:= TSynHighlighterAttributes.Create(SYNS_AttrFunction, SYNS_FriendlyAttrFunction);
|
|
FFunctionAttri.Style:= [fsItalic];
|
|
FFunctionAttri.Foreground:= clBlack;
|
|
AddAttribute(FFunctionAttri);
|
|
FVariableAttri:= TSynHighlighterAttributes.Create(SYNS_AttrVariable, SYNS_FriendlyAttrVariable);
|
|
FVariableAttri.Style:= [fsBold, fsItalic];
|
|
FVariableAttri.Foreground:= clBlack;
|
|
AddAttribute(FVariableAttri);
|
|
FSpecialAttri:= TSynHighlighterAttributes.Create(SYNS_AttrSpecialVariable, SYNS_FriendlyAttrSpecialVariable);
|
|
FSpecialAttri.Style:= [fsItalic];
|
|
FSpecialAttri.Foreground:= clBlack;
|
|
AddAttribute(FSpecialAttri);
|
|
FIdentifierAttri := TSynHighlighterAttributes.Create(SYNS_AttrIdentifier, SYNS_FriendlyAttrIdentifier);
|
|
AddAttribute(FIdentifierAttri);
|
|
FNumberAttri := TSynHighlighterAttributes.Create(SYNS_AttrNumber, SYNS_FriendlyAttrNumber);
|
|
AddAttribute(FNumberAttri);
|
|
FSpaceAttri := TSynHighlighterAttributes.Create(SYNS_AttrSpace, SYNS_FriendlyAttrSpace);
|
|
AddAttribute(FSpaceAttri);
|
|
FStringAttri := TSynHighlighterAttributes.Create(SYNS_AttrString, SYNS_FriendlyAttrString);
|
|
AddAttribute(FStringAttri);
|
|
FSymbolAttri := TSynHighlighterAttributes.Create(SYNS_AttrSymbol, SYNS_FriendlyAttrSymbol);
|
|
AddAttribute(FSymbolAttri);
|
|
SetAttributesOnChange(DefHighlightChange);
|
|
|
|
InitIdent;
|
|
FRange := rsUnknown;
|
|
|
|
FDefaultFilter := SYNS_FilterGembase;
|
|
end;
|
|
|
|
procedure TSynDmlSyn.AddressOpProc;
|
|
begin
|
|
FTokenID := tkSymbol;
|
|
Inc(Run);
|
|
if FLine[Run] = '@' then Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.AsciiCharProc;
|
|
|
|
function IsAsciiChar: Boolean;
|
|
begin
|
|
case FLine[Run] of
|
|
'_', '0'..'9', 'A'..'Z', 'a'..'z':
|
|
Result := True;
|
|
else
|
|
Result := False;
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
// variables...
|
|
FTokenID := tkVariable;
|
|
repeat
|
|
Inc(Run);
|
|
until not IsAsciiChar;
|
|
end;
|
|
|
|
procedure TSynDmlSyn.SymbolProc;
|
|
begin
|
|
Inc(Run);
|
|
FTokenID := tkSymbol;
|
|
end;
|
|
|
|
procedure TSynDmlSyn.CRProc;
|
|
begin
|
|
FTokenID := tkSpace;
|
|
Inc(Run);
|
|
if FLine[Run] = #10 then Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.GreaterProc;
|
|
begin
|
|
FTokenID := tkSymbol;
|
|
Inc(Run);
|
|
if FLine[Run] = '=' then Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.IdentProc;
|
|
begin
|
|
FTokenID := IdentKind((FLine + Run));
|
|
Inc(Run, FStringLen);
|
|
while IsIdentChar(FLine[Run]) do Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.LFProc;
|
|
begin
|
|
FTokenID := tkSpace;
|
|
Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.LowerProc;
|
|
begin
|
|
FTokenID := tkSymbol;
|
|
Inc(Run);
|
|
if (FLine[Run]= '=') or (FLine[Run]= '>') then Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.NullProc;
|
|
begin
|
|
FTokenID := tkNull;
|
|
Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.NumberProc;
|
|
begin
|
|
Inc(Run);
|
|
FTokenID := tkNumber;
|
|
while CharInSet(FLine[Run], ['0'..'9', '.']) do
|
|
begin
|
|
case FLine[Run] of
|
|
'.':
|
|
if FLine[Run + 1] = '.' then
|
|
Break;
|
|
end;
|
|
Inc(Run);
|
|
end;
|
|
end;
|
|
|
|
procedure TSynDmlSyn.PointProc;
|
|
begin
|
|
FTokenID := tkSymbol;
|
|
Inc(Run);
|
|
if (FLine[Run]='.') or (FLine[Run]=')') then Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.RemProc;
|
|
var
|
|
p: PWideChar;
|
|
begin
|
|
p := PWideChar(@FLine[Run - 1]);
|
|
while p >= FLine do
|
|
begin
|
|
if not CharInSet(p^, [#9, #32]) then
|
|
begin
|
|
Inc(Run);
|
|
FTokenID := tkSymbol;
|
|
Exit;
|
|
end;
|
|
Dec(p);
|
|
end;
|
|
// it is a comment...
|
|
FTokenID := tkComment;
|
|
repeat
|
|
Inc(Run);
|
|
until IsLineEnd(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.SpaceProc;
|
|
begin
|
|
FTokenID := tkSpace;
|
|
while (FLine[Run] <= #32) and not IsLineEnd(Run) do Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.StringProc;
|
|
begin
|
|
FTokenID := tkString;
|
|
if (FLine[Run + 1] = '"') and (FLine[Run + 2] = '"') then Inc(Run, 2);
|
|
repeat
|
|
Inc(Run);
|
|
until (FLine[Run] = '"') or IsLineEnd(Run);
|
|
|
|
if FLine[Run] <> #0 then Inc(Run);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.UnknownProc;
|
|
begin
|
|
Inc(Run);
|
|
FTokenID := tkUnknown;
|
|
end;
|
|
|
|
procedure TSynDmlSyn.Next;
|
|
begin
|
|
FTokenPos := Run;
|
|
case FLine[Run] of
|
|
#0: NullProc;
|
|
#10: LFProc;
|
|
#13: CRProc;
|
|
#1..#9, #11, #12, #14..#32:
|
|
SpaceProc;
|
|
'#': AsciiCharProc;
|
|
'"': StringProc;
|
|
'0'..'9': NumberProc;
|
|
'A'..'Z', 'a'..'z', '_':
|
|
IdentProc;
|
|
'{': SymbolProc;
|
|
'}': SymbolProc;
|
|
'!': RemProc;
|
|
'.': PointProc;
|
|
'<': LowerProc;
|
|
'>': GreaterProc;
|
|
'@': AddressOpProc;
|
|
#39, '&', '('..'-', '/', ':', ';', '=', '?', '['..'^', '`', '~':
|
|
SymbolProc;
|
|
else
|
|
UnknownProc;
|
|
end;
|
|
inherited;
|
|
end;
|
|
|
|
function TSynDmlSyn.GetDefaultAttribute(Index: Integer): TSynHighlighterAttributes;
|
|
begin
|
|
case Index of
|
|
SYN_ATTR_COMMENT: Result := FCommentAttri;
|
|
SYN_ATTR_IDENTIFIER: Result := FIdentifierAttri;
|
|
SYN_ATTR_KEYWORD: Result := FKeyAttri;
|
|
SYN_ATTR_STRING: Result := FStringAttri;
|
|
SYN_ATTR_WHITESPACE: Result := FSpaceAttri;
|
|
SYN_ATTR_SYMBOL: Result := FSymbolAttri;
|
|
else
|
|
Result := nil;
|
|
end;
|
|
end;
|
|
|
|
function TSynDmlSyn.GetEol: Boolean;
|
|
begin
|
|
Result := Run = FLineLen + 1;
|
|
end;
|
|
|
|
function TSynDmlSyn.GetTokenID: TtkTokenKind;
|
|
begin
|
|
Result:= FTokenID;
|
|
end;
|
|
|
|
function TSynDmlSyn.GetTokenAttribute: TSynHighlighterAttributes;
|
|
begin
|
|
case GetTokenID of
|
|
tkForm: Result := FFormAttri;
|
|
tkBlock: Result := FBlockAttri;
|
|
tkKey: Result := FKeyAttri;
|
|
tkComment: Result := FCommentAttri;
|
|
tkQualifier: Result := FQualiAttri;
|
|
tkFunction: Result := FFunctionAttri;
|
|
tkIdentifier: Result := FIdentifierAttri;
|
|
tkNumber: Result := FNumberAttri;
|
|
tkSpecial: Result := FSpecialAttri;
|
|
tkSpace: Result := FSpaceAttri;
|
|
tkString: Result := FStringAttri;
|
|
tkVariable: Result := FVariableAttri;
|
|
tkSymbol: Result := FSymbolAttri;
|
|
tkUnknown: Result := FSymbolAttri;
|
|
else Result := nil;
|
|
end;
|
|
end;
|
|
|
|
function TSynDmlSyn.GetTokenKind: Integer;
|
|
begin
|
|
Result := Ord(GetTokenID);
|
|
end;
|
|
|
|
function TSynDmlSyn.GetRange: Pointer;
|
|
begin
|
|
Result := Pointer(FRange);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.SetRange(Value: Pointer);
|
|
begin
|
|
FRange := TRangeState(Value);
|
|
end;
|
|
|
|
procedure TSynDmlSyn.ResetRange;
|
|
begin
|
|
FRange:= rsUnknown;
|
|
end;
|
|
|
|
function TSynDmlSyn.IsFilterStored: Boolean;
|
|
begin
|
|
Result := FDefaultFilter <> SYNS_FilterGembase;
|
|
end;
|
|
|
|
class function TSynDmlSyn.GetLanguageName: string;
|
|
begin
|
|
Result := SYNS_LangGembase;
|
|
end;
|
|
|
|
class function TSynDmlSyn.GetFriendlyLanguageName: UnicodeString;
|
|
begin
|
|
Result := SYNS_FriendlyLangGembase;
|
|
end;
|
|
|
|
initialization
|
|
{$IFNDEF SYN_CPPB_1}
|
|
RegisterPlaceableHighlighter(TSynDmlSyn);
|
|
{$ENDIF}
|
|
end.
|