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