2 " Language: Software Distributor product specification file
4 " Maintainer: Rex Barzee <rex_barzee@hp.com>
5 " Last change: 25 Apr 2001
8 " Remove any old syntax stuff hanging around
10 elseif exists("b:current_syntax")
14 " Product specification files are case sensitive
17 syn keyword psfObject bundle category control_file depot distribution
18 syn keyword psfObject end file fileset host installed_software media
19 syn keyword psfObject product root subproduct vendor
21 syn match psfUnquotString +[^"# ][^#]*+ contained
22 syn region psfQuotString start=+"+ skip=+\\"+ end=+"+ contained
24 syn match psfObjTag "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*" contained
25 syn match psfAttAbbrev ",\<\(fa\|fr\|[aclqrv]\)\(<\|>\|<=\|>=\|=\|==\)[^,]\+" contained
26 syn match psfObjTags "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\(\s\+\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\)*" contained
28 syn match psfNumber "\<\d\+\>" contained
29 syn match psfFloat "\<\d\+\>\(\.\<\d\+\>\)*" contained
31 syn match psfLongDate "\<\d\d\d\d\d\d\d\d\d\d\d\d\.\d\d\>" contained
33 syn keyword psfState available configured corrupt installed transient contained
34 syn keyword psfPState applied committed superseded contained
36 syn keyword psfBoolean false true contained
39 "Some of the attributes covered by attUnquotString and attQuotString:
40 " architecture category_tag control_directory copyright
41 " create_date description directory file_permissions install_source
42 " install_type location machine_type mod_date number os_name os_release
43 " os_version pose_as_os_name pose_as_os_release readme revision
44 " share_link title vendor_tag
45 syn region psfAttUnquotString matchgroup=psfAttrib start=~^\s*[^# ]\+\s\+[^#" ]~rs=e-1 contains=psfUnquotString,psfComment end=~$~ keepend oneline
47 syn region psfAttQuotString matchgroup=psfAttrib start=~^\s*[^# ]\+\s\+"~rs=e-1 contains=psfQuotString,psfComment skip=~\\"~ matchgroup=psfQuotString end=~"~ keepend
50 " These regions are defined in attempt to do syntax checking for some
52 syn region psfAttTag matchgroup=psfAttrib start="^\s*tag\s\+" contains=psfObjTag,psfComment end="$" keepend oneline
54 syn 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
56 syn region psfAttTags matchgroup=psfAttrib start="^\s*all_filesets\s\+" contains=psfObjTags,psfComment end="$" keepend
58 syn region psfAttNumber matchgroup=psfAttrib start="^\s*\(compressed_size\|instance_id\|media_sequence_number\|sequence_number\|size\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline
60 syn region psfAttTime matchgroup=psfAttrib start="^\s*\(create_time\|ctime\|mod_time\|mtime\|timestamp\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline
62 syn region psfAttFloat matchgroup=psfAttrib start="^\s*\(data_model_revision\|layout_version\)\s\+" contains=psfFloat,psfComment end="$" keepend oneline
64 syn region psfAttLongDate matchgroup=psfAttrib start="^\s*install_date\s\+" contains=psfLongDate,psfComment end="$" keepend oneline
66 syn region psfAttState matchgroup=psfAttrib start="^\s*\(state\)\s\+" contains=psfState,psfComment end="$" keepend oneline
68 syn region psfAttPState matchgroup=psfAttrib start="^\s*\(patch_state\)\s\+" contains=psfPState,psfComment end="$" keepend oneline
70 syn 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
72 syn match psfComment "#.*$"
75 " Define the default highlighting.
76 " For version 5.7 and earlier: only when not done already
77 " For version 5.8 and later: only when an item doesn't have highlighting yet
78 if version >= 508 || !exists("did_psf_syntax_inits")
80 let did_psf_syntax_inits = 1
81 command -nargs=+ HiLink hi link <args>
83 command -nargs=+ HiLink hi def link <args>
86 HiLink psfObject Statement
88 HiLink psfQuotString String
89 HiLink psfObjTag Identifier
90 HiLink psfAttAbbrev PreProc
91 HiLink psfObjTags Identifier
93 HiLink psfComment Comment
98 " Long descriptions and copyrights confuse the syntax highlighting, so
99 " force vim to backup at least 100 lines before the top visible line
100 " looking for a sync location.
103 let b:current_syntax = "psf"