]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/xmode/modes/verilog.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / verilog.xml
index ee1602ec43b26a34015c61b39b3a5843175187f3..38a1ee5cced765df2203527f1fb06775c4f6d699 100644 (file)
-<?xml version="1.0"?>\r
-\r
-<!DOCTYPE MODE SYSTEM "xmode.dtd">\r
-\r
-<!-- Written By: Wojciech Stryjewski - thvortex@sourceforge.net -->\r
-\r
-<MODE>\r
-       <PROPS>\r
-               <!-- Rules for indenting:\r
-                  - Case expressions (a line ending with colon) are indented\r
-                  - Keywords begin, module, task, etc. always indented\r
-                  - Keywords if, while, etc. indent only if ; not on the same line\r
-               -->\r
-               <PROPERTY NAME="indentNextLines" VALUE="(.*:\s*)|(\s*(begin|fork|task|table|specify|primitive|module|generate|function|case[xz]?)\b.*)|(\s*(always|if|else|for|forever|initial|repeat|while)\b[^;]*)" />\r
-\r
-               <PROPERTY NAME="commentStart" VALUE="/*" />\r
-               <PROPERTY NAME="commentEnd" VALUE="*/" />\r
-               <PROPERTY NAME="lineComment" VALUE="//" />\r
-               <PROPERTY NAME="noWordSep" VALUE="_'" />\r
-               <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />\r
-       </PROPS>\r
-       <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE"\r
-               DIGIT_RE="([\p{Digit}]|_)+" NO_WORD_SEP="'">\r
-               <!-- Comments -->\r
-               <SPAN TYPE="COMMENT1">\r
-                       <BEGIN>/*</BEGIN>\r
-                       <END>*/</END>\r
-               </SPAN>\r
-               <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>\r
-\r
-               <!--String Literals -->\r
-               <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE">\r
-                       <BEGIN>"</BEGIN>\r
-                       <END>"</END>\r
-               </SPAN>\r
-\r
-               <SEQ TYPE="DIGIT">'d</SEQ>\r
-               <SEQ TYPE="DIGIT">'h</SEQ>\r
-               <SEQ TYPE="DIGIT">'b</SEQ>\r
-               <SEQ TYPE="DIGIT">'o</SEQ>\r
-\r
-               <!-- Function calls, module instantiation, system tasks with args -->\r
-               <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>\r
-               <SEQ TYPE="OPERATOR">)</SEQ>\r
-\r
-               <!-- Operators -->\r
-               <SEQ TYPE="OPERATOR">=</SEQ>\r
-               <SEQ TYPE="OPERATOR">!</SEQ>\r
-               <SEQ TYPE="OPERATOR">+</SEQ>\r
-               <SEQ TYPE="OPERATOR">-</SEQ>\r
-               <SEQ TYPE="OPERATOR">/</SEQ>\r
-               <SEQ TYPE="OPERATOR">*</SEQ>\r
-               <SEQ TYPE="OPERATOR">&gt;</SEQ>\r
-               <SEQ TYPE="OPERATOR">&lt;</SEQ>\r
-               <SEQ TYPE="OPERATOR">%</SEQ>\r
-               <SEQ TYPE="OPERATOR">&amp;</SEQ>\r
-               <SEQ TYPE="OPERATOR">|</SEQ>\r
-               <SEQ TYPE="OPERATOR">^</SEQ>\r
-               <SEQ TYPE="OPERATOR">~</SEQ>\r
-               <SEQ TYPE="OPERATOR">}</SEQ>\r
-               <SEQ TYPE="OPERATOR">{</SEQ>\r
-\r
-               <KEYWORDS>\r
-                       <!-- Regular Keywords -->\r
-                       <KEYWORD1>always</KEYWORD1>\r
-                       <KEYWORD1>assign</KEYWORD1>\r
-                       <KEYWORD1>begin</KEYWORD1>\r
-                       <KEYWORD1>case</KEYWORD1>\r
-                       <KEYWORD1>casex</KEYWORD1>\r
-                       <KEYWORD1>casez</KEYWORD1>\r
-                       <KEYWORD1>default</KEYWORD1>\r
-                       <KEYWORD1>deassign</KEYWORD1>\r
-                       <KEYWORD1>disable</KEYWORD1>\r
-                       <KEYWORD1>else</KEYWORD1>\r
-                       <KEYWORD1>end</KEYWORD1>\r
-                       <KEYWORD1>endcase</KEYWORD1>\r
-                       <KEYWORD1>endfunction</KEYWORD1>\r
-                       <KEYWORD1>endgenerate</KEYWORD1>\r
-                       <KEYWORD1>endmodule</KEYWORD1>\r
-                       <KEYWORD1>endprimitive</KEYWORD1>\r
-                       <KEYWORD1>endspecify</KEYWORD1>\r
-                       <KEYWORD1>endtable</KEYWORD1>\r
-                       <KEYWORD1>endtask</KEYWORD1>\r
-                       <KEYWORD1>for</KEYWORD1>\r
-                       <KEYWORD1>force</KEYWORD1>\r
-                       <KEYWORD1>forever</KEYWORD1>\r
-                       <KEYWORD1>fork</KEYWORD1>\r
-                       <KEYWORD1>function</KEYWORD1>\r
-                       <KEYWORD1>generate</KEYWORD1>\r
-                       <KEYWORD1>if</KEYWORD1>\r
-                       <KEYWORD1>initial</KEYWORD1>\r
-                       <KEYWORD1>join</KEYWORD1>\r
-                       <KEYWORD1>macromodule</KEYWORD1>\r
-                       <KEYWORD1>module</KEYWORD1>\r
-                       <KEYWORD1>negedge</KEYWORD1>\r
-                       <KEYWORD1>posedge</KEYWORD1>\r
-                       <KEYWORD1>primitive</KEYWORD1>\r
-                       <KEYWORD1>repeat</KEYWORD1>\r
-                       <KEYWORD1>release</KEYWORD1>\r
-                       <KEYWORD1>specify</KEYWORD1>\r
-                       <KEYWORD1>table</KEYWORD1>\r
-                       <KEYWORD1>task</KEYWORD1>\r
-                       <KEYWORD1>wait</KEYWORD1>\r
-                       <KEYWORD1>while</KEYWORD1>\r
-\r
-                       <!-- Compiler Directives -->\r
-                       <KEYWORD2>`include</KEYWORD2>\r
-                       <KEYWORD2>`define</KEYWORD2>\r
-                       <KEYWORD2>`undef</KEYWORD2>\r
-                       <KEYWORD2>`ifdef</KEYWORD2>\r
-                       <KEYWORD2>`ifndef</KEYWORD2>\r
-                       <KEYWORD2>`else</KEYWORD2>\r
-                       <KEYWORD2>`endif</KEYWORD2>\r
-                       <KEYWORD2>`timescale</KEYWORD2>\r
-                       <KEYWORD2>`resetall</KEYWORD2>\r
-                       <KEYWORD2>`signed</KEYWORD2>\r
-                       <KEYWORD2>`unsigned</KEYWORD2>\r
-                       <KEYWORD2>`celldefine</KEYWORD2>\r
-                       <KEYWORD2>`endcelldefine</KEYWORD2>\r
-                       <KEYWORD2>`default_nettype</KEYWORD2>\r
-                       <KEYWORD2>`unconnected_drive</KEYWORD2>\r
-                       <KEYWORD2>`nounconnected_drive</KEYWORD2>\r
-                       <KEYWORD2>`protect</KEYWORD2>\r
-                       <KEYWORD2>`endprotect</KEYWORD2>\r
-                       <KEYWORD2>`protected</KEYWORD2>\r
-                       <KEYWORD2>`endprotected</KEYWORD2>\r
-                       <KEYWORD2>`remove_gatename</KEYWORD2>\r
-                       <KEYWORD2>`noremove_gatename</KEYWORD2>\r
-                       <KEYWORD2>`remove_netname</KEYWORD2>\r
-                       <KEYWORD2>`noremove_netname</KEYWORD2>\r
-                       <KEYWORD2>`expand_vectornets</KEYWORD2>\r
-                       <KEYWORD2>`noexpand_vectornets</KEYWORD2>\r
-                       <KEYWORD2>`autoexpand_vectornets</KEYWORD2>\r
-\r
-                       <!-- Type Declaration Keywords -->\r
-                       <KEYWORD3>integer</KEYWORD3>\r
-                       <KEYWORD3>reg</KEYWORD3>\r
-                       <KEYWORD3>time</KEYWORD3>\r
-                       <KEYWORD3>realtime</KEYWORD3>\r
-                       <KEYWORD3>defparam</KEYWORD3>\r
-                       <KEYWORD3>parameter</KEYWORD3>\r
-                       <KEYWORD3>event</KEYWORD3>\r
-                       <KEYWORD3>wire</KEYWORD3>\r
-                       <KEYWORD3>wand</KEYWORD3>\r
-                       <KEYWORD3>wor</KEYWORD3>\r
-                       <KEYWORD3>tri</KEYWORD3>\r
-                       <KEYWORD3>triand</KEYWORD3>\r
-                       <KEYWORD3>trior</KEYWORD3>\r
-                       <KEYWORD3>tri0</KEYWORD3>\r
-                       <KEYWORD3>tri1</KEYWORD3>\r
-                       <KEYWORD3>trireg</KEYWORD3>\r
-                       <KEYWORD3>vectored</KEYWORD3>\r
-                       <KEYWORD3>scalared</KEYWORD3>\r
-                       <KEYWORD3>input</KEYWORD3>\r
-                       <KEYWORD3>output</KEYWORD3>\r
-                       <KEYWORD3>inout</KEYWORD3>\r
-\r
-                       <!-- Signal Strengths -->\r
-                       <KEYWORD3>supply0</KEYWORD3>\r
-                       <KEYWORD3>supply1</KEYWORD3>\r
-                       <KEYWORD3>strong0</KEYWORD3>\r
-                       <KEYWORD3>strong1</KEYWORD3>\r
-                       <KEYWORD3>pull0</KEYWORD3>\r
-                       <KEYWORD3>pull1</KEYWORD3>\r
-                       <KEYWORD3>weak0</KEYWORD3>\r
-                       <KEYWORD3>weak1</KEYWORD3>\r
-                       <KEYWORD3>highz0</KEYWORD3>\r
-                       <KEYWORD3>highz1</KEYWORD3>\r
-                       <KEYWORD3>small</KEYWORD3>\r
-                       <KEYWORD3>medium</KEYWORD3>\r
-                       <KEYWORD3>large</KEYWORD3>\r
-\r
-                       <!-- System Tasks With No/Optional Arguments -->\r
-                       <FUNCTION>$stop</FUNCTION>\r
-                       <FUNCTION>$finish</FUNCTION>\r
-                       <FUNCTION>$time</FUNCTION>\r
-                       <FUNCTION>$stime</FUNCTION>\r
-                       <FUNCTION>$realtime</FUNCTION>\r
-                       <FUNCTION>$settrace</FUNCTION>\r
-                       <FUNCTION>$cleartrace</FUNCTION>\r
-                       <FUNCTION>$showscopes</FUNCTION>\r
-                       <FUNCTION>$showvars</FUNCTION>\r
-                       <FUNCTION>$monitoron</FUNCTION>\r
-                       <FUNCTION>$monitoroff</FUNCTION>\r
-                       <FUNCTION>$random</FUNCTION>\r
-                       <FUNCTION>$printtimescale</FUNCTION>\r
-                       <FUNCTION>$timeformat</FUNCTION>\r
-\r
-                       <!-- Built-in primitives -->\r
-                       <FUNCTION>and</FUNCTION>\r
-                       <FUNCTION>nand</FUNCTION>\r
-                       <FUNCTION>or</FUNCTION>\r
-                       <FUNCTION>nor</FUNCTION>\r
-                       <FUNCTION>xor</FUNCTION>\r
-                       <FUNCTION>xnor</FUNCTION>\r
-                       <FUNCTION>buf</FUNCTION>\r
-                       <FUNCTION>bufif0</FUNCTION>\r
-                       <FUNCTION>bufif1</FUNCTION>\r
-                       <FUNCTION>not</FUNCTION>\r
-                       <FUNCTION>notif0</FUNCTION>\r
-                       <FUNCTION>notif1</FUNCTION>\r
-                       <FUNCTION>nmos</FUNCTION>\r
-                       <FUNCTION>pmos</FUNCTION>\r
-                       <FUNCTION>cmos</FUNCTION>\r
-                       <FUNCTION>rnmos</FUNCTION>\r
-                       <FUNCTION>rpmos</FUNCTION>\r
-                       <FUNCTION>rcmos</FUNCTION>\r
-                       <FUNCTION>tran</FUNCTION>\r
-                       <FUNCTION>tranif0</FUNCTION>\r
-                       <FUNCTION>tranif1</FUNCTION>\r
-                       <FUNCTION>rtran</FUNCTION>\r
-                       <FUNCTION>rtranif0</FUNCTION>\r
-                       <FUNCTION>rtranif1</FUNCTION>\r
-                       <FUNCTION>pullup</FUNCTION>\r
-                       <FUNCTION>pulldown</FUNCTION>\r
-               </KEYWORDS>\r
-       </RULES>\r
-</MODE>\r
-\r
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!-- Written By: Wojciech Stryjewski - thvortex@sourceforge.net -->
+
+<MODE>
+       <PROPS>
+               <!-- Rules for indenting:
+                  - Case expressions (a line ending with colon) are indented
+                  - Keywords begin, module, task, etc. always indented
+                  - Keywords if, while, etc. indent only if ; not on the same line
+               -->
+               <PROPERTY NAME="indentNextLines" VALUE="(.*:\s*)|(\s*(begin|fork|task|table|specify|primitive|module|generate|function|case[xz]?)\b.*)|(\s*(always|if|else|for|forever|initial|repeat|while)\b[^;]*)" />
+
+               <PROPERTY NAME="commentStart" VALUE="/*" />
+               <PROPERTY NAME="commentEnd" VALUE="*/" />
+               <PROPERTY NAME="lineComment" VALUE="//" />
+               <PROPERTY NAME="noWordSep" VALUE="_'" />
+               <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
+       </PROPS>
+       <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE"
+        DIGIT_RE="([\p{Digit}]|_|[a-fA-F])+" NO_WORD_SEP="'">
+               <!-- Comments -->
+               <SPAN TYPE="COMMENT1">
+                       <BEGIN>/*</BEGIN>
+                       <END>*/</END>
+               </SPAN>
+               <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
+
+               <!--String Literals -->
+               <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="FALSE">
+                       <BEGIN>"</BEGIN>
+                       <END>"</END>
+               </SPAN>
+
+               <SEQ TYPE="DIGIT">'d</SEQ>
+               <SEQ TYPE="DIGIT">'h</SEQ>
+               <SEQ TYPE="DIGIT">'b</SEQ>
+               <SEQ TYPE="DIGIT">'o</SEQ>
+
+               <!-- Function calls, module instantiation, system tasks with args -->
+               <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
+               <SEQ TYPE="OPERATOR">)</SEQ>
+
+               <!-- Operators -->
+               <SEQ TYPE="OPERATOR">=</SEQ>
+               <SEQ TYPE="OPERATOR">!</SEQ>
+               <SEQ TYPE="OPERATOR">+</SEQ>
+               <SEQ TYPE="OPERATOR">-</SEQ>
+               <SEQ TYPE="OPERATOR">/</SEQ>
+               <SEQ TYPE="OPERATOR">*</SEQ>
+               <SEQ TYPE="OPERATOR">&gt;</SEQ>
+               <SEQ TYPE="OPERATOR">&lt;</SEQ>
+               <SEQ TYPE="OPERATOR">%</SEQ>
+               <SEQ TYPE="OPERATOR">&amp;</SEQ>
+               <SEQ TYPE="OPERATOR">|</SEQ>
+               <SEQ TYPE="OPERATOR">^</SEQ>
+               <SEQ TYPE="OPERATOR">~</SEQ>
+               <SEQ TYPE="OPERATOR">}</SEQ>
+               <SEQ TYPE="OPERATOR">{</SEQ>
+
+               <KEYWORDS>
+                       <!-- Regular Keywords -->
+                       <KEYWORD1>always</KEYWORD1>
+                       <KEYWORD1>assign</KEYWORD1>
+                       <KEYWORD1>begin</KEYWORD1>
+                       <KEYWORD1>case</KEYWORD1>
+                       <KEYWORD1>casex</KEYWORD1>
+                       <KEYWORD1>casez</KEYWORD1>
+                       <KEYWORD1>default</KEYWORD1>
+                       <KEYWORD1>deassign</KEYWORD1>
+                       <KEYWORD1>disable</KEYWORD1>
+                       <KEYWORD1>else</KEYWORD1>
+                       <KEYWORD1>end</KEYWORD1>
+                       <KEYWORD1>endcase</KEYWORD1>
+                       <KEYWORD1>endfunction</KEYWORD1>
+                       <KEYWORD1>endgenerate</KEYWORD1>
+                       <KEYWORD1>endmodule</KEYWORD1>
+                       <KEYWORD1>endprimitive</KEYWORD1>
+                       <KEYWORD1>endspecify</KEYWORD1>
+                       <KEYWORD1>endtable</KEYWORD1>
+                       <KEYWORD1>endtask</KEYWORD1>
+                       <KEYWORD1>for</KEYWORD1>
+                       <KEYWORD1>force</KEYWORD1>
+                       <KEYWORD1>forever</KEYWORD1>
+                       <KEYWORD1>fork</KEYWORD1>
+                       <KEYWORD1>function</KEYWORD1>
+                       <KEYWORD1>generate</KEYWORD1>
+                       <KEYWORD1>if</KEYWORD1>
+                       <KEYWORD1>initial</KEYWORD1>
+                       <KEYWORD1>join</KEYWORD1>
+                       <KEYWORD1>macromodule</KEYWORD1>
+                       <KEYWORD1>module</KEYWORD1>
+                       <KEYWORD1>negedge</KEYWORD1>
+                       <KEYWORD1>posedge</KEYWORD1>
+                       <KEYWORD1>primitive</KEYWORD1>
+                       <KEYWORD1>repeat</KEYWORD1>
+                       <KEYWORD1>release</KEYWORD1>
+                       <KEYWORD1>specify</KEYWORD1>
+                       <KEYWORD1>table</KEYWORD1>
+                       <KEYWORD1>task</KEYWORD1>
+                       <KEYWORD1>wait</KEYWORD1>
+                       <KEYWORD1>while</KEYWORD1>
+
+                       <!-- Compiler Directives -->
+                       <KEYWORD2>`include</KEYWORD2>
+                       <KEYWORD2>`define</KEYWORD2>
+                       <KEYWORD2>`undef</KEYWORD2>
+                       <KEYWORD2>`ifdef</KEYWORD2>
+                       <KEYWORD2>`ifndef</KEYWORD2>
+                       <KEYWORD2>`else</KEYWORD2>
+                       <KEYWORD2>`elsif</KEYWORD2>
+                       <KEYWORD2>`endif</KEYWORD2>
+                       <KEYWORD2>`timescale</KEYWORD2>
+                       <KEYWORD2>`resetall</KEYWORD2>
+                       <KEYWORD2>`signed</KEYWORD2>
+                       <KEYWORD2>`unsigned</KEYWORD2>
+                       <KEYWORD2>`celldefine</KEYWORD2>
+                       <KEYWORD2>`endcelldefine</KEYWORD2>
+                       <KEYWORD2>`default_nettype</KEYWORD2>
+                       <KEYWORD2>`unconnected_drive</KEYWORD2>
+                       <KEYWORD2>`nounconnected_drive</KEYWORD2>
+                       <KEYWORD2>`protect</KEYWORD2>
+                       <KEYWORD2>`endprotect</KEYWORD2>
+                       <KEYWORD2>`protected</KEYWORD2>
+                       <KEYWORD2>`endprotected</KEYWORD2>
+                       <KEYWORD2>`remove_gatename</KEYWORD2>
+                       <KEYWORD2>`noremove_gatename</KEYWORD2>
+                       <KEYWORD2>`remove_netname</KEYWORD2>
+                       <KEYWORD2>`noremove_netname</KEYWORD2>
+                       <KEYWORD2>`expand_vectornets</KEYWORD2>
+                       <KEYWORD2>`noexpand_vectornets</KEYWORD2>
+                       <KEYWORD2>`autoexpand_vectornets</KEYWORD2>
+
+                       <!-- Type Declaration Keywords -->
+                       <KEYWORD3>integer</KEYWORD3>
+                       <KEYWORD3>reg</KEYWORD3>
+                       <KEYWORD3>time</KEYWORD3>
+                       <KEYWORD3>realtime</KEYWORD3>
+                       <KEYWORD3>defparam</KEYWORD3>
+                       <KEYWORD3>parameter</KEYWORD3>
+                       <KEYWORD3>event</KEYWORD3>
+                       <KEYWORD3>wire</KEYWORD3>
+                       <KEYWORD3>wand</KEYWORD3>
+                       <KEYWORD3>wor</KEYWORD3>
+                       <KEYWORD3>tri</KEYWORD3>
+                       <KEYWORD3>triand</KEYWORD3>
+                       <KEYWORD3>trior</KEYWORD3>
+                       <KEYWORD3>tri0</KEYWORD3>
+                       <KEYWORD3>tri1</KEYWORD3>
+                       <KEYWORD3>trireg</KEYWORD3>
+                       <KEYWORD3>vectored</KEYWORD3>
+                       <KEYWORD3>scalared</KEYWORD3>
+                       <KEYWORD3>input</KEYWORD3>
+                       <KEYWORD3>output</KEYWORD3>
+                       <KEYWORD3>inout</KEYWORD3>
+                       <KEYWORD3>logic</KEYWORD3>
+
+                       <!-- Signal Strengths -->
+                       <KEYWORD3>supply0</KEYWORD3>
+                       <KEYWORD3>supply1</KEYWORD3>
+                       <KEYWORD3>strong0</KEYWORD3>
+                       <KEYWORD3>strong1</KEYWORD3>
+                       <KEYWORD3>pull0</KEYWORD3>
+                       <KEYWORD3>pull1</KEYWORD3>
+                       <KEYWORD3>weak0</KEYWORD3>
+                       <KEYWORD3>weak1</KEYWORD3>
+                       <KEYWORD3>highz0</KEYWORD3>
+                       <KEYWORD3>highz1</KEYWORD3>
+                       <KEYWORD3>small</KEYWORD3>
+                       <KEYWORD3>medium</KEYWORD3>
+                       <KEYWORD3>large</KEYWORD3>
+
+                       <!-- System Tasks With No/Optional Arguments -->
+                       <FUNCTION>$stop</FUNCTION>
+                       <FUNCTION>$finish</FUNCTION>
+                       <FUNCTION>$time</FUNCTION>
+                       <FUNCTION>$stime</FUNCTION>
+                       <FUNCTION>$realtime</FUNCTION>
+                       <FUNCTION>$settrace</FUNCTION>
+                       <FUNCTION>$cleartrace</FUNCTION>
+                       <FUNCTION>$showscopes</FUNCTION>
+                       <FUNCTION>$showvars</FUNCTION>
+                       <FUNCTION>$monitoron</FUNCTION>
+                       <FUNCTION>$monitoroff</FUNCTION>
+                       <FUNCTION>$random</FUNCTION>
+                       <FUNCTION>$printtimescale</FUNCTION>
+                       <FUNCTION>$timeformat</FUNCTION>
+
+                       <!-- Built-in primitives -->
+                       <FUNCTION>and</FUNCTION>
+                       <FUNCTION>nand</FUNCTION>
+                       <FUNCTION>or</FUNCTION>
+                       <FUNCTION>nor</FUNCTION>
+                       <FUNCTION>xor</FUNCTION>
+                       <FUNCTION>xnor</FUNCTION>
+                       <FUNCTION>buf</FUNCTION>
+                       <FUNCTION>bufif0</FUNCTION>
+                       <FUNCTION>bufif1</FUNCTION>
+                       <FUNCTION>not</FUNCTION>
+                       <FUNCTION>notif0</FUNCTION>
+                       <FUNCTION>notif1</FUNCTION>
+                       <FUNCTION>nmos</FUNCTION>
+                       <FUNCTION>pmos</FUNCTION>
+                       <FUNCTION>cmos</FUNCTION>
+                       <FUNCTION>rnmos</FUNCTION>
+                       <FUNCTION>rpmos</FUNCTION>
+                       <FUNCTION>rcmos</FUNCTION>
+                       <FUNCTION>tran</FUNCTION>
+                       <FUNCTION>tranif0</FUNCTION>
+                       <FUNCTION>tranif1</FUNCTION>
+                       <FUNCTION>rtran</FUNCTION>
+                       <FUNCTION>rtranif0</FUNCTION>
+                       <FUNCTION>rtranif1</FUNCTION>
+                       <FUNCTION>pullup</FUNCTION>
+                       <FUNCTION>pulldown</FUNCTION>
+               </KEYWORDS>
+       </RULES>
+</MODE>
+