blob: 0971fe96bf99bf529a995f83a32cb585504c0e65 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Software Distributor product specification file
3" (POSIX 1387.2-1995).
4" Maintainer: Rex Barzee <rex_barzee@hp.com>
5" Last change: 25 Apr 2001
6
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02007" quit when a syntax file was already loaded
8if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 finish
10endif
11
12" Product specification files are case sensitive
13syn case match
14
15syn keyword psfObject bundle category control_file depot distribution
16syn keyword psfObject end file fileset host installed_software media
17syn keyword psfObject product root subproduct vendor
18
19syn match psfUnquotString +[^"# ][^#]*+ contained
20syn region psfQuotString start=+"+ skip=+\\"+ end=+"+ contained
21
22syn match psfObjTag "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*" contained
23syn match psfAttAbbrev ",\<\(fa\|fr\|[aclqrv]\)\(<\|>\|<=\|>=\|=\|==\)[^,]\+" contained
24syn match psfObjTags "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\(\s\+\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\)*" contained
25
26syn match psfNumber "\<\d\+\>" contained
27syn match psfFloat "\<\d\+\>\(\.\<\d\+\>\)*" contained
28
29syn match psfLongDate "\<\d\d\d\d\d\d\d\d\d\d\d\d\.\d\d\>" contained
30
31syn keyword psfState available configured corrupt installed transient contained
32syn keyword psfPState applied committed superseded contained
33
34syn keyword psfBoolean false true contained
35
36
37"Some of the attributes covered by attUnquotString and attQuotString:
38" architecture category_tag control_directory copyright
39" create_date description directory file_permissions install_source
40" install_type location machine_type mod_date number os_name os_release
41" os_version pose_as_os_name pose_as_os_release readme revision
42" share_link title vendor_tag
43syn region psfAttUnquotString matchgroup=psfAttrib start=~^\s*[^# ]\+\s\+[^#" ]~rs=e-1 contains=psfUnquotString,psfComment end=~$~ keepend oneline
44
45syn region psfAttQuotString matchgroup=psfAttrib start=~^\s*[^# ]\+\s\+"~rs=e-1 contains=psfQuotString,psfComment skip=~\\"~ matchgroup=psfQuotString end=~"~ keepend
46
47
48" These regions are defined in attempt to do syntax checking for some
49" of the attributes.
50syn region psfAttTag matchgroup=psfAttrib start="^\s*tag\s\+" contains=psfObjTag,psfComment end="$" keepend oneline
51
52syn region psfAttSpec matchgroup=psfAttrib start="^\s*\(ancestor\|applied_patches\|applied_to\|contents\|corequisites\|exrequisites\|prerequisites\|software_spec\|supersedes\|superseded_by\)\s\+" contains=psfObjTag,psfAttAbbrev,psfComment end="$" keepend
53
54syn region psfAttTags matchgroup=psfAttrib start="^\s*all_filesets\s\+" contains=psfObjTags,psfComment end="$" keepend
55
56syn region psfAttNumber matchgroup=psfAttrib start="^\s*\(compressed_size\|instance_id\|media_sequence_number\|sequence_number\|size\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline
57
58syn region psfAttTime matchgroup=psfAttrib start="^\s*\(create_time\|ctime\|mod_time\|mtime\|timestamp\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline
59
60syn region psfAttFloat matchgroup=psfAttrib start="^\s*\(data_model_revision\|layout_version\)\s\+" contains=psfFloat,psfComment end="$" keepend oneline
61
62syn region psfAttLongDate matchgroup=psfAttrib start="^\s*install_date\s\+" contains=psfLongDate,psfComment end="$" keepend oneline
63
64syn region psfAttState matchgroup=psfAttrib start="^\s*\(state\)\s\+" contains=psfState,psfComment end="$" keepend oneline
65
66syn region psfAttPState matchgroup=psfAttrib start="^\s*\(patch_state\)\s\+" contains=psfPState,psfComment end="$" keepend oneline
67
68syn region psfAttBoolean matchgroup=psfAttrib start="^\s*\(is_kernel\|is_locatable\|is_patch\|is_protected\|is_reboot\|is_reference\|is_secure\|is_sparse\)\s\+" contains=psfBoolean,psfComment end="$" keepend oneline
69
70syn match psfComment "#.*$"
71
72
73" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020074" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000075
Bram Moolenaarf37506f2016-08-31 22:22:10 +020076hi def link psfObject Statement
77hi def link psfAttrib Type
78hi def link psfQuotString String
79hi def link psfObjTag Identifier
80hi def link psfAttAbbrev PreProc
81hi def link psfObjTags Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +000082
Bram Moolenaarf37506f2016-08-31 22:22:10 +020083hi def link psfComment Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +000084
Bram Moolenaar071d4272004-06-13 20:20:40 +000085
86" Long descriptions and copyrights confuse the syntax highlighting, so
87" force vim to backup at least 100 lines before the top visible line
88" looking for a sync location.
89syn sync lines=100
90
91let b:current_syntax = "psf"