3 " Maintainer: Shizhu Pan <poet@mudbuilder.net>
4 " URL: http://poet.tomud.com/pub/lpc.vim.bz2
5 " Last Change: 2011 Dec 10 by Thilo Six
6 " Comments: If you are using Vim 6.2 or later, see :h lpc.vim for
7 " file type recognizing, if not, you had to use modeline.
10 " Nodule: This is the start nodule. {{{1
12 " For version 5.x: Clear all syntax items
13 " For version 6.x: Quit when a syntax file was already loaded
16 elseif exists("b:current_syntax")
23 " Nodule: Keywords {{{1
26 " keywords should always be highlighted so "contained" is not used.
27 syn cluster lpcKeywdGrp contains=lpcConditional,lpcLabel,lpcOperator,lpcRepeat,lpcStatement,lpcModifier,lpcReserved
29 syn keyword lpcConditional if else switch
30 syn keyword lpcLabel case default
31 syn keyword lpcOperator catch efun in inherit
32 syn keyword lpcRepeat do for foreach while
33 syn keyword lpcStatement break continue return
35 syn match lpcEfunError /efun[^:]/ display
37 " Illegal to use keyword as function
38 " It's not working, maybe in the next version.
39 syn keyword lpcKeywdError contained if for foreach return switch while
41 " These are keywords only because they take lvalue or type as parameter,
42 " so these keywords should only be used as function but cannot be names of
43 " user-defined functions.
44 syn keyword lpcKeywdFunc new parse_command sscanf time_expression
46 " Nodule: Type and modifiers {{{1
51 syn keyword lpcType void mixed unknown
53 syn keyword lpcType int float string
55 syn keyword lpcType array buffer class function mapping object
57 if exists("lpc_compat_32")
58 syn keyword lpcType closure status funcall
60 syn keyword lpcError closure status
61 syn keyword lpcType multiset
65 syn keyword lpcModifier nomask private public
66 syn keyword lpcModifier varargs virtual
69 if exists("lpc_pre_v22")
70 syn keyword lpcReserved nosave protected ref
71 syn keyword lpcModifier static
73 syn keyword lpcError static
74 syn keyword lpcModifier nosave protected ref
77 " Nodule: Applies {{{1
79 " Match a function declaration or function pointer
80 syn match lpcApplyDecl excludenl /->\h\w*(/me=e-1 contains=lpcApplies transparent display
82 " We should note that in func_spec.c the efun definition syntax is so
83 " complicated that I use such a long regular expression to describe.
84 syn match lpcLongDecl excludenl /\(\s\|\*\)\h\+\s\h\+(/me=e-1 contains=@lpcEfunGroup,lpcType,@lpcKeywdGrp transparent display
86 " this is form for all functions
87 " ->foo() form had been excluded
88 syn match lpcFuncDecl excludenl /\h\w*(/me=e-1 contains=lpcApplies,@lpcEfunGroup,lpcKeywdError transparent display
90 " The (: :) parenthesis or $() forms a function pointer
91 syn match lpcFuncName /(:\s*\h\+\s*:)/me=e-1 contains=lpcApplies,@lpcEfunGroup transparent display contained
92 syn match lpcFuncName /(:\s*\h\+,/ contains=lpcApplies,@lpcEfunGroup transparent display contained
93 syn match lpcFuncName /\$(\h\+)/ contains=lpcApplies,@lpcEfunGroup transparent display contained
97 syn keyword lpcApplies contained __INIT clean_up create destructor heart_beat id init move_or_destruct reset
99 syn keyword lpcApplies contained catch_tell logon net_dead process_input receive_message receive_snoop telnet_suboption terminal_type window_size write_prompt
101 syn keyword lpcApplies contained author_file compile_object connect crash creator_file domain_file epilog error_handler flag get_bb_uid get_root_uid get_save_file_name log_error make_path_absolute object_name preload privs_file retrieve_ed_setup save_ed_setup slow_shutdown
102 syn keyword lpcApplies contained valid_asm valid_bind valid_compile_to_c valid_database valid_hide valid_link valid_object valid_override valid_read valid_save_binary valid_seteuid valid_shadow valid_socket valid_write
104 syn keyword lpcApplies contained inventory_accessible inventory_visible is_living parse_command_adjectiv_id_list parse_command_adjective_id_list parse_command_all_word parse_command_id_list parse_command_plural_id_list parse_command_prepos_list parse_command_users parse_get_environment parse_get_first_inventory parse_get_next_inventory parser_error_message
109 syn cluster lpcEfunGroup contains=lpc_efuns,lpcOldEfuns,lpcNewEfuns,lpcKeywdFunc
112 if exists("lpc_compat_32")
113 syn keyword lpc_efuns contained closurep heart_beat_info m_delete m_values m_indices query_once_interactive strstr
115 syn match lpcErrFunc /#`\h\w*/
116 " Shell compatible first line comment.
117 syn region lpcCommentFunc start=/^#!/ end=/$/
120 " pre-v22 efuns which are removed in newer versions.
121 syn keyword lpcOldEfuns contained tail dump_socket_status
123 " new efuns after v22 should be added here!
124 syn keyword lpcNewEfuns contained socket_status
127 " DEBUG efuns Not included.
128 " New efuns should NOT be added to this list, see v22 efuns above.
130 syn keyword lpc_efuns contained acos add_action all_inventory all_previous_objects allocate allocate_buffer allocate_mapping apply arrayp asin atan author_stats
131 syn keyword lpc_efuns contained bind break_string bufferp
132 syn keyword lpc_efuns contained cache_stats call_other call_out call_out_info call_stack capitalize catch ceil check_memory children classp clear_bit clone_object clonep command commands copy cos cp crc32 crypt ctime
133 syn keyword lpc_efuns contained db_close db_commit db_connect db_exec db_fetch db_rollback db_status debug_info debugmalloc debug_message deep_inherit_list deep_inventory destruct disable_commands disable_wizard domain_stats dumpallobj dump_file_descriptors dump_prog
134 syn keyword lpc_efuns contained each ed ed_cmd ed_start enable_commands enable_wizard environment error errorp eval_cost evaluate exec exp explode export_uid external_start
135 syn keyword lpc_efuns contained fetch_variable file_length file_name file_size filter filter_array filter_mapping find_call_out find_living find_object find_player first_inventory floatp floor flush_messages function_exists function_owner function_profile functionp functions
136 syn keyword lpc_efuns contained generate_source get_char get_config get_dir geteuid getuid
137 syn keyword lpc_efuns contained heart_beats
138 syn keyword lpc_efuns contained id_matrix implode in_edit in_input inherit_list inherits input_to interactive intp
139 syn keyword lpc_efuns contained keys
140 syn keyword lpc_efuns contained link living livings load_object localtime log log10 lookat_rotate lower_case lpc_info
141 syn keyword lpc_efuns contained malloc_check malloc_debug malloc_status map map_array map_delete map_mapping mapp master match_path max_eval_cost member_array memory_info memory_summary message mkdir moncontrol move_object mud_status
142 syn keyword lpc_efuns contained named_livings network_stats next_bit next_inventory notify_fail nullp
143 syn keyword lpc_efuns contained objectp objects oldcrypt opcprof origin
144 syn keyword lpc_efuns contained parse_add_rule parse_add_synonym parse_command parse_dump parse_init parse_my_rules parse_refresh parse_remove parse_sentence pluralize pointerp pow present previous_object printf process_string process_value program_info
145 syn keyword lpc_efuns contained query_ed_mode query_heart_beat query_host_name query_idle query_ip_name query_ip_number query_ip_port query_load_average query_notify_fail query_privs query_replaced_program query_shadowing query_snoop query_snooping query_verb
146 syn keyword lpc_efuns contained random read_buffer read_bytes read_file receive reclaim_objects refs regexp reg_assoc reload_object remove_action remove_call_out remove_interactive remove_shadow rename repeat_string replace_program replace_string replaceable reset_eval_cost resolve restore_object restore_variable rm rmdir rotate_x rotate_y rotate_z rusage
147 syn keyword lpc_efuns contained save_object save_variable say scale set_author set_bit set_eval_limit set_heart_beat set_hide set_light set_living_name set_malloc_mask set_privs set_reset set_this_player set_this_user seteuid shadow shallow_inherit_list shout shutdown sin sizeof snoop socket_accept socket_acquire socket_address socket_bind socket_close socket_connect socket_create socket_error socket_listen socket_release socket_write sort_array sprintf sqrt stat store_variable strcmp stringp strlen strsrch
148 syn keyword lpc_efuns contained tan tell_object tell_room terminal_colour test_bit this_interactive this_object this_player this_user throw time to_float to_int trace traceprefix translate typeof
149 syn keyword lpc_efuns contained undefinedp unique_array unique_mapping upper_case uptime userp users
150 syn keyword lpc_efuns contained values variables virtualp
151 syn keyword lpc_efuns contained wizardp write write_buffer write_bytes write_file
153 " Nodule: Constants {{{1
156 " like keywords, constants are always highlighted, be careful to choose only
157 " the constants we used to add to this list.
158 syn keyword lpcConstant __ARCH__ __COMPILER__ __DIR__ __FILE__ __OPTIMIZATION__ __PORT__ __VERSION__
159 " Defines in options.h are all predefined in LPC sources surrounding by
160 " two underscores. Do we need to include all of that?
161 syn keyword lpcConstant __SAVE_EXTENSION__ __HEARTBEAT_INTERVAL__
162 " from the documentation we know that these constants remains only for
163 " backward compatibility and should not be used any more.
164 syn keyword lpcConstant HAS_ED HAS_PRINTF HAS_RUSAGE HAS_DEBUG_LEVEL
165 syn keyword lpcConstant MUD_NAME F__THIS_OBJECT
167 " Nodule: Todo for this file. {{{1
169 " TODO : need to check for LPC4 syntax and other series of LPC besides
170 " v22, b21 and l32, if you had a good idea, contact me at poet@mudbuilder.net
171 " and I will be appreciated about that.
173 " Notes about some FAQ:
175 " About variables : We adopts the same behavior for C because almost all the
176 " LPC programmers are also C programmers, so we don't need separate settings
177 " for C and LPC. That is the reason why I don't change variables like
178 " "c_no_utf"s to "lpc_no_utf"s.
180 " Copy : Some of the following seems to be copied from c.vim but not quite
181 " the same in details because the syntax for C and LPC is different.
183 " Color scheme : this syntax file had been thouroughly tested to work well
184 " for all of the dark-backgrounded color schemes Vim has provided officially,
185 " and it should be quite Ok for all of the bright-backgrounded color schemes,
186 " of course it works best for the color scheme that I am using, download it
187 " from http://poet.tomud.com/pub/ps_color.vim.bz2 if you want to try it.
190 " Nodule: String and Character {{{1
193 " String and Character constants
194 " Highlight special characters (those which have a backslash) differently
195 syn match lpcSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
196 if !exists("c_no_utf")
197 syn match lpcSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
200 " LPC version of sprintf() format,
201 syn match lpcFormat display "%\(\d\+\)\=[-+ |=#@:.]*\(\d\+\)\=\('\I\+'\|'\I*\\'\I*'\)\=[OsdicoxXf]" contained
202 syn match lpcFormat display "%%" contained
203 syn region lpcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lpcSpecial,lpcFormat
204 " lpcCppString: same as lpcString, but ends at end of line
205 syn region lpcCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=lpcSpecial,lpcFormat
207 " LPC preprocessor for the text formatting short cuts
208 " Thanks to Dr. Charles E. Campbell <cec@gryphon.gsfc.nasa.gov>
209 " he suggests the best way to do this.
210 syn region lpcTextString start=/@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial
211 syn region lpcArrayString start=/@@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial
214 syn match lpcCharacter "L\='[^\\]'"
215 syn match lpcCharacter "L'[^']*'" contains=lpcSpecial
216 syn match lpcSpecialError "L\='\\[^'\"?\\abefnrtv]'"
217 syn match lpcSpecialCharacter "L\='\\['\"?\\abefnrtv]'"
218 syn match lpcSpecialCharacter display "L\='\\\o\{1,3}'"
219 syn match lpcSpecialCharacter display "'\\x\x\{1,2}'"
220 syn match lpcSpecialCharacter display "L'\\x\x\+'"
222 " Nodule: White space {{{1
224 " when wanted, highlight trailing white space
225 if exists("c_space_errors")
226 if !exists("c_no_trail_space_error")
227 syn match lpcSpaceError display excludenl "\s\+$"
229 if !exists("c_no_tab_space_error")
230 syn match lpcSpaceError display " \+\t"me=e-1
234 " Nodule: Parenthesis and brackets {{{1
236 " catch errors caused by wrong parenthesis and brackets
237 syn cluster lpcParenGroup contains=lpcParenError,lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcCommentSkip,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom
238 syn region lpcParen transparent start='(' end=')' contains=ALLBUT,@lpcParenGroup,lpcCppParen,lpcErrInBracket,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcKeywdError
239 " lpcCppParen: same as lpcParen but ends at end-of-line; used in lpcDefine
240 syn region lpcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInBracket,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcKeywdError
241 syn match lpcParenError display ")"
242 syn match lpcParenError display "\]"
244 " Here we should consider the array ({ }) parenthesis and mapping ([ ])
245 " parenthesis and multiset (< >) parenthesis.
246 syn match lpcErrInParen display contained "[^^]{"ms=s+1
247 syn match lpcErrInParen display contained "\(}\|\]\)[^)]"me=e-1
248 syn region lpcBracket transparent start='\[' end=']' contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcCppParen,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError
249 " lpcCppBracket: same as lpcParen but ends at end-of-line; used in lpcDefine
250 syn region lpcCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError
251 syn match lpcErrInBracket display contained "[);{}]"
253 " Nodule: Numbers {{{1
255 " integer number, or floating point number without a dot and with "f".
257 syn match lpcNumbers display transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctalError,lpcOctal
258 " Same, but without octal error (for comments)
259 syn match lpcNumbersCom display contained transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctal
260 syn match lpcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
262 syn match lpcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
263 " Flag the first zero of an octal number as something special
264 syn match lpcOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=lpcOctalZero
265 syn match lpcOctalZero display contained "\<0"
266 syn match lpcFloat display contained "\d\+f"
267 " floating point number, with dot, optional exponent
268 syn match lpcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
269 " floating point number, starting with a dot, optional exponent
270 syn match lpcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
271 " floating point number, without dot, with exponent
272 syn match lpcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
273 " flag an octal number with wrong digits
274 syn match lpcOctalError display contained "0\o*[89]\d*"
277 " Nodule: Comment string {{{1
279 " lpcCommentGroup allows adding matches for special things in comments
280 syn keyword lpcTodo contained TODO FIXME XXX
281 syn cluster lpcCommentGroup contains=lpcTodo
283 if exists("c_comment_strings")
284 " A comment can contain lpcString, lpcCharacter and lpcNumber.
285 syntax match lpcCommentSkip contained "^\s*\*\($\|\s\+\)"
286 syntax region lpcCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=lpcSpecial,lpcCommentSkip
287 syntax region lpcComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=lpcSpecial
288 syntax region lpcCommentL start="//" skip="\\$" end="$" keepend contains=@lpcCommentGroup,lpcComment2String,lpcCharacter,lpcNumbersCom,lpcSpaceError
289 syntax region lpcComment matchgroup=lpcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@lpcCommentGroup,lpcCommentStartError,lpcCommentString,lpcCharacter,lpcNumbersCom,lpcSpaceError
291 syn region lpcCommentL start="//" skip="\\$" end="$" keepend contains=@lpcCommentGroup,lpcSpaceError
292 syn region lpcComment matchgroup=lpcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@lpcCommentGroup,lpcCommentStartError,lpcSpaceError
294 " keep a // comment separately, it terminates a preproc. conditional
295 syntax match lpcCommentError display "\*/"
296 syntax match lpcCommentStartError display "/\*"me=e-1 contained
298 " Nodule: Pre-processor {{{1
300 syn region lpcPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=lpcComment,lpcCppString,lpcCharacter,lpcCppParen,lpcParenError,lpcNumbers,lpcCommentError,lpcSpaceError
301 syn match lpcPreCondit display "^\s*#\s*\(else\|endif\)\>"
302 if !exists("c_no_if0")
303 syn region lpcCppOut start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=lpcCppOut2
304 syn region lpcCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=lpcSpaceError,lpcCppSkip
305 syn region lpcCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=lpcSpaceError,lpcCppSkip
307 syn region lpcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
308 syn match lpcIncluded display contained "<[^>]*>"
309 syn match lpcInclude display "^\s*#\s*include\>\s*["<]" contains=lpcIncluded
310 syn match lpcLineSkip "\\$"
311 syn cluster lpcPreProcGroup contains=lpcPreCondit,lpcIncluded,lpcInclude,lpcDefine,lpcErrInParen,lpcErrInBracket,lpcUserLabel,lpcSpecial,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcString,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcParen,lpcBracket,lpcMulti,lpcKeywdError
312 syn region lpcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@lpcPreProcGroup
314 if exists("lpc_pre_v22")
315 syn region lpcPreProc start="^\s*#\s*\(pragma\>\|echo\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup
317 syn region lpcPreProc start="^\s*#\s*\(pragma\>\|echo\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup
320 " Nodule: User labels {{{1
323 " User labels in LPC is not allowed, only "case x" and "default" is supported
324 syn cluster lpcMultiGroup contains=lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcCppParen,lpcCppBracket,lpcCppString,lpcKeywdError
325 syn region lpcMulti transparent start='\(case\|default\|public\|protected\|private\)' skip='::' end=':' contains=ALLBUT,@lpcMultiGroup
327 syn cluster lpcLabelGroup contains=lpcUserLabel
328 syn match lpcUserCont display "^\s*lpc:$" contains=@lpcLabelGroup
330 " Don't want to match anything
331 syn match lpcUserLabel display "lpc" contained
333 " Nodule: Initializations {{{1
335 if exists("c_minlines")
336 let b:c_minlines = c_minlines
338 if !exists("c_no_if0")
339 let b:c_minlines = 50 " #if 0 constructs can be long
341 let b:c_minlines = 15 " mostly for () constructs
344 exec "syn sync ccomment lpcComment minlines=" . b:c_minlines
346 " Make sure these options take place since we no longer depend on file type
349 setlocal fo-=t fo+=croql
350 setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
352 " Win32 can filter files in the browse dialog
353 if has("gui_win32") && !exists("b:browsefilter")
354 let b:browsefilter = "LPC Source Files (*.c *.d *.h)\t*.c;*.d;*.h\n" .
355 \ "LPC Data Files (*.scr *.o *.dat)\t*.scr;*.o;*.dat\n" .
356 \ "Text Documentation (*.txt)\t*.txt\n" .
357 \ "All Files (*.*)\t*.*\n"
360 " Nodule: Highlight links {{{1
362 " Define the default highlighting.
363 " For version 5.7 and earlier: only when not done already
364 " For version 5.8 and later: only when an item doesn't have highlighting yet
365 if version >= 508 || !exists("did_lpc_syn_inits")
367 let did_lpc_syn_inits = 1
368 command -nargs=+ HiLink hi link <args>
370 command -nargs=+ HiLink hi def link <args>
373 HiLink lpcModifier lpcStorageClass
375 HiLink lpcQuotedFmt lpcFormat
376 HiLink lpcFormat lpcSpecial
377 HiLink lpcCppString lpcString " Cpp means
379 HiLink lpcCommentL lpcComment
380 HiLink lpcCommentStart lpcComment
381 HiLink lpcUserLabel lpcLabel
382 HiLink lpcSpecialCharacter lpcSpecial
383 HiLink lpcOctal lpcPreProc
384 HiLink lpcOctalZero lpcSpecial " LPC will treat octal numbers
385 " as decimals, programmers should
387 HiLink lpcEfunError lpcError
388 HiLink lpcKeywdError lpcError
389 HiLink lpcOctalError lpcError
390 HiLink lpcParenError lpcError
391 HiLink lpcErrInParen lpcError
392 HiLink lpcErrInBracket lpcError
393 HiLink lpcCommentError lpcError
394 HiLink lpcCommentStartError lpcError
395 HiLink lpcSpaceError lpcError
396 HiLink lpcSpecialError lpcError
397 HiLink lpcErrFunc lpcError
399 if exists("lpc_pre_v22")
400 HiLink lpcOldEfuns lpc_efuns
401 HiLink lpcNewEfuns lpcError
403 HiLink lpcOldEfuns lpcReserved
404 HiLink lpcNewEfuns lpc_efuns
406 HiLink lpc_efuns lpcFunction
408 HiLink lpcReserved lpcPreProc
409 HiLink lpcTextString lpcString " This should be preprocessors, but
410 HiLink lpcArrayString lpcPreProc " let's make some difference
411 " between text and array
413 HiLink lpcIncluded lpcString
414 HiLink lpcCommentString lpcString
415 HiLink lpcComment2String lpcString
416 HiLink lpcCommentSkip lpcComment
417 HiLink lpcCommentFunc lpcComment
419 HiLink lpcCppSkip lpcCppOut
420 HiLink lpcCppOut2 lpcCppOut
421 HiLink lpcCppOut lpcComment
423 " Standard type below
424 HiLink lpcApplies Special
425 HiLink lpcCharacter Character
426 HiLink lpcComment Comment
427 HiLink lpcConditional Conditional
428 HiLink lpcConstant Constant
429 HiLink lpcDefine Macro
430 HiLink lpcError Error
431 HiLink lpcFloat Float
432 HiLink lpcFunction Function
433 HiLink lpcIdentifier Identifier
434 HiLink lpcInclude Include
435 HiLink lpcLabel Label
436 HiLink lpcNumber Number
437 HiLink lpcOperator Operator
438 HiLink lpcPreCondit PreCondit
439 HiLink lpcPreProc PreProc
440 HiLink lpcRepeat Repeat
441 HiLink lpcStatement Statement
442 HiLink lpcStorageClass StorageClass
443 HiLink lpcString String
444 HiLink lpcStructure Structure
445 HiLink lpcSpecial LineNr
452 " Nodule: This is the end nodule. {{{1
454 let b:current_syntax = "lpc"
456 let &cpo = s:cpo_save
459 " vim:ts=8:nosta:sw=2:ai:si:
460 " vim600:set fdm=marker: }}}1