////////////////////////////////////////////////////////////////////////////// // // IEC 61131-3 Highlighter // Template: x86 Assembly highlighter by Eden Kirin, context@fixedsys.com // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // language name Language: IEC 61131-3 ////////////////////////////////////////////////////////////////////////////// // put whatever you want here, short description, author name, email address.. Description: IEC 61131-3 Highlighter by Hugo Hinterberger ////////////////////////////////////////////////////////////////////////////// // default file filter // note: if more than one extension is associated, eg: // C/C++ files (*.c,*.cpp,*.h,*.hpp)|*.c;*.cpp;*.h;*.hpp Filter: IEC 61131-3 (*.st, *.il *.txt)|*.st;*.il;*.txt ////////////////////////////////////////////////////////////////////////////// // help file which will be invoked when F1 is pressed HelpFile: ////////////////////////////////////////////////////////////////////////////// // language case sensitivity // 0 - no // 1 - yes CaseSensitive: 0 ////////////////////////////////////////////////////////////////////////////// // comment type: LineComment - comment to the EOL // BlockCommentBeg - block comment begin, it could be // multiline // BlockCommentEnd - block comment end // // if there is more than one definition of line/beg/end comment string, // you can separate it with spaces. // for example, for pascal it would be: // LineComment: // // BlockCommentBeg: (* { // BlockCommentEnd: *) } LineComment: BlockCommentBeg: (* BlockCommentEnd: *) ////////////////////////////////////////////////////////////////////////////// // identifier characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char IdentifierBegChars: a..z A..Z _ IdentifierChars: a..z A..Z 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 NumConstBegChars: 0..9 - T# TIME# D# DATE# TIME_OF_DAY# TOD# DATE_AND_TIME# DT# NumConstChars: 0..9 abcdefhmsx.\:_- ////////////////////////////////////////////////////////////////////////////// // escape character EscapeChar: % $ ////////////////////////////////////////////////////////////////////////////// // keyword table // note: delimited with spaces, lines could be wrapped // you may divide keywords into five groups which can be // highlighted differently // Keywords KeyWords1: ACTION AT BY CASE CONFIGURATION CONSTANT DO ELSE ELSIF END_ACTION END_CASE END_CONFIGURATION END_FOR END_FUNCTION END_FUNCTION_BLOCK END_IF END_PROGRAM END_RESOURCE END_STEP END_TRANSITION END_VAR END_WHILE EXIT FOR FROM FUNCTION FUNCTION_BLOCK IF INITIAL_STEP OF ON PROGRAM RESOURCE RETAIN STEP THEN TO TRANSITION VAR VAR_ACCESS VAR_EXTERNAL VAR_GLOBAL VAR_IN_OUT VAR_INPUT VAR_OUTPUT WHILE // Data types KeyWords2: ARRAY BOOL BYTE D DATE DATE_AND_TIME DELAY DINT DT DWORD INT L_EDGE LINT LREAL LWORD R_EDGE REAL SINT STRING T TIME TIME_OF_DAY TOD UDINT UINT ULINT USINT WORD // Functions KeyWords3: ABS ACOS ACS AND ASIN ASN ATAN ATN BCD_TO_INT CONCAT COS CTD CTU CTUD DEG DELETE DIV EXP EXPT F_TRIG FIND FRD GE GT IIN INSERT INT_TO_BCD INT_TO_REAL LE LEFT LEN LIMIT LN LOG MAX MID MIN MOD MOD MOVE MUL MUX NE NEG NOT OR RAD REAL_TO_INT REPLACE RETAIN RIGHT ROL ROR RTC SEL SHL SHR SIN SQR T_TRIG TAN TIME_TO_REAL TOD TRUNC XOR XPY // Instructions KeyWords4: ADD ANDN BRK CAL DFA END EQ JMP JMPC LD LT MCR MSG NXT RET SDS ST SUB TND // Function Blocks KeyWords5: CMD_MONITOR DERIVATIVE INTEGRAL RS SR TOF TON TP ////////////////////////////////////////////////////////////////////////////// // string delimiter: StringBegChar - string begin char // StringEndChar - string end char // MultilineStrings - enables multiline strings, as perl // has it StringBegChar: ' StringEndChar: ' MultilineStrings: 0 ////////////////////////////////////////////////////////////////////////////// // 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: clBlue clWindow B Keyword2Col: clBlack clWindow B Keyword3Col: clNavy clWindow B Keyword4Col: clGreen clWindow B Keyword5Col: clOlive clWindow B IdentifierCol: clNavy clWindow CommentCol: clGray clWindow I NumberCol: clRed clWindow StringCol: clMaroon clWindow SymbolCol: clGray clWindow PreprocessorCol: clGreen clWindow SelectionCol: clHighlightText clHighlight CurrentLineCol: clWindowText clWindow MatchedBracesCol: clRed clWindow OverrideTxtFgColor: 0 BlockAutoindent: 0 BlockBegStr: BlockEndStr: