]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/xmode/modes/csv.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / csv.xml
index 2e6c7734f01c4dacbf9c9693a6327be45e417c9c..0ce4e1277324ece3fba8306b125ac6575eaa6d69 100644 (file)
-<?xml version="1.0"?>\r
-\r
-<!DOCTYPE MODE SYSTEM "xmode.dtd">\r
-\r
-<!--\r
-\r
-Author: Jaco de Groot\r
-Version: 2.2 20070213\r
-\r
-Comma Separated Values specification used for this mode:\r
-\r
-A file containing table data where the fields are sperated by commas. Fields\r
-containing commas (,) or newlines must be quoted (surrounded by quotes (")).\r
-Quotes in quoted fields must be escaped with two quotes.\r
-\r
-Highlighted are:\r
-- Even columns\r
-- Commas seperating values\r
-- Quotes surrounding values\r
-- Escaped quotes are highlighted.\r
-\r
-It is also possible that semicolons are used instead of commas. Therefor the\r
-first rules check if the first separator found is a comma or a semicolon and\r
-then switch to the comma or semicolon rules.\r
-\r
--->\r
-\r
-<MODE>\r
-\r
-  <!-- Switch rules -->\r
-\r
-  <RULES>\r
-    <SEQ TYPE="MARKUP" DELEGATE="ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">,"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">;"</SEQ>\r
-    <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="," DELEGATE="COMMA_LAST_COLUMN">,(?=[^,]*$)</EOL_SPAN_REGEXP>\r
-    <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR=";" DELEGATE="SEMICOLON_LAST_COLUMN">;(?=[^;]*$)</EOL_SPAN_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">,</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">;</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="ODD_QUOTED">\r
-    <SEQ TYPE="MARKUP" DELEGATE="ODD_QUOTED">""</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="COMMA_MAIN">"(?=,[^"][^,]*$)</SEQ_REGEXP>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="SEMICOLON_MAIN">"(?=;[^"][^;]*$)</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">","</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">";"</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;," DELEGATE="COMMA_MAIN">",$</SEQ_REGEXP>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;;" DELEGATE="SEMICOLON_MAIN">";$</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">",</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">";</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="MAIN">"$</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="EVEN">"</SEQ>\r
-  </RULES>\r
-\r
-  <RULES DEFAULT="COMMENT1" SET="EVEN">\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">,"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">;"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">,</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">;</SEQ>\r
-  </RULES>\r
-\r
-  <RULES DEFAULT="COMMENT1" SET="EVEN_QUOTED">\r
-    <SEQ TYPE="MARKUP" DELEGATE="EVEN_QUOTED">""</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">","</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">";"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">",</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">";</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="MAIN">"</SEQ>\r
-  </RULES>\r
-\r
-  <!-- Comma rules -->\r
-\r
-  <RULES SET="COMMA_MAIN">\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">,"</SEQ>\r
-    <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="," DELEGATE="COMMA_LAST_COLUMN">,(?=[^,]*$)</EOL_SPAN_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">,</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="COMMA_ODD_QUOTED">\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">""</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="COMMA_MAIN">"(?=,[^"][^,]*$)</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">","</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;," DELEGATE="COMMA_MAIN">",$</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">",</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="COMMA_MAIN">"$</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">"</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="COMMA_EVEN" DEFAULT="COMMENT1">\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">,"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">,</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="COMMA_EVEN_QUOTED" DEFAULT="COMMENT1">\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">""</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">","</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">",</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">"</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="COMMA_LAST_COLUMN" DEFAULT="COMMENT1">\r
-  </RULES>\r
-\r
-  <!-- Semicolon rules -->\r
-\r
-  <RULES SET="SEMICOLON_MAIN">\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">;"</SEQ>\r
-    <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR=";" DELEGATE="SEMICOLON_LAST_COLUMN">;(?=[^;]*$)</EOL_SPAN_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">;</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="SEMICOLON_ODD_QUOTED">\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">""</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="SEMICOLON_MAIN">"(?=;[^"][^;]*$)</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">";"</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;;" DELEGATE="SEMICOLON_MAIN">";$</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">";</SEQ>\r
-    <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="SEMICOLON_MAIN">"$</SEQ_REGEXP>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">"</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="SEMICOLON_EVEN" DEFAULT="COMMENT1">\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">;"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">;</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="SEMICOLON_EVEN_QUOTED" DEFAULT="COMMENT1">\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">""</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">";"</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">";</SEQ>\r
-    <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">"</SEQ>\r
-  </RULES>\r
-\r
-  <RULES SET="SEMICOLON_LAST_COLUMN" DEFAULT="COMMENT1">\r
-  </RULES>\r
-\r
-</MODE>\r
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!--
+
+Author: Jaco de Groot
+Version: 2.2 20070213
+
+Comma Separated Values specification used for this mode:
+
+A file containing table data where the fields are sperated by commas. Fields
+containing commas (,) or newlines must be quoted (surrounded by quotes (")).
+Quotes in quoted fields must be escaped with two quotes.
+
+Highlighted are:
+- Even columns
+- Commas seperating values
+- Quotes surrounding values
+- Escaped quotes are highlighted.
+
+It is also possible that semicolons are used instead of commas. Therefor the
+first rules check if the first separator found is a comma or a semicolon and
+then switch to the comma or semicolon rules.
+
+-->
+
+<MODE>
+       <PROPS>
+               <PROPERTY NAME="contextInsensitive" VALUE="true"/>
+       </PROPS>
+       <!-- Switch rules -->
+
+       <RULES>
+               <SEQ TYPE="MARKUP" DELEGATE="ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">,"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">;"</SEQ>
+               <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="," DELEGATE="COMMA_LAST_COLUMN">,(?=[^,]*$)</EOL_SPAN_REGEXP>
+               <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR=";" DELEGATE="SEMICOLON_LAST_COLUMN">;(?=[^;]*$)
+               </EOL_SPAN_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">,</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">;</SEQ>
+       </RULES>
+
+       <RULES SET="ODD_QUOTED">
+               <SEQ TYPE="MARKUP" DELEGATE="ODD_QUOTED">""</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="COMMA_MAIN">"(?=,[^"][^,]*$)</SEQ_REGEXP>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="SEMICOLON_MAIN">"(?=;[^"][^;]*$)</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">","</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">";"</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;," DELEGATE="COMMA_MAIN">",$</SEQ_REGEXP>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;;" DELEGATE="SEMICOLON_MAIN">";$</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">",</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">";</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="MAIN">"$</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="EVEN">"</SEQ>
+       </RULES>
+
+       <RULES DEFAULT="COMMENT1" SET="EVEN">
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">,"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">;"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">,</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">;</SEQ>
+       </RULES>
+
+       <RULES DEFAULT="COMMENT1" SET="EVEN_QUOTED">
+               <SEQ TYPE="MARKUP" DELEGATE="EVEN_QUOTED">""</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">","</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">";"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">",</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">";</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="MAIN">"</SEQ>
+       </RULES>
+
+       <!-- Comma rules -->
+
+       <RULES SET="COMMA_MAIN">
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">,"</SEQ>
+               <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="," DELEGATE="COMMA_LAST_COLUMN">,(?=[^,]*$)</EOL_SPAN_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">,</SEQ>
+       </RULES>
+
+       <RULES SET="COMMA_ODD_QUOTED">
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">""</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="COMMA_MAIN">"(?=,[^"][^,]*$)</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">","</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;," DELEGATE="COMMA_MAIN">",$</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">",</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="COMMA_MAIN">"$</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN">"</SEQ>
+       </RULES>
+
+       <RULES SET="COMMA_EVEN" DEFAULT="COMMENT1">
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">,"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">,</SEQ>
+       </RULES>
+
+       <RULES SET="COMMA_EVEN_QUOTED" DEFAULT="COMMENT1">
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_EVEN_QUOTED">""</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_ODD_QUOTED">","</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">",</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="COMMA_MAIN">"</SEQ>
+       </RULES>
+
+       <RULES SET="COMMA_LAST_COLUMN" DEFAULT="COMMENT1">
+       </RULES>
+
+       <!-- Semicolon rules -->
+
+       <RULES SET="SEMICOLON_MAIN">
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED" AT_LINE_START="TRUE">"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">;"</SEQ>
+               <EOL_SPAN_REGEXP TYPE="MARKUP" HASH_CHAR=";" DELEGATE="SEMICOLON_LAST_COLUMN">;(?=[^;]*$)
+               </EOL_SPAN_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">;</SEQ>
+       </RULES>
+
+       <RULES SET="SEMICOLON_ODD_QUOTED">
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">""</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="SEMICOLON_MAIN">"(?=;[^"][^;]*$)</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">";"</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;;" DELEGATE="SEMICOLON_MAIN">";$</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">";</SEQ>
+               <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="&quot;" DELEGATE="SEMICOLON_MAIN">"$</SEQ_REGEXP>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN">"</SEQ>
+       </RULES>
+
+       <RULES SET="SEMICOLON_EVEN" DEFAULT="COMMENT1">
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">;"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">;</SEQ>
+       </RULES>
+
+       <RULES SET="SEMICOLON_EVEN_QUOTED" DEFAULT="COMMENT1">
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_EVEN_QUOTED">""</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_ODD_QUOTED">";"</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">";</SEQ>
+               <SEQ TYPE="MARKUP" DELEGATE="SEMICOLON_MAIN">"</SEQ>
+       </RULES>
+
+       <RULES SET="SEMICOLON_LAST_COLUMN" DEFAULT="COMMENT1">
+       </RULES>
+
+</MODE>