]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/catalog/modes/vhdl.xml
basis/xmode: refactor to be deploy friendly.
[factor.git] / basis / xmode / catalog / modes / vhdl.xml
1 <?xml version="1.0"?>
2 <!--
3   contributed by M. Cesar R. Lacruz (mcesar@sec.upm.es)
4   v1.1 2008/08/29
5   from previous work by Dante Fabrizio and Nitsan Vardi
6 -->
7
8 <!DOCTYPE MODE SYSTEM "xmode.dtd">
9
10 <MODE>
11         <PROPS>
12                 <PROPERTY NAME="label" VALUE="VHDL"/>
13                 <PROPERTY NAME="lineComment" VALUE="--"/>
14                 <PROPERTY NAME="contextInsensitive" VALUE="true" />
15         </PROPS>
16         <RULES IGNORE_CASE="TRUE">
17
18                 <!-- string -->
19                 <SPAN_REGEXP TYPE="LITERAL4" AT_WORD_START="TRUE" NO_LINE_BREAK="TRUE">
20                         <BEGIN>[box]?"</BEGIN>
21                         <END>"</END>
22                 </SPAN_REGEXP>
23                 <SPAN_REGEXP TYPE="LITERAL4" AT_WORD_START="TRUE" NO_LINE_BREAK="TRUE">
24                         <BEGIN>[box]?%</BEGIN>
25                         <END>%</END>
26                 </SPAN_REGEXP>
27
28                 <!-- char -->
29                 <SEQ_REGEXP TYPE="LITERAL1" HASH_CHAR="'">(?:'[\x20-\x7e\xa0-\xff]')</SEQ_REGEXP>
30
31                 <!-- predefined attribute -->
32                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'left\b</SEQ_REGEXP>
33                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'right\b</SEQ_REGEXP>
34                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'low\b</SEQ_REGEXP>
35                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'high\b</SEQ_REGEXP>
36                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'ascending\b</SEQ_REGEXP>
37                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'image\b</SEQ_REGEXP>
38                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'value\b</SEQ_REGEXP>
39                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'pos\b</SEQ_REGEXP>
40                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'val\b</SEQ_REGEXP>
41                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'succ\b</SEQ_REGEXP>
42                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'pred\b</SEQ_REGEXP>
43                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'leftof\b</SEQ_REGEXP>
44                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'rightof\b</SEQ_REGEXP>
45                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'base\b</SEQ_REGEXP>
46                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'delayed\b</SEQ_REGEXP>
47                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'stable\b</SEQ_REGEXP>
48                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'quiet\b</SEQ_REGEXP>
49                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'transaction\b</SEQ_REGEXP>
50                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'event\b</SEQ_REGEXP>
51                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'active\b</SEQ_REGEXP>
52                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'last_event\b</SEQ_REGEXP>
53                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'last_active\b</SEQ_REGEXP>
54                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'last_value\b</SEQ_REGEXP>
55                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'driving\b</SEQ_REGEXP>
56                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'driving_value\b</SEQ_REGEXP>
57                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'range\b</SEQ_REGEXP>
58                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'reverse_range\b</SEQ_REGEXP>
59                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'length\b</SEQ_REGEXP>
60                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'simple_name\b</SEQ_REGEXP>
61                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'path_name\b</SEQ_REGEXP>
62                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'instance_name\b</SEQ_REGEXP>
63                 <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'foreign\b</SEQ_REGEXP>
64
65                 <!-- other attribute -->
66                 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD3">'</MARK_FOLLOWING>
67
68                 <!-- comment -->
69                 <EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>
70
71                 <!-- label -->
72                 <!-- sorry, but 'label : component_name', 'label : procedure_name'
73                       & 'label : variable :=' are not managed, as they collide with
74                       'generic_name : generic_type' -->
75                 <SEQ_REGEXP TYPE="LABEL" AT_WHITESPACE_END="TRUE">
76                         (\w|\w[\w\d_]*[\w\d])\s*(?=:)(?!:=)(?!:\s*\d)(?=:\s*(if\b|case\b|while\b|for\b|loop\b|next\b|null\b|block\b|process\b|wait\b|postponed\b|assert\b|with\b|entity\b|component\b|configuration\b|exit\b|return\b|(?:(?:\w[\w\d_]*\w|\w)\s*&lt;=)))
77                 </SEQ_REGEXP>
78
79                 <!-- operator -->
80                 <SEQ TYPE="OPERATOR">(</SEQ>
81                 <SEQ TYPE="OPERATOR">)</SEQ>
82                 <SEQ TYPE="OPERATOR">=&gt;</SEQ>
83                 <SEQ TYPE="OPERATOR">**</SEQ>
84                 <SEQ TYPE="OPERATOR">:=</SEQ>
85                 <SEQ TYPE="OPERATOR">/=</SEQ>
86                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>
87                 <SEQ TYPE="OPERATOR">&lt;=</SEQ>
88                 <SEQ TYPE="OPERATOR">&lt;&gt;</SEQ>
89                 <SEQ TYPE="OPERATOR">=</SEQ>
90                 <SEQ TYPE="OPERATOR">:</SEQ>
91                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
92                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
93                 <SEQ TYPE="OPERATOR">+</SEQ>
94                 <SEQ TYPE="OPERATOR">-</SEQ>
95                 <SEQ TYPE="OPERATOR">/</SEQ>
96                 <SEQ TYPE="OPERATOR">*</SEQ>
97                 <SEQ TYPE="OPERATOR">&amp;</SEQ>
98                 <SEQ TYPE="OPERATOR">|</SEQ>
99
100                 <!-- number -->
101                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE"
102                         >\d{1,2}#(?:(?:[\da-f][\da-f_]*\.?[\da-f_]*[\da-f])|[\da-f])#(?:e[+-]?(?:\d[\d_]*\d|\d))?
103                 </SEQ_REGEXP>
104                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE"
105                         >\d{1,2}:(?:(?:[\da-f][\da-f_]*\.?[\da-f_]*[\da-f])|[\da-f]):(?:e[+-]?(?:\d[\d_]*\d|\d))?
106                 </SEQ_REGEXP>
107                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE"
108                         >(?:(?:\d[\d_]*\.?[\d_]*\d)|\d)(?:e[+-]?(?:\d[\d_]*\d|\d))?
109                 </SEQ_REGEXP>
110
111                 <KEYWORDS>
112                         <!-- VHDL-87 keyword -->
113                         <KEYWORD1>access</KEYWORD1>
114                         <KEYWORD1>after</KEYWORD1>
115                         <KEYWORD1>alias</KEYWORD1>
116                         <KEYWORD1>all</KEYWORD1>
117                         <KEYWORD1>architecture</KEYWORD1>
118                         <KEYWORD1>array</KEYWORD1>
119                         <KEYWORD1>assert</KEYWORD1>
120                         <KEYWORD1>attribute</KEYWORD1>
121                         <KEYWORD1>begin</KEYWORD1>
122                         <KEYWORD1>block</KEYWORD1>
123                         <KEYWORD1>body</KEYWORD1>
124                         <KEYWORD1>buffer</KEYWORD1>
125                         <KEYWORD1>bus</KEYWORD1>
126                         <KEYWORD1>case</KEYWORD1>
127                         <KEYWORD1>component</KEYWORD1>
128                         <KEYWORD1>configuration</KEYWORD1>
129                         <KEYWORD1>constant</KEYWORD1>
130                         <KEYWORD1>disconnect</KEYWORD1>
131                         <KEYWORD1>downto</KEYWORD1>
132                         <KEYWORD1>else</KEYWORD1>
133                         <KEYWORD1>elsif</KEYWORD1>
134                         <KEYWORD1>end</KEYWORD1>
135                         <KEYWORD1>entity</KEYWORD1>
136                         <KEYWORD1>exit</KEYWORD1>
137                         <KEYWORD1>file</KEYWORD1>
138                         <KEYWORD1>for</KEYWORD1>
139                         <KEYWORD1>function</KEYWORD1>
140                         <KEYWORD1>generate</KEYWORD1>
141                         <KEYWORD1>generic</KEYWORD1>
142                         <KEYWORD1>guarded</KEYWORD1>
143                         <KEYWORD1>if</KEYWORD1>
144                         <KEYWORD1>in</KEYWORD1>
145                         <KEYWORD1>inout</KEYWORD1>
146                         <KEYWORD1>is</KEYWORD1>
147                         <KEYWORD1>label</KEYWORD1>
148                         <KEYWORD1>library</KEYWORD1>
149                         <KEYWORD1>linkage</KEYWORD1>
150                         <KEYWORD1>loop</KEYWORD1>
151                         <KEYWORD1>map</KEYWORD1>
152                         <KEYWORD1>new</KEYWORD1>
153                         <KEYWORD1>next</KEYWORD1>
154                         <KEYWORD1>null</KEYWORD1>
155                         <KEYWORD1>of</KEYWORD1>
156                         <KEYWORD1>on</KEYWORD1>
157                         <KEYWORD1>open</KEYWORD1>
158                         <KEYWORD1>others</KEYWORD1>
159                         <KEYWORD1>out</KEYWORD1>
160                         <KEYWORD1>package</KEYWORD1>
161                         <KEYWORD1>port</KEYWORD1>
162                         <KEYWORD1>procedure</KEYWORD1>
163                         <KEYWORD1>process</KEYWORD1>
164                         <KEYWORD1>range</KEYWORD1>
165                         <KEYWORD1>record</KEYWORD1>
166                         <KEYWORD1>register</KEYWORD1>
167                         <KEYWORD1>report</KEYWORD1>
168                         <KEYWORD1>return</KEYWORD1>
169                         <KEYWORD1>select</KEYWORD1>
170                         <KEYWORD1>severity</KEYWORD1>
171                         <KEYWORD1>signal</KEYWORD1>
172                         <KEYWORD1>subtype</KEYWORD1>
173                         <KEYWORD1>then</KEYWORD1>
174                         <KEYWORD1>to</KEYWORD1>
175                         <KEYWORD1>transport</KEYWORD1>
176                         <KEYWORD1>type</KEYWORD1>
177                         <KEYWORD1>units</KEYWORD1>
178                         <KEYWORD1>until</KEYWORD1>
179                         <KEYWORD1>use</KEYWORD1>
180                         <KEYWORD1>variable</KEYWORD1>
181                         <KEYWORD1>wait</KEYWORD1>
182                         <KEYWORD1>when</KEYWORD1>
183                         <KEYWORD1>while</KEYWORD1>
184                         <KEYWORD1>with</KEYWORD1>
185
186                         <!-- VHDL-93 new keyword -->
187                         <KEYWORD1>group</KEYWORD1>
188                         <KEYWORD1>impure</KEYWORD1>
189                         <KEYWORD1>inertial</KEYWORD1>
190                         <KEYWORD1>literal</KEYWORD1>
191                         <KEYWORD1>postponed</KEYWORD1>
192                         <KEYWORD1>pure</KEYWORD1>
193                         <KEYWORD1>reject</KEYWORD1>
194                         <KEYWORD1>shared</KEYWORD1>
195                         <KEYWORD1>unaffected</KEYWORD1>
196
197                         <!-- VHDL-2001 new keyword -->
198                         <KEYWORD1>protected</KEYWORD1>
199
200                         <!-- VHDL-87 keyword, but shown as operator -->
201                         <OPERATOR>abs</OPERATOR>
202                         <OPERATOR>and</OPERATOR>
203                         <OPERATOR>mod</OPERATOR>
204                         <OPERATOR>nand</OPERATOR>
205                         <OPERATOR>nor</OPERATOR>
206                         <OPERATOR>not</OPERATOR>
207                         <OPERATOR>or</OPERATOR>
208                         <OPERATOR>rem</OPERATOR>
209                         <OPERATOR>xor</OPERATOR>
210
211                         <!-- VHDL-93 new keyword, but shown as operator -->
212                         <OPERATOR>rol</OPERATOR>
213                         <OPERATOR>ror</OPERATOR>
214                         <OPERATOR>sll</OPERATOR>
215                         <OPERATOR>srl</OPERATOR>
216                         <OPERATOR>sla</OPERATOR>
217                         <OPERATOR>sra</OPERATOR>
218                         <OPERATOR>xnor</OPERATOR>
219
220                         <!-- VHDL-87 keyword, but shown as function -->
221                         <FUNCTION>deallocate</FUNCTION>
222
223                         <!-- built-in & standard type -->
224                         <KEYWORD2>bit</KEYWORD2>
225                         <KEYWORD2>bit_vector</KEYWORD2>
226                         <KEYWORD2>boolean</KEYWORD2>
227                         <KEYWORD2>character</KEYWORD2>
228                         <KEYWORD2>delay_length</KEYWORD2>
229                         <FUNCTION>now</FUNCTION>
230                         <FUNCTION>file_open</FUNCTION>
231                         <FUNCTION>file_close</FUNCTION>
232                         <FUNCTION>read</FUNCTION>
233                         <FUNCTION>write</FUNCTION>
234                         <FUNCTION>endfile</FUNCTION>
235                         <KEYWORD2>file_open_kind</KEYWORD2>
236                         <KEYWORD2>file_open_status</KEYWORD2>
237                         <KEYWORD2>integer</KEYWORD2>
238                         <KEYWORD2>natural</KEYWORD2>
239                         <KEYWORD2>positive</KEYWORD2>
240                         <KEYWORD2>real</KEYWORD2>
241                         <KEYWORD2>severity_level</KEYWORD2>
242                         <KEYWORD2>string</KEYWORD2>
243                         <KEYWORD2>time</KEYWORD2>
244                         <!-- boolean -->
245                         <LITERAL1>false</LITERAL1>
246                         <LITERAL1>true</LITERAL1>
247                         <!-- char, only those not having a ' ' representation -->
248                         <LITERAL1>nul</LITERAL1>
249                         <LITERAL1>soh</LITERAL1>
250                         <LITERAL1>stx</LITERAL1>
251                         <LITERAL1>etx</LITERAL1>
252                         <LITERAL1>eot</LITERAL1>
253                         <LITERAL1>enq</LITERAL1>
254                         <LITERAL1>ack</LITERAL1>
255                         <LITERAL1>bel</LITERAL1>
256                         <LITERAL1>bs</LITERAL1>
257                         <LITERAL1>ht</LITERAL1>
258                         <LITERAL1>lf</LITERAL1>
259                         <LITERAL1>vt</LITERAL1>
260                         <LITERAL1>ff</LITERAL1>
261                         <LITERAL1>cr</LITERAL1>
262                         <LITERAL1>so</LITERAL1>
263                         <LITERAL1>si</LITERAL1>
264                         <LITERAL1>dle</LITERAL1>
265                         <LITERAL1>dc1</LITERAL1>
266                         <LITERAL1>dc2</LITERAL1>
267                         <LITERAL1>dc3</LITERAL1>
268                         <LITERAL1>dc4</LITERAL1>
269                         <LITERAL1>nak</LITERAL1>
270                         <LITERAL1>syn</LITERAL1>
271                         <LITERAL1>etb</LITERAL1>
272                         <LITERAL1>can</LITERAL1>
273                         <LITERAL1>em</LITERAL1>
274                         <LITERAL1>sub</LITERAL1>
275                         <LITERAL1>esc</LITERAL1>
276                         <LITERAL1>fsp</LITERAL1>
277                         <LITERAL1>gsp</LITERAL1>
278                         <LITERAL1>rsp</LITERAL1>
279                         <LITERAL1>usp</LITERAL1>
280                         <LITERAL1>del</LITERAL1>
281                         <LITERAL1>c128</LITERAL1>
282                         <LITERAL1>c129</LITERAL1>
283                         <LITERAL1>c130</LITERAL1>
284                         <LITERAL1>c131</LITERAL1>
285                         <LITERAL1>c132</LITERAL1>
286                         <LITERAL1>c133</LITERAL1>
287                         <LITERAL1>c134</LITERAL1>
288                         <LITERAL1>c135</LITERAL1>
289                         <LITERAL1>c136</LITERAL1>
290                         <LITERAL1>c137</LITERAL1>
291                         <LITERAL1>c138</LITERAL1>
292                         <LITERAL1>c139</LITERAL1>
293                         <LITERAL1>c140</LITERAL1>
294                         <LITERAL1>c141</LITERAL1>
295                         <LITERAL1>c142</LITERAL1>
296                         <LITERAL1>c143</LITERAL1>
297                         <LITERAL1>c144</LITERAL1>
298                         <LITERAL1>c145</LITERAL1>
299                         <LITERAL1>c146</LITERAL1>
300                         <LITERAL1>c147</LITERAL1>
301                         <LITERAL1>c148</LITERAL1>
302                         <LITERAL1>c149</LITERAL1>
303                         <LITERAL1>c150</LITERAL1>
304                         <LITERAL1>c151</LITERAL1>
305                         <LITERAL1>c152</LITERAL1>
306                         <LITERAL1>c153</LITERAL1>
307                         <LITERAL1>c154</LITERAL1>
308                         <LITERAL1>c155</LITERAL1>
309                         <LITERAL1>c156</LITERAL1>
310                         <LITERAL1>c157</LITERAL1>
311                         <LITERAL1>c158</LITERAL1>
312                         <LITERAL1>c159</LITERAL1>
313                         <!-- severity_level -->
314                         <LITERAL1>note</LITERAL1>
315                         <LITERAL1>warning</LITERAL1>
316                         <LITERAL1>error</LITERAL1>
317                         <LITERAL1>failure</LITERAL1>
318                         <!-- file_open_kind -->
319                         <LITERAL1>read_mode</LITERAL1>
320                         <LITERAL1>write_mode</LITERAL1>
321                         <LITERAL1>append_mode</LITERAL1>
322                         <!-- file_open_status -->
323                         <LITERAL1>open_ok</LITERAL1>
324                         <LITERAL1>status_error</LITERAL1>
325                         <LITERAL1>name_error</LITERAL1>
326                         <LITERAL1>mode_error</LITERAL1>
327
328                         <!-- ieee.std_logic_1164 -->
329                         <KEYWORD2>std_logic</KEYWORD2>
330                         <KEYWORD2>std_ulogic</KEYWORD2>
331                         <KEYWORD2>std_logic_vector</KEYWORD2>
332                         <KEYWORD2>std_ulogic_vector</KEYWORD2>
333                         <KEYWORD2>x01</KEYWORD2>
334                         <KEYWORD2>x01z</KEYWORD2>
335                         <KEYWORD2>ux01</KEYWORD2>
336                         <KEYWORD2>ux01z</KEYWORD2>
337                         <FUNCTION>to_bit</FUNCTION>
338                         <FUNCTION>to_bitvector</FUNCTION>
339                         <FUNCTION>to_stdulogic</FUNCTION>
340                         <FUNCTION>to_stdlogicvector</FUNCTION>
341                         <FUNCTION>to_stdulogicvector</FUNCTION>
342                         <FUNCTION>to_x01</FUNCTION>
343                         <FUNCTION>to_x01z</FUNCTION>
344                         <FUNCTION>to_ux01</FUNCTION>
345                         <FUNCTION>rising_edge</FUNCTION>
346                         <FUNCTION>falling_edge</FUNCTION>
347                         <FUNCTION>is_x</FUNCTION>
348
349                         <!-- ieee.numeric_std -->
350                         <KEYWORD2>signed</KEYWORD2>
351                         <KEYWORD2>unsigned</KEYWORD2>
352                         <FUNCTION>shift_left</FUNCTION>
353                         <FUNCTION>shift_right</FUNCTION>
354                         <FUNCTION>rotate_left</FUNCTION>
355                         <FUNCTION>rotate_right</FUNCTION>
356                         <FUNCTION>resize</FUNCTION>
357                         <FUNCTION>std_match</FUNCTION>
358                         <FUNCTION>to_integer</FUNCTION>
359                         <FUNCTION>to_unsigned</FUNCTION>
360                         <FUNCTION>to_signed</FUNCTION>
361
362                         <!-- std.textio -->
363                         <KEYWORD2>line</KEYWORD2>
364                         <KEYWORD2>text</KEYWORD2>
365                         <KEYWORD2>side</KEYWORD2>
366                         <KEYWORD2>width</KEYWORD2>
367                         <LITERAL2>left</LITERAL2>
368                         <LITERAL2>right</LITERAL2>
369                         <LITERAL2>std_input</LITERAL2>
370                         <LITERAL2>std_output</LITERAL2>
371                         <LITERAL3>input</LITERAL3>
372                         <LITERAL3>output</LITERAL3>
373                         <FUNCTION>readline</FUNCTION>
374                         <FUNCTION>writeline</FUNCTION>
375
376                         <!-- ieee.std_logic_textio -->
377                         <FUNCTION>oread</FUNCTION>
378                         <FUNCTION>owrite</FUNCTION>
379                         <FUNCTION>hread</FUNCTION>
380                         <FUNCTION>hwrite</FUNCTION>
381
382                         <!-- ieee.std_logic_arith -->
383                         <KEYWORD2>signed</KEYWORD2>
384                         <KEYWORD2>unsigned</KEYWORD2>
385                         <KEYWORD2>small_int</KEYWORD2>
386                         <FUNCTION>conv_integer</FUNCTION>
387                         <FUNCTION>conv_unsigned</FUNCTION>
388                         <FUNCTION>conv_signed</FUNCTION>
389                         <FUNCTION>conv_std_logic_vector</FUNCTION>
390                         <FUNCTION>shl</FUNCTION>
391                         <FUNCTION>shr</FUNCTION>
392                         <FUNCTION>ext</FUNCTION>
393                         <FUNCTION>sxt</FUNCTION>
394
395                         <!-- ieee.math_real -->
396                         <LITERAL2>math_e</LITERAL2>
397                         <LITERAL2>math_1_over_e</LITERAL2>
398                         <LITERAL2>math_pi</LITERAL2>
399                         <LITERAL2>math_2_pi</LITERAL2>
400                         <LITERAL2>math_1_over_pi</LITERAL2>
401                         <LITERAL2>math_pi_over_2</LITERAL2>
402                         <LITERAL2>math_pi_over_3</LITERAL2>
403                         <LITERAL2>math_pi_over_4</LITERAL2>
404                         <LITERAL2>math_3_pi_over_2</LITERAL2>
405                         <LITERAL2>math_log_of_2</LITERAL2>
406                         <LITERAL2>math_log_of_10</LITERAL2>
407                         <LITERAL2>math_log2_of_e</LITERAL2>
408                         <LITERAL2>math_log10_of_e</LITERAL2>
409                         <LITERAL2>math_sqrt_2</LITERAL2>
410                         <LITERAL2>math_1_over_sqrt_2</LITERAL2>
411                         <LITERAL2>math_sqrt_pi</LITERAL2>
412                         <LITERAL2>math_deg_to_rad</LITERAL2>
413                         <LITERAL2>math_rad_to_deg</LITERAL2>
414                         <FUNCTION>sign</FUNCTION>
415                         <FUNCTION>ceil</FUNCTION>
416                         <FUNCTION>floor</FUNCTION>
417                         <FUNCTION>round</FUNCTION>
418                         <FUNCTION>trunc</FUNCTION>
419                         <FUNCTION>realmax</FUNCTION>
420                         <FUNCTION>realmin</FUNCTION>
421                         <FUNCTION>uniform</FUNCTION>
422                         <FUNCTION>sqrt</FUNCTION>
423                         <FUNCTION>cbrt</FUNCTION>
424                         <FUNCTION>exp</FUNCTION>
425                         <FUNCTION>log</FUNCTION>
426                         <FUNCTION>log2</FUNCTION>
427                         <FUNCTION>log10</FUNCTION>
428                         <FUNCTION>sin</FUNCTION>
429                         <FUNCTION>cos</FUNCTION>
430                         <FUNCTION>tan</FUNCTION>
431                         <FUNCTION>arcsin</FUNCTION>
432                         <FUNCTION>arccos</FUNCTION>
433                         <FUNCTION>arctan</FUNCTION>
434                         <FUNCTION>sinh</FUNCTION>
435                         <FUNCTION>cosh</FUNCTION>
436                         <FUNCTION>tanh</FUNCTION>
437                         <FUNCTION>arcsinh</FUNCTION>
438                         <FUNCTION>arccosh</FUNCTION>
439                         <FUNCTION>arctanh</FUNCTION>
440
441                         <!-- ieee.math_complex -->
442                         <KEYWORD2>complex</KEYWORD2>
443                         <KEYWORD2>positive_real</KEYWORD2>
444                         <KEYWORD2>principal_value</KEYWORD2>
445                         <KEYWORD2>complex_polar</KEYWORD2>
446                         <KEYWORD2>re</KEYWORD2>
447                         <KEYWORD2>im</KEYWORD2>
448                         <KEYWORD2>mag</KEYWORD2>
449                         <KEYWORD2>arg</KEYWORD2>
450                         <LITERAL2>math_cbase_1</LITERAL2>
451                         <LITERAL2>math_cbase_j</LITERAL2>
452                         <LITERAL2>math_czero</LITERAL2>
453                         <FUNCTION>cmplx</FUNCTION>
454                         <FUNCTION>get_principal_value</FUNCTION>
455                         <FUNCTION>complex_to_polar</FUNCTION>
456                         <FUNCTION>polar_to_complex</FUNCTION>
457                         <FUNCTION>conj</FUNCTION>
458
459                 </KEYWORDS>
460         </RULES>
461 </MODE>
462
463