xref: /vim-8.2.3635/runtime/syntax/hercules.vim (revision f37506f6)
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