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