////////////////////////////////////////////////////////////////////////////// // // Paradox ObjectPAL Highlighter 1.1, by Frederic G. MARAND, fgm@osinet.fr // 1.1 20040417 Added predefined record types as Keywords3, moved Database and Query to Keywords2. // 1.0 20040416 First version // Basic rules: // Keywords1 keywords as per ObjectPAL spec // Keywords2 data types, including those defined as keywords per ObjectPAL spec // Keywords3 predefined record types // // Derived from x86 Assembly highlighter written by Eden Kirin, foetus@aphex.fpz.hr // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // language name Language: Paradox ObjectPAL ////////////////////////////////////////////////////////////////////////////// // default file filter // note: if more than one extension is associated, eg: // C/C++ files (*.c,*.cpp,*.h,*.hpp)|*.c;*.cpp;*.h;*.hpp Filter: Paradox Form/Report/Script/Source (*.fsl,*.rsl,*.ssl,*.pal)|*.fsl;*.rsl;*.ssl;*.pal ////////////////////////////////////////////////////////////////////////////// // help file which will be invokend when F1 is pressed HelpFile: OPAL10.HLP ////////////////////////////////////////////////////////////////////////////// // language case sensitivity // 0 - no // 1 - yes CaseSensitive: 0 ////////////////////////////////////////////////////////////////////////////// // comment type: LineComment - comment to the end of line // BlockCommentBeg - block comment begin, it could be // multiline // BlockCommentEnd - block comment end LineComment: ; BlockCommentBeg: BlockCommentEnd: ////////////////////////////////////////////////////////////////////////////// // identifier characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char // Original for ASM was: // IdentifierBegChars: a..z A..Z _%@. // IdentifierChars: a..z A..Z _ 0..9 ? IdentifierBegChars: a..z A..Z _ IdentifierChars: a..z A..Z _ 0..9 ////////////////////////////////////////////////////////////////////////////// // numeric constants begin characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char // number always starts with 0..9 except when NumConstBeg // defines other NumConstBegChars: 0..9 ////////////////////////////////////////////////////////////////////////////// // numeric constants characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char // number always starts with 0..9 except when NumConstBeg // defines other NumConstChars: 0..9 abcdefxABCDEFx ////////////////////////////////////////////////////////////////////////////// // escape character EscapeChar: ////////////////////////////////////////////////////////////////////////////// // keyword table // note: delimited with spaces, lines could be wrapped // you may divide keywords into two groups which can be // highlighted differently // OPAL reference classifies [dyn]array as keyword instead of data types, // but it seems more intuitive to make them look like data types KeyWords1: active and as case caseInsensitive const container create descending disableDefault doDefault else enableDefault endConst endCreate endFor endForEach endIf endIndex endMethod endProc endQuery endRecord endScan endSort endSwitch endSwitchMenu endTry endType endUses endVar endWhile for forEach from if iif in index indexStruct is key lastMouseClicked lastMouseRightClicked like loop maintained method not ObjectPAL of on onFail or otherwise passEvent primary proc quitLoop record refIntStruct retry return scan secStruct self sort step struct subject switch switchMenu tag then to try type unique uses var where while with without // data types KeyWords2: array DynArray ActionEvent ErrorEvent Event KeyEvent MenuEvent MouseEvent MoveEvent StatusEvent TimerEvent ValueEvent Menu PopUpMenu UIObject Toolbar Application Form Report Script TableView AnyType Array Binary Currency Date DateTime DynArray Graphic Logical LongInt Memo Number OLE Point Record SmallInt String Time Database Query Table TCursor SQL DataTransfer DDE FileSystem Library Mail Session System TextStream StringList // predefined record types KeyWords3: FormOpenInfo ReportOpenInfo FileBrowserInfo ReportPrintInfo ////////////////////////////////////////////////////////////////////////////// // string delimiter: StringBegChar - string begin char // StringEndChar - string end char // MultilineStrings - enables multiline strings, as perl // has it StringBegChar: " StringEndChar: " MultilineStrings: 1 ////////////////////////////////////////////////////////////////////////////// // use preprocessor: 0 - no // 1 - yes // note: if yes, '#' and statements after it will be // highlighted with Preprocessor defined colors UsePreprocessor: 0 ////////////////////////////////////////////////////////////////////////////// // highlight line: 0 - no // 1 - yes // note: if yes, current line will be highlighted CurrLineHighlighted: 1 ////////////////////////////////////////////////////////////////////////////// // colors // note: first value is foreground, second is background color // and third (optional) represents font attribute: // B - bold // I - italic // U - underline // S - strike out // attributes can be combined: eg. B or BI // as value, it could be used any standard windows color: // clBlack, clMaroon, clGreen, clOlive, clNavy, // clPurple, clTeal, clGray, clSilver, clRed, clLime, // clYellow, clBlue, clFuchsia, clAqua, clLtGray, // clDkGray, clWhite, clScrollBar, clBackground, // clActiveCaption, clInactiveCaption, clMenu, clWindow, // clWindowFrame, clMenuText, clWindowText, clCaptionText, // clActiveBorder, clInactiveBorder, clAppWorkSpace, // clHighlight, clHighlightText, clBtnFace, clBtnShadow, // clGrayText, clBtnText, clInactiveCaptionText, // clBtnHighlight, cl3DDkShadow, cl3DLight, clInfoText, // clInfoBk // as value, it could be used hex numeric constant too: // $BBGGRR - BB: blue, GG: green, RR: red, eg: $FF6A00 SpaceCol: clWindowText clWindow Keyword1Col: clBlack clWindow B Keyword2Col: clGreen clWindow B Keyword3Col: clBlue clWindow IdentifierCol: clWindowText clWindow CommentCol: clNavy clWindow I NumberCol: clRed clWindow StringCol: clBlue clWindow SymbolCol: clGray clWindow PreprocessorCol: clBlue clWindow SelectionCol: clWhite clNavy CurrentLineCol: clBlack clYellow