xref: /vim-8.2.3635/runtime/syntax/plm.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	PL/M
3071d4279SBram Moolenaar" Maintainer:	Philippe Coulonges <[email protected]>
4071d4279SBram Moolenaar" Last change:	2003 May 11
5071d4279SBram Moolenaar
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
11071d4279SBram Moolenaar" PL/M is a case insensitive language
12071d4279SBram Moolenaarsyn case ignore
13071d4279SBram Moolenaar
14071d4279SBram Moolenaarsyn keyword plmTodo contained	TODO FIXME XXX
15071d4279SBram Moolenaar
16071d4279SBram Moolenaar" String
17071d4279SBram Moolenaarsyn region  plmString		start=+'+  end=+'+
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarsyn match   plmOperator		"[@=\+\-\*\/\<\>]"
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsyn match   plmIdentifier	"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
22071d4279SBram Moolenaar
23071d4279SBram Moolenaarsyn match   plmDelimiter	"[();,]"
24071d4279SBram Moolenaar
25071d4279SBram Moolenaarsyn region  plmPreProc		start="^\s*\$\s*" skip="\\$" end="$"
26071d4279SBram Moolenaar
27071d4279SBram Moolenaar" FIXME : No Number support for floats, as I'm working on an embedded
28071d4279SBram Moolenaar" project that doesn't use any.
29071d4279SBram Moolenaarsyn match   plmNumber		"-\=\<\d\+\>"
30071d4279SBram Moolenaarsyn match   plmNumber		"\<[0-9a-fA-F]*[hH]*\>"
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" If you don't like tabs
33071d4279SBram Moolenaar"syn match plmShowTab "\t"
34071d4279SBram Moolenaar"syn match plmShowTabc "\t"
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar"when wanted, highlight trailing white space
37071d4279SBram Moolenaarif exists("c_space_errors")
38071d4279SBram Moolenaar  syn match	plmSpaceError	"\s*$"
39071d4279SBram Moolenaar  syn match	plmSpaceError	" \+\t"me=e-1
40071d4279SBram Moolenaarendif
41071d4279SBram Moolenaar
42071d4279SBram Moolenaar"
43071d4279SBram Moolenaar  " Use the same control variable as C language for I believe
44071d4279SBram Moolenaar  " users will want the same behavior
45071d4279SBram Moolenaarif exists("c_comment_strings")
46071d4279SBram Moolenaar  " FIXME : don't work fine with c_comment_strings set,
47071d4279SBram Moolenaar  "	    which I don't care as I don't use
48071d4279SBram Moolenaar
49071d4279SBram Moolenaar  " A comment can contain plmString, plmCharacter and plmNumber.
50071d4279SBram Moolenaar  " But a "*/" inside a plmString in a plmComment DOES end the comment!  So we
51071d4279SBram Moolenaar  " need to use a special type of plmString: plmCommentString, which also ends on
52071d4279SBram Moolenaar  " "*/", and sees a "*" at the start of the line as comment again.
53071d4279SBram Moolenaar  syntax match	plmCommentSkip	contained "^\s*\*\($\|\s\+\)"
54071d4279SBram Moolenaar  syntax region plmCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=plmSpecial,plmCommentSkip
55071d4279SBram Moolenaar  syntax region plmComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=plmSpecial
56071d4279SBram Moolenaar  syntax region plmComment	start="/\*" end="\*/" contains=plmTodo,plmCommentString,plmCharacter,plmNumber,plmFloat,plmSpaceError
57071d4279SBram Moolenaar  syntax match  plmComment	"//.*" contains=plmTodo,plmComment2String,plmCharacter,plmNumber,plmSpaceError
58071d4279SBram Moolenaarelse
59071d4279SBram Moolenaar  syn region	plmComment	start="/\*" end="\*/" contains=plmTodo,plmSpaceError
60071d4279SBram Moolenaar  syn match	plmComment	"//.*" contains=plmTodo,plmSpaceError
61071d4279SBram Moolenaarendif
62071d4279SBram Moolenaar
63071d4279SBram Moolenaarsyntax match	plmCommentError	"\*/"
64071d4279SBram Moolenaar
65071d4279SBram Moolenaarsyn keyword plmReserved	ADDRESS AND AT BASED BY BYTE CALL CASE
66071d4279SBram Moolenaarsyn keyword plmReserved DATA DECLARE DISABLE DO DWORD
67071d4279SBram Moolenaarsyn keyword plmReserved	ELSE ENABLE END EOF EXTERNAL
68071d4279SBram Moolenaarsyn keyword plmReserved GO GOTO HALT IF INITIAL INTEGER INTERRUPT
69071d4279SBram Moolenaarsyn keyword plmReserved LABEL LITERALLY MINUS MOD NOT OR
70071d4279SBram Moolenaarsyn keyword plmReserved PLUS POINTER PROCEDURE PUBLIC
71071d4279SBram Moolenaarsyn keyword plmReserved REAL REENTRANT RETURN SELECTOR STRUCTURE
72071d4279SBram Moolenaarsyn keyword plmReserved THEN TO WHILE WORD XOR
73071d4279SBram Moolenaarsyn keyword plm386Reserved CHARINT HWORD LONGINT OFFSET QWORD SHORTINT
74071d4279SBram Moolenaar
75071d4279SBram Moolenaarsyn keyword plmBuiltIn ABS ADJUSTRPL BLOCKINPUT BLOCKINWORD BLOCKOUTPUT
76071d4279SBram Moolenaarsyn keyword plmBuiltIn BLOCKOUTWORD BUILPTR CARRY CAUSEINTERRUPT CMPB
77071d4279SBram Moolenaarsyn keyword plmBuiltIn CMPW DEC DOUBLE FINDB FINDRB FINDRW FINDW FIX
78071d4279SBram Moolenaarsyn keyword plmBuiltIn FLAGS FLOAT GETREALERROR HIGH IABS INITREALMATHUNIT
79071d4279SBram Moolenaarsyn keyword plmBuiltIn INPUT INT INWORD LAST LOCKSET LENGTH LOW MOVB MOVE
80071d4279SBram Moolenaarsyn keyword plmBuiltIn MOVRB MOVRW MOVW NIL OUTPUT OUTWORD RESTOREREALSTATUS
81071d4279SBram Moolenaarsyn keyword plmBuiltIn ROL ROR SAL SAVEREALSTATUS SCL SCR SELECTOROF SETB
82071d4279SBram Moolenaarsyn keyword plmBuiltIn SETREALMODE SETW SHL SHR SIGN SIGNED SIZE SKIPB
83071d4279SBram Moolenaarsyn keyword plmBuiltIn SKIPRB SKIPRW SKIPW STACKBASE STACKPTR TIME SIZE
84071d4279SBram Moolenaarsyn keyword plmBuiltIn UNSIGN XLAT ZERO
85071d4279SBram Moolenaarsyn keyword plm386BuiltIn INTERRUPT SETINTERRUPT
86071d4279SBram Moolenaarsyn keyword plm286BuiltIn CLEARTASKSWITCHEDFLAG GETACCESSRIGHTS
87071d4279SBram Moolenaarsyn keyword plm286BuiltIn GETSEGMENTLIMIT LOCALTABLE MACHINESTATUS
88071d4279SBram Moolenaarsyn keyword plm286BuiltIn OFFSETOF PARITY RESTOREGLOBALTABLE
89071d4279SBram Moolenaarsyn keyword plm286BuiltIn RESTOREINTERRUPTTABLE SAVEGLOBALTABLE
90071d4279SBram Moolenaarsyn keyword plm286BuiltIn SAVEINTERRUPTTABLE SEGMENTREADABLE
91071d4279SBram Moolenaarsyn keyword plm286BuiltIn SEGMENTWRITABLE TASKREGISTER WAITFORINTERRUPT
92071d4279SBram Moolenaarsyn keyword plm386BuiltIn CONTROLREGISTER DEBUGREGISTER FINDHW
93071d4279SBram Moolenaarsyn keyword plm386BuiltIn FINDRHW INHWORD MOVBIT MOVRBIT MOVHW MOVRHW
94071d4279SBram Moolenaarsyn keyword plm386BuiltIn OUTHWORD SCANBIT SCANRBIT SETHW SHLD SHRD
95071d4279SBram Moolenaarsyn keyword plm386BuiltIn SKIPHW SKIPRHW TESTREGISTER
96071d4279SBram Moolenaarsyn keyword plm386w16BuiltIn BLOCKINDWORD BLOCKOUTDWORD CMPD FINDD
97071d4279SBram Moolenaarsyn keyword plm386w16BuiltIn FINDRD INDWORD MOVD MOVRD OUTDWORD
98071d4279SBram Moolenaarsyn keyword plm386w16BuiltIn SETD SKIPD SKIPRD
99071d4279SBram Moolenaar
100071d4279SBram Moolenaarsyn sync lines=50
101071d4279SBram Moolenaar
102071d4279SBram Moolenaar" Define the default highlighting.
10389bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
104071d4279SBram Moolenaar
105071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
106*f37506f6SBram Moolenaar"  hi def link plmLabel			Label
107*f37506f6SBram Moolenaar"  hi def link plmConditional		Conditional
108*f37506f6SBram Moolenaar"  hi def link plmRepeat			Repeat
109*f37506f6SBram Moolenaarhi def link plmTodo			Todo
110*f37506f6SBram Moolenaarhi def link plmNumber			Number
111*f37506f6SBram Moolenaarhi def link plmOperator			Operator
112*f37506f6SBram Moolenaarhi def link plmDelimiter			Operator
113*f37506f6SBram Moolenaar"hi def link plmShowTab			Error
114*f37506f6SBram Moolenaar"hi def link plmShowTabc			Error
115*f37506f6SBram Moolenaarhi def link plmIdentifier			Identifier
116*f37506f6SBram Moolenaarhi def link plmBuiltIn			Statement
117*f37506f6SBram Moolenaarhi def link plm286BuiltIn			Statement
118*f37506f6SBram Moolenaarhi def link plm386BuiltIn			Statement
119*f37506f6SBram Moolenaarhi def link plm386w16BuiltIn		Statement
120*f37506f6SBram Moolenaarhi def link plmReserved			Statement
121*f37506f6SBram Moolenaarhi def link plm386Reserved			Statement
122*f37506f6SBram Moolenaarhi def link plmPreProc			PreProc
123*f37506f6SBram Moolenaarhi def link plmCommentError		plmError
124*f37506f6SBram Moolenaarhi def link plmCommentString		plmString
125*f37506f6SBram Moolenaarhi def link plmComment2String		plmString
126*f37506f6SBram Moolenaarhi def link plmCommentSkip			plmComment
127*f37506f6SBram Moolenaarhi def link plmString			String
128*f37506f6SBram Moolenaarhi def link plmComment			Comment
129071d4279SBram Moolenaar
130071d4279SBram Moolenaar
131071d4279SBram Moolenaarlet b:current_syntax = "plm"
132071d4279SBram Moolenaar
133071d4279SBram Moolenaar" vim: ts=8 sw=2
134071d4279SBram Moolenaar
135