, Nigel McNie * @license http://www.gnu.org/copyleft/gpl.html GNU GPL * @copyright (C) 2005 Nigel McNie * @version 1.1.0 * */ // @todo [blocking 1.1.1] Rename OCCs with parent's name in front for theming // BenBE: What do you mean? // My todo for theming support, not relevant to delphi // @todo [blocking 1.1.1] make keywords not keywords if they don't have a ( after // them (e.g. a variable named "sum" will be highlighted as a keyword even if it isn't) $this->_childContexts = array( new GeSHiContext('delphi', $DIALECT, 'multi_comment'), new GeSHiContext('delphi', $DIALECT, 'common/single_comment'), new GeSHiContext('delphi', $DIALECT, 'common/single_string_eol'), new GeSHiContext('delphi', $DIALECT, 'preprocessor'), new GeSHiCodeContext('delphi', $DIALECT, 'asm'), new GeSHiCodeContext('delphi', $DIALECT, 'extern', 'delphi/' . $DIALECT), new GeSHiCodeContext('delphi', $DIALECT, 'property', 'delphi/' . $DIALECT) ); //$this->_styler->setStyle($CONTEXT, 'color:#000;'); $this->_contextKeywords = array( 0 => array( 0 => array( //@todo [blocking 1.1.1] get keywords normal way 'And', 'Array', 'As', 'Asm', 'At', 'Begin', 'Case', 'Class', 'Const', 'Constructor', 'Contains', 'Destructor', 'DispInterface', 'Div', 'Do', 'DownTo', 'Else', 'End', 'Except', 'File', 'Finalization', 'Finally', 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited', 'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Packed', 'Package', 'Procedure', 'Program', 'Property', 'Raise', 'Record', 'Requires', 'Repeat', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var', 'While', 'With', 'Xor', 'Private', 'Protected', 'Public', 'Published', 'Virtual', 'Abstract', 'Override', 'Overload', 'cdecl', 'stdcall', 'register', 'pascal', 'safecall', 'near', 'far', 'varargs', 'assembler' ), 1 => $CONTEXT . '/keywords', 2 => 'color:#f00; font-weight:bold;', 3 => false, 4 => '' ), 1 => array( 0 => array( 'Boolean', 'ByteBool', 'LongBool', 'WordBool', 'Bool', 'Byte', 'SmallInt', 'ShortInt', 'Word', 'Integer', 'Cardinal', 'LongInt', 'DWORD', 'Int64', 'Single', 'Double', 'Extended', 'Real48', 'Real', 'Comp', 'Currency', 'Pointer', 'Char', 'AnsiChar', 'WideChar', 'PChar', 'PAnsiChar', 'PWideChar', 'String', 'AnsiString', 'WideString', 'THandle' ), 1 => $CONTEXT . '/keytypes', 2 => 'color:#000; font-weight:bold;', 3 => false, 4 => '' ), 2 => array( 0 => array( 'nil', 'false', 'true' ), 1 => $CONTEXT . '/keyidents', 2 => 'color:#000; font-weight:bold;', 3 => false, 4 => '' ), //Standard functions of Unit System 3 => array( 0 => array( 'Abs','AcquireExceptionObject','Addr','AnsiToUtf8','Append','ArcTan','Assert','Assigned','AssignFile', 'BeginThread','BlockRead','BlockWrite','Break','ChDir','Chr','Close','CloseFile','CompToCurrency', 'CompToDouble','Concat','Continue','Copy','Cos','Dec','Delete','Dispose','DoubleToComp','EndThread', 'EnumModules','EnumResourceModules','Eof','Eoln','Erase','ExceptAddr','ExceptObject','Exclude','Exit', 'Exp','FilePos','FileSize','FillChar','Finalize','FindClassHInstance','FindHInstance','FindResourceHInstance', 'Flush','Frac','FreeMem','Get8087CW','GetDir','GetLastError','GetMem','GetMemoryManager', 'GetModuleFileName','GetVariantManager','Halt','Hi','High','Inc','Include','Initialize','Insert', 'Int','IOResult','IsMemoryManagerSet','IsVariantManagerSet','Length','Ln','Lo','Low','MkDir','Move', 'New','Odd','OleStrToString','OleStrToStrVar','Ord','ParamCount','ParamStr','Pi','Pos','Pred','Ptr', 'PUCS4Chars','Random','Randomize','Read','ReadLn','ReallocMem','ReleaseExceptionObject','Rename', 'Reset','Rewrite','RmDir','Round','RunError','Seek','SeekEof','SeekEoln','Set8087CW','SetLength', 'SetLineBreakStyle','SetMemoryManager','SetString','SetTextBuf','SetVariantManager','Sin','SizeOf', 'Slice','Sqr','Sqrt','Str','StringOfChar','StringToOleStr','StringToWideChar','Succ','Swap','Trunc', 'Truncate','TypeInfo','UCS4StringToWideString','UnicodeToUtf8','UniqueString','UpCase','UTF8Decode', 'UTF8Encode','Utf8ToAnsi','Utf8ToUnicode','Val','VarArrayRedim','VarClear','WideCharLenToString', 'WideCharLenToStrVar','WideCharToString','WideCharToStrVar','WideStringToUCS4String','Write','WriteLn' ), 1 => $CONTEXT . '/stdprocs/system', 2 => 'color:#444;', 3 => false, 4 => '' ), //Standard functions of Unit SysUtils 4 => array( 0 => array( 'Abort','AddExitProc','AddTerminateProc','AdjustLineBreaks','AllocMem','AnsiCompareFileName', 'AnsiCompareStr','AnsiCompareText','AnsiDequotedStr','AnsiExtractQuotedStr','AnsiLastChar', 'AnsiLowerCase','AnsiLowerCaseFileName','AnsiPos','AnsiQuotedStr','AnsiSameStr','AnsiSameText', 'AnsiStrComp','AnsiStrIComp','AnsiStrLastChar','AnsiStrLComp','AnsiStrLIComp','AnsiStrLower', 'AnsiStrPos','AnsiStrRScan','AnsiStrScan','AnsiStrUpper','AnsiUpperCase','AnsiUpperCaseFileName', 'AppendStr','AssignStr','Beep','BoolToStr','ByteToCharIndex','ByteToCharLen','ByteType', 'CallTerminateProcs','ChangeFileExt','CharLength','CharToByteIndex','CharToByteLen','CompareMem', 'CompareStr','CompareText','CreateDir','CreateGUID','CurrentYear','CurrToStr','CurrToStrF','Date', 'DateTimeToFileDate','DateTimeToStr','DateTimeToString','DateTimeToSystemTime','DateTimeToTimeStamp', 'DateToStr','DayOfWeek','DecodeDate','DecodeDateFully','DecodeTime','DeleteFile','DirectoryExists', 'DiskFree','DiskSize','DisposeStr','EncodeDate','EncodeTime','ExceptionErrorMessage', 'ExcludeTrailingBackslash','ExcludeTrailingPathDelimiter','ExpandFileName','ExpandFileNameCase', 'ExpandUNCFileName','ExtractFileDir','ExtractFileDrive','ExtractFileExt','ExtractFileName', 'ExtractFilePath','ExtractRelativePath','ExtractShortPathName','FileAge','FileClose','FileCreate', 'FileDateToDateTime','FileExists','FileGetAttr','FileGetDate','FileIsReadOnly','FileOpen','FileRead', 'FileSearch','FileSeek','FileSetAttr','FileSetDate','FileSetReadOnly','FileWrite','FinalizePackage', 'FindClose','FindCmdLineSwitch','FindFirst','FindNext','FloatToCurr','FloatToDateTime', 'FloatToDecimal','FloatToStr','FloatToStrF','FloatToText','FloatToTextFmt','FmtLoadStr','FmtStr', 'ForceDirectories','Format','FormatBuf','FormatCurr','FormatDateTime','FormatFloat','FreeAndNil', 'GetCurrentDir','GetEnvironmentVariable','GetFileVersion','GetFormatSettings', 'GetLocaleFormatSettings','GetModuleName','GetPackageDescription','GetPackageInfo','GUIDToString', 'IncAMonth','IncludeTrailingBackslash','IncludeTrailingPathDelimiter','IncMonth','InitializePackage', 'InterlockedDecrement','InterlockedExchange','InterlockedExchangeAdd','InterlockedIncrement', 'IntToHex','IntToStr','IsDelimiter','IsEqualGUID','IsLeapYear','IsPathDelimiter','IsValidIdent', 'Languages','LastDelimiter','LoadPackage','LoadStr','LowerCase','MSecsToTimeStamp','NewStr', 'NextCharIndex','Now','OutOfMemoryError','QuotedStr','RaiseLastOSError','RaiseLastWin32Error', 'RemoveDir','RenameFile','ReplaceDate','ReplaceTime','SafeLoadLibrary','SameFileName','SameText', 'SetCurrentDir','ShowException','Sleep','StrAlloc','StrBufSize','StrByteType','StrCat', 'StrCharLength','StrComp','StrCopy','StrDispose','StrECopy','StrEnd','StrFmt','StrIComp', 'StringReplace','StringToGUID','StrLCat','StrLComp','StrLCopy','StrLen','StrLFmt','StrLIComp', 'StrLower','StrMove','StrNew','StrNextChar','StrPas','StrPCopy','StrPLCopy','StrPos','StrRScan', 'StrScan','StrToBool','StrToBoolDef','StrToCurr','StrToCurrDef','StrToDate','StrToDateDef', 'StrToDateTime','StrToDateTimeDef','StrToFloat','StrToFloatDef','StrToInt','StrToInt64', 'StrToInt64Def','StrToIntDef','StrToTime','StrToTimeDef','StrUpper','Supports','SysErrorMessage', 'SystemTimeToDateTime','TextToFloat','Time','GetTime','TimeStampToDateTime','TimeStampToMSecs', 'TimeToStr','Trim','TrimLeft','TrimRight','TryEncodeDate','TryEncodeTime','TryFloatToCurr', 'TryFloatToDateTime','TryStrToBool','TryStrToCurr','TryStrToDate','TryStrToDateTime','TryStrToFloat', 'TryStrToInt','TryStrToInt64','TryStrToTime','UnloadPackage','UpperCase','WideCompareStr', 'WideCompareText','WideFmtStr','WideFormat','WideFormatBuf','WideLowerCase','WideSameStr', 'WideSameText','WideUpperCase','Win32Check','WrapText' ), 1 => $CONTEXT . '/stdprocs/sysutils', 2 => 'color:#444;', 3 => false, 4 => '' ), //Standard functions of Unit Classes 5 => array( 0 => array( 'ActivateClassGroup','AllocateHwnd','BinToHex','CheckSynchronize','CollectionsEqual','CountGenerations', 'DeallocateHwnd','EqualRect','ExtractStrings','FindClass','FindGlobalComponent','GetClass', 'GroupDescendantsWith','HexToBin','IdentToInt','InitInheritedComponent','IntToIdent','InvalidPoint', 'IsUniqueGlobalComponentName','LineStart','ObjectBinaryToText','ObjectResourceToText', 'ObjectTextToBinary','ObjectTextToResource','PointsEqual','ReadComponentRes','ReadComponentResEx', 'ReadComponentResFile','Rect','RegisterClass','RegisterClassAlias','RegisterClasses', 'RegisterComponents','RegisterIntegerConsts','RegisterNoIcon','RegisterNonActiveX','SmallPoint', 'StartClassGroup','TestStreamFormat','UnregisterClass','UnregisterClasses','UnregisterIntegerConsts', 'UnregisterModuleClasses','WriteComponentResFile' ), 1 => $CONTEXT . '/stdprocs/classes', 2 => 'color:#444;', 3 => false, 4 => '' ), //Standard functions of Unit Math 6 => array( 0 => array( 'ArcCos', 'ArcCosh', 'ArcCot', 'ArcCotH', 'ArcCsc', 'ArcCscH', 'ArcSec', 'ArcSecH', 'ArcSin', 'ArcSinh', 'ArcTan2', 'ArcTanh', 'Ceil', 'CompareValue', 'Cosecant', 'Cosh', 'Cot', 'Cotan', 'CotH', 'Csc', 'CscH', 'CycleToDeg', 'CycleToGrad', 'CycleToRad', 'DegToCycle', 'DegToGrad', 'DegToRad', 'DivMod', 'DoubleDecliningBalance', 'EnsureRange', 'Floor', 'Frexp', 'FutureValue', 'GetExceptionMask', 'GetPrecisionMode', 'GetRoundMode', 'GradToCycle', 'GradToDeg', 'GradToRad', 'Hypot', 'InRange', 'InterestPayment', 'InterestRate', 'InternalRateOfReturn', 'IntPower', 'IsInfinite', 'IsNan', 'IsZero', 'Ldexp', 'LnXP1', 'Log10', 'Log2', 'LogN', 'Max', 'MaxIntValue', 'MaxValue', 'Mean', 'MeanAndStdDev', 'Min', 'MinIntValue', 'MinValue', 'MomentSkewKurtosis', 'NetPresentValue', 'Norm', 'NumberOfPeriods', 'Payment', 'PeriodPayment', 'Poly', 'PopnStdDev', 'PopnVariance', 'Power', 'PresentValue', 'RadToCycle', 'RadToDeg', 'RadToGrad', 'RandG', 'RandomRange', 'RoundTo', 'SameValue', 'Sec', 'Secant', 'SecH', 'SetExceptionMask', 'SetPrecisionMode', 'SetRoundMode', 'Sign', 'SimpleRoundTo', 'SinCos', 'Sinh', 'SLNDepreciation', 'StdDev', 'Sum', 'SumInt', 'SumOfSquares', 'SumsAndSquares', 'SYDDepreciation', 'Tan', 'Tanh', 'TotalVariance', 'Variance' ), 1 => $CONTEXT . '/stdprocs/math', 2 => 'color:#444;', 3 => false, 4 => '' ), ); $this->_contextSymbols = array( 0 => array( 0 => array( '+', '-', '*', '/' ), 1 => $CONTEXT . '/mathsym', 2 => 'color:#008000;' ), 1 => array( 0 => array( ':', ';', ',' ), 1 => $CONTEXT . '/ctrlsym', 2 => 'color:#008000;' ), 2 => array( 0 => array( '<', '=', '>' ), 1 => $CONTEXT . '/cmpsym', 2 => 'color:#008000;' ), 3 => array( 0 => array( '(', ')', '[', ']' ), 1 => $CONTEXT . '/brksym', 2 => 'color:#008000;' ), 4 => array( 0 => array( '.', '@', '^' ), 1 => $CONTEXT . '/oopsym', 2 => 'color:#008000;' ) // '|', '=', '!', ':', '(', ')', ',', '<', '>', '&', '$', '+', '-', '*', '/', // '{', '}', ';', '[', ']', '~', '?' ); $this->_contextRegexps = array( 0 => array( 0 => array( '/(#[0-9]+)/' ), 1 => '#', 2 => array( 1 => array($CONTEXT . '/char', 'color:#db9;', false) ) ), 1 => array( 0 => array( '/(#\$[0-9a-fA-F]+)/' ), 1 => '#', 2 => array( 1 => array($CONTEXT . '/charhex', 'color:#db9;', false) ) ), 2 => array( 0 => array( '/(\$[0-9a-fA-F]+)/' ), 1 => '$', 2 => array( 1 => array($CONTEXT . '/hex', 'color: #2bf;', false) ) ), 3 => array( 0 => array( '/(\.\.)/' ), 1 => '.', 2 => array( 1 => array($CONTEXT . '/ctrlsym', 'color: #008000;', false) ) ), 4 => geshi_use_doubles($CONTEXT, true), // second parameter says leading zero is required. 5 => geshi_use_integers($CONTEXT) ); $this->_objectSplitters = array( 0 => array( 0 => array('.'), 1 => $CONTEXT . '/oodynamic', 2 => 'color:#559;', 3 => false // If true, check that matched method isn't a keyword first ) ); ?>