neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

virata.vim (11613B)


      1 " Vim syntax file
      2 " Language:	Virata AConfig Configuration Script
      3 " Maintainer:	Manuel M.H. Stol	<mmh.stol@gmx.net>
      4 " Last Change:	2003 May 11
      5 " Vim URL:	http://www.vim.org/lang.html
      6 " Virata URL:	http://www.globespanvirata.com/
      7 
      8 
      9 " Virata AConfig Configuration Script syntax
     10 "  Can be detected by: 1) Extension .hw, .sw, .pkg and .module
     11 "		       2) The file name pattern "mk.*\.cfg"
     12 "		       3) The string "Virata" in the first 5 lines
     13 
     14 
     15 " Setup Syntax:
     16 " quit when a syntax file was already loaded
     17 if exists("b:current_syntax")
     18  finish
     19 endif
     20 "  Virata syntax is case insensitive (mostly)
     21 syn case ignore
     22 
     23 
     24 
     25 " Comments:
     26 " Virata comments start with %, but % is not a keyword character
     27 syn region  virataComment	start="^%" start="\s%"lc=1 keepend end="$" contains=@virataGrpInComments
     28 syn region  virataSpclComment	start="^%%" start="\s%%"lc=1 keepend end="$" contains=@virataGrpInComments
     29 syn keyword virataInCommentTodo	contained TODO FIXME XXX[XXXXX] REVIEW TBD
     30 syn cluster virataGrpInComments	contains=virataInCommentTodo
     31 syn cluster virataGrpComments	contains=@virataGrpInComments,virataComment,virataSpclComment
     32 
     33 
     34 " Constants:
     35 syn match   virataStringError	+["]+
     36 syn region  virataString	start=+"+ skip=+\(\\\\\|\\"\)+ end=+"+ oneline contains=virataSpclCharError,virataSpclChar,@virataGrpDefSubsts
     37 syn match   virataCharacter	+'[^']\{-}'+ contains=virataSpclCharError,virataSpclChar
     38 syn match   virataSpclChar	contained +\\\(x\x\+\|\o\{1,3}\|['\"?\\abefnrtv]\)+
     39 syn match   virataNumberError	"\<\d\{-1,}\I\{-1,}\>"
     40 syn match   virataNumberError	"\<0x\x*\X\x*\>"
     41 syn match   virataNumberError	"\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
     42 syn match   virataDecNumber	"\<\d\+U\=L\=\>"
     43 syn match   virataHexNumber	"\<0x\x\+U\=L\=\>"
     44 syn match   virataSizeNumber	"\<\d\+[BKM]\>"he=e-1
     45 syn match   virataSizeNumber	"\<\d\+[KM]B\>"he=e-2
     46 syn cluster virataGrpNumbers	contains=virataNumberError,virataDecNumber,virataHexNumber,virataSizeNumber
     47 syn cluster virataGrpConstants	contains=@virataGrpNumbers,virataStringError,virataString,virataCharacter,virataSpclChar
     48 
     49 
     50 " Identifiers:
     51 syn match   virataIdentError	contained "\<\D\S*\>"
     52 syn match   virataIdentifier	contained "\<\I\i\{-}\(\-\i\{-1,}\)*\>" contains=@virataGrpDefSubsts
     53 syn match   virataFileIdent	contained "\F\f*" contains=@virataGrpDefSubsts
     54 syn cluster virataGrpIdents	contains=virataIdentifier,virataIdentError
     55 syn cluster virataGrpFileIdents	contains=virataFileIdent,virataIdentError
     56 
     57 
     58 " Statements:
     59 syn match   virataStatement	"^\s*Config\(\(/Kernel\)\=\.\(hs\=\|s\)\)\=\>"
     60 syn match   virataStatement	"^\s*Config\s\+\I\i\{-}\(\-\i\{-1,}\)*\.\(hs\=\|s\)\>"
     61 syn match   virataStatement	"^\s*Make\.\I\i\{-}\(\-\i\{-1}\)*\>" skipwhite nextgroup=@virataGrpIdents
     62 syn match   virataStatement	"^\s*Make\.c\(at\)\=++\s"me=e-1 skipwhite nextgroup=@virataGrpIdents
     63 syn match   virataStatement	"^\s*\(Architecture\|GetEnv\|Reserved\|\(Un\)\=Define\|Version\)\>" skipwhite nextgroup=@virataGrpIdents
     64 syn match   virataStatement	"^\s*\(Hardware\|ModuleSource\|\(Release\)\=Path\|Software\)\>" skipwhite nextgroup=@virataGrpFileIdents
     65 syn match   virataStatement	"^\s*\(DefaultPri\|Hydrogen\)\>" skipwhite nextgroup=virataDecNumber,virataNumberError
     66 syn match   virataStatement	"^\s*\(NoInit\|PCI\|SysLink\)\>"
     67 syn match   virataStatement	"^\s*Allow\s\+\(ModuleConfig\)\>"
     68 syn match   virataStatement	"^\s*NoWarn\s\+\(Export\|Parse\=able\|Relative]\)\>"
     69 syn match   virataStatement	"^\s*Debug\s\+O\(ff\|n\)\>"
     70 
     71 " Import (Package <exec>|Module <name> from <dir>)
     72 syn region  virataImportDef	transparent matchgroup=virataStatement start="^\s*Import\>" keepend end="$" contains=virataInImport,virataModuleDef,virataNumberError,virataStringError,@virataGrpDefSubsts
     73 syn match   virataInImport	contained "\<\(Module\|Package\|from\)\>" skipwhite nextgroup=@virataGrpFileIdents
     74 " Export (Header <header file>|SLibrary <obj file>)
     75 syn region  virataExportDef	transparent matchgroup=virataStatement start="^\s*Export\>" keepend end="$" contains=virataInExport,virataNumberError,virataStringError,@virataGrpDefSubsts
     76 syn match   virataInExport	contained "\<\(Header\|[SU]Library\)\>" skipwhite nextgroup=@virataGrpFileIdents
     77 " Process <name> is <dir/exec>
     78 syn region  virataProcessDef	transparent matchgroup=virataStatement start="^\s*Process\>" keepend end="$" contains=virataInProcess,virataInExec,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
     79 syn match   virataInProcess	contained "\<is\>"
     80 " Instance <name> of <module>
     81 syn region  virataInstanceDef	transparent matchgroup=virataStatement start="^\s*Instance\>" keepend end="$" contains=virataInInstance,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
     82 syn match   virataInInstance	contained "\<of\>"
     83 " Module <name> from <dir>
     84 syn region  virataModuleDef	transparent matchgroup=virataStatement start="^\s*\(Package\|Module\)\>" keepend end="$" contains=virataInModule,virataNumberError,virataStringError,@virataGrpDefSubsts
     85 syn match   virataInModule	contained "^\s*Package\>"hs=e-7 skipwhite nextgroup=@virataGrpIdents
     86 syn match   virataInModule	contained "^\s*Module\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents
     87 syn match   virataInModule	contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
     88 " Colour <name> from <dir>
     89 syn region  virataColourDef	transparent matchgroup=virataStatement start="^\s*Colour\>" keepend end="$" contains=virataInColour,virataNumberError,virataStringError,@virataGrpDefSubsts
     90 syn match   virataInColour	contained "^\s*Colour\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents
     91 syn match   virataInColour	contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
     92 " Link {<link cmds>}
     93 " Object {Executable [<ExecOptions>]}
     94 syn match   virataStatement	"^\s*\(Link\|Object\)"
     95 " Executable <name> [<ExecOptions>]
     96 syn region  virataExecDef	transparent matchgroup=virataStatement start="^\s*Executable\>" keepend end="$" contains=virataInExec,virataNumberError,virataStringError
     97 syn match   virataInExec	contained "^\s*Executable\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
     98 syn match   virataInExec	contained "\<\(epilogue\|pro\(logue\|cess\)\|qhandler\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
     99 syn match   virataInExec	contained "\<\(priority\|stack\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpNumbers
    100 " Message <name> {<msg format>}
    101 " MessageId <number>
    102 syn match   virataStatement	"^\s*Message\(Id\)\=\>" skipwhite nextgroup=@virataGrpNumbers
    103 " MakeRule <make suffix=file> {<make cmds>}
    104 syn region  virataMakeDef	transparent matchgroup=virataStatement start="^\s*MakeRule\>" keepend end="$" contains=virataInMake,@virataGrpDefSubsts
    105 syn case match
    106 syn match   virataInMake	contained "\<N\>"
    107 syn case ignore
    108 " (Append|Edit|Copy)Rule <make suffix=file> <subst cmd>
    109 syn match   virataStatement	"^\s*\(Append\|Copy\|Edit\)Rule\>"
    110 " AlterRules in <file> <subst cmd>
    111 syn region  virataAlterDef	transparent matchgroup=virataStatement start="^\s*AlterRules\>" keepend end="$" contains=virataInAlter,@virataGrpDefSubsts
    112 syn match   virataInAlter	contained "\<in\>" skipwhite nextgroup=@virataGrpIdents
    113 " Clustering
    114 syn cluster virataGrpInStatmnts	contains=virataInImport,virataInExport,virataInExec,virataInProcess,virataInAlter,virataInInstance,virataInModule,virataInColour
    115 syn cluster virataGrpStatements	contains=@virataGrpInStatmnts,virataStatement,virataImportDef,virataExportDef,virataExecDef,virataProcessDef,virataAlterDef,virataInstanceDef,virataModuleDef,virataColourDef
    116 
    117 
    118 " MkFlash.Cfg File Statements:
    119 syn region  virataCfgFileDef	transparent matchgroup=virataCfgStatement start="^\s*Dir\>" start="^\s*\a\{-}File\>" start="^\s*OutputFile\d\d\=\>" start="^\s*\a\w\{-}[NP]PFile\>" keepend end="$" contains=@virataGrpFileIdents
    120 syn region  virataCfgSizeDef	transparent matchgroup=virataCfgStatement start="^\s*\a\{-}Size\>" start="^\s*ConfigInfo\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts,virataIdentError
    121 syn region  virataCfgNumberDef	transparent matchgroup=virataCfgStatement start="^\s*FlashchipNum\(b\(er\=\)\=\)\=\>" start="^\s*Granularity\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts
    122 syn region  virataCfgMacAddrDef	transparent matchgroup=virataCfgStatement start="^\s*MacAddress\>" keepend end="$" contains=virataNumberError,virataStringError,virataIdentError,virataInMacAddr,@virataGrpDefSubsts
    123 syn match   virataInMacAddr	contained "\x[:]\x\{1,2}\>"lc=2
    124 syn match   virataInMacAddr	contained "\s\x\{1,2}[:]\x"lc=1,me=e-1,he=e-2 nextgroup=virataInMacAddr
    125 syn match   virataCfgStatement	"^\s*Target\>" skipwhite nextgroup=@virataGrpIdents
    126 syn cluster virataGrpCfgs	contains=virataCfgStatement,virataCfgFileDef,virataCfgSizeDef,virataCfgNumberDef,virataCfgMacAddrDef,virataInMacAddr
    127 
    128 
    129 
    130 " PreProcessor Instructions:
    131 "  Defines
    132 syn match   virataDefine	"^\s*\(Un\)\=Set\>" skipwhite nextgroup=@virataGrpIdents
    133 syn match   virataInclude	"^\s*Include\>" skipwhite nextgroup=@virataGrpFileIdents
    134 syn match   virataDefSubstError	"[^$]\$"lc=1
    135 syn match   virataDefSubstError	"\$\(\w\|{\(.\{-}}\)\=\)"
    136 syn case match
    137 syn match   virataDefSubst	"\$\(\d\|[DINORS]\|{\I\i\{-}\(\-\i\{-1,}\)*}\)"
    138 syn case ignore
    139 "  Conditionals
    140 syn cluster virataGrpCntnPreCon	contains=ALLBUT,@virataGrpInComments,@virataGrpFileIdents,@virataGrpInStatmnts
    141 syn region  virataPreConDef	transparent matchgroup=virataPreCondit start="^\s*If\>" end="^\s*Endif\>" contains=@virataGrpCntnPreCon
    142 syn match   virataPreCondit	contained "^\s*Else\(\s\+If\)\=\>"
    143 syn region  virataPreConDef	transparent matchgroup=virataPreCondit start="^\s*ForEach\>" end="^\s*Done\>" contains=@virataGrpCntnPreCon
    144 "  Pre-Processors
    145 syn region  virataPreProc	start="^\s*Error\>" start="^\s*Warning\>" oneline end="$" contains=@virataGrpConstants,@virataGrpDefSubsts
    146 syn cluster virataGrpDefSubsts	contains=virataDefSubstError,virataDefSubst
    147 syn cluster virataGrpPreProcs	contains=@virataGrpDefSubsts,virataDefine,virataInclude,virataPreConDef,virataPreCondit,virataPreProc
    148 
    149 
    150 " Synchronize Syntax:
    151 syn sync clear
    152 syn sync minlines=50		"for multiple region nesting
    153 
    154 
    155 
    156 " Define the default highlighting.
    157 " Only when an item doesn't have highlighting yet
    158 
    159 " Sub Links:
    160 hi def link virataDefSubstError	virataPreProcError
    161 hi def link virataDefSubst		virataPreProc
    162 hi def link virataInAlter		virataOperator
    163 hi def link virataInExec		virataOperator
    164 hi def link virataInExport		virataOperator
    165 hi def link virataInImport		virataOperator
    166 hi def link virataInInstance	virataOperator
    167 hi def link virataInMake		virataOperator
    168 hi def link virataInModule		virataOperator
    169 hi def link virataInProcess	virataOperator
    170 hi def link virataInMacAddr	virataHexNumber
    171 
    172 " Comment Group:
    173 hi def link virataComment		Comment
    174 hi def link virataSpclComment	SpecialComment
    175 hi def link virataInCommentTodo	Todo
    176 
    177 " Constant Group:
    178 hi def link virataString		String
    179 hi def link virataStringError	Error
    180 hi def link virataCharacter	Character
    181 hi def link virataSpclChar		Special
    182 hi def link virataDecNumber	Number
    183 hi def link virataHexNumber	Number
    184 hi def link virataSizeNumber	Number
    185 hi def link virataNumberError	Error
    186 
    187 " Identifier Group:
    188 hi def link virataIdentError	Error
    189 
    190 " PreProc Group:
    191 hi def link virataPreProc		PreProc
    192 hi def link virataDefine		Define
    193 hi def link virataInclude		Include
    194 hi def link virataPreCondit	PreCondit
    195 hi def link virataPreProcError	Error
    196 hi def link virataPreProcWarn	Todo
    197 
    198 " Directive Group:
    199 hi def link virataStatement	Statement
    200 hi def link virataCfgStatement	Statement
    201 hi def link virataOperator		Operator
    202 hi def link virataDirective	Keyword
    203 
    204 
    205 let b:current_syntax = "virata"
    206 
    207 " vim:ts=8:sw=2:noet: