neovim

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

hercules.vim (5720B)


      1 " Vim syntax file
      2 " Language:	Hercules
      3 " Maintainer:	Dana Edwards <Dana_Edwards@avanticorp.com>
      4 " Extensions:   *.vc,*.ev,*.rs
      5 " Last change:  Nov. 9, 2001
      6 " Comment:      Hercules physical IC design verification software ensures
      7 "		that an IC's physical design matches its logical design and
      8 "		satisfies manufacturing rules.
      9 
     10 " quit when a syntax file was already loaded
     11 if exists("b:current_syntax")
     12  finish
     13 endif
     14 
     15 " Ignore case
     16 syn case ignore
     17 
     18 " Hercules runset sections
     19 syn keyword   herculesType	  header assign_property alias assign
     20 syn keyword   herculesType	  options preprocess_options
     21 syn keyword   herculesType	  explode_options technology_options
     22 syn keyword   herculesType	  drc_options database_options
     23 syn keyword   herculesType	  text_options lpe_options evaccess_options
     24 syn keyword   herculesType	  check_point compare_group environment
     25 syn keyword   herculesType	  grid_check include layer_stats load_group
     26 syn keyword   herculesType	  restart run_only self_intersect set snap
     27 syn keyword   herculesType	  system variable waiver
     28 
     29 " Hercules commands
     30 syn keyword   herculesStatement   attach_property boolean cell_extent
     31 syn keyword   herculesStatement   common_hierarchy connection_points
     32 syn keyword   herculesStatement   copy data_filter alternate delete
     33 syn keyword   herculesStatement   explode explode_all fill_pattern find_net
     34 syn keyword   herculesStatement   flatten
     35 syn keyword   herculesStatement   level negate polygon_features push
     36 syn keyword   herculesStatement   rectangles relocate remove_overlap reverse select
     37 syn keyword   herculesStatement   select_cell select_contains select_edge select_net size
     38 syn keyword   herculesStatement   text_polygon text_property vertex area cut
     39 syn keyword   herculesStatement   density enclose external inside_edge
     40 syn keyword   herculesStatement   internal notch vectorize center_to_center
     41 syn keyword   herculesStatement   length mask_align moscheck rescheck
     42 syn keyword   herculesStatement   analysis buildsub init_lpe_db capacitor
     43 syn keyword   herculesStatement   device gendev nmos pmos diode npn pnp
     44 syn keyword   herculesStatement   resistor set_param save_property
     45 syn keyword   herculesStatement   connect disconnect text  text_boolean
     46 syn keyword   herculesStatement   replace_text create_ports label graphics
     47 syn keyword   herculesStatement   save_netlist_database lpe_stats netlist
     48 syn keyword   herculesStatement   spice graphics_property graphics_netlist
     49 syn keyword   herculesStatement   write_milkyway multi_rule_enclose
     50 syn keyword   herculesStatement   if error_property equate compare
     51 syn keyword   herculesStatement   antenna_fix c_thru dev_connect_check
     52 syn keyword   herculesStatement   dev_net_count device_count net_filter
     53 syn keyword   herculesStatement   net_path_check ratio process_text_opens
     54 
     55 " Hercules keywords
     56 syn keyword   herculesStatement   black_box_file block compare_dir equivalence
     57 syn keyword   herculesStatement   format gdsin_dir group_dir group_dir_usage
     58 syn keyword   herculesStatement   inlib layout_path outlib output_format
     59 syn keyword   herculesStatement   output_layout_path schematic schematic_format
     60 syn keyword   herculesStatement   scheme_file output_block else
     61 syn keyword   herculesStatement   and or not xor andoverlap inside outside by to
     62 syn keyword   herculesStatement   with connected connected_all texted_with texted
     63 syn keyword   herculesStatement   by_property cutting edge_touch enclosing inside
     64 syn keyword   herculesStatement   inside_hole interact touching vertex
     65 
     66 " Hercules comments
     67 syn region    herculesComment		start="/\*" skip="/\*" end="\*/" contains=herculesTodo
     68 syn match     herculesComment		"//.*" contains=herculesTodo
     69 
     70 " Preprocessor directives
     71 syn match     herculesPreProc "^#.*"
     72 syn match     herculesPreProc "^@.*"
     73 syn match     herculesPreProc "macros"
     74 
     75 " Hercules COMMENT option
     76 syn match     herculesCmdCmnt "comment.*=.*"
     77 
     78 " Spacings, Resolutions, Ranges, Ratios, etc.
     79 syn match     herculesNumber	      "-\=\<[0-9]\+L\=\>\|0[xX][0-9]\+\>"
     80 
     81 " Parenthesis sanity checker
     82 syn region    herculesZone       matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesCurlyError
     83 syn region    herculesZone       matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesParenError
     84 syn region    herculesZone       matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,herculesError,herculesCurlyError,herculesParenError
     85 syn match     herculesError      "[)\]}]"
     86 syn match     herculesBraceError "[)}]"  contained
     87 syn match     herculesCurlyError "[)\]]" contained
     88 syn match     herculesParenError "[\]}]" contained
     89 
     90 " Hercules output format
     91 "syn match  herculesOutput "([0-9].*)"
     92 "syn match  herculesOutput "([0-9].*\;.*)"
     93 syn match     herculesOutput "perm\s*=.*(.*)"
     94 syn match     herculesOutput "temp\s*=\s*"
     95 syn match     herculesOutput "error\s*=\s*(.*)"
     96 
     97 "Modify the following as needed.  The trade-off is performance versus functionality.
     98 syn sync      lines=100
     99 
    100 " Define the default highlighting.
    101 " Only when an item doesn't have highlighting yet
    102 
    103 hi def link herculesStatement  Statement
    104 hi def link herculesType       Type
    105 hi def link herculesComment    Comment
    106 hi def link herculesPreProc    PreProc
    107 hi def link herculesTodo       Todo
    108 hi def link herculesOutput     Include
    109 hi def link herculesCmdCmnt    Identifier
    110 hi def link herculesNumber     Number
    111 hi def link herculesBraceError herculesError
    112 hi def link herculesCurlyError herculesError
    113 hi def link herculesParenError herculesError
    114 hi def link herculesError      Error
    115 
    116 
    117 let b:current_syntax = "hercules"
    118 
    119 " vim: ts=8