forked from aniani/vim
		
	
		
			
	
	
		
			145 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			145 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:		Cmod | ||
|  | " Current Maintainer:	Stephen R. van den Berg <srb@cuci.nl> | ||
|  | " Last Change:		2018 Jan 23 | ||
|  | " Version:      	2.9 | ||
|  | " Remark: Is used to edit Cmod files for Pike development. | ||
|  | " Remark: Includes a highlighter for any embedded Autodoc format. | ||
|  | 
 | ||
|  | " quit when a syntax file was already loaded | ||
|  | if exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | let s:cpo_save = &cpo | ||
|  | set cpo&vim | ||
|  | 
 | ||
|  | " Read the C syntax to start with | ||
|  | runtime! syntax/c.vim | ||
|  | unlet b:current_syntax | ||
|  | 
 | ||
|  | if !exists("c_autodoc") | ||
|  |   " For embedded Autodoc documentation | ||
|  |   syn include @cmodAutodoc <sfile>:p:h/autodoc.vim | ||
|  |   unlet b:current_syntax | ||
|  | endif | ||
|  | 
 | ||
|  | " Supports rotating amongst several same-level preprocessor conditionals | ||
|  | packadd! matchit | ||
|  | let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>" | ||
|  | 
 | ||
|  | " Cmod extensions | ||
|  | syn keyword cmodStatement	__INIT INIT EXIT GC_RECURSE GC_CHECK | ||
|  | syn keyword cmodStatement	EXTRA OPTIMIZE RETURN | ||
|  | syn keyword cmodStatement	ADD_EFUN ADD_EFUN2 ADD_FUNCTION | ||
|  | syn keyword cmodStatement	MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN | ||
|  | 
 | ||
|  | syn keyword cmodStatement	SET_SVAL pop_n_elems pop_stack | ||
|  | syn keyword cmodStatement	SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP | ||
|  | syn keyword cmodStatement	SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP | ||
|  | syn keyword cmodStatement	PTR_FROM_INT INHERIT_FROM_PTR | ||
|  | syn keyword cmodStatement	DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC | ||
|  | syn keyword cmodStatement	UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO | ||
|  | syn keyword cmodStatement	MKPCHARP_STR APPLY_MASTER current_storage | ||
|  | syn keyword cmodStatement	PIKE_MAP_VARIABLE size_shift | ||
|  | syn keyword cmodStatement	THREADS_ALLOW THREADS_DISALLOW | ||
|  | 
 | ||
|  | syn keyword cmodStatement	add_integer_constant ref_push_object | ||
|  | syn keyword cmodStatement	push_string apply_svalue free_svalue | ||
|  | syn keyword cmodStatement	get_inherit_storage get_storage | ||
|  | syn keyword cmodStatement	make_shared_binary_string push_int64 | ||
|  | syn keyword cmodStatement	begin_shared_string end_shared_string | ||
|  | syn keyword cmodStatement	add_ref fast_clone_object clone_object | ||
|  | syn keyword cmodStatement	push_undefined push_int ref_push_string | ||
|  | syn keyword cmodStatement	free_string push_ulongest free_object | ||
|  | syn keyword cmodStatement	convert_stack_top_to_bignum push_array | ||
|  | syn keyword cmodStatement	push_object reduce_stack_top_bignum | ||
|  | syn keyword cmodStatement	push_static_text apply_current | ||
|  | syn keyword cmodStatement	assign_svalue free_program destruct_object | ||
|  | syn keyword cmodStatement	start_new_program low_inherit stack_swap | ||
|  | syn keyword cmodStatement	generic_error_program end_program | ||
|  | syn keyword cmodStatement	free_array apply_external copy_mapping | ||
|  | syn keyword cmodStatement	push_constant_text ref_push_mapping | ||
|  | syn keyword cmodStatement	mapping_insert mapping_string_insert_string | ||
|  | syn keyword cmodStatement	f_aggregate_mapping f_aggregate apply | ||
|  | syn keyword cmodStatement	push_mapping push_svalue low_mapping_lookup | ||
|  | syn keyword cmodStatement	assign_svalues_no_free f_add | ||
|  | syn keyword cmodStatement	push_empty_string stack_dup assign_lvalue | ||
|  | syn keyword cmodStatement	low_mapping_string_lookup allocate_mapping | ||
|  | syn keyword cmodStatement	copy_shared_string make_shared_binary_string0 | ||
|  | syn keyword cmodStatement	f_call_function f_index f_utf8_to_string | ||
|  | syn keyword cmodStatement	finish_string_builder init_string_builder | ||
|  | syn keyword cmodStatement	reset_string_builder free_string_builder | ||
|  | syn keyword cmodStatement	string_builder_putchar get_all_args | ||
|  | syn keyword cmodStatement	add_shared_strings check_all_args | ||
|  | syn keyword cmodStatement	do_inherit add_string_constant | ||
|  | syn keyword cmodStatement	add_program_constant set_init_callback | ||
|  | syn keyword cmodStatement	simple_mapping_string_lookup | ||
|  | syn keyword cmodStatement	f_sprintf push_text string_has_null | ||
|  | syn keyword cmodStatement	end_and_resize_shared_string | ||
|  | 
 | ||
