| 
									
										
										
										
											2025-03-26 19:52:50 +01:00
										 |  |  | vim9script | 
					
						
							|  |  |  | # Vim syntax file | 
					
						
							|  |  |  | # Language:    OmniMark | 
					
						
							|  |  |  | # Maintainer:  Peter Kenny <kennypete.t2o3y@aleeas.com> | 
					
						
							|  |  |  | # Previous Maintainer: Paul Terray <mailto:terray@4dconcept.fr> | 
					
						
							|  |  |  | # Last Change: 2025-03-23 | 
					
						
							|  |  |  | # License:     Vim (see :help license) | 
					
						
							|  |  |  | # History:     2000-10-11 Vintage minimal syntax file (Paul Terray) | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # - Syntax is grouped, generally, by type (action to rule), using the | 
					
						
							|  |  |  | #   version 12 headings.  Refer: | 
					
						
							|  |  |  | #   https://developers.stilo.com/docs/html/keyword/type.html | 
					
						
							|  |  |  | # - Deprecated/legacy syntax back to version 4 is included. | 
					
						
							|  |  |  | # - OmniMark is largely case insensitive, with handled exceptions (e.g., %g) | 
					
						
							|  |  |  | # ---------------------------------------------------------------------------- | 
					
						
							|  |  |  | syntax case ignore | 
					
						
							|  |  |  | # Current syntax exists: finish {{{ | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2025-03-26 19:52:50 +01:00
										 |  |  | # }}} | 
					
						
							|  |  |  | # Keyword characters {{{ | 
					
						
							|  |  |  | # 	!#%&*+-/0123456789<=>@ | 
					
						
							|  |  |  | # 	ABCDEFGHIJKLMNOPQRSTUVWXYZ | 
					
						
							|  |  |  | # 	\_abcdefghijklmnopqrstuvwxyz|~ | 
					
						
							|  |  |  | setlocal iskeyword=33,35,37-38,42-43,45,47-57,60-62,64-90,92,95,97-122,124,126 | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ action {{{ | 
					
						
							|  |  |  | syntax keyword omnimarkAction activate | 
					
						
							|  |  |  | syntax keyword omnimarkAction assert | 
					
						
							|  |  |  | syntax keyword omnimarkAction clear | 
					
						
							|  |  |  | syntax keyword omnimarkAction close | 
					
						
							|  |  |  | syntax keyword omnimarkAction collect-garbage | 
					
						
							|  |  |  | syntax match omnimarkAction "\v\c<%(copy)%(-clear)?" | 
					
						
							|  |  |  | syntax keyword omnimarkAction deactivate | 
					
						
							|  |  |  | syntax keyword omnimarkAction decrement | 
					
						
							|  |  |  | syntax keyword omnimarkAction discard | 
					
						
							|  |  |  | syntax keyword omnimarkAction flush | 
					
						
							|  |  |  | syntax match omnimarkAction "\v\c<%(halt)%(-everything)?" | 
					
						
							|  |  |  | syntax keyword omnimarkAction increment | 
					
						
							|  |  |  | syntax keyword omnimarkAction log | 
					
						
							|  |  |  | syntax keyword omnimarkAction log-message | 
					
						
							|  |  |  | syntax keyword omnimarkAction match | 
					
						
							|  |  |  | syntax keyword omnimarkAction new | 
					
						
							|  |  |  |   # new takes before and after (as in new x{"wilma"} after [2]) | 
					
						
							|  |  |  |   syntax keyword omnimarkAction after | 
					
						
							|  |  |  |   syntax keyword omnimarkAction before | 
					
						
							|  |  |  | # This is the only way 'next' is used (and it cannot be 'isnt'): | 
					
						
							|  |  |  | syntax match omnimarkAction "\v\c<%(next\s+group\s+is)" | 
					
						
							|  |  |  | syntax keyword omnimarkAction not-reached | 
					
						
							|  |  |  | syntax keyword omnimarkAction open | 
					
						
							|  |  |  | syntax match omnimarkAction "\v\c<%(output)%(-to)?" | 
					
						
							|  |  |  | syntax keyword omnimarkAction put | 
					
						
							|  |  |  | # When alone, 'referent' is nearly always 'put...referent,' which is an action | 
					
						
							|  |  |  | syntax keyword omnimarkAction referent | 
					
						
							|  |  |  | syntax match omnimarkAction "\v\c<%(remove)%(\s+key\s+of)?" | 
					
						
							|  |  |  | syntax keyword omnimarkAction reopen | 
					
						
							|  |  |  | syntax keyword omnimarkAction reset | 
					
						
							|  |  |  | syntax keyword omnimarkAction return | 
					
						
							|  |  |  | # 'scan' because it can start a line in a block of 'do *-parse ... done' | 
					
						
							|  |  |  | syntax keyword omnimarkAction scan | 
					
						
							|  |  |  | syntax match omnimarkAction "\v\c<%(set)%(\s+%(buffer|creator\s+of|external-function|file|function-library|key\s+of|new|referent|stream))?" | 
					
						
							|  |  |  | syntax keyword omnimarkAction sgml-in | 
					
						
							|  |  |  | syntax keyword omnimarkAction sgml-out | 
					
						
							|  |  |  | syntax keyword omnimarkAction signal | 
					
						
							|  |  |  | syntax keyword omnimarkAction submit | 
					
						
							|  |  |  | syntax keyword omnimarkAction suppress | 
					
						
							|  |  |  | syntax keyword omnimarkAction throw | 
					
						
							|  |  |  | syntax keyword omnimarkAction void | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ built-in data type {{{ | 
					
						
							|  |  |  | # attribute-declaration: Every attribute-declaration instance has two | 
					
						
							|  |  |  | #                        properties: attribute-default-declaration and | 
					
						
							|  |  |  | #                                    attribute-value-declaration | 
					
						
							|  |  |  | # attribute-default-declaration: is the abstract type of declared defaults for | 
					
						
							|  |  |  | #                                unspecified attribute values. Its concrete | 
					
						
							|  |  |  | #                                instances can be obtained with the following | 
					
						
							|  |  |  | #                                four constants: | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-conref | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-current | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-implied | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-required | 
					
						
							|  |  |  | #                                and with two operators which take a string | 
					
						
							|  |  |  | #                                default value argument: | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(attribute-declared-defaulted\s+to)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(attribute-declared-fixed to)" | 
					
						
							|  |  |  | # attribute-value-declaration: is the abstract type of values that an | 
					
						
							|  |  |  | #                              attribute is declared to accept. Its concrete | 
					
						
							|  |  |  | #                              instances can be obtained with the following | 
					
						
							|  |  |  | #                              constants: | 
					
						
							|  |  |  | syntax match omnimarkConstant "\v\c<%(attribute-declared-fixed to)" | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-id | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-idref | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-idrefs | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-name | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-names | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-nmtoken | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-nmtokens | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-number | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-numbers | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-nutoken | 
					
						
							|  |  |  | syntax keyword omnimarkConstant attribute-declared-nutokens | 
					
						
							|  |  |  | #                              and with one operator that takes a string shelf | 
					
						
							|  |  |  | #                              argument listing all the values allowed for the | 
					
						
							|  |  |  | #                              attribute: | 
					
						
							|  |  |  | syntax keyword omnimarkOperator attribute-declared-group | 
					
						
							|  |  |  | # content-model - the following six constants are the only possible values: | 
					
						
							|  |  |  | syntax keyword omnimarkConstant any-content-model | 
					
						
							|  |  |  | syntax keyword omnimarkConstant cdata-content-model | 
					
						
							|  |  |  | syntax keyword omnimarkConstant element-content-model | 
					
						
							|  |  |  | syntax keyword omnimarkConstant empty-content-model | 
					
						
							|  |  |  | syntax keyword omnimarkConstant mixed-content-model | 
					
						
							|  |  |  | syntax keyword omnimarkConstant rcdata-content-model | 
					
						
							|  |  |  | # refer also: | 
					
						
							|  |  |  | # developers.stilo.com/docs/html/keyword/create-element-declaration.html | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # declared-attribute is and abstract type with subtypes: | 
					
						
							|  |  |  | #                             implied-attribute | 
					
						
							|  |  |  | #                             specified-attribute | 
					
						
							|  |  |  | # dtd abstract data type has subtypes: | 
					
						
							|  |  |  | #                             sgml-dtd | 
					
						
							|  |  |  | #                             xml-dtd | 
					
						
							|  |  |  | # element-declaration | 
					
						
							|  |  |  | # entity-declaration | 
					
						
							|  |  |  | # markup-element-event | 
					
						
							|  |  |  | # markup-event has subtypes: | 
					
						
							|  |  |  | #                             markup-point-event | 
					
						
							|  |  |  | #                             markup-region-event | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ built-in entity {{{ | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#capacity)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#charset)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#document)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#dtd)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#implied)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#schema)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinEntity "\v\c<%(#syntax)" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ built-in shelf {{{ | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#additional-info)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#appinfo)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#args)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#class)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#command-line-names)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#console)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#content)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#current-dtd)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#current-input)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#current-markup-event)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#current-output)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#doctype)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#error)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#error-code)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#file-name)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#language-version)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#libpath)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#library)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#libvalue)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#line-number)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#log)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#main-input)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#main-output)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-error-count)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-error-total)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-parser)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-warning-count)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-warning-total)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#message)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#output)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#platform-info)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#process-input)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#process-output)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#recovery-info)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-error-count)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-error-total)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-warning-count)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-warning-total)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#suppress)" | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(#xmlns-names)" | 
					
						
							|  |  |  | syntax keyword omnimarkBuiltinShelf attributes | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(current)%(\s+%(element%(s)?|dtd|sgml-dtd))" | 
					
						
							|  |  |  | syntax keyword omnimarkBuiltinShelf data-attributes | 
					
						
							|  |  |  | syntax keyword omnimarkBuiltinShelf referents | 
					
						
							|  |  |  | syntax keyword omnimarkBuiltinShelf sgml-dtds | 
					
						
							|  |  |  |   # deprecated synonym for sgml-dtds: | 
					
						
							|  |  |  |   syntax keyword omnimarkBuiltinShelf dtds | 
					
						
							|  |  |  | syntax keyword omnimarkBuiltinShelf xml-dtds | 
					
						
							|  |  |  | syntax match omnimarkBuiltinShelf "\v\c<%(specified\s+attributes)" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ catch name {{{ | 
					
						
							|  |  |  | syntax match omnimarkCatchName "\v\c<%(#external-exception)" | 
					
						
							|  |  |  |   # external exception parameters | 
					
						
							|  |  |  |   syntax keyword omnimarkCatchName identity | 
					
						
							|  |  |  |   syntax keyword omnimarkCatchName message | 
					
						
							|  |  |  | syntax keyword omnimarkCatchName location | 
					
						
							|  |  |  | syntax match omnimarkCatchName "\v\c<%(#markup-end)" | 
					
						
							|  |  |  | syntax match omnimarkCatchName "\v\c<%(#markup-point)" | 
					
						
							|  |  |  | syntax match omnimarkCatchName "\v\c<%(#markup-start)" | 
					
						
							|  |  |  | syntax match omnimarkCatchName "\v\c<%(#program-error)" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ constant {{{ | 
					
						
							|  |  |  | syntax keyword omnimarkConstant false | 
					
						
							|  |  |  | syntax keyword omnimarkConstant true | 
					
						
							|  |  |  | # Example: local stream u initial {unattached} | 
					
						
							|  |  |  | syntax keyword omnimarkConstant unattached | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ control structure {{{ | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(#first)" | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(#group)" | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(#item)" | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(#last)" | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v%(\s)?%(-\>)%(\s)?" | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure again | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure always | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure as | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure case | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure catch | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(do)>%(%(\s|\n)+%((markup|sgml|xml)-parse|scan|select|select-type|skip%(\s+over)?|unless|when))?" | 
					
						
							|  |  |  |   # with id-checking and with utf-8, example: | 
					
						
							|  |  |  |   # do sgml-parse document with id-checking false scan file "my.sgml" | 
					
						
							|  |  |  |   syntax keyword omnimarkControlStructure id-checking | 
					
						
							|  |  |  |   syntax keyword omnimarkControlStructure utf-8 | 
					
						
							|  |  |  |   syntax keyword omnimarkControlStructure with | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure done | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure else | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure exit | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(repeat)>%(\s+%(for|over%(\s+current elements)?|scan|to))?" | 
					
						
							|  |  |  |   # Example: repeat over reversed | 
					
						
							|  |  |  |   syntax keyword omnimarkControlStructure reversed | 
					
						
							|  |  |  | # Note: repeat over attribute(s) not needed - handled separately | 
					
						
							|  |  |  | # Note: repeat over data-attribute(s) not needed - handled separately | 
					
						
							|  |  |  | # Note: repeat over referents not needed - handled separately | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure rethrow | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure select | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure unless | 
					
						
							|  |  |  | syntax match omnimarkControlStructure "\v\c<%(using)%( %(%(data-)?attribute%(s)?|catch|group|input as|nested-referents|output\s+as|referents))?" | 
					
						
							|  |  |  | syntax keyword omnimarkControlStructure when | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ data type {{{ | 
					
						
							|  |  |  | # (not a v12 heading) | 
					
						
							|  |  |  | syntax keyword omnimarkDataType bcd | 
					
						
							|  |  |  | syntax keyword omnimarkDataType counter | 
					
						
							|  |  |  | # db.database data type - refer omdb, below, for library functions | 
					
						
							|  |  |  | syntax match omnimarkDataType "\v\c<%(db)%([.])?%(database)" | 
					
						
							|  |  |  | syntax keyword omnimarkDataType document | 
					
						
							|  |  |  | syntax keyword omnimarkDataType float | 
					
						
							|  |  |  | syntax keyword omnimarkDataType instance | 
					
						
							|  |  |  | syntax match omnimarkDataType "\v\c<%(int32)" | 
					
						
							|  |  |  | syntax keyword omnimarkDataType integer | 
					
						
							|  |  |  | syntax match omnimarkDataType "\v\c<%(markup\s+sink)" | 
					
						
							|  |  |  | syntax match omnimarkDataType "\v\c<%(markup\s+source)" | 
					
						
							|  |  |  | syntax keyword omnimarkDataType pattern | 
					
						
							|  |  |  | syntax keyword omnimarkDataType string | 
					
						
							|  |  |  | syntax match omnimarkDataType "\v\c<%(string\s+sink)" | 
					
						
							|  |  |  | syntax match omnimarkDataType "\v\c<%(string\s+source)" | 
					
						
							|  |  |  | syntax keyword omnimarkDataType stream | 
					
						
							|  |  |  | syntax keyword omnimarkDataType string | 
					
						
							|  |  |  | syntax keyword omnimarkDataType subdocument | 
					
						
							|  |  |  | syntax keyword omnimarkDataType switch | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ declaration/definition {{{ | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration constant | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration context-translate | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration created by | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration cross-translate | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration declare | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(declare)%(\s+%(data-letters|function-library|heralded-names|markup-identification))?" | 
					
						
							|  |  |  | # Note: declare #error, #main-input, #main-output, #process-input, | 
					
						
							|  |  |  | #         #process-output, catch, data-letters, function-library, letters, | 
					
						
							|  |  |  | #         name-letters, no-default-io, opaque, record | 
					
						
							|  |  |  | #         - Those are all handed as separate keywords/matches | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+conversion-function)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+external)\s+%(source\s+)?%(function)" | 
					
						
							|  |  |  |   # in function-library is part of an external function | 
					
						
							|  |  |  |   syntax match omnimarkDeclaration "\v\c<%(in\s+function-library)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+external\s+output)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+function)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+\w+function)" | 
					
						
							|  |  |  |   # Example: define integer function add (value integer x, value ...) | 
					
						
							|  |  |  |   syntax keyword omnimarkDeclaration value | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+infix-function)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+overloaded\s+function)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+string\s+sink\s+function)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+string\s+source\s+function)" | 
					
						
							|  |  |  | # Some combinations are missed, so the general, 'define', is needed too: | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(define\s+)" | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration delimiter | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration domain-bound | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration down-translate | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration dynamic | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration elsewhere | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration escape | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(export\s+as\s+opaque)" | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration export | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration field | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration function | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration global | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(group)%(s)?" | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration import | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(include)%(-guard)?" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(initial)%(-size)?" | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration letters | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration library | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration local | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(macro)%(-end)?" | 
					
						
							|  |  |  |   # macros can take an arg and/or a token (or args or tokens) | 
					
						
							|  |  |  |   syntax keyword omnimarkDeclaration arg | 
					
						
							|  |  |  |   syntax keyword omnimarkDeclaration token | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration modifiable | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration module | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration name-letters | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(namecase\s+entity)" | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(namecase\s+general)" | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration newline | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration no-default-io | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration opaque | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration optional | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration overriding | 
					
						
							|  |  |  | syntax match omnimarkDeclaration "\v\c<%(prefixed\s+by)" | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration read-only | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration record | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration remainder | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration require | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration save | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration save-clear | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration silent-referent | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration size | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration supply | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration symbol | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration unprefixed | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration up-translate | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration use | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration variable | 
					
						
							|  |  |  | syntax keyword omnimarkDeclaration write-only | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ element qualifier {{{ | 
					
						
							|  |  |  | syntax keyword omnimarkElementQualifier ancestor | 
					
						
							|  |  |  | syntax keyword omnimarkElementQualifier doctype | 
					
						
							|  |  |  | syntax keyword omnimarkElementQualifier document-element | 
					
						
							|  |  |  | syntax match omnimarkElementQualifier "\v\c<%(open\s+element)" | 
					
						
							|  |  |  | syntax keyword omnimarkElementQualifier parent | 
					
						
							|  |  |  | syntax keyword omnimarkElementQualifier preparent | 
					
						
							|  |  |  | syntax keyword omnimarkElementQualifier previous | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ modifier {{{ | 
					
						
							|  |  |  | syntax match omnimarkModifier "\v\c<%(#base)" | 
					
						
							|  |  |  | syntax match omnimarkModifier "\v\c<%(#full)" | 
					
						
							|  |  |  | syntax match omnimarkModifier "\v\c<%(#xmlns)" | 
					
						
							|  |  |  | syntax keyword omnimarkModifier append | 
					
						
							|  |  |  | syntax keyword omnimarkModifier binary-input | 
					
						
							|  |  |  | syntax keyword omnimarkModifier binary-mode | 
					
						
							|  |  |  | syntax keyword omnimarkModifier binary-output | 
					
						
							|  |  |  | syntax keyword omnimarkModifier break-width | 
					
						
							|  |  |  | syntax keyword omnimarkModifier buffered | 
					
						
							|  |  |  | syntax match omnimarkModifier "\v\c<%(declare\s+#main-output\s+has\s+domain-free)" | 
					
						
							|  |  |  | syntax keyword omnimarkModifier defaulting | 
					
						
							|  |  |  | syntax keyword omnimarkModifier domain-free | 
					
						
							|  |  |  | syntax keyword omnimarkModifier notation | 
					
						
							|  |  |  | # of may be standalone, e.g., data-attribute colwidth of (attribute name) | 
					
						
							|  |  |  | syntax match omnimarkModifier "\v\c<%(of)%(\s%(ancestor|doctype|element|open element|%(pre)?parent))?" | 
					
						
							|  |  |  | syntax keyword omnimarkModifier referents-allowed | 
					
						
							|  |  |  | syntax keyword omnimarkModifier referents-displayed | 
					
						
							|  |  |  | syntax keyword omnimarkModifier referents-not-allowed | 
					
						
							|  |  |  | syntax keyword omnimarkModifier text-mode | 
					
						
							|  |  |  | syntax keyword omnimarkModifier unbuffered | 
					
						
							|  |  |  | # : (field selection operator) [not included] | 
					
						
							|  |  |  | # ` (keyword access character) [not included] | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ operator {{{ | 
					
						
							|  |  |  | syntax keyword omnimarkOperator ! | 
					
						
							|  |  |  | syntax keyword omnimarkOperator not | 
					
						
							|  |  |  | syntax keyword omnimarkOperator != | 
					
						
							|  |  |  | # 'isnt equal' is handled by separate keywords | 
					
						
							|  |  |  | syntax keyword omnimarkOperator !== | 
					
						
							|  |  |  | syntax match omnimarkOperator "\%(#!\)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(#empty)" | 
					
						
							|  |  |  | # Example: usemap is #none: | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(#none)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator % | 
					
						
							|  |  |  | syntax keyword omnimarkOperator format | 
					
						
							|  |  |  | syntax keyword omnimarkOperator & | 
					
						
							|  |  |  | syntax keyword omnimarkOperator and | 
					
						
							|  |  |  | syntax keyword omnimarkOperator * | 
					
						
							|  |  |  | syntax keyword omnimarkOperator times | 
					
						
							|  |  |  | syntax keyword omnimarkOperator ** | 
					
						
							|  |  |  | syntax keyword omnimarkOperator power | 
					
						
							|  |  |  | syntax keyword omnimarkOperator + | 
					
						
							|  |  |  | syntax keyword omnimarkOperator plus | 
					
						
							|  |  |  | syntax keyword omnimarkOperator - | 
					
						
							|  |  |  | syntax keyword omnimarkOperator minus | 
					
						
							|  |  |  | syntax keyword omnimarkOperator negate | 
					
						
							|  |  |  | syntax keyword omnimarkOperator / | 
					
						
							|  |  |  | syntax keyword omnimarkOperator divide | 
					
						
							|  |  |  | syntax keyword omnimarkOperator < | 
					
						
							|  |  |  | syntax keyword omnimarkOperator less-than | 
					
						
							|  |  |  | syntax keyword omnimarkOperator greater-equal | 
					
						
							|  |  |  | syntax keyword omnimarkOperator <= | 
					
						
							|  |  |  | syntax keyword omnimarkOperator less-equal | 
					
						
							|  |  |  | syntax keyword omnimarkOperator = | 
					
						
							|  |  |  | syntax keyword omnimarkOperator equal | 
					
						
							|  |  |  | # 'is equal' is handled by separate keywords | 
					
						
							|  |  |  | syntax keyword omnimarkOperator == | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v<[=][>]\s*" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator > | 
					
						
							|  |  |  | syntax keyword omnimarkOperator greater-than | 
					
						
							|  |  |  | syntax keyword omnimarkOperator >= | 
					
						
							|  |  |  | syntax keyword omnimarkOperator greater-equal | 
					
						
							|  |  |  | syntax keyword omnimarkOperator abs | 
					
						
							|  |  |  | syntax keyword omnimarkOperator active | 
					
						
							|  |  |  | syntax keyword omnimarkOperator attribute | 
					
						
							|  |  |  |   # attribute is defaulted, implied, specified: split to single keywords | 
					
						
							|  |  |  |   # because it can be isnt too.  Similarly for ancestor (is/isnt) | 
					
						
							|  |  |  |   # with ancestor being an element qualifier. | 
					
						
							|  |  |  |   # Tests for element attributes, e.g.: | 
					
						
							|  |  |  |   # do when attribute myid is (id | idref | idrefs) | 
					
						
							|  |  |  |   #                                    cdata (already omnimarkPattern) | 
					
						
							|  |  |  |   #                                    name (already omnimarkOperator) | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType names | 
					
						
							|  |  |  |   # number: match rather than keyword since "number of" is an operator | 
					
						
							|  |  |  |   syntax match omnimarkAttributeType "\v\c<%(number)" | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType numbers | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType nmtoken | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType nmtokens | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType nutoken | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType nutokens | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType id | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType idref | 
					
						
							|  |  |  |   syntax keyword omnimarkAttributeType idrefs | 
					
						
							|  |  |  |   #                                    notation (already omnimarkModifier) | 
					
						
							|  |  |  |   #                                    entity (already omnimarkOperator) | 
					
						
							|  |  |  |   #                                    entities (already omnimarkOperator) | 
					
						
							|  |  |  | syntax keyword omnimarkOperator base | 
					
						
							|  |  |  | syntax keyword omnimarkOperator binary | 
					
						
							|  |  |  | syntax keyword omnimarkOperator cast | 
					
						
							|  |  |  | syntax keyword omnimarkOperator ceiling | 
					
						
							|  |  |  | syntax keyword omnimarkOperator children | 
					
						
							|  |  |  | syntax keyword omnimarkOperator compiled-date | 
					
						
							|  |  |  | syntax keyword omnimarkOperator complement | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(content\s+of)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator create-attribute-declaration | 
					
						
							|  |  |  | syntax keyword omnimarkOperator create-element-declaration | 
					
						
							|  |  |  | syntax keyword omnimarkOperator create-element-event | 
					
						
							|  |  |  | syntax keyword omnimarkOperator create-processing-instruction-event | 
					
						
							|  |  |  | syntax keyword omnimarkOperator create-specified-attribute | 
					
						
							|  |  |  | syntax keyword omnimarkOperator create-unspecified-attribute | 
					
						
							|  |  |  | syntax keyword omnimarkOperator creating | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(creator\s+of)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator data-attribute | 
					
						
							|  |  |  | syntax keyword omnimarkOperator date | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(declaration\s+of)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator declared-elements | 
					
						
							|  |  |  | syntax keyword omnimarkOperator declared-general-entities | 
					
						
							|  |  |  | syntax keyword omnimarkOperator declared-parameter-entities | 
					
						
							|  |  |  | syntax keyword omnimarkOperator defaulted | 
					
						
							|  |  |  | syntax keyword omnimarkOperator difference | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(doctype\s+is)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator drop | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(element\s+is)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(elements\s+of)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(entity\s+is)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator except | 
					
						
							|  |  |  | syntax keyword omnimarkOperator exists | 
					
						
							|  |  |  | syntax keyword omnimarkOperator exp | 
					
						
							|  |  |  | syntax keyword omnimarkOperator external-function | 
					
						
							|  |  |  | syntax keyword omnimarkOperator file | 
					
						
							|  |  |  | syntax keyword omnimarkOperator floor | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(function-library\s+of)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator has | 
					
						
							|  |  |  | syntax keyword omnimarkOperator hasnt | 
					
						
							|  |  |  |   # 'has'/'hasnt' (before 'key'/'^' or 'item'/'@' (other obscure things too?): | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator key | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v[\^]" | 
					
						
							|  |  |  |   # 'item' is addressed elsewhere - @ needs to be a match, not keyword | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v<[@]" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator implied | 
					
						
							|  |  |  | syntax keyword omnimarkOperator in-codes | 
					
						
							|  |  |  | syntax keyword omnimarkOperator is | 
					
						
							|  |  |  | syntax keyword omnimarkOperator isnt | 
					
						
							|  |  |  |   # 'is'/'isnt' (usually before, or sometime after, e.g., 'content isnt'): | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator attached | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator buffer | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator catchable | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator cdata-entity | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator closed | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator conref | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator content | 
					
						
							|  |  |  |   # 'content is' ... empty, any, cdata, rcdata, mixed, conref | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator default-entity | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator directory | 
					
						
							|  |  |  |   # 'entity'/'entities', e.g., 'attribute x is (entity | entities)' | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(entit)%(y|ies)" | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator external | 
					
						
							|  |  |  |   # E.g., 'open s as external-output-function' (v. buffer, etc.) '-call'? | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(external-output-function)%(-call)?" | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator file | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator general | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator in-library | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator internal | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator keyed | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator markup-parser | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator ndata-entity | 
					
						
							|  |  |  |   # These are not to be confused with the omnimarkAction, 'open' | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(is\s+open)" | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(isnt\s+open)" | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator parameter | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator past | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator public | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator readable | 
					
						
							|  |  |  |   # These are not to be confused with the omnimarkAction, 'referent' | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(is\s+referent)" | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(isnt\s+referent)" | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator sdata-entity | 
					
						
							|  |  |  |   # Deprecated form - markup-parser is recommended | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator sgml-parser | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator subdoc-entity | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator system | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator thrown | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(item)%(\sof)?%(\s%(data-)?attributes)?" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(key\s+of)" | 
					
						
							|  |  |  | # 'key of attribute'/s not needed: 'key of' and 'attribute' are separate | 
					
						
							|  |  |  | # 'key of data-attribute'/s not needed: 'key of' &c. are separate | 
					
						
							|  |  |  | # 'key of referents' not needed: 'key of' and 'referents' are separate | 
					
						
							|  |  |  | syntax keyword omnimarkOperator last | 
					
						
							|  |  |  | syntax keyword omnimarkOperator lastmost | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(length\s*of)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator literal | 
					
						
							|  |  |  | syntax keyword omnimarkOperator ln | 
					
						
							|  |  |  | syntax keyword omnimarkOperator log10 | 
					
						
							|  |  |  | syntax keyword omnimarkOperator lookahead | 
					
						
							|  |  |  | # 'lookahead not' not needed: 'lookahead' and 'not' are separate | 
					
						
							|  |  |  | syntax keyword omnimarkOperator mask | 
					
						
							|  |  |  | syntax keyword omnimarkOperator matches | 
					
						
							|  |  |  | syntax keyword omnimarkOperator modulo | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(name)>%(\s+of)?%(\s+current)?%(\s+element)?" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator named | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(notation\s+equals)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(number\s+of)" | 
					
						
							|  |  |  | # 'number of attribute'/s not needed: 'number of' and 'attribute' are separate | 
					
						
							|  |  |  | # 'number of current elements' is not needed: 'number of' &c. are separate | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(number\s+of\s+current\s+subdocuments)" | 
					
						
							|  |  |  | # 'number of data-attribute'/s not needed: 'number of' &c. are separate | 
					
						
							|  |  |  | # 'number of referents' not needed: 'number of' and 'referents' are separate | 
					
						
							|  |  |  | syntax keyword omnimarkOperator occurrence | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(open\s+element\s+is)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(parent\s+is)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(preparent\s+is)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(previous\s+is)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(public-identifier\s+of)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(referents\s+has\s+key)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(referents\s+is\s+attached)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator round | 
					
						
							|  |  |  | syntax keyword omnimarkOperator shift | 
					
						
							|  |  |  | syntax keyword omnimarkOperator specified | 
					
						
							|  |  |  | syntax keyword omnimarkOperator sqrt | 
					
						
							|  |  |  | # E.g., last proper? subelement _element-qualifier_ is/isnt | 
					
						
							|  |  |  | syntax keyword omnimarkOperator subelement | 
					
						
							|  |  |  | syntax keyword omnimarkOperator system-call | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(system-identifier\s+of)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator status | 
					
						
							|  |  |  |   # E.g., 'status ... is (proper | inclusion)' | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator inclusion | 
					
						
							|  |  |  |   syntax keyword omnimarkOperator proper | 
					
						
							|  |  |  |   # E.g., 'last content {element-qualifier} is #DATA' | 
					
						
							|  |  |  |   syntax match omnimarkOperator "\v\c<%(#data)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator take | 
					
						
							|  |  |  | # 'this' only appears before 'referent', so requires no standalone 'this' | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v\c<%(this\s*referent)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator to | 
					
						
							|  |  |  | syntax keyword omnimarkOperator truncate | 
					
						
							|  |  |  | syntax keyword omnimarkOperator ul | 
					
						
							|  |  |  | syntax keyword omnimarkOperator union | 
					
						
							|  |  |  | syntax keyword omnimarkOperator usemap | 
					
						
							|  |  |  | syntax keyword omnimarkOperator valued | 
					
						
							|  |  |  | syntax keyword omnimarkOperator writable | 
					
						
							|  |  |  | syntax keyword omnimarkOperator xmlns-name | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v%(\s)%([\\])%(\s)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v%(\s)([_])%(\s)" | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v%(\s)([\|])%(\s)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator or | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v%(\s)([\|][\|])%(\s)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator join | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v%(\s)([\|][\|][\*])%(\s)" | 
					
						
							|  |  |  | syntax keyword omnimarkOperator repeated | 
					
						
							|  |  |  | syntax match omnimarkOperator "\v%(\s)([~])" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ pattern {{{ | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v%(\s)%(\=\|)" | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(any)%(\+%(\+)?|*%(*)?|\?)?" | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(any-text)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(blank)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax keyword omnimarkPattern cdata | 
					
						
							|  |  |  | syntax keyword omnimarkPattern content-end | 
					
						
							|  |  |  | syntax keyword omnimarkPattern content-start | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(digit)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax keyword omnimarkPattern empty | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(lc)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(letter)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax keyword omnimarkPattern line-end | 
					
						
							|  |  |  | syntax keyword omnimarkPattern line-start | 
					
						
							|  |  |  | syntax keyword omnimarkPattern mixed | 
					
						
							|  |  |  | syntax keyword omnimarkPattern non-cdata | 
					
						
							|  |  |  | syntax keyword omnimarkPattern non-sdata | 
					
						
							|  |  |  | syntax keyword omnimarkPattern null | 
					
						
							|  |  |  | syntax keyword omnimarkPattern pcdata | 
					
						
							|  |  |  | syntax keyword omnimarkPattern rcdata | 
					
						
							|  |  |  | syntax keyword omnimarkPattern sdata | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(space)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(text)%([[:space:]\n])" | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(uc)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax keyword omnimarkPattern unanchored | 
					
						
							|  |  |  | syntax keyword omnimarkPattern value-end | 
					
						
							|  |  |  | syntax keyword omnimarkPattern value-start | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v\c<%(white-space)%(\+|*|\?)?" | 
					
						
							|  |  |  | syntax keyword omnimarkPattern word-end | 
					
						
							|  |  |  | syntax keyword omnimarkPattern word-start | 
					
						
							|  |  |  | syntax match omnimarkPattern "\v%(\s)%(\|\=)" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # _ rule {{{ | 
					
						
							|  |  |  | syntax keyword omnimarkRule data-content | 
					
						
							|  |  |  | syntax keyword omnimarkRule document-end | 
					
						
							|  |  |  | syntax keyword omnimarkRule document-start | 
					
						
							|  |  |  | syntax keyword omnimarkRule document-type-declaration | 
					
						
							|  |  |  | syntax keyword omnimarkRule dtd-end | 
					
						
							|  |  |  | syntax keyword omnimarkRule dtd-start | 
					
						
							|  |  |  | syntax keyword omnimarkRule element | 
					
						
							|  |  |  | syntax keyword omnimarkRule epilog-start | 
					
						
							|  |  |  | syntax keyword omnimarkRule external-entity | 
					
						
							|  |  |  | syntax keyword omnimarkRule external-data-entity | 
					
						
							|  |  |  | syntax keyword omnimarkRule external-text-entity | 
					
						
							|  |  |  | syntax match omnimarkRule "\v\c<%(external-text-entity\s+#document)" | 
					
						
							|  |  |  | syntax keyword omnimarkRule find | 
					
						
							|  |  |  | syntax keyword omnimarkRule find-end | 
					
						
							|  |  |  | syntax keyword omnimarkRule find-start | 
					
						
							|  |  |  | syntax keyword omnimarkRule insertion-break | 
					
						
							|  |  |  | syntax keyword omnimarkRule invalid-data | 
					
						
							|  |  |  | syntax match omnimarkRule "\v\c<%(marked-section)%(\s+%(cdata|ignore|include-%(end|start)|rcdata))?" | 
					
						
							|  |  |  | syntax keyword omnimarkRule markup-comment | 
					
						
							|  |  |  | syntax keyword omnimarkRule markup-error | 
					
						
							|  |  |  | syntax keyword omnimarkRule process | 
					
						
							|  |  |  | syntax keyword omnimarkRule process-end | 
					
						
							|  |  |  | syntax keyword omnimarkRule processing-instruction | 
					
						
							|  |  |  | syntax keyword omnimarkRule process-start | 
					
						
							|  |  |  | syntax keyword omnimarkRule prolog-end | 
					
						
							|  |  |  | syntax keyword omnimarkRule prolog-in-error | 
					
						
							|  |  |  | syntax keyword omnimarkRule replacement-break | 
					
						
							|  |  |  | syntax keyword omnimarkRule sgml-comment | 
					
						
							|  |  |  | syntax keyword omnimarkRule sgml-declaration-end | 
					
						
							|  |  |  | syntax keyword omnimarkRule sgml-error | 
					
						
							|  |  |  | syntax keyword omnimarkRule translate | 
					
						
							|  |  |  | syntax keyword omnimarkRule xmlns-change | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # Libraries {{{ | 
					
						
							|  |  |  | # ombase64 | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(base64[.])%([orw])%([[:print:]])+" | 
					
						
							|  |  |  | # ombcd | 
					
						
							|  |  |  | # (NB: abs, ceiling, exp, floor, ln, log10, round, sqrt, and truncate | 
					
						
							|  |  |  | #  are all operators) | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(ombcd-version)" | 
					
						
							|  |  |  | # ombessel | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(j0|j1|jn|y0|y1|yn)" | 
					
						
							|  |  |  | # ombig5 | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(big5[.])%([orw])%([[:print:]])+" | 
					
						
							|  |  |  | # omblowfish and omffblowfish | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(blowfish[.])%([deorsw])%(\a|-)+" | 
					
						
							|  |  |  | # omcgi | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(cgiGet)%([EQ])\a+" | 
					
						
							|  |  |  | # omff8859 | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(iso8859[.])%([iorw])%([[:print:]])+" | 
					
						
							|  |  |  | # omfloat | 
					
						
							|  |  |  | # (NB: uses same operator names as ombcd except for the following) | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(is-nan)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(omfloat-version)" | 
					
						
							|  |  |  | # omdate | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(add-to-ymdhms)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(arpadate-to-ymdhms)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(format-ymdhms)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(now-as-ymdhms)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(round-down-ymdhms)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(round-up-ymdhms)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(ymdhms-)%([adjmst])%(\a|-)+" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(ymd-weekday)" | 
					
						
							|  |  |  | # omdb | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(db[.])%([acdefimopqrstuw])%(\a|-|1)+" | 
					
						
							|  |  |  | # omffeuc | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(euc[.])%([orw])%(\a|-)+" | 
					
						
							|  |  |  | # omffjis | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(jis[.])%([orw])%(\a|-)+" | 
					
						
							|  |  |  | # omffutf16 and omffutf32 | 
					
						
							|  |  |  | syntax match omnimarklibrary "\v\c<%(utf)%(16|32)%([.])%([orw])%(\a|-)+" | 
					
						
							|  |  |  | # omfloat | 
					
						
							|  |  |  | syntax match omnimarklibrary "\v\C<%(FP_)%([a-z])+\d?" | 
					
						
							|  |  |  | # omfsys | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\C<%(FS_)%([CDGLMR])\a+" | 
					
						
							|  |  |  | # omftp | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(FTP)%([CIL])\a+" | 
					
						
							|  |  |  | # omhttp | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(Http)%([CORS])\a+" | 
					
						
							|  |  |  | # omiobuf | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(iobuf[.])%([brw])\a+" | 
					
						
							|  |  |  | # omldap | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(ldap[.])%([acdemnors])%(\a|-)+" | 
					
						
							|  |  |  | # omprocess | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(command-line)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(executable-name)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(execute)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(glob)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(omprocess-version)" | 
					
						
							|  |  |  | # omrandom | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(random[.])%([eosu])%(\a|-)+" | 
					
						
							|  |  |  | # omunicode | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(unicode[.])%([bgo])%(\a|-)+" | 
					
						
							|  |  |  | # omutf8 | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(utf8[.])%([bceilmos])%(\a|8|-)+" | 
					
						
							|  |  |  | # omioe/omfio | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(get-exception-status)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(io-exception-text)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(new-io-exception)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(set-voluntary-end-exception)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(%(Big5|euc|jis|sjis|utf16)%(-))?%(%(in|out)put-file)" | 
					
						
							|  |  |  | # omioprotocol | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(IOProtocol)%([EILMS])\a+" | 
					
						
							|  |  |  | # ommail | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(Mail)%([ILO]\a+)" | 
					
						
							|  |  |  | # omtrig | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(a)?%(cos%(h)?|sin%(h)?|tan%(h|2)?|hypot)" | 
					
						
							|  |  |  | # omnetutl | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(from-net-long)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(net-long)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(NET)%([GIL]\a+)" | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(to-net-long)" | 
					
						
							|  |  |  | # omnetutil | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(netutil[.])%([fhnot]%(\a|3|2|-)+)" | 
					
						
							|  |  |  | # omoci | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(OCI_)%([GLoS]\a+)" | 
					
						
							|  |  |  | # omodbc | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(SQL)%([_])?%([ABCDEFGLMNPRST][[:alpha:]]+)" | 
					
						
							|  |  |  | # omsocat | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(socat-[clr-])%([[:alpha:]]+)" | 
					
						
							|  |  |  | # omsort | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(sort[.][os])%(\a|-)+" | 
					
						
							|  |  |  | # omutil | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(UTIL[_.][EGLmopRSU])%(\a|-)+" | 
					
						
							|  |  |  | # omvfs | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(vfs[.][cdflmorstuw])%(\a|-)+" | 
					
						
							|  |  |  | # tcp | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(TCP)%([.])?%([acdegilmoprstw][[:alpha:]-]+)" | 
					
						
							|  |  |  | # uri | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(uri[.])%([ceopr])%(\a|-)+" | 
					
						
							|  |  |  | # wsb | 
					
						
							|  |  |  | syntax match omnimarkLibrary "\v\c<%(wsb[.])%([acdfhrsw])%(\a|-)+" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # Comments {{{ | 
					
						
							|  |  |  | # ------- | 
					
						
							|  |  |  | syntax region omnimarkComment start=";" end="$" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # Strings and format-modifiers {{{ | 
					
						
							|  |  |  | syntax region omnimarkString matchgroup=Normal start=+'+  end=+'+ skip=+%'+ contains=omnimarkEscape | 
					
						
							|  |  |  | syntax region omnimarkString matchgroup=Normal start=+"+  end=+"+ skip=+%"+ contains=omnimarkEscape | 
					
						
							|  |  |  |   # This handles format items inside strings: | 
					
						
							|  |  |  |   # NB: escape _quoted-character_ allows a new character to be used to | 
					
						
							|  |  |  |   # indicate a special character or a format item, rather than the normal %. | 
					
						
							|  |  |  |   # The use of escape is deprecated in general, because it leads to | 
					
						
							|  |  |  |   # non-standard OmniMark code that can be difficult to understand. It has | 
					
						
							|  |  |  |   # not be handled here as it would be almost impossible to do so. | 
					
						
							|  |  |  |   # dynamic: %a %b %d %g %i %p %q %v %x %w %y | 
					
						
							|  |  |  |   #         a - integer data type formatting | 
					
						
							|  |  |  |   #         b - integer data type formatting | 
					
						
							|  |  |  |   #         c - parsed data formatting | 
					
						
							|  |  |  |   #         d - integer data type formatting, BCD data type formatting | 
					
						
							|  |  |  |   #         g - string data formatting | 
					
						
							|  |  |  |   #         i - integer data type formatting | 
					
						
							|  |  |  |   #         p - parsed data formatting | 
					
						
							|  |  |  |   #         q - parsed data formatting | 
					
						
							|  |  |  |   #         v - parsed data formatting | 
					
						
							|  |  |  |   #         x - deprecated format command used instead of g | 
					
						
							|  |  |  |   #         y - symbol declaration | 
					
						
							|  |  |  |   #         @ - macro arguments | 
					
						
							|  |  |  |   # static: %% %_ %n %t %# %) %" %' %/ %[ %] %@%% | 
					
						
							|  |  |  |   #         %% - insert an explicit percent sign | 
					
						
							|  |  |  |   #         %_ - insert an explicit space character | 
					
						
							|  |  |  |   #         %n - insert an explicit newline character | 
					
						
							|  |  |  |   #         %t - insert an explicit tab character | 
					
						
							|  |  |  |   #         %0# through to %255# - insert an explicit byte with given value | 
					
						
							|  |  |  |   #         %{...}—a sequence of characters, e.g., %16r{0d, 0a} | 
					
						
							|  |  |  |   #         %#—insert an explicit octothorpe character (#) | 
					
						
							|  |  |  |   #         %)—insert an explicit closing parenthesis | 
					
						
							|  |  |  |   #         %"—insert an explicit double quote character | 
					
						
							|  |  |  |   #         %'—insert an explicit single quote character | 
					
						
							|  |  |  |   #         %/—indicates a point where line breaking can occur | 
					
						
							|  |  |  |   #         %[ and %]—protect the delimited text from line breaking | 
					
						
							|  |  |  |   #         %@%—insert an explicit percent sign inside a macro expansion | 
					
						
							|  |  |  |   # % format-modifier a | 
					
						
							|  |  |  |   syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f))?%(j|k|l|u|w)*)?a)= | 
					
						
							|  |  |  |   # % format-modifier b | 
					
						
							|  |  |  |   syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f))?%(\d)?)?b)= | 
					
						
							|  |  |  |   # % format-modifier c | 
					
						
							|  |  |  |   syntax match omnimarkEscape contained =\v\C%(%(\%%(h|l|u|s|z)*c))= | 
					
						
							|  |  |  |   # % format-modifier d | 
					
						
							|  |  |  |   syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f|r|s)?)*%(j|k|l|u|z)*)?d)= | 
					
						
							|  |  |  |   # % format-modifier g | 
					
						
							|  |  |  |   syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f|r|s)?)*%(j|k|l|u|z)*)?g)= | 
					
						
							|  |  |  |   # % format-modifier | 
					
						
							|  |  |  |   syntax match omnimarkEscape contained =\v\C%(%(\%[abdgipqvxwy%_nt#)"'/\[\]])|%(\%\@\%)|%(\%\d+#)|\%%(\d+r[{]%([0-9A-z, ]+)}))+= | 
					
						
							|  |  |  |   # }}} | 
					
						
							|  |  |  | # Number {{{ | 
					
						
							|  |  |  | syntax match omnimarkNumber "\v([[:alpha:]]+)@<![-]?\d+([.]\d+)?" | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | # Define default highlighting {{{ | 
					
						
							|  |  |  | highlight default link omnimarkAction		Statement | 
					
						
							|  |  |  | highlight default link omnimarkAttributeType	Structure | 
					
						
							|  |  |  | highlight default link omnimarkDataType		Type | 
					
						
							|  |  |  | highlight default link omnimarkBuiltinEntity	Identifier | 
					
						
							|  |  |  | highlight default link omnimarkBuiltinShelf	Identifier | 
					
						
							|  |  |  | highlight default link omnimarkCatchName	Exception | 
					
						
							|  |  |  | highlight default link omnimarkConstant		Constant | 
					
						
							|  |  |  | highlight default link omnimarkControlStructure	Conditional | 
					
						
							|  |  |  | highlight default link omnimarkDeclaration	Keyword | 
					
						
							|  |  |  | highlight default link omnimarkElementQualifier	Type | 
					
						
							|  |  |  | highlight default link omnimarkLibrary		Function | 
					
						
							|  |  |  | highlight default link omnimarkModifier		Keyword | 
					
						
							|  |  |  | highlight default link omnimarkOperator		Operator | 
					
						
							|  |  |  | highlight default link omnimarkPattern		Label | 
					
						
							|  |  |  | highlight default link omnimarkRule		Keyword | 
					
						
							|  |  |  | highlight default link omnimarkString		String | 
					
						
							|  |  |  | highlight default link omnimarkNumber		Number | 
					
						
							|  |  |  | highlight default link omnimarkComment		Comment | 
					
						
							|  |  |  | highlight default link omnimarkEscape		Special | 
					
						
							|  |  |  | highlight default link omnimarkNormal		Statement | 
					
						
							|  |  |  | # }}} | 
					
						
							|  |  |  | syntax sync fromstart | 
					
						
							|  |  |  | b:current_syntax = "omnimark" | 
					
						
							|  |  |  | # vim: cc=+1 et fdm=marker ft=vim sta sw=2 ts=8 tw=79 |