home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / virata.vim < prev    next >
Encoding:
Text File  |  2003-05-11  |  11.6 KB  |  220 lines

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