|  | syn keyword cmodStatement	args sp | ||
|  | 
 | ||
|  | syn keyword cmodStatement	free | ||
|  | 
 | ||
|  | syn keyword cmodConstant	ID_PROTECTED ID_FINAL PIKE_DEBUG | ||
|  | syn keyword cmodConstant	NUMBER_NUMBER | ||
|  | syn keyword cmodConstant	PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY | ||
|  | syn keyword cmodConstant	PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING | ||
|  | syn keyword cmodConstant	NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION | ||
|  | syn keyword cmodConstant	T_OBJECT T_STRING T_ARRAY T_MAPPING | ||
|  | 
 | ||
|  | syn keyword cmodException	SET_ONERROR UNSET_ONERROR ONERROR | ||
|  | syn keyword cmodException	CALL_AND_UNSET_ONERROR | ||
|  | 
 | ||
|  | syn keyword cmodDebug		Pike_fatal Pike_error check_stack | ||
|  | 
 | ||
|  | syn keyword cmodAccess		public protected private INHERIT | ||
|  | syn keyword cmodAccess		CTYPE CVAR PIKEVAR PIKEFUN | ||
|  | 
 | ||
|  | syn keyword cmodModifier	efun export flags optflags optfunc | ||
|  | syn keyword cmodModifier	type rawtype errname name c_name prototype | ||
|  | syn keyword cmodModifier	program_flags gc_trivial PMOD_EXPORT | ||
|  | syn keyword cmodModifier	ATTRIBUTE noclone noinline | ||
|  | syn keyword cmodModifier	tOr tFuncV tInt tMix tVoid tStr tMap tPrg | ||
|  | syn keyword cmodModifier	tSetvar tArr tMult tMultiset | ||
|  | syn keyword cmodModifier	tArray tMapping tString tSetvar tVar | ||
|  | 
 | ||
|  | syn keyword cmodType		bool mapping string multiset array mixed | ||
|  | syn keyword cmodType		object function program auto svalue | ||
|  | syn keyword cmodType		bignum longest zero pike_string | ||
|  | syn keyword cmodType		this this_program THIS INT_TYPE INT64 INT32 | ||
|  | syn keyword cmodType		p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT | ||
|  | 
 | ||
|  | syn keyword cmodOperator	_destruct create __hash _sizeof _indices _values | ||
|  | syn keyword cmodOperator	_is_type _sprintf _equal _m_delete _get_iterator | ||
|  | syn keyword cmodOperator	_search _types _serialize _deserialize | ||
|  | syn keyword cmodOperator	_size_object _random _sqrt TYPEOF SUBTYPEOF | ||
|  | syn keyword cmodOperator	LIKELY UNLIKELY | ||
|  | 
 | ||
|  | syn keyword cmodStructure	DECLARATIONS PIKECLASS DECLARE_STORAGE | ||
|  | 
 | ||
|  | if !exists("c_autodoc") | ||
|  |   syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL | ||
|  |   syn cluster cCommentGroup add=cmodAutodocReal | ||
|  |   syn cluster cPreProcGroup add=cmodAutodocReal | ||
|  | endif | ||
|  | 
 | ||
|  | " Default highlighting | ||
|  | hi def link cmodAccess		Statement | ||
|  | hi def link cmodOperator	Operator | ||
|  | hi def link cmodStatement	Statement | ||
|  | hi def link cmodConstant	Constant | ||
|  | hi def link cmodModifier	Type | ||
|  | hi def link cmodType		Type | ||
|  | hi def link cmodStorageClass	StorageClass | ||
|  | hi def link cmodStructure	Structure | ||
|  | hi def link cmodException	Exception | ||
|  | hi def link cmodDebug		Debug | ||
|  | 
 | ||
|  | let b:current_syntax = "cmod" | ||
|  | 
 | ||
|  | let &cpo = s:cpo_save | ||
|  | unlet s:cpo_save | ||
|  | " vim: ts=8 |