" Vim syntax file " Language: Hercules (Avant! Corporation) " Maintainer: Dana Edwards " Extensions: *.vc,*.ev,*.rs,*.sum,*.errsum " Last change: 03/01/2001 " Comment: Hercules physical IC design verification software ensures " that an IC's physical design matches its logical design and " satisfies manufacturing rules. " Quit when a syntax file was already loaded if exists("b:current_syntax") finish endif " Ignore case syn case ignore " Hercules runset sections syn match herculesType "^\s*\t*header" syn match herculesType "^\s*\t*options" syn match herculesType "^\s*\t*alias" syn match herculesType "^\s*\t*assign" syn match herculesType "^\s*\t*assign_property" syn match herculesType "^\s*\t*waiver" syn match herculesType "^\s*\t*.*_options" syn match herculesType "^\s*\t*check_point" syn match herculesType "^\s*\t*compare_group" syn match herculesType "^\s*\t*environment" syn match herculesType "^\s*\t*grid_check" syn match herculesType "^\s*\t*include" syn match herculesType "^\s*\t*layer_stats" syn match herculesType "^\s*\t*load_group" syn match herculesType "^\s*\t*.*run_only" syn match herculesType "^\s*\t*restart" syn match herculesType "^\s*\t*self_intersect" syn match herculesType "^\s*\t*set " syn match herculesType "^\s*\t*set\t" syn match herculesType "^\s*\t*snap" syn match herculesType "^\s*\t*system" syn match herculesType "^\s*\t*variable" " Hercules commands and keywords syn match herculesstatement "^ *\(attach_property\|boolean\|cell_extent\)" syn match herculesstatement "^ *\(common_hierarchy\|connection_points\|size_rect\)" syn match herculesstatement "^ *\(copy\|data_filter\|alternate\|delete\)" syn match herculesstatement "^ *\(explode\|explode_all\|find_net\|flatten\)" syn match herculesstatement "^ *\(fill_pattern\|rectangles\|select_contains\)" syn match herculesstatement "^ *\(level\|negate\|polygon_features\|push\)" syn match herculesstatement "^ *\(relocate\|remove_overlap\|reverse\|select\)" syn match herculesstatement "^ *\(select_cell\|select_edge\|select_net\|size\)" syn match herculesstatement "^ *\(text_polygon\|text_property\|area\|cut\|notch\)" syn match herculesstatement "^ *\(center_to_center\|inductor\|write_milkyway\)" syn match herculesstatement "^ *\(density\|enclose\|enc\|external\|ext\|inside_edge\)" syn match herculesstatement "^ *\(internal\|int\|vectorize\|select_vector\)" syn match herculesstatement "^ *\(length\|mask_align\|moscheck\|rescheck\)" syn match herculesstatement "^ *\(analysis\|buildsub\|init_lpe_db\|capacitor\)" syn match herculesstatement "^ *\(device\|gendev\|nmos\|pmos\|diode\|npn\|pnp\)" syn match herculesstatement "^ *\(resistor\|set_param\|save_property\|cap\|text \)" syn match herculesstatement "^ *\(res\|connect\|disconnect\|text \|text_boolean\)" syn match herculesstatement "^ *\(replace_text\|create_ports\|label\|graphics\)" syn match herculesstatement "^ *\(save_netlist_database\|lpe_stats\|netlist\)" syn match herculesstatement "^ *\(spice\|graphics_property\|graphics_netlist\)" syn match herculesstatement "^ *\(vertex\|if\|error_property\|equate\|compare\)" syn match herculesstatement "^ *\(antenna_fix\|c_thru\|dev_connect_check\)" syn match herculesstatement "^ *\(dev_net_count\|device_count\|net_filter\)" syn match herculesstatement "^ *\(net_path_check\|ratio\|process_text_opens\)" syn match herculesstatement "^ *\(classify_edges\|write_extract_view\)" " Hercules commands and keywords syn keyword herculesStatement black_box_file block compare_dir equivalence syn keyword herculesStatement format gdsin_dir group_dir group_dir_usage syn keyword herculesStatement inlib layout_path outlib output_format syn keyword herculesStatement output_layout_path schematic schematic_format syn keyword herculesStatement scheme_file output_block else syn keyword herculesstatement and or not xor andoverlap inside outside by to syn keyword herculesstatement with connected connected_all texted_with texted syn keyword herculesstatement by_property cutting edge_touch enclosing inside syn keyword herculesstatement equations inside_hole interact touching vertex " Hercules comments syn region herculesComment start="/\*" end="\*/" contains=herculesTodo syn match herculesComment "//.*" contains=herculesTodo " Preprocessor directives syn match herculesPreProc "^#.*" syn match herculesPreProc "^@.*" syn match herculesPreProc "macros" " Hercules COMMENT option syn match herculesCmdCmnt "comment.*=.*" " Spacings, Resolutions, Ranges, Ratios, etc. syn match herculesNumber "-\=\<[0-9]\+L\=\>\|0[xX][0-9]\+\>" " Parenthesis sanity checker syn region herculesZone matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesCurlyError syn region herculesZone matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesParenError syn region herculesZone matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,herculesError,herculesCurlyError,herculesParenError syn match herculesError "[)\]}]" syn match herculesBraceError "[)}]" contained syn match herculesCurlyError "[)\]]" contained syn match herculesParenError "[\]}]" contained " Hercules output format syn match herculesOutput "([0-9].*)" syn match herculesOutput "([0-9].*\;.*)" syn match herculesOutput "perm.*=.*" syn match herculesOutput "temp.*=.*" syn match herculesOutput "error\s*=\s*(.*)" "Modify the following as needed. The trade-off is performance versus functionality. syn sync lines=100 " Default highlighting. hi def link herculesStatement Statement hi def link herculesType Type hi def link herculesComment Comment hi def link herculesPreProc PreProc hi def link herculesTodo Todo hi def link herculesOutput Include hi def link herculesCmdCmnt Identifier hi def link herculesNumber Number hi def link herculesBraceError herculesError hi def link herculesCurlyError herculesError hi def link herculesParenError herculesError hi def link herculesError Error let b:current_syntax = "hercules" " vim: ts=8 .