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