xref: /vim-8.2.3635/runtime/syntax/cmod.vim (revision 40962ec9)
1*40962ec9SBram Moolenaar" Vim syntax file
2*40962ec9SBram Moolenaar" Language:		Cmod
3*40962ec9SBram Moolenaar" Current Maintainer:	Stephen R. van den Berg <[email protected]>
4*40962ec9SBram Moolenaar" Last Change:		2018 Jan 23
5*40962ec9SBram Moolenaar" Version:      	2.9
6*40962ec9SBram Moolenaar" Remark: Is used to edit Cmod files for Pike development.
7*40962ec9SBram Moolenaar" Remark: Includes a highlighter for any embedded Autodoc format.
8*40962ec9SBram Moolenaar
9*40962ec9SBram Moolenaar" quit when a syntax file was already loaded
10*40962ec9SBram Moolenaarif exists("b:current_syntax")
11*40962ec9SBram Moolenaar  finish
12*40962ec9SBram Moolenaarendif
13*40962ec9SBram Moolenaar
14*40962ec9SBram Moolenaarlet s:cpo_save = &cpo
15*40962ec9SBram Moolenaarset cpo&vim
16*40962ec9SBram Moolenaar
17*40962ec9SBram Moolenaar" Read the C syntax to start with
18*40962ec9SBram Moolenaarruntime! syntax/c.vim
19*40962ec9SBram Moolenaarunlet b:current_syntax
20*40962ec9SBram Moolenaar
21*40962ec9SBram Moolenaarif !exists("c_autodoc")
22*40962ec9SBram Moolenaar  " For embedded Autodoc documentation
23*40962ec9SBram Moolenaar  syn include @cmodAutodoc <sfile>:p:h/autodoc.vim
24*40962ec9SBram Moolenaar  unlet b:current_syntax
25*40962ec9SBram Moolenaarendif
26*40962ec9SBram Moolenaar
27*40962ec9SBram Moolenaar" Supports rotating amongst several same-level preprocessor conditionals
28*40962ec9SBram Moolenaarpackadd! matchit
29*40962ec9SBram Moolenaarlet b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
30*40962ec9SBram Moolenaar
31*40962ec9SBram Moolenaar" Cmod extensions
32*40962ec9SBram Moolenaarsyn keyword cmodStatement	__INIT INIT EXIT GC_RECURSE GC_CHECK
33*40962ec9SBram Moolenaarsyn keyword cmodStatement	EXTRA OPTIMIZE RETURN
34*40962ec9SBram Moolenaarsyn keyword cmodStatement	ADD_EFUN ADD_EFUN2 ADD_FUNCTION
35*40962ec9SBram Moolenaarsyn keyword cmodStatement	MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN
36*40962ec9SBram Moolenaar
37*40962ec9SBram Moolenaarsyn keyword cmodStatement	SET_SVAL pop_n_elems pop_stack
38*40962ec9SBram Moolenaarsyn keyword cmodStatement	SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP
39*40962ec9SBram Moolenaarsyn keyword cmodStatement	SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP
40*40962ec9SBram Moolenaarsyn keyword cmodStatement	PTR_FROM_INT INHERIT_FROM_PTR
41*40962ec9SBram Moolenaarsyn keyword cmodStatement	DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC
42*40962ec9SBram Moolenaarsyn keyword cmodStatement	UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO
43*40962ec9SBram Moolenaarsyn keyword cmodStatement	MKPCHARP_STR APPLY_MASTER current_storage
44*40962ec9SBram Moolenaarsyn keyword cmodStatement	PIKE_MAP_VARIABLE size_shift
45*40962ec9SBram Moolenaarsyn keyword cmodStatement	THREADS_ALLOW THREADS_DISALLOW
46*40962ec9SBram Moolenaar
47*40962ec9SBram Moolenaarsyn keyword cmodStatement	add_integer_constant ref_push_object
48*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_string apply_svalue free_svalue
49*40962ec9SBram Moolenaarsyn keyword cmodStatement	get_inherit_storage get_storage
50*40962ec9SBram Moolenaarsyn keyword cmodStatement	make_shared_binary_string push_int64
51*40962ec9SBram Moolenaarsyn keyword cmodStatement	begin_shared_string end_shared_string
52*40962ec9SBram Moolenaarsyn keyword cmodStatement	add_ref fast_clone_object clone_object
53*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_undefined push_int ref_push_string
54*40962ec9SBram Moolenaarsyn keyword cmodStatement	free_string push_ulongest free_object
55*40962ec9SBram Moolenaarsyn keyword cmodStatement	convert_stack_top_to_bignum push_array
56*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_object reduce_stack_top_bignum
57*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_static_text apply_current
58*40962ec9SBram Moolenaarsyn keyword cmodStatement	assign_svalue free_program destruct_object
59*40962ec9SBram Moolenaarsyn keyword cmodStatement	start_new_program low_inherit stack_swap
60*40962ec9SBram Moolenaarsyn keyword cmodStatement	generic_error_program end_program
61*40962ec9SBram Moolenaarsyn keyword cmodStatement	free_array apply_external copy_mapping
62*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_constant_text ref_push_mapping
63*40962ec9SBram Moolenaarsyn keyword cmodStatement	mapping_insert mapping_string_insert_string
64*40962ec9SBram Moolenaarsyn keyword cmodStatement	f_aggregate_mapping f_aggregate apply
65*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_mapping push_svalue low_mapping_lookup
66*40962ec9SBram Moolenaarsyn keyword cmodStatement	assign_svalues_no_free f_add
67*40962ec9SBram Moolenaarsyn keyword cmodStatement	push_empty_string stack_dup assign_lvalue
68*40962ec9SBram Moolenaarsyn keyword cmodStatement	low_mapping_string_lookup allocate_mapping
69*40962ec9SBram Moolenaarsyn keyword cmodStatement	copy_shared_string make_shared_binary_string0
70*40962ec9SBram Moolenaarsyn keyword cmodStatement	f_call_function f_index f_utf8_to_string
71*40962ec9SBram Moolenaarsyn keyword cmodStatement	finish_string_builder init_string_builder
72*40962ec9SBram Moolenaarsyn keyword cmodStatement	reset_string_builder free_string_builder
73*40962ec9SBram Moolenaarsyn keyword cmodStatement	string_builder_putchar get_all_args
74*40962ec9SBram Moolenaarsyn keyword cmodStatement	add_shared_strings check_all_args
75*40962ec9SBram Moolenaarsyn keyword cmodStatement	do_inherit add_string_constant
76*40962ec9SBram Moolenaarsyn keyword cmodStatement	add_program_constant set_init_callback
77*40962ec9SBram Moolenaarsyn keyword cmodStatement	simple_mapping_string_lookup
78*40962ec9SBram Moolenaarsyn keyword cmodStatement	f_sprintf push_text string_has_null
79*40962ec9SBram Moolenaarsyn keyword cmodStatement	end_and_resize_shared_string
80*40962ec9SBram Moolenaar
81*40962ec9SBram Moolenaarsyn keyword cmodStatement	args sp
82*40962ec9SBram Moolenaar
83*40962ec9SBram Moolenaarsyn keyword cmodStatement	free
84*40962ec9SBram Moolenaar
85*40962ec9SBram Moolenaarsyn keyword cmodConstant	ID_PROTECTED ID_FINAL PIKE_DEBUG
86*40962ec9SBram Moolenaarsyn keyword cmodConstant	NUMBER_NUMBER
87*40962ec9SBram Moolenaarsyn keyword cmodConstant	PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY
88*40962ec9SBram Moolenaarsyn keyword cmodConstant	PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING
89*40962ec9SBram Moolenaarsyn keyword cmodConstant	NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION
90*40962ec9SBram Moolenaarsyn keyword cmodConstant	T_OBJECT T_STRING T_ARRAY T_MAPPING
91*40962ec9SBram Moolenaar
92*40962ec9SBram Moolenaarsyn keyword cmodException	SET_ONERROR UNSET_ONERROR ONERROR
93*40962ec9SBram Moolenaarsyn keyword cmodException	CALL_AND_UNSET_ONERROR
94*40962ec9SBram Moolenaar
95*40962ec9SBram Moolenaarsyn keyword cmodDebug		Pike_fatal Pike_error check_stack
96*40962ec9SBram Moolenaar
97*40962ec9SBram Moolenaarsyn keyword cmodAccess		public protected private INHERIT
98*40962ec9SBram Moolenaarsyn keyword cmodAccess		CTYPE CVAR PIKEVAR PIKEFUN
99*40962ec9SBram Moolenaar
100*40962ec9SBram Moolenaarsyn keyword cmodModifier	efun export flags optflags optfunc
101*40962ec9SBram Moolenaarsyn keyword cmodModifier	type rawtype errname name c_name prototype
102*40962ec9SBram Moolenaarsyn keyword cmodModifier	program_flags gc_trivial PMOD_EXPORT
103*40962ec9SBram Moolenaarsyn keyword cmodModifier	ATTRIBUTE noclone noinline
104*40962ec9SBram Moolenaarsyn keyword cmodModifier	tOr tFuncV tInt tMix tVoid tStr tMap tPrg
105*40962ec9SBram Moolenaarsyn keyword cmodModifier	tSetvar tArr tMult tMultiset
106*40962ec9SBram Moolenaarsyn keyword cmodModifier	tArray tMapping tString tSetvar tVar
107*40962ec9SBram Moolenaar
108*40962ec9SBram Moolenaarsyn keyword cmodType		bool mapping string multiset array mixed
109*40962ec9SBram Moolenaarsyn keyword cmodType		object function program auto svalue
110*40962ec9SBram Moolenaarsyn keyword cmodType		bignum longest zero pike_string
111*40962ec9SBram Moolenaarsyn keyword cmodType		this this_program THIS INT_TYPE INT64 INT32
112*40962ec9SBram Moolenaarsyn keyword cmodType		p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT
113*40962ec9SBram Moolenaar
114*40962ec9SBram Moolenaarsyn keyword cmodOperator	_destruct create __hash _sizeof _indices _values
115*40962ec9SBram Moolenaarsyn keyword cmodOperator	_is_type _sprintf _equal _m_delete _get_iterator
116*40962ec9SBram Moolenaarsyn keyword cmodOperator	_search _types _serialize _deserialize
117*40962ec9SBram Moolenaarsyn keyword cmodOperator	_size_object _random _sqrt TYPEOF SUBTYPEOF
118*40962ec9SBram Moolenaarsyn keyword cmodOperator	LIKELY UNLIKELY
119*40962ec9SBram Moolenaar
120*40962ec9SBram Moolenaarsyn keyword cmodStructure	DECLARATIONS PIKECLASS DECLARE_STORAGE
121*40962ec9SBram Moolenaar
122*40962ec9SBram Moolenaarif !exists("c_autodoc")
123*40962ec9SBram Moolenaar  syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL
124*40962ec9SBram Moolenaar  syn cluster cCommentGroup add=cmodAutodocReal
125*40962ec9SBram Moolenaar  syn cluster cPreProcGroup add=cmodAutodocReal
126*40962ec9SBram Moolenaarendif
127*40962ec9SBram Moolenaar
128*40962ec9SBram Moolenaar" Default highlighting
129*40962ec9SBram Moolenaarhi def link cmodAccess		Statement
130*40962ec9SBram Moolenaarhi def link cmodOperator	Operator
131*40962ec9SBram Moolenaarhi def link cmodStatement	Statement
132*40962ec9SBram Moolenaarhi def link cmodConstant	Constant
133*40962ec9SBram Moolenaarhi def link cmodModifier	Type
134*40962ec9SBram Moolenaarhi def link cmodType		Type
135*40962ec9SBram Moolenaarhi def link cmodStorageClass	StorageClass
136*40962ec9SBram Moolenaarhi def link cmodStructure	Structure
137*40962ec9SBram Moolenaarhi def link cmodException	Exception
138*40962ec9SBram Moolenaarhi def link cmodDebug		Debug
139*40962ec9SBram Moolenaar
140*40962ec9SBram Moolenaarlet b:current_syntax = "cmod"
141*40962ec9SBram Moolenaar
142*40962ec9SBram Moolenaarlet &cpo = s:cpo_save
143*40962ec9SBram Moolenaarunlet s:cpo_save
144*40962ec9SBram Moolenaar" vim: ts=8
145