blob: 2a786768dc98bc6a87ef35adbfa61be15f12125c [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" 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 Moolenaar89bcfda2016-08-30 23:26:57 +020010" quit when a syntax file was already loaded
11if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200101" Only when an item doesn't have highlighting yet
102command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200104HiLink herculesStatement Statement
105HiLink herculesType Type
106HiLink herculesComment Comment
107HiLink herculesPreProc PreProc
108HiLink herculesTodo Todo
109HiLink herculesOutput Include
110HiLink herculesCmdCmnt Identifier
111HiLink herculesNumber Number
112HiLink herculesBraceError herculesError
113HiLink herculesCurlyError herculesError
114HiLink herculesParenError herculesError
115HiLink herculesError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200117delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +0000118
119let b:current_syntax = "hercules"
120
121" vim: ts=8