Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 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 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 10 | " quit when a syntax file was already loaded |
| 11 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 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. |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 101 | " Only when an item doesn't have highlighting yet |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 102 | |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 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 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 115 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 116 | |
| 117 | let b:current_syntax = "hercules" |
| 118 | |
| 119 | " vim: ts=8 |