From aed8ce9da277f5ecffe968b324f242c41c3b752a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 10:50:31 +0200 Subject: Adding upstream version 2:9.0.1378. Signed-off-by: Daniel Baumann --- runtime/syntax/hercules.vim | 119 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 runtime/syntax/hercules.vim (limited to 'runtime/syntax/hercules.vim') diff --git a/runtime/syntax/hercules.vim b/runtime/syntax/hercules.vim new file mode 100644 index 0000000..d305707 --- /dev/null +++ b/runtime/syntax/hercules.vim @@ -0,0 +1,119 @@ +" Vim syntax file +" Language: Hercules +" Maintainer: Dana Edwards +" Extensions: *.vc,*.ev,*.rs +" Last change: Nov. 9, 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 keyword herculesType header assign_property alias assign +syn keyword herculesType options preprocess_options +syn keyword herculesType explode_options technology_options +syn keyword herculesType drc_options database_options +syn keyword herculesType text_options lpe_options evaccess_options +syn keyword herculesType check_point compare_group environment +syn keyword herculesType grid_check include layer_stats load_group +syn keyword herculesType restart run_only self_intersect set snap +syn keyword herculesType system variable waiver + +" Hercules commands +syn keyword herculesStatement attach_property boolean cell_extent +syn keyword herculesStatement common_hierarchy connection_points +syn keyword herculesStatement copy data_filter alternate delete +syn keyword herculesStatement explode explode_all fill_pattern find_net +syn keyword herculesStatement flatten +syn keyword herculesStatement level negate polygon_features push +syn keyword herculesStatement rectangles relocate remove_overlap reverse select +syn keyword herculesStatement select_cell select_contains select_edge select_net size +syn keyword herculesStatement text_polygon text_property vertex area cut +syn keyword herculesStatement density enclose external inside_edge +syn keyword herculesStatement internal notch vectorize center_to_center +syn keyword herculesStatement length mask_align moscheck rescheck +syn keyword herculesStatement analysis buildsub init_lpe_db capacitor +syn keyword herculesStatement device gendev nmos pmos diode npn pnp +syn keyword herculesStatement resistor set_param save_property +syn keyword herculesStatement connect disconnect text text_boolean +syn keyword herculesStatement replace_text create_ports label graphics +syn keyword herculesStatement save_netlist_database lpe_stats netlist +syn keyword herculesStatement spice graphics_property graphics_netlist +syn keyword herculesStatement write_milkyway multi_rule_enclose +syn keyword herculesStatement if error_property equate compare +syn keyword herculesStatement antenna_fix c_thru dev_connect_check +syn keyword herculesStatement dev_net_count device_count net_filter +syn keyword herculesStatement net_path_check ratio process_text_opens + +" Hercules 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 inside_hole interact touching vertex + +" Hercules comments +syn region herculesComment start="/\*" skip="/\*" 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\s*=.*(.*)" +syn match herculesOutput "temp\s*=\s*" +syn match herculesOutput "error\s*=\s*(.*)" + +"Modify the following as needed. The trade-off is performance versus functionality. +syn sync lines=100 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +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 -- cgit v1.2.3