1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Hercules 3071d4279SBram Moolenaar" Maintainer: Dana Edwards <[email protected]> 4071d4279SBram Moolenaar" Extensions: *.vc,*.ev,*.rs 5071d4279SBram Moolenaar" Last change: Nov. 9, 2001 6071d4279SBram Moolenaar" Comment: Hercules physical IC design verification software ensures 7071d4279SBram Moolenaar" that an IC's physical design matches its logical design and 8071d4279SBram Moolenaar" satisfies manufacturing rules. 9071d4279SBram Moolenaar 1089bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1189bcfda6SBram Moolenaarif exists("b:current_syntax") 12071d4279SBram Moolenaar finish 13071d4279SBram Moolenaarendif 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" Ignore case 16071d4279SBram Moolenaarsyn case ignore 17071d4279SBram Moolenaar 18071d4279SBram Moolenaar" Hercules runset sections 19071d4279SBram Moolenaarsyn keyword herculesType header assign_property alias assign 20071d4279SBram Moolenaarsyn keyword herculesType options preprocess_options 21071d4279SBram Moolenaarsyn keyword herculesType explode_options technology_options 22071d4279SBram Moolenaarsyn keyword herculesType drc_options database_options 23071d4279SBram Moolenaarsyn keyword herculesType text_options lpe_options evaccess_options 24071d4279SBram Moolenaarsyn keyword herculesType check_point compare_group environment 25071d4279SBram Moolenaarsyn keyword herculesType grid_check include layer_stats load_group 26071d4279SBram Moolenaarsyn keyword herculesType restart run_only self_intersect set snap 27071d4279SBram Moolenaarsyn keyword herculesType system variable waiver 28071d4279SBram Moolenaar 29071d4279SBram Moolenaar" Hercules commands 30071d4279SBram Moolenaarsyn keyword herculesStatement attach_property boolean cell_extent 31071d4279SBram Moolenaarsyn keyword herculesStatement common_hierarchy connection_points 32071d4279SBram Moolenaarsyn keyword herculesStatement copy data_filter alternate delete 33071d4279SBram Moolenaarsyn keyword herculesStatement explode explode_all fill_pattern find_net 34071d4279SBram Moolenaarsyn keyword herculesStatement flatten 35071d4279SBram Moolenaarsyn keyword herculesStatement level negate polygon_features push 36071d4279SBram Moolenaarsyn keyword herculesStatement rectangles relocate remove_overlap reverse select 37071d4279SBram Moolenaarsyn keyword herculesStatement select_cell select_contains select_edge select_net size 38071d4279SBram Moolenaarsyn keyword herculesStatement text_polygon text_property vertex area cut 39071d4279SBram Moolenaarsyn keyword herculesStatement density enclose external inside_edge 40071d4279SBram Moolenaarsyn keyword herculesStatement internal notch vectorize center_to_center 41071d4279SBram Moolenaarsyn keyword herculesStatement length mask_align moscheck rescheck 42071d4279SBram Moolenaarsyn keyword herculesStatement analysis buildsub init_lpe_db capacitor 43071d4279SBram Moolenaarsyn keyword herculesStatement device gendev nmos pmos diode npn pnp 44071d4279SBram Moolenaarsyn keyword herculesStatement resistor set_param save_property 45071d4279SBram Moolenaarsyn keyword herculesStatement connect disconnect text text_boolean 46071d4279SBram Moolenaarsyn keyword herculesStatement replace_text create_ports label graphics 47071d4279SBram Moolenaarsyn keyword herculesStatement save_netlist_database lpe_stats netlist 48071d4279SBram Moolenaarsyn keyword herculesStatement spice graphics_property graphics_netlist 49071d4279SBram Moolenaarsyn keyword herculesStatement write_milkyway multi_rule_enclose 50071d4279SBram Moolenaarsyn keyword herculesStatement if error_property equate compare 51071d4279SBram Moolenaarsyn keyword herculesStatement antenna_fix c_thru dev_connect_check 52071d4279SBram Moolenaarsyn keyword herculesStatement dev_net_count device_count net_filter 53071d4279SBram Moolenaarsyn keyword herculesStatement net_path_check ratio process_text_opens 54071d4279SBram Moolenaar 55071d4279SBram Moolenaar" Hercules keywords 56071d4279SBram Moolenaarsyn keyword herculesStatement black_box_file block compare_dir equivalence 57071d4279SBram Moolenaarsyn keyword herculesStatement format gdsin_dir group_dir group_dir_usage 58071d4279SBram Moolenaarsyn keyword herculesStatement inlib layout_path outlib output_format 59071d4279SBram Moolenaarsyn keyword herculesStatement output_layout_path schematic schematic_format 60071d4279SBram Moolenaarsyn keyword herculesStatement scheme_file output_block else 61071d4279SBram Moolenaarsyn keyword herculesStatement and or not xor andoverlap inside outside by to 62071d4279SBram Moolenaarsyn keyword herculesStatement with connected connected_all texted_with texted 63071d4279SBram Moolenaarsyn keyword herculesStatement by_property cutting edge_touch enclosing inside 64071d4279SBram Moolenaarsyn keyword herculesStatement inside_hole interact touching vertex 65071d4279SBram Moolenaar 66071d4279SBram Moolenaar" Hercules comments 67071d4279SBram Moolenaarsyn region herculesComment start="/\*" skip="/\*" end="\*/" contains=herculesTodo 68071d4279SBram Moolenaarsyn match herculesComment "//.*" contains=herculesTodo 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar" Preprocessor directives 71071d4279SBram Moolenaarsyn match herculesPreProc "^#.*" 72071d4279SBram Moolenaarsyn match herculesPreProc "^@.*" 73071d4279SBram Moolenaarsyn match herculesPreProc "macros" 74071d4279SBram Moolenaar 75071d4279SBram Moolenaar" Hercules COMMENT option 76071d4279SBram Moolenaarsyn match herculesCmdCmnt "comment.*=.*" 77071d4279SBram Moolenaar 78071d4279SBram Moolenaar" Spacings, Resolutions, Ranges, Ratios, etc. 79071d4279SBram Moolenaarsyn match herculesNumber "-\=\<[0-9]\+L\=\>\|0[xX][0-9]\+\>" 80071d4279SBram Moolenaar 81071d4279SBram Moolenaar" Parenthesis sanity checker 82071d4279SBram Moolenaarsyn region herculesZone matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesCurlyError 83071d4279SBram Moolenaarsyn region herculesZone matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesParenError 84071d4279SBram Moolenaarsyn region herculesZone matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,herculesError,herculesCurlyError,herculesParenError 85071d4279SBram Moolenaarsyn match herculesError "[)\]}]" 86071d4279SBram Moolenaarsyn match herculesBraceError "[)}]" contained 87071d4279SBram Moolenaarsyn match herculesCurlyError "[)\]]" contained 88071d4279SBram Moolenaarsyn match herculesParenError "[\]}]" contained 89071d4279SBram Moolenaar 90071d4279SBram Moolenaar" Hercules output format 91071d4279SBram Moolenaar"syn match herculesOutput "([0-9].*)" 92071d4279SBram Moolenaar"syn match herculesOutput "([0-9].*\;.*)" 93071d4279SBram Moolenaarsyn match herculesOutput "perm\s*=.*(.*)" 94071d4279SBram Moolenaarsyn match herculesOutput "temp\s*=\s*" 95071d4279SBram Moolenaarsyn match herculesOutput "error\s*=\s*(.*)" 96071d4279SBram Moolenaar 97071d4279SBram Moolenaar"Modify the following as needed. The trade-off is performance versus functionality. 98071d4279SBram Moolenaarsyn sync lines=100 99071d4279SBram Moolenaar 100071d4279SBram Moolenaar" Define the default highlighting. 10189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 102071d4279SBram Moolenaar 103*f37506f6SBram Moolenaarhi def link herculesStatement Statement 104*f37506f6SBram Moolenaarhi def link herculesType Type 105*f37506f6SBram Moolenaarhi def link herculesComment Comment 106*f37506f6SBram Moolenaarhi def link herculesPreProc PreProc 107*f37506f6SBram Moolenaarhi def link herculesTodo Todo 108*f37506f6SBram Moolenaarhi def link herculesOutput Include 109*f37506f6SBram Moolenaarhi def link herculesCmdCmnt Identifier 110*f37506f6SBram Moolenaarhi def link herculesNumber Number 111*f37506f6SBram Moolenaarhi def link herculesBraceError herculesError 112*f37506f6SBram Moolenaarhi def link herculesCurlyError herculesError 113*f37506f6SBram Moolenaarhi def link herculesParenError herculesError 114*f37506f6SBram Moolenaarhi def link herculesError Error 115071d4279SBram Moolenaar 116071d4279SBram Moolenaar 117071d4279SBram Moolenaarlet b:current_syntax = "hercules" 118071d4279SBram Moolenaar 119071d4279SBram Moolenaar" vim: ts=8 120