-<?xml version="1.0"?>\r
-\r
-<!DOCTYPE MODE SYSTEM "xmode.dtd">\r
-\r
-<!--\r
-<MODE NAME="zpt" FILE="zpt.xml"\r
- FILE_NAME_GLOB="*.{pt,zpt}"/>\r
--->\r
-\r
-<MODE>\r
- <PROPS>\r
- <PROPERTY NAME="commentStart" VALUE="<!--" />\r
- <PROPERTY NAME="commentEnd" VALUE="-->" />\r
- </PROPS>\r
- <RULES IGNORE_CASE="TRUE">\r
- <!-- SGML comment -->\r
- <SPAN TYPE="COMMENT1">\r
- <BEGIN><!--</BEGIN>\r
- <END>--></END>\r
- </SPAN>\r
-\r
- <!-- JavaScript -->\r
- <SPAN TYPE="MARKUP" DELEGATE="JAVASCRIPT">\r
- <BEGIN><SCRIPT</BEGIN>\r
- <END></SCRIPT></END>\r
- </SPAN>\r
-\r
- <!-- stylesheet -->\r
- <SPAN TYPE="MARKUP" DELEGATE="CSS">\r
- <BEGIN><STYLE</BEGIN>\r
- <END></STYLE></END>\r
- </SPAN>\r
-\r
- <!-- DTD instructions -->\r
- <SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">\r
- <BEGIN><!</BEGIN>\r
- <END>></END>\r
- </SPAN>\r
-\r
- <!-- markup tags -->\r
- <SPAN TYPE="MARKUP" DELEGATE="TAGS">\r
- <BEGIN><</BEGIN>\r
- <END>></END>\r
- </SPAN>\r
-\r
- <!-- SGML entities -->\r
- <SPAN TYPE="LITERAL2" NO_WORD_BREAK="TRUE">\r
- <BEGIN>&</BEGIN>\r
- <END>;</END>\r
- </SPAN>\r
- </RULES>\r
-\r
- <!-- ESCAPE is not exactly right but it is needed to correctly\r
- handle JavaScript in on* parameters -->\r
- <RULES SET="TAGS" DEFAULT="MARKUP" ESCAPE="\">\r
- <SPAN TYPE="LITERAL1" DELEGATE="ATTRIBUTE">\r
- <BEGIN>"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL1" DELEGATE="ATTRIBUTE">\r
- <BEGIN>'</BEGIN>\r
- <END>'</END>\r
- </SPAN>\r
-\r
- <SEQ TYPE="OPERATOR">=</SEQ>\r
-\r
- <KEYWORDS>\r
- <!-- TAL -->\r
- <KEYWORD1>tal</KEYWORD1>\r
- <KEYWORD3>attributes</KEYWORD3>\r
- <KEYWORD3>define</KEYWORD3>\r
- <KEYWORD3>condition</KEYWORD3>\r
- <KEYWORD3>content</KEYWORD3>\r
- <KEYWORD3>omit-tag</KEYWORD3>\r
- <KEYWORD3>on-error</KEYWORD3>\r
- <KEYWORD3>repeat</KEYWORD3>\r
- <KEYWORD3>replace</KEYWORD3>\r
-\r
- <!-- METAL -->\r
- <KEYWORD1>metal</KEYWORD1>\r
- <KEYWORD3>define-macro</KEYWORD3>\r
- <KEYWORD3>define-slot</KEYWORD3>\r
- <KEYWORD3>fill-slot</KEYWORD3>\r
- <KEYWORD3>use-macro</KEYWORD3>\r
- </KEYWORDS>\r
- </RULES>\r
-\r
- <RULES SET="ATTRIBUTE" DEFAULT="LITERAL1">\r
- <SEQ TYPE="OPERATOR">:</SEQ>\r
- <SEQ TYPE="OPERATOR">;</SEQ>\r
- <SEQ TYPE="OPERATOR">?</SEQ>\r
- <SEQ TYPE="OPERATOR">|</SEQ>\r
- <SEQ TYPE="LITERAL2">$$</SEQ>\r
-\r
- <SPAN TYPE="LITERAL4">\r
- <BEGIN>"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL4">\r
- <BEGIN>'</BEGIN>\r
- <END>'</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">\r
- <BEGIN>${</BEGIN>\r
- <END>}</END>\r
- </SPAN>\r
- <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>\r
- <!-- highligh python expressions -->\r
- <!--\r
- <SEQ TYPE="LITERAL2" DELEGATE="python::MAIN"\r
- AT_LINE_START="FALSE">python:</SEQ>\r
- -->\r
- <KEYWORDS>\r
- <!-- TALES expression types -->\r
- <KEYWORD4>exists</KEYWORD4>\r
- <KEYWORD4>nocall</KEYWORD4>\r
- <KEYWORD4>not</KEYWORD4>\r
- <KEYWORD4>path</KEYWORD4>\r
- <KEYWORD4>python</KEYWORD4>\r
- <KEYWORD4>string</KEYWORD4>\r
- <KEYWORD4>structure</KEYWORD4>\r
-\r
- <!-- built-in TALES variables -->\r
- <!-- NOTE: root, here, container, template, \r
- request, user, and modules are optional -->\r
- <LITERAL3>CONTEXTS</LITERAL3>\r
- <LITERAL3>attrs</LITERAL3>\r
- <LITERAL3>container</LITERAL3>\r
- <LITERAL3>default</LITERAL3>\r
- <LITERAL3>here</LITERAL3>\r
- <LITERAL3>modules</LITERAL3>\r
- <LITERAL3>nothing</LITERAL3>\r
- <LITERAL3>options</LITERAL3>\r
- <LITERAL3>repeat</LITERAL3>\r
- <LITERAL3>request</LITERAL3>\r
- <LITERAL3>root</LITERAL3>\r
- <LITERAL3>template</LITERAL3>\r
- <LITERAL3>user</LITERAL3>\r
-\r
- <!-- repeat variable attributes -->\r
- <LITERAL3>index</LITERAL3>\r
- <LITERAL3>number</LITERAL3>\r
- <LITERAL3>even</LITERAL3>\r
- <LITERAL3>odd</LITERAL3>\r
- <LITERAL3>start</LITERAL3>\r
- <LITERAL3>end</LITERAL3>\r
- <LITERAL3>first</LITERAL3>\r
- <LITERAL3>last</LITERAL3>\r
- <LITERAL3>length</LITERAL3>\r
- <LITERAL3>letter</LITERAL3>\r
- <LITERAL3>Letter</LITERAL3>\r
- <LITERAL3>roman</LITERAL3>\r
- <LITERAL3>Roman</LITERAL3>\r
- </KEYWORDS>\r
- </RULES>\r
-\r
- <RULES SET="JAVASCRIPT" DEFAULT="MARKUP" IGNORE_CASE="TRUE">\r
- <SEQ TYPE="MARKUP" DELEGATE="javascript::MAIN">></SEQ>\r
- <SEQ TYPE="MARKUP" DELEGATE="BACK_TO_HTML">SRC=</SEQ>\r
- </RULES>\r
-\r
- <RULES SET="BACK_TO_HTML" DEFAULT="MARKUP">\r
- <SEQ TYPE="MARKUP" DELEGATE="zpt::MAIN">></SEQ>\r
- </RULES>\r
-\r
- <RULES SET="CSS" DEFAULT="MARKUP">\r
- <SEQ TYPE="MARKUP" DELEGATE="css::MAIN">></SEQ>\r
- </RULES>\r
-</MODE>\r
-\r
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!--
+<MODE NAME="zpt" FILE="zpt.xml"
+ FILE_NAME_GLOB="*.{pt,zpt}"/>
+-->
+
+<MODE>
+ <PROPS>
+ <PROPERTY NAME="commentStart" VALUE="<!--" />
+ <PROPERTY NAME="commentEnd" VALUE="-->" />
+ </PROPS>
+ <RULES IGNORE_CASE="TRUE">
+ <!-- SGML comment -->
+ <SPAN TYPE="COMMENT1">
+ <BEGIN><!--</BEGIN>
+ <END>--></END>
+ </SPAN>
+
+ <!-- JavaScript -->
+ <SPAN TYPE="MARKUP" DELEGATE="JAVASCRIPT">
+ <BEGIN><SCRIPT</BEGIN>
+ <END></SCRIPT></END>
+ </SPAN>
+
+ <!-- stylesheet -->
+ <SPAN TYPE="MARKUP" DELEGATE="CSS">
+ <BEGIN><STYLE</BEGIN>
+ <END></STYLE></END>
+ </SPAN>
+
+ <!-- DTD instructions -->
+ <SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">
+ <BEGIN><!</BEGIN>
+ <END>></END>
+ </SPAN>
+
+ <!-- markup tags -->
+ <SPAN TYPE="MARKUP" DELEGATE="TAGS">
+ <BEGIN><</BEGIN>
+ <END>></END>
+ </SPAN>
+
+ <!-- SGML entities -->
+ <SPAN TYPE="LITERAL2" NO_WORD_BREAK="TRUE">
+ <BEGIN>&</BEGIN>
+ <END>;</END>
+ </SPAN>
+ </RULES>
+
+ <RULES SET="TAGS" DEFAULT="MARKUP">
+ <SPAN TYPE="LITERAL1" DELEGATE="ATTRIBUTE">
+ <BEGIN>"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL1" DELEGATE="ATTRIBUTE">
+ <BEGIN>'</BEGIN>
+ <END>'</END>
+ </SPAN>
+
+ <SEQ TYPE="OPERATOR">=</SEQ>
+
+ <KEYWORDS>
+ <!-- TAL -->
+ <KEYWORD1>tal</KEYWORD1>
+ <KEYWORD3>attributes</KEYWORD3>
+ <KEYWORD3>define</KEYWORD3>
+ <KEYWORD3>condition</KEYWORD3>
+ <KEYWORD3>content</KEYWORD3>
+ <KEYWORD3>omit-tag</KEYWORD3>
+ <KEYWORD3>on-error</KEYWORD3>
+ <KEYWORD3>repeat</KEYWORD3>
+ <KEYWORD3>replace</KEYWORD3>
+
+ <!-- METAL -->
+ <KEYWORD1>metal</KEYWORD1>
+ <KEYWORD3>define-macro</KEYWORD3>
+ <KEYWORD3>define-slot</KEYWORD3>
+ <KEYWORD3>fill-slot</KEYWORD3>
+ <KEYWORD3>use-macro</KEYWORD3>
+ </KEYWORDS>
+ </RULES>
+
+ <RULES SET="ATTRIBUTE" DEFAULT="LITERAL1" ESCAPE="\">
+ <SEQ TYPE="OPERATOR">:</SEQ>
+ <SEQ TYPE="OPERATOR">;</SEQ>
+ <SEQ TYPE="OPERATOR">?</SEQ>
+ <SEQ TYPE="OPERATOR">|</SEQ>
+ <SEQ TYPE="LITERAL2">$$</SEQ>
+
+ <SPAN TYPE="LITERAL4">
+ <BEGIN>"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL4">
+ <BEGIN>'</BEGIN>
+ <END>'</END>
+ </SPAN>
+
+ <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
+ <BEGIN>${</BEGIN>
+ <END>}</END>
+ </SPAN>
+ <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
+ <!-- highligh python expressions -->
+ <!--
+ <SEQ TYPE="LITERAL2" DELEGATE="python::MAIN"
+ AT_LINE_START="FALSE">python:</SEQ>
+ -->
+ <KEYWORDS>
+ <!-- TALES expression types -->
+ <KEYWORD4>exists</KEYWORD4>
+ <KEYWORD4>nocall</KEYWORD4>
+ <KEYWORD4>not</KEYWORD4>
+ <KEYWORD4>path</KEYWORD4>
+ <KEYWORD4>python</KEYWORD4>
+ <KEYWORD4>string</KEYWORD4>
+ <KEYWORD4>structure</KEYWORD4>
+
+ <!-- built-in TALES variables -->
+ <!-- NOTE: root, here, container, template,
+ request, user, and modules are optional -->
+ <LITERAL3>CONTEXTS</LITERAL3>
+ <LITERAL3>attrs</LITERAL3>
+ <LITERAL3>container</LITERAL3>
+ <LITERAL3>default</LITERAL3>
+ <LITERAL3>here</LITERAL3>
+ <LITERAL3>modules</LITERAL3>
+ <LITERAL3>nothing</LITERAL3>
+ <LITERAL3>options</LITERAL3>
+ <LITERAL3>repeat</LITERAL3>
+ <LITERAL3>request</LITERAL3>
+ <LITERAL3>root</LITERAL3>
+ <LITERAL3>template</LITERAL3>
+ <LITERAL3>user</LITERAL3>
+
+ <!-- repeat variable attributes -->
+ <LITERAL3>index</LITERAL3>
+ <LITERAL3>number</LITERAL3>
+ <LITERAL3>even</LITERAL3>
+ <LITERAL3>odd</LITERAL3>
+ <LITERAL3>start</LITERAL3>
+ <LITERAL3>end</LITERAL3>
+ <LITERAL3>first</LITERAL3>
+ <LITERAL3>last</LITERAL3>
+ <LITERAL3>length</LITERAL3>
+ <LITERAL3>letter</LITERAL3>
+ <LITERAL3>Letter</LITERAL3>
+ <LITERAL3>roman</LITERAL3>
+ <LITERAL3>Roman</LITERAL3>
+ </KEYWORDS>
+ </RULES>
+
+ <RULES SET="JAVASCRIPT" DEFAULT="MARKUP" IGNORE_CASE="TRUE">
+ <SEQ TYPE="MARKUP" DELEGATE="javascript::MAIN">></SEQ>
+ <SEQ TYPE="MARKUP" DELEGATE="BACK_TO_HTML">SRC=</SEQ>
+ </RULES>
+
+ <RULES SET="BACK_TO_HTML" DEFAULT="MARKUP">
+ <SEQ TYPE="MARKUP" DELEGATE="zpt::MAIN">></SEQ>
+ </RULES>
+
+ <RULES SET="CSS" DEFAULT="MARKUP">
+ <SEQ TYPE="MARKUP" DELEGATE="css::MAIN">></SEQ>
+ </RULES>
+</MODE>
+