codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: PL/M3" Maintainer: Philippe Coulonges <cphil@cphil.net>4" Last change: 2003 May 115 6" quit when a syntax file was already loaded7if exists("b:current_syntax")8 finish9endif10 11" PL/M is a case insensitive language12syn case ignore13 14syn keyword plmTodo contained TODO FIXME XXX15 16" String17syn region plmString start=+'+ end=+'+18 19syn match plmOperator "[@=\+\-\*\/\<\>]"20 21syn match plmIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>"22 23syn match plmDelimiter "[();,]"24 25syn region plmPreProc start="^\s*\$\s*" skip="\\$" end="$"26 27" FIXME : No Number support for floats, as I'm working on an embedded28" project that doesn't use any.29syn match plmNumber "-\=\<\d\+\>"30syn match plmNumber "\<[0-9a-fA-F]*[hH]*\>"31 32" If you don't like tabs33"syn match plmShowTab "\t"34"syn match plmShowTabc "\t"35 36"when wanted, highlight trailing white space37if exists("c_space_errors")38 syn match plmSpaceError "\s*$"39 syn match plmSpaceError " \+\t"me=e-140endif41 42"43 " Use the same control variable as C language for I believe44 " users will want the same behavior45if exists("c_comment_strings")46 " FIXME : don't work fine with c_comment_strings set,47 " which I don't care as I don't use48 49 " A comment can contain plmString, plmCharacter and plmNumber.50 " But a "*/" inside a plmString in a plmComment DOES end the comment! So we51 " need to use a special type of plmString: plmCommentString, which also ends on52 " "*/", and sees a "*" at the start of the line as comment again.53 syntax match plmCommentSkip contained "^\s*\*\($\|\s\+\)"54 syntax region plmCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=plmSpecial,plmCommentSkip55 syntax region plmComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=plmSpecial56 syntax region plmComment start="/\*" end="\*/" contains=plmTodo,plmCommentString,plmCharacter,plmNumber,plmFloat,plmSpaceError57 syntax match plmComment "//.*" contains=plmTodo,plmComment2String,plmCharacter,plmNumber,plmSpaceError58else59 syn region plmComment start="/\*" end="\*/" contains=plmTodo,plmSpaceError60 syn match plmComment "//.*" contains=plmTodo,plmSpaceError61endif62 63syntax match plmCommentError "\*/"64 65syn keyword plmReserved ADDRESS AND AT BASED BY BYTE CALL CASE66syn keyword plmReserved DATA DECLARE DISABLE DO DWORD67syn keyword plmReserved ELSE ENABLE END EOF EXTERNAL68syn keyword plmReserved GO GOTO HALT IF INITIAL INTEGER INTERRUPT69syn keyword plmReserved LABEL LITERALLY MINUS MOD NOT OR70syn keyword plmReserved PLUS POINTER PROCEDURE PUBLIC71syn keyword plmReserved REAL REENTRANT RETURN SELECTOR STRUCTURE72syn keyword plmReserved THEN TO WHILE WORD XOR73syn keyword plm386Reserved CHARINT HWORD LONGINT OFFSET QWORD SHORTINT74 75syn keyword plmBuiltIn ABS ADJUSTRPL BLOCKINPUT BLOCKINWORD BLOCKOUTPUT76syn keyword plmBuiltIn BLOCKOUTWORD BUILPTR CARRY CAUSEINTERRUPT CMPB77syn keyword plmBuiltIn CMPW DEC DOUBLE FINDB FINDRB FINDRW FINDW FIX78syn keyword plmBuiltIn FLAGS FLOAT GETREALERROR HIGH IABS INITREALMATHUNIT79syn keyword plmBuiltIn INPUT INT INWORD LAST LOCKSET LENGTH LOW MOVB MOVE80syn keyword plmBuiltIn MOVRB MOVRW MOVW NIL OUTPUT OUTWORD RESTOREREALSTATUS81syn keyword plmBuiltIn ROL ROR SAL SAVEREALSTATUS SCL SCR SELECTOROF SETB82syn keyword plmBuiltIn SETREALMODE SETW SHL SHR SIGN SIGNED SIZE SKIPB83syn keyword plmBuiltIn SKIPRB SKIPRW SKIPW STACKBASE STACKPTR TIME SIZE84syn keyword plmBuiltIn UNSIGN XLAT ZERO85syn keyword plm386BuiltIn INTERRUPT SETINTERRUPT86syn keyword plm286BuiltIn CLEARTASKSWITCHEDFLAG GETACCESSRIGHTS87syn keyword plm286BuiltIn GETSEGMENTLIMIT LOCALTABLE MACHINESTATUS88syn keyword plm286BuiltIn OFFSETOF PARITY RESTOREGLOBALTABLE89syn keyword plm286BuiltIn RESTOREINTERRUPTTABLE SAVEGLOBALTABLE90syn keyword plm286BuiltIn SAVEINTERRUPTTABLE SEGMENTREADABLE91syn keyword plm286BuiltIn SEGMENTWRITABLE TASKREGISTER WAITFORINTERRUPT92syn keyword plm386BuiltIn CONTROLREGISTER DEBUGREGISTER FINDHW93syn keyword plm386BuiltIn FINDRHW INHWORD MOVBIT MOVRBIT MOVHW MOVRHW94syn keyword plm386BuiltIn OUTHWORD SCANBIT SCANRBIT SETHW SHLD SHRD95syn keyword plm386BuiltIn SKIPHW SKIPRHW TESTREGISTER96syn keyword plm386w16BuiltIn BLOCKINDWORD BLOCKOUTDWORD CMPD FINDD97syn keyword plm386w16BuiltIn FINDRD INDWORD MOVD MOVRD OUTDWORD98syn keyword plm386w16BuiltIn SETD SKIPD SKIPRD99 100syn sync lines=50101 102" Define the default highlighting.103" Only when an item doesn't have highlighting yet104 105" The default methods for highlighting. Can be overridden later106" hi def link plmLabel Label107" hi def link plmConditional Conditional108" hi def link plmRepeat Repeat109hi def link plmTodo Todo110hi def link plmNumber Number111hi def link plmOperator Operator112hi def link plmDelimiter Operator113"hi def link plmShowTab Error114"hi def link plmShowTabc Error115hi def link plmIdentifier Identifier116hi def link plmBuiltIn Statement117hi def link plm286BuiltIn Statement118hi def link plm386BuiltIn Statement119hi def link plm386w16BuiltIn Statement120hi def link plmReserved Statement121hi def link plm386Reserved Statement122hi def link plmPreProc PreProc123hi def link plmCommentError plmError124hi def link plmCommentString plmString125hi def link plmComment2String plmString126hi def link plmCommentSkip plmComment127hi def link plmString String128hi def link plmComment Comment129 130 131let b:current_syntax = "plm"132 133" vim: ts=8 sw=2134 135 