neovim

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

cupl.vim (3872B)


      1 " Vim syntax file
      2 " Language:	CUPL
      3 " Maintainer:	John Cook <johncook3@gmail.com>
      4 " Last Change:	2011 Dec 27
      5 
      6 " quit when a syntax file was already loaded
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 let s:cpo_save = &cpo
     12 set cpo&vim
     13 
     14 " this language is oblivious to case.
     15 syn case ignore
     16 
     17 " A bunch of keywords
     18 syn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents
     19 syn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents
     20 
     21 syn keyword cuplTodo contained TODO XXX FIXME
     22 
     23 " cuplHeaderContents uses default highlighting except for numbers
     24 syn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained
     25 
     26 " String constants
     27 syn region cuplString start=+'+ end=+'+
     28 syn region cuplString start=+"+ end=+"+
     29 
     30 syn keyword cuplStatement append condition
     31 syn keyword cuplStatement default else
     32 syn keyword cuplStatement field fld format function fuse
     33 syn keyword cuplStatement group if jump loc
     34 syn keyword cuplStatement macro min node out
     35 syn keyword cuplStatement pin pinnode present table
     36 syn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet
     37 
     38 syn keyword cuplFunction log2 log8 log16 log
     39 
     40 " Valid integer number formats (decimal, binary, octal, hex)
     41 syn match cuplNumber "\<[-+]\=[0-9]\+\>"
     42 syn match cuplNumber "'d'[0-9]\+\>"
     43 syn match cuplNumber "'b'[01x]\+\>"
     44 syn match cuplNumber "'o'[0-7x]\+\>"
     45 syn match cuplNumber "'h'[0-9a-fx]\+\>"
     46 
     47 " operators
     48 syn match cuplLogicalOperator "[!#&$]"
     49 syn match cuplArithmeticOperator "[-+*/%]"
     50 syn match cuplArithmeticOperator "\*\*"
     51 syn match cuplAssignmentOperator ":\=="
     52 syn match cuplEqualityOperator ":"
     53 syn match cuplTruthTableOperator "=>"
     54 
     55 " Signal extensions
     56 syn match cuplExtension "\.[as][pr]\>"
     57 syn match cuplExtension "\.oe\>"
     58 syn match cuplExtension "\.oemux\>"
     59 syn match cuplExtension "\.[dlsrjk]\>"
     60 syn match cuplExtension "\.ck\>"
     61 syn match cuplExtension "\.dq\>"
     62 syn match cuplExtension "\.ckmux\>"
     63 syn match cuplExtension "\.tec\>"
     64 syn match cuplExtension "\.cnt\>"
     65 
     66 syn match cuplRangeOperator "\.\." contained
     67 
     68 " match ranges like memadr:[0000..1FFF]
     69 " and highlight both the numbers and the .. operator
     70 syn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator
     71 
     72 " match vectors of type [name3..0] (decimal numbers only)
     73 " but assign them no special highlighting except for the .. operator
     74 syn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator
     75 
     76 " other special characters
     77 syn match cuplSpecialChar "[\[\](){},;]"
     78 
     79 " directives
     80 " (define these after cuplOperator so $xxx overrides $)
     81 syn match cuplDirective "\$msg"
     82 syn match cuplDirective "\$macro"
     83 syn match cuplDirective "\$mend"
     84 syn match cuplDirective "\$repeat"
     85 syn match cuplDirective "\$repend"
     86 syn match cuplDirective "\$define"
     87 syn match cuplDirective "\$include"
     88 
     89 " multi-line comments
     90 syn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo
     91 
     92 syn sync minlines=1
     93 
     94 " Define the default highlighting.
     95 " Only when an item doesn't have highlighting yet
     96 
     97 " The default highlighting.
     98 hi def link cuplHeader	cuplStatement
     99 hi def link cuplLogicalOperator	 cuplOperator
    100 hi def link cuplRangeOperator	 cuplOperator
    101 hi def link cuplArithmeticOperator cuplOperator
    102 hi def link cuplAssignmentOperator cuplOperator
    103 hi def link cuplEqualityOperator	 cuplOperator
    104 hi def link cuplTruthTableOperator cuplOperator
    105 hi def link cuplOperator	cuplStatement
    106 hi def link cuplFunction	cuplStatement
    107 hi def link cuplStatement Statement
    108 hi def link cuplNumberRange cuplNumber
    109 hi def link cuplNumber	  cuplString
    110 hi def link cuplString	String
    111 hi def link cuplComment	Comment
    112 hi def link cuplExtension   cuplSpecial
    113 hi def link cuplSpecialChar cuplSpecial
    114 hi def link cuplSpecial	Special
    115 hi def link cuplDirective PreProc
    116 hi def link cuplTodo	Todo
    117 
    118 
    119 let b:current_syntax = "cupl"
    120 
    121 let &cpo = s:cpo_save
    122 unlet s:cpo_save
    123 
    124 " vim:ts=8