[interchange] Update jEdit syntax highlighting mode

Jon Jensen interchange-cvs at icdevgroup.org
Thu Mar 18 20:19:11 UTC 2010


commit 665911d6120447be0a4dfeb43d30a087e799ae3a
Author: Jon Jensen <jon at endpoint.com>
Date:   Thu Mar 18 14:18:21 2010 -0600

    Update jEdit syntax highlighting mode
    
    By Justin Otten <justin.otten at gmail.com>:
    
    It now handles perly tags much better and properly delegates html tags.
    It also can now recognize custom tags as well.
    I've also updated the list of known SystemTags and Pragmas.
    There is a also a small bug fix with the [comment] tag not being able
    to have attributes.

 eg/jedit/README          |   64 +++----
 eg/jedit/catalog         |  489 +---------------------------------------------
 eg/jedit/html.xml        |  186 ------------------
 eg/jedit/interchange.xml |  326 +++++++++++++++++--------------
 4 files changed, 211 insertions(+), 854 deletions(-)
---
diff --git a/eg/jedit/README b/eg/jedit/README
index 7e61ec1..d81703f 100644
--- a/eg/jedit/README
+++ b/eg/jedit/README
@@ -1,35 +1,29 @@
-from http://www.icdevgroup.org/pipermail/interchange-users/2009-March/050311.html
-
-Date: Mon, 23 Mar 2009 09:41:24 -0400
-From: Justin Otten <justino at fragrancenet.com>
-To: interchange-users at icdevgroup.org
-Subject: Re: [ic] Jedit interchange.xml language definition
-
-On Wed, Feb 11, 2009 at 4:46 PM, Sam Batschelet <sam at westbranchresort.com> wrote:
->
-> Hello does anyone have a copy of this referenced in the IC docs
-> http://www.icdevgroup.org/doc-5.0/frames/ic_howto_cvs_43.html seems the link
-> is dead.
->
-> Thanks
-> -Sam
-
-At some point, I updated the JEdit file that was found on the
-icdevgroup website so that jedit will properly syntax highlight CSS,
-HTML, and Javascript. It now also properly handles heredocs (makes
-working with usertags better).
-
-I had to modify the html.xml definition due to issues of sticking an
-IC tag in the middle of some html attribute. ie
-  <img src="[image-src]" alt="[image-alt]" />
-jedit refused to highlight these tags, the modification to html.xml is
-simply an addition of a delegation to interchange.xml to handle such
-tags
-
-I attached the three modified files to this email, let me know if you
-can't download them, I'll post them somewhere public.
-
---
-Regards,
-Justin Otten
-FragranceNet.com
+jEdit Mode Files
+================
+Additional installation notes can be found here: http://jedit.org/users-guide/installing-modes.html
+
+For Windows
+-------------
+Copy the files "interchange.xml" and "catalog" into the directory "C:\Documents and Settings\<username>\.jedit\modes\"
+where <username> is your login name.
+
+For *nix
+--------
+Copy the files "interchange.xml" and "catalog" into the directory "~/.jedit/modes"
+
+---
+
+Restart jEdit and the interchange mode will be available.
+
+
+
+What does it do?
+================
+The Interchange jEdit mode file will allow syntax highlighting for "most" interchange needs.
+It supports highlighting of HTML, CSS, Javascript, SGML Entities, Perl, and ITL.
+You can also force jEdit to highlist UserTags, ActionMaps, etc... by explicitly setting the mode
+to "interchange", it will not automagically switch to this mode upon opening the file.
+
+What does it not do?
+====================
+The Interchange jEdit mode file will not highlight configuration files properly.
diff --git a/eg/jedit/catalog b/eg/jedit/catalog
index 9fb0d54..eef9017 100644
--- a/eg/jedit/catalog
+++ b/eg/jedit/catalog
@@ -1,491 +1,8 @@
 <?xml version="1.0"?>
-
-<!-- This is a mode catalog. Edit modes must be listed here, -->
-<!-- otherwise they will not be available to jEdit. -->
-
 <!DOCTYPE MODES SYSTEM "catalog.dtd">
 
 <MODES>
-
-<MODE NAME="actionscript"	FILE="actionscript.xml"
-				FILE_NAME_GLOB="*.as" />
-
-<MODE NAME="ada95"		FILE="ada95.xml"
-				FILE_NAME_GLOB="*.{ada,adb,ads}" />
-
-<MODE NAME="antlr"		FILE="antlr.xml"
-				FILE_NAME_GLOB="*.g" />
-
-<MODE NAME="apacheconf"		FILE="apacheconf.xml"
-				FILE_NAME_GLOB="*httpd.conf" />
-
-
-<MODE NAME="apdl"		FILE="apdl.xml"
-				FILE_NAME_GLOB="*.{ans,inp,mak,mac}" />
-
-<MODE NAME="applescript"	FILE="applescript.xml"
-				FILE_NAME_GLOB="*.applescript" />
-
-<MODE NAME="asp"		FILE="asp.xml"
-				FILE_NAME_GLOB="*.{asp,asa}" />
-
-<MODE NAME="aspect-j"		FILE="aspect-j.xml"
-				FILE_NAME_GLOB="*.aj" />
-
-<MODE NAME="assembly-m68k"	FILE="assembly-m68k.xml" />
-
-<MODE NAME="assembly-macro32"	FILE="assembly-macro32.xml"
-				FILE_NAME_GLOB="*.mar" />
-
-<MODE NAME="assembly-mcs51"	FILE="assembly-mcs51.xml" />
-
-<MODE NAME="assembly-r2000"	FILE="assembly-r2000.xml"
-				FILE_NAME_GLOB="*.mips" />
-
-<MODE NAME="assembly-parrot"	FILE="assembly-parrot.xml"
-				FILE_NAME_GLOB="*.pasm" />
-
-<MODE NAME="assembly-x86"	FILE="assembly-x86.xml"
-				FILE_NAME_GLOB="*.asm" />
-
-<MODE NAME="awk"		FILE="awk.xml"
-				FILE_NAME_GLOB="*.awk"
-				FIRST_LINE_GLOB="#!*awk*" />
-
-<MODE NAME="b"			FILE="b.xml"
-				FILE_NAME_GLOB="*.{imp,ref,mch}" />
-
-<MODE NAME="batch"		FILE="batch.xml"
-				FILE_NAME_GLOB="*.{bat,cmd}" />
-
-<MODE NAME="bbj"		FILE="bbj.xml"
-				FILE_NAME_GLOB="*.bbj" />
-
-<!-- if anyone knows a file name glob that can be used with this mode,
-     please let me know -->
-<MODE NAME="bcel"		FILE="bcel.xml" />
-
-<!-- Now that BeanShell 2.0 supports class declarations, its syntax is
-     almost identical to Java. -->
-<MODE NAME="beanshell"		FILE="java.xml"
-				FILE_NAME_GLOB="*.bsh" />
-
-<MODE NAME="bibtex"		FILE="bibtex.xml"
-				FILE_NAME_GLOB="*.bib" />
-
-<!--  We let Objective C mode highlight .h files -->
-<MODE NAME="c"			FILE="c.xml"
-				FILE_NAME_GLOB="*.c" />
-
-<MODE NAME="chill"		FILE="chill.xml"
-				FILE_NAME_GLOB="*.{chl,mpol}" />
-
-<MODE NAME="cil"		FILE="cil.xml"
-				FILE_NAME_GLOB="*.il" />
-
-<MODE NAME="clips"		FILE="clips.xml"
-				FILE_NAME_GLOB="*.clp" />
-
-<MODE NAME="cobol"		FILE="cobol.xml"
-				FILE_NAME_GLOB="*.cbl" />
-
-<MODE NAME="coldfusion"		FILE="coldfusion.xml"
-				FILE_NAME_GLOB="*.{cfm,dbm,cfc}" />
-
-<MODE NAME="c++"		FILE="cplusplus.xml"
-				FILE_NAME_GLOB="*.{cc,cpp,hh,hpp,cxx}" />
-
-<MODE NAME="c#"			FILE="csharp.xml"
-				FILE_NAME_GLOB="*.cs" />
-
-<MODE NAME="css"		FILE="css.xml"
-				FILE_NAME_GLOB="*.css" />
-
-<MODE NAME="csv" 		FILE="csv.xml"
-				FILE_NAME_GLOB="*.csv" />
-
-<MODE NAME="cvs-commit"		FILE="cvs-commit.xml"
-				FILE_NAME_GLOB="cvs*.tmp"/>
-
-<MODE NAME="d"			FILE="d.xml"
-				FILE_NAME_GLOB="*.d" />
-
-<MODE NAME="django"		FILE="django.xml"/>
-
-<MODE NAME="doxygen"		FILE="doxygen.xml"
-				FILE_NAME_GLOB="doxyfile*" />
-
-<MODE NAME="dsssl"		FILE="dsssl.xml"
-				FILE_NAME_GLOB="*.dsl" />
-
-<MODE NAME="embperl"		FILE="embperl.xml"
-				FILE_NAME_GLOB="*.epl"/>
-
-<MODE NAME="erlang"		FILE="erlang.xml"
-				FILE_NAME_GLOB="*.erl"/>
-
-<MODE NAME="eiffel"		FILE="eiffel.xml"
-				FILE_NAME_GLOB="*.e" />
-
-<MODE NAME="fhtml"		FILE="fhtml.xml"
-				FILE_NAME_GLOB="*.{furnace,fhtml}"/>
-
-<MODE NAME="factor"		FILE="factor.xml"
-				FILE_NAME_GLOB="*.factor"/>
-
-<MODE NAME="forth"		FILE="forth.xml"
-				FILE_NAME_GLOB="*.f" />
-
-<MODE NAME="fortran"		FILE="fortran.xml"
-				FILE_NAME_GLOB="*.{for,fort,f77,f90}" />
-
-<MODE NAME="foxpro"		FILE="foxpro.xml"
-				FILE_NAME_GLOB="*.prg" />
-
-<MODE NAME="freemarker"		FILE="freemarker.xml"
-				FILE_NAME_GLOB="*.ftl"
-				FIRST_LINE_GLOB="&lt;\#ftl*"/>
-
-<MODE NAME="gettext"		FILE="gettext.xml"
-				FILE_NAME_GLOB="*.{po,pot}" />
-
-<MODE NAME="gnuplot"		FILE="gnuplot.xml"
-				FILE_NAME_GLOB="*.{dem,plt}" />
-
-<MODE NAME="groovy"		FILE="groovy.xml"
-				FILE_NAME_GLOB="*.{groovy,grv}"/>
-
-<MODE NAME="haskell"		FILE="haskell.xml"
-				FILE_NAME_GLOB="*.hs" />
-
-<!-- Used by Andre Kaplan's Hex plugin -->
-<MODE NAME="hex"		FILE="hex.xml" />
-
-<MODE NAME="hlsl"		FILE="hlsl.xml"
-				FILE_NAME_GLOB="*.fx" />
-
-<MODE NAME="htaccess"			FILE="htaccess.xml"
-				FILE_NAME_GLOB=".htaccess" />
-
-<MODE NAME="html"		FILE="html.xml"
-				FILE_NAME_GLOB="*.{html,htm,hta}" />
-
-<MODE NAME="i4gl"		FILE="i4gl.xml"
-				FILE_NAME_GLOB="*.4gl" />
-
-<MODE NAME="icon"		FILE="icon.xml"
-				FILE_NAME_GLOB="*.icn" />
-
-<MODE NAME="idl"		FILE="idl.xml"
-				FILE_NAME_GLOB="*.idl" />
-
-<MODE NAME="inform"		FILE="inform.xml"
-				FILE_NAME_GLOB="*.inf" />
-
-<MODE NAME="inno-setup"		FILE="inno-setup.xml"
-				FILE_NAME_GLOB="*.iss" />
-
-<MODE NAME="ini"		FILE="ini.xml"
-				FILE_NAME_GLOB="*.{ini,reg}" />
-
-<MODE NAME="interlis"		FILE="interlis.xml"
-				FILE_NAME_GLOB="*.ili" />
-				
-<MODE NAME="interchange"	FILE="interchange.xml"
-				FIRST_LINE_GLOB="?comment?" />
-
-<MODE NAME="io"			FILE="io.xml"
-				FILE_NAME_GLOB="*.io" />
-
-<MODE NAME="javacc" FILE="javacc.xml"
-        FILE_NAME_GLOB="*.{jj,jjt}"/>
-
-<MODE NAME="java"		FILE="java.xml"
-				FILE_NAME_GLOB="*.java" />
-
-<MODE NAME="javascript"		FILE="javascript.xml"
-				FILE_NAME_GLOB="*.js" />
-
-<MODE NAME="jcl"		FILE="jcl.xml"
-				FILE_NAME_GLOB="*.jcl" />
-
-<MODE NAME="jhtml"		FILE="jhtml.xml"
-				FILE_NAME_GLOB="*.jhtml" />
-
-<MODE NAME="jmk"		FILE="jmk.xml"
-				FILE_NAME_GLOB="*.jmk" />
-
-<MODE NAME="jsp"		FILE="jsp.xml"
-				FILE_NAME_GLOB="*.{jsp,jsf,jspf,tag}" />
-
-<!-- Note that a generic 'tex.xml' is included as well, for minimal
-     plain TeX/AMSTeX highlighting. -->
-
-<MODE NAME="latex"		FILE="latex.xml"
-				FILE_NAME_GLOB="*.{tex,sty,ltx}" />
-
-<MODE NAME="lilypond"		FILE="lilypond.xml"
-				FILE_NAME_GLOB="*.ly" />
-
-<MODE NAME="lisp"		FILE="lisp.xml"
-				FILE_NAME_GLOB="*.{lisp,lsp,el}" />
-
-<MODE NAME="literate-haskell"	FILE="literate-haskell.xml"
-				FILE_NAME_GLOB="*.lhs" />
-
-<MODE NAME="lotos"		FILE="lotos.xml"
-				FILE_NAME_GLOB="*.{lot,lotos}"/>
-
-<MODE NAME="lua"		FILE="lua.xml"
-				FILE_NAME_GLOB="*.lua" />
-
-<MODE NAME="mail"		FILE="mail.xml" />
-
-<MODE NAME="makefile"		FILE="makefile.xml"
-				FILE_NAME_GLOB="*makefile" />
-
-<MODE NAME="maple"		FILE="maple.xml"
-				FILE_NAME_GLOB="*.{mpl,mws}" />
-
-<MODE NAME="ml"			FILE="ml.xml"
-				FILE_NAME_GLOB="*.{sml,ml}" />
-
-<MODE NAME="modula3"		FILE="modula3.xml"
-				FILE_NAME_GLOB="*.[im]3" />
-
-<MODE NAME="moin"		FILE="moin.xml"
-				FILE_NAME_GLOB="*.moin" />
-
-<MODE NAME="mqsc"		FILE="mqsc.xml"
-				FILE_NAME_GLOB="*.mqsc" />
-
-<MODE NAME="myghty"			FILE="myghty.xml"
-				FILE_NAME_GLOB="{autohandler,dhandler,*.myt}"/>
-
-<MODE NAME="mysql"		FILE="mysql.xml" />
-
-<MODE NAME="netrexx"		FILE="netrexx.xml"
-				FILE_NAME_GLOB="*.nrx" />
-
-<MODE NAME="nqc"		FILE="nqc.xml"
-				FILE_NAME_GLOB="*.nqc" />
-
-<MODE NAME="nsis2"		FILE="nsis2.xml"
-				FILE_NAME_GLOB="*.{nsi,nsh}" />
-
-<MODE NAME="objective-c"	FILE="objective-c.xml"
-				FILE_NAME_GLOB="*.[mh]" />
-
-<MODE NAME="objectrexx"		FILE="objectrexx.xml"
-				FILE_NAME_GLOB="*.{rex,orx}" />
-
-<MODE NAME="occam"		FILE="occam.xml"
-				FILE_NAME_GLOB="*.icc" />
-
-<MODE NAME="omnimark"		FILE="omnimark.xml"
-				FILE_NAME_GLOB="*.x{om,in}" />
-
-<MODE NAME="pascal"		FILE="pascal.xml"
-				FILE_NAME_GLOB="*.{pas,dpr,dpk}" />
-
-<MODE NAME="patch"		FILE="patch.xml"
-				FILE_NAME_GLOB="*.{diff,patch}" />
-
-<MODE NAME="perl"		FILE="perl.xml"
-				FILE_NAME_GLOB="*.p[lm]"
-				FIRST_LINE_GLOB="#!/*perl*" />
-
-<MODE NAME="php"		FILE="php.xml"
-				FILE_NAME_GLOB="*.{php3,php4,php,phtml,inc}"
-				FIRST_LINE_GLOB="{&lt;?php*,#!/*php*}" />
-
-<MODE NAME="pike"		FILE="pike.xml"
-				FILE_NAME_GLOB="*.{pike,pmod}" />
-
-<MODE NAME="pl-sql"		FILE="pl-sql.xml"
-				FILE_NAME_GLOB="*.pls" />
-
-<MODE NAME="pl1"		FILE="pl1.xml"
-				FILE_NAME_GLOB="*.pl[i1]" />
-
-<MODE NAME="pop11"		FILE="pop11.xml"
-				FILE_NAME_GLOB="*.{p,pop11,p11}" />
-
-<MODE NAME="postscript"		FILE="postscript.xml"
-				FILE_NAME_GLOB="*.{ps,eps}" />
-
-<MODE NAME="powerdynamo"	FILE="powerdynamo.xml"
-				FILE_NAME_GLOB="*.{ssc,stm}" />
-
-<MODE NAME="povray"		FILE="povray.xml"
-				FILE_NAME_GLOB="*.{pov,povray}" />
-
-<MODE NAME="prolog"             FILE="prolog.xml"
-                                FILE_NAME_GLOB="*.pro" />
-
-<MODE NAME="progress"           FILE="progress.xml"
-                                FILE_NAME_GLOB="*.[piw]" />
-
-<MODE NAME="properties"		FILE="props.xml"
-				FILE_NAME_GLOB="*{properties,props}" />
-
-<MODE NAME="psp"		FILE="psp.xml"
-				FILE_NAME_GLOB="*.psp" />
-
-<MODE NAME="ptl"		FILE="ptl.xml"
-				FILE_NAME_GLOB="*.ptl"/>
-
-<MODE NAME="pvwave"		FILE="pvwave.xml"
-				FILE_NAME_GLOB="*.jou" />
-
-<MODE NAME="pyrex"		FILE="pyrex.xml"
-				FILE_NAME_GLOB="*.{pyx}" />
-
-<MODE NAME="python"		FILE="python.xml"
-				FILE_NAME_GLOB="*.{py,pyw,sc}"
-				FIRST_LINE_GLOB="#!*/*python*" />
-
-<MODE NAME="rebol"		FILE="rebol.xml"
-				FILE_NAME_GLOB="*.r" />
-
-<MODE NAME="redcode"		FILE="redcode.xml"
-				FILE_NAME_GLOB="*.{red,rc}" />
-
-<MODE NAME="relax-ng-compact"	FILE="relax-ng-compact.xml"
-				FILE_NAME_GLOB="*.rnc" />
-
-<MODE NAME="renderman-rib"	FILE="rib.xml"
-				FILE_NAME_GLOB="*.rib" />
-
-<MODE NAME="rd"			FILE="rd.xml"
-				FILE_NAME_GLOB="*.rd" />
-
-<MODE NAME="rest"		FILE="rest.xml"
-				FILE_NAME_GLOB="*.{rst,rest}"
-				FIRST_LINE_GLOB="{===,~~~}*"/>
-
-<MODE NAME="rhtml"		FILE="rhtml.xml"
-				FILE_NAME_GLOB="*.rhtml" />
-
-<MODE NAME="rpm-spec"		FILE="rpmspec.xml"
-				FILE_NAME_GLOB="*.spec" />
-
-<MODE NAME="rtf"		FILE="rtf.xml"
-				FILE_NAME_GLOB="*.rtf" />
-
-<MODE NAME="ruby"		FILE="ruby.xml"
-				FILE_NAME_GLOB="*.{rb,rbw}"
-	            FIRST_LINE_GLOB="#!*/*ruby*" />
-
-<MODE NAME="rview"		FILE="rview.xml"
-				FILE_NAME_GLOB="*.rvw" />
-
-<MODE NAME="s+"			FILE="splus.xml"
-				FILE_NAME_GLOB="*.ssc" />
-
-<MODE NAME="s#"			FILE="ssharp.xml"
-				FILE_NAME_GLOB="*.{ss,ssc,ssi,ssw,sts,aml}"  />
-
-<MODE NAME="sas"		FILE="sas.xml"
-				FILE_NAME_GLOB="*.sas" />
-
-<MODE NAME="scheme"		FILE="scheme.xml"
-				FILE_NAME_GLOB="*.scm" />
-
-<MODE NAME="sgml"		FILE="sgml.xml"
-				FILE_NAME_GLOB="*.{sgml,sgm,dtd}" />
-
-<MODE NAME="rcp" FILE="rcp.xml" FILE_NAME_GLOB="*.rcp" />
-
-<MODE NAME="shellscript"	FILE="shellscript.xml"
-				FILE_NAME_GLOB="*.{csh,sh,bash}"
-				FIRST_LINE_GLOB="#!/*sh*" />
-
-<MODE NAME="shtml"		FILE="shtml.xml"
-				FILE_NAME_GLOB="*.{shtml,shtm,ssi}" />
-
-<MODE NAME="slate"		FILE="slate.xml"
-				FILE_NAME_GLOB="*.slate" />
-
-<MODE NAME="smalltalk"		FILE="smalltalk.xml"
-				FILE_NAME_GLOB="*.{st,sources,changes}" />
-
-<MODE NAME="sdl/pr"		FILE="sdl_pr.xml"
-				FILE_NAME_GLOB="*.pr"/>
-
-<MODE NAME="sql-loader" 	FILE="sql-loader.xml"
-				FILE_NAME_GLOB="*.ctl" />
-
-<MODE NAME="smi-mib"		FILE="smi-mib.xml"
-				FILE_NAME_GLOB="*{.mib,-MIB.txt}" />
-
-<MODE NAME="sqr"                FILE="sqr.xml"
-                                FILE_NAME_GLOB="*.{sqr,sqc}" />
-
-<MODE NAME="squidconf"		FILE="squidconf.xml"
-				FILE_NAME_GLOB="squid.conf" />
-
-<MODE NAME="svn-commit"         FILE="svn-commit.xml"
-				FILE_NAME_GLOB="svn-commit*.tmp" />
-
-<MODE NAME="swig"		FILE="swig.xml"
-				FILE_NAME_GLOB="*.{i,swg}" />
-
-<MODE NAME="tcl"		FILE="tcl.xml"
-				FILE_NAME_GLOB="*.{tcl,tsh}" />
-
-<MODE NAME="texinfo"		FILE="texinfo.xml"
-				FILE_NAME_GLOB="*.texi" />
-
-<MODE NAME="tex"		FILE="tex.xml" />
-
-<MODE NAME="text"		FILE="text.xml"
-				FILE_NAME_GLOB="*.txt" />
-
-<MODE NAME="tpl"		FILE="tpl.xml"
-				FILE_NAME_GLOB="*.tpl" />
-
-<MODE NAME="transact-sql"	FILE="tsql.xml"
-				FILE_NAME_GLOB="*.sql" />
-
-<MODE NAME="template-toolkit"	FILE="tthtml.xml"
-				FILE_NAME_GLOB="*.tt{html,css,js}" />
-
-<MODE NAME="twiki"		FILE="twiki.xml"
-				FILE_NAME_GLOB="*.twiki"/>
-
-<MODE NAME="typoscript"         FILE="typoscript.xml"
-                                FILE_NAME_GLOB="*.ts"/>
-
-<MODE NAME="uscript"		FILE="uscript.xml"
-				FILE_NAME_GLOB="*.uc" />
-
-<MODE NAME="vbscript"		FILE="vbscript.xml"
-				FILE_NAME_GLOB="*.{vbs,bas,cls}" />
-
-<MODE NAME="velocity"		FILE="velocity.xml"
-				FILE_NAME_GLOB="*.vm" />
-
-<MODE NAME="verilog"		FILE="verilog.xml"
-				FILE_NAME_GLOB="*.{ver,v}" />
-
-<MODE NAME="vhdl"		FILE="vhdl.xml"
-				FILE_NAME_GLOB="*.vh*" />
-
-<!-- Great. AElfred doesn't support entities in attribute values,
-     but all other XML parsers complain if < appears. -->
-<MODE NAME="xml"		FILE="xml.xml"
-				FILE_NAME_GLOB="*.{xml,xhtml,xsd}"
-				FIRST_LINE_GLOB="&lt;\?xml*" />
-
-<MODE NAME="xq"			FILE="xq.xml"
-				FILE_NAME_GLOB="*.x{q,qm,ql}" />
-
-<MODE NAME="xsl"		FILE="xsl.xml"
-				FILE_NAME_GLOB="*.xsl" />
-
-<MODE NAME="zpt"		FILE="zpt.xml"
-				FILE_NAME_GLOB="*.{pt,zpt}"/>
-
-<MODE NAME="rfc" FILE="rfc.xml" FILE_NAME_GLOB="rfc*.txt" />
+	<!-- Add lines like the following, one for each edit mode you add: -->
+	<!-- <MODE NAME="foo" FILE="foo.xml" FILE_NAME_GLOB="*.foo" /> -->
+	<MODE NAME="interchange" FILE="interchange.xml" FIRST_LINE_GLOB="(re)(UserTag|\[comment)" FILE_NAMEGLOB="(re).*\.(html|tag)" />
 </MODES>
diff --git a/eg/jedit/interchange.xml b/eg/jedit/interchange.xml
index 982258e..5f24631 100644
--- a/eg/jedit/interchange.xml
+++ b/eg/jedit/interchange.xml
@@ -12,36 +12,41 @@
 	Modifiers: KEYWORD2
 	Control Structures & Container Tags: KEYWORD3
 -->
-<MODE NAME="interchange">
+<MODE>
 	<PROPS>
 		<PROPERTY NAME="commentStart" VALUE="&lt;!--" />
 		<PROPERTY NAME="commentEnd" VALUE="--&gt;" />
-		<PROPERTY NAME="filenameGlob" VALUE="*.html" />
-		<PROPERTY NAME="noWordSep" VALUE="-_" />
-		<PROPERTY NAME="tabSize" VALUE="4" />
 	</PROPS>
 	<RULES IGNORE_CASE="FALSE">
-		<!-- Set Comment Styles -->
-		<SPAN TYPE="COMMENT1">
-			<BEGIN>[comment]</BEGIN>
+		<!-- Comment Styles -->
+		<SPAN TYPE="COMMENT1" DELEGATE="INTERCHANGE_COMMENT">
+			<BEGIN>[comment</BEGIN>
 			<END>[/comment]</END>
 		</SPAN>
-		
 		<SPAN TYPE="COMMENT1">
 			<BEGIN>&lt;!--</BEGIN>
 			<END>--&gt;</END>
 		</SPAN>
 		
-		<!-- Embed Perl when in perl type blocks -->
-		<SPAN TYPE="MARKUP" DELEGATE="perl::MAIN">
+		<!-- PERL -->
+		<SPAN TYPE="FUNCTION" DELEGATE="PERL">
 			<BEGIN>[perl</BEGIN>
 			<END>[/perl]</END>
 		</SPAN>
-		<SPAN TYPE="MARKUP" DELEGATE="perl::MAIN">
-			<BEGIN>[calc]</BEGIN>
+		<SPAN TYPE="FUNCTION" DELEGATE="PERL">
+			<BEGIN>[calcn</BEGIN>
+			<END>[/calcn]</END>
+		</SPAN>
+		<SPAN TYPE="FUNCTION" DELEGATE="PERL">
+			<BEGIN>[calc</BEGIN>
 			<END>[/calc]</END>
 		</SPAN>
-		<!-- Heredoc -->
+		<SPAN TYPE="FUNCTION" DELEGATE="PERL">
+			<BEGIN>[condition</BEGIN>
+			<END>[/condition]</END>
+		</SPAN>
+		
+		<!-- Heredocs -->
 		<SPAN_REGEXP HASH_CHAR="&lt;&lt;" TYPE="LITERAL2" DELEGATE="perl::MAIN">
 			<BEGIN><![CDATA[<<\p{Space}*(['"])([\p{Space}\p{Alnum}_]*)\1;?\s*]]></BEGIN>
 			<END AT_LINE_START="TRUE">$2</END>
@@ -51,12 +56,11 @@
 			<END AT_LINE_START="TRUE">$1</END>
 		</SPAN_REGEXP>
 		
-		<!-- Interchange constructs -->
-		<SPAN TYPE="MARKUP" DELEGATE="INTERCHANGE">
+		<!-- INTERCHANGE -->
+		<SPAN TYPE="FUNCTION" DELEGATE="INTERCHANGE">
 			<BEGIN>[</BEGIN>
 			<END>]</END>
 		</SPAN>
-
 		<SPAN TYPE="LITERAL2">
 			<BEGIN>@_</BEGIN>
 			<END>_@</END>
@@ -70,25 +74,25 @@
 			<END>__</END>
 		</SPAN>
 		
-		<!-- JavaScript -->
+		<!-- JAVASCRIPT -->
 		<SPAN TYPE="MARKUP" DELEGATE="JAVASCRIPT">
 			<BEGIN>&lt;script</BEGIN>
 			<END>&lt;/script&gt;</END>
 		</SPAN>
 
-		<!-- CSS Stylr Sheet -->
+		<!-- CSS -->
 		<SPAN TYPE="MARKUP" DELEGATE="CSS">
 			<BEGIN>&lt;style</BEGIN>
 			<END>&lt;/style&gt;</END>
 		</SPAN>
 
-		<!-- DTD instructions -->
+		<!-- DTD -->
 		<SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">
 			<BEGIN>&lt;!</BEGIN>
 			<END>&gt;</END>
 		</SPAN>
 		
-		<!-- HTML markup tags -->
+		<!-- HTML -->
 		<SPAN TYPE="MARKUP" DELEGATE="HTML">
 			<BEGIN>&lt;</BEGIN>
 			<END>&gt;</END>
@@ -104,11 +108,15 @@
 	</RULES>
 	
 	<RULES SET="HTML" DEFAULT="MARKUP">
-		<SPAN TYPE="KEYWORD1" DELEGATE="INTERCHANGE" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
-			<BEGIN>[</BEGIN>
-			<END>]</END>
+		<SPAN DELEGATE="QUOTES" DEFAULT="LITERAL2">
+			<BEGIN>"</BEGIN>
+			<END>"</END>
 		</SPAN>
-		
+		<SPAN DELEGATE="QUOTES" DEFAULT="LITERAL2">
+			<BEGIN>'</BEGIN>
+			<END>'</END>
+		</SPAN>
+		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>		
 		<SPAN TYPE="LITERAL2">
 			<BEGIN>@_</BEGIN>
 			<END>_@</END>
@@ -122,110 +130,7 @@
 			<END>__</END>
 		</SPAN>
 		
-		<!-- Inline CSS -->
- 		<SPAN_REGEXP TYPE="MARKUP" DELEGATE="css::PROPERTIES" HASH_CHAR="style">
-			<BEGIN>style\s*=\s*(["'])</BEGIN>
-			<END>$1</END>
-		</SPAN_REGEXP>
-		
-		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
-		
-		<SEQ TYPE="OPERATOR">=</SEQ>
-		
-		<KEYWORDS>
-			<!-- HTML/XHTML elements, taken from http://de.selfhtml.org/html/referenz/elemente.htm -->
-			<MARKUP>a</MARKUP>
-			<MARKUP>abbr</MARKUP>
-			<MARKUP>acronym</MARKUP>
-			<MARKUP>address</MARKUP>
-			<MARKUP>applet</MARKUP>
-			<MARKUP>area</MARKUP>
-			<MARKUP>b</MARKUP>
-			<MARKUP>base</MARKUP>
-			<MARKUP>basefont</MARKUP>
-			<MARKUP>bdo</MARKUP>
-			<MARKUP>big</MARKUP>
-			<MARKUP>blockquote</MARKUP>
-			<MARKUP>body</MARKUP>
-			<MARKUP>br</MARKUP>
-			<MARKUP>button</MARKUP>
-			<MARKUP>caption</MARKUP>
-			<MARKUP>center</MARKUP>
-			<MARKUP>cite</MARKUP>
-			<MARKUP>code</MARKUP>
-			<MARKUP>col</MARKUP>
-			<MARKUP>colgroup</MARKUP>
-			<MARKUP>dd</MARKUP>
-			<MARKUP>del</MARKUP>
-			<MARKUP>dfn</MARKUP>
-			<MARKUP>dir</MARKUP>
-			<MARKUP>div</MARKUP>
-			<MARKUP>dl</MARKUP>
-			<MARKUP>dt</MARKUP>
-			<MARKUP>em</MARKUP>
-			<MARKUP>fieldset</MARKUP>
-			<MARKUP>font</MARKUP>
-			<MARKUP>form</MARKUP>
-			<MARKUP>frame</MARKUP>
-			<MARKUP>frameset</MARKUP>
-			<MARKUP>h1</MARKUP>
-			<MARKUP>h2</MARKUP>
-			<MARKUP>h3</MARKUP>
-			<MARKUP>h4</MARKUP>
-			<MARKUP>h5</MARKUP>
-			<MARKUP>h6</MARKUP>
-			<MARKUP>head</MARKUP>
-			<MARKUP>hr</MARKUP>
-			<MARKUP>html</MARKUP>
-			<MARKUP>i</MARKUP>
-			<MARKUP>iframe</MARKUP>
-			<MARKUP>img</MARKUP>
-			<MARKUP>input</MARKUP>
-			<MARKUP>ins</MARKUP>
-			<MARKUP>isindex</MARKUP>
-			<MARKUP>kbd</MARKUP>
-			<MARKUP>label</MARKUP>
-			<MARKUP>legend</MARKUP>
-			<MARKUP>li</MARKUP>
-			<MARKUP>link</MARKUP>
-			<MARKUP>map</MARKUP>
-			<MARKUP>menu</MARKUP>
-			<MARKUP>meta</MARKUP>
-			<MARKUP>noframes</MARKUP>
-			<MARKUP>noscript</MARKUP>
-			<MARKUP>object</MARKUP>
-			<MARKUP>ol</MARKUP>
-			<MARKUP>optgroup</MARKUP>
-			<MARKUP>option</MARKUP>
-			<MARKUP>p</MARKUP>
-			<MARKUP>param</MARKUP>
-			<MARKUP>pre</MARKUP>
-			<MARKUP>q</MARKUP>
-			<MARKUP>s</MARKUP>
-			<MARKUP>samp</MARKUP>
-			<MARKUP>script</MARKUP>
-			<MARKUP>select</MARKUP>
-			<MARKUP>small</MARKUP>
-			<MARKUP>span</MARKUP>
-			<MARKUP>strike</MARKUP>
-			<MARKUP>strong</MARKUP>
-			<MARKUP>style</MARKUP>
-			<MARKUP>sub</MARKUP>
-			<MARKUP>sup</MARKUP>
-			<MARKUP>table</MARKUP>
-			<MARKUP>tbody</MARKUP>
-			<MARKUP>td</MARKUP>
-			<MARKUP>textarea</MARKUP>
-			<MARKUP>tfoot</MARKUP>
-			<MARKUP>th</MARKUP>
-			<MARKUP>thead</MARKUP>
-			<MARKUP>title</MARKUP>
-			<MARKUP>tr</MARKUP>
-			<MARKUP>tt</MARKUP>
-			<MARKUP>u</MARKUP>
-			<MARKUP>ul</MARKUP>
-			<MARKUP>var</MARKUP>
-		</KEYWORDS>
+		<IMPORT DELEGATE="html::TAGS"/>
 	</RULES>
 	
 	<RULES SET="QUOTES" DEFAULT="LITERAL2">
@@ -233,10 +138,11 @@
 			<BEGIN>[</BEGIN>
 			<END>]</END>
 		</SPAN>
+		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
 	</RULES>
 	
-	<RULES SET="INTERCHANGE" DEFAULT="LITERAL1">
-		<!-- backtick -> PERL -->
+	<RULES SET="INTERCHANGE" DEFAULT="KEYWORD2">
+		<!-- PERL -->
 		<SPAN TYPE="MARKUP" DELEGATE="perl::MAIN">
 			<BEGIN>`</BEGIN>
 			<END>`</END>
@@ -264,76 +170,145 @@
 			<KEYWORD1>accessories</KEYWORD1>
 			<KEYWORD1>area</KEYWORD1>
 			<KEYWORD1>assign</KEYWORD1>
+			<KEYWORD1>assume-identity</KEYWORD1>
+			<KEYWORD1>backup-database</KEYWORD1>
+			<KEYWORD1>backup-file</KEYWORD1>
 			<KEYWORD1>banner</KEYWORD1>
+			<KEYWORD1>base-url</KEYWORD1>
 			<KEYWORD1>bounce</KEYWORD1>
+			<KEYWORD1>breadcrumbs</KEYWORD1>
+			<KEYWORD1>captcha</KEYWORD1>
+			<KEYWORD1>capture-page</KEYWORD1>
 			<KEYWORD1>cart</KEYWORD1>
+			<KEYWORD1>charge</KEYWORD1>
 			<KEYWORD1>cgi</KEYWORD1>
 			<KEYWORD1>checked</KEYWORD1>
+			<KEYWORD1>component</KEYWORD1>
 			<KEYWORD1>control</KEYWORD1>
 			<KEYWORD1>counter</KEYWORD1>
+			<KEYWORD1>cp</KEYWORD1>
 			<KEYWORD1>css</KEYWORD1>
 			<KEYWORD1>data</KEYWORD1>
+			<KEYWORD1>db-date</KEYWORD1>
+			<KEYWORD1>db-columns</KEYWORD1>
 			<KEYWORD1>default</KEYWORD1>
 			<KEYWORD1>delete-cart</KEYWORD1>
 			<KEYWORD1>description</KEYWORD1>
 			<KEYWORD1>discount-space</KEYWORD1>
+			<KEYWORD1>display</KEYWORD1>
 			<KEYWORD1>dump</KEYWORD1>
+			<KEYWORD1>dump-session</KEYWORD1>
 			<KEYWORD1>ecml</KEYWORD1>
 			<KEYWORD1>env</KEYWORD1>
 			<KEYWORD1>error</KEYWORD1>
+			<KEYWORD1>evalue</KEYWORD1>
 			<KEYWORD1>explicit</KEYWORD1>
 			<KEYWORD1>export</KEYWORD1>
+			<KEYWORD1>export-database</KEYWORD1>
+			<KEYWORD1>fcounter</KEYWORD1>
 			<KEYWORD1>field</KEYWORD1>
 			<KEYWORD1>file</KEYWORD1>
+			<KEYWORD1>file-info</KEYWORD1>
+			<KEYWORD1>file-navigator</KEYWORD1>
 			<KEYWORD1>flag</KEYWORD1>
+			<KEYWORD1>flag-job</KEYWORD1>
 			<KEYWORD1>fly-tax</KEYWORD1>
 			<KEYWORD1>form-session-id</KEYWORD1>
+			<KEYWORD1>formel</KEYWORD1>
+			<KEYWORD1>fortune</KEYWORD1>
+			<KEYWORD1>forum-userlink</KEYWORD1>
+			<KEYWORD1>get-gpg-keys</KEYWORD1>
 			<KEYWORD1>get-url</KEYWORD1>
+			<KEYWORD1>gloabl-value</KEYWORD1>
 			<KEYWORD1>goto</KEYWORD1>
 			<KEYWORD1>handling</KEYWORD1>
+			<KEYWORD1>history-scan</KEYWORD1>
+			<KEYWORD1>href</KEYWORD1>
 			<KEYWORD1>html_table</KEYWORD1>
 			<KEYWORD1>image</KEYWORD1>
-			<KEYWORD1>import</KEYWORD1>
+			<KEYWORD1>import-fields</KEYWORD1>
 			<KEYWORD1>include</KEYWORD1>
 			<KEYWORD1>index</KEYWORD1>
-			<KEYWORD1>input_filter</KEYWORD1>
 			<KEYWORD1>item</KEYWORD1>
 			<KEYWORD1>label</KEYWORD1>
+			<KEYWORD1>levies</KEYWORD1>
+			<KEYWORD1>list-databases</KEYWORD1>
+			<KEYWORD1>list-keys</KEYWORD1>
+			<KEYWORD1>list-glob</KEYWORD1>
+			<KEYWORD1>list-pages</KEYWORD1>
 			<KEYWORD1>load-cart</KEYWORD1>
 			<KEYWORD1>matches</KEYWORD1>
+			<KEYWORD1>menu-load</KEYWORD1>
+			<KEYWORD1>meta-info</KEYWORD1>
+			<KEYWORD1>meta-record</KEYWORD1>
+			<KEYWORD1>mm-value</KEYWORD1>
+			<KEYWORD1>mm-locale</KEYWORD1>
 			<KEYWORD1>more</KEYWORD1>
+			<KEYWORD1>newer</KEYWORD1>
 			<KEYWORD1>nitems</KEYWORD1>
+			<KEYWORD1>on-fly</KEYWORD1>
+			<KEYWORD1>options</KEYWORD1>
 			<KEYWORD1>order</KEYWORD1>
 			<KEYWORD1>page</KEYWORD1>
+			<KEYWORD1>page-meta</KEYWORD1>
+			<KEYWORD1>pay-cert</KEYWORD1>
+			<KEYWORD1>pay-cert-redeem</KEYWORD1>
 			<KEYWORD1>pragma</KEYWORD1>
 			<KEYWORD1>price</KEYWORD1>
 			<KEYWORD1>process</KEYWORD1>
+			<KEYWORD1>process-order</KEYWORD1>
+			<KEYWORD1>process-target</KEYWORD1>
+			<KEYWORD1>profile</KEYWORD1>
 			<KEYWORD1>quanity</KEYWORD1>
 			<KEYWORD1>read-cookie</KEYWORD1>
-			<KEYWORD1>restrict</KEYWORD1>
+			<KEYWORD1>read-shipping</KEYWORD1>
+			<KEYWORD1>reconfig</KEYWORD1>
+			<KEYWORD1>reconfig-time</KEYWORD1>
 			<KEYWORD1>record</KEYWORD1>
+			<KEYWORD1>report-table</KEYWORD1>
+			<KEYWORD1>restrict</KEYWORD1>
+			<KEYWORD1>return-to</KEYWORD1>
+			<KEYWORD1>run-profile</KEYWORD1>
 			<KEYWORD1>salestax</KEYWORD1>
 			<KEYWORD1>save-cart</KEYWORD1>
 			<KEYWORD1>scratch</KEYWORD1>
 			<KEYWORD1>scratchd</KEYWORD1>
-			<KEYWORD1>search-region</KEYWORD1>
+			<KEYWORD1>search</KEYWORD1>
 			<KEYWORD1>selected</KEYWORD1>
 			<KEYWORD1>set-cookie</KEYWORD1>
 			<KEYWORD1>setlocale</KEYWORD1>
 			<KEYWORD1>shipping</KEYWORD1>
 			<KEYWORD1>shipping-desc</KEYWORD1>
+			<KEYWORD1>shipping-description</KEYWORD1>
+			<KEYWORD1>soap</KEYWORD1>
+			<KEYWORD1>soap-entity</KEYWORD1>
+			<KEYWORD1>su</KEYWORD1>
 			<KEYWORD1>subtotal</KEYWORD1>
-			<KEYWORD1>timed-build</KEYWORD1>
+			<KEYWORD1>summary</KEYWORD1>
 			<KEYWORD1>total-cost</KEYWORD1>
+			<KEYWORD1>traffic-report</KEYWORD1>
 			<KEYWORD1>uneval</KEYWORD1>
+			<KEYWORD1>uninstall-feature</KEYWORD1>
+			<KEYWORD1>unlink-file</KEYWORD1>
 			<KEYWORD1>update</KEYWORD1>
+			<KEYWORD1>update-order-status</KEYWORD1>
+			<KEYWORD1>ups-query</KEYWORD1>
 			<KEYWORD1>userdb</KEYWORD1>
+			<KEYWORD1>user-merge</KEYWORD1>
 			<KEYWORD1>usertrack</KEYWORD1>
-			<KEYWORD1>value_extended</KEYWORD1>
+			<KEYWORD1>usps-query</KEYWORD1>
 			<KEYWORD1>value</KEYWORD1>
 			<KEYWORD1>value-extended</KEYWORD1>
+			<KEYWORD1>value-space</KEYWORD1>
 			<KEYWORD1>var</KEYWORD1>
 			<KEYWORD1>version</KEYWORD1>
+			<KEYWORD1>warning</KEYWORD1>
+			<KEYWORD1>warnings</KEYWORD1>
+			<KEYWORD1>weight</KEYWORD1>
+			<KEYWORD1>widget</KEYWORD1>
+			<KEYWORD1>widget-info</KEYWORD1>
+			<KEYWORD1>widget-meta</KEYWORD1>
+			<KEYWORD1>write-shipping</KEYWORD1>
 			
 			<!-- Modifiers -->
 			<KEYWORD2>alternate</KEYWORD2>
@@ -341,9 +316,9 @@
 			<KEYWORD2>code</KEYWORD2>
 			<KEYWORD2>color</KEYWORD2>
 			<KEYWORD2>compare</KEYWORD2>
-			<KEYWORD2>condition</KEYWORD2>
 			<KEYWORD2>config</KEYWORD2>
 			<KEYWORD2>increment</KEYWORD2>
+			<KEYWORD2>items</KEYWORD2>
 			<KEYWORD2>last</KEYWORD2>
 			<KEYWORD2>list</KEYWORD2>
 			<KEYWORD2>name=</KEYWORD2>
@@ -363,68 +338,109 @@
 			<KEYWORD2>reparse</KEYWORD2>
 			
 			<!-- Control Structures & Container Tags -->
+			<KEYWORD3>and</KEYWORD3>
+			<KEYWORD3>bar-button</KEYWORD3>
 			<KEYWORD3>button</KEYWORD3>
 			<KEYWORD3>calc</KEYWORD3>
 			<KEYWORD3>calcn</KEYWORD3>
 			<KEYWORD3>catch</KEYWORD3>
+			<KEYWORD3>child-process</KEYWORD3>
 			<KEYWORD3>col</KEYWORD3>
 			<KEYWORD3>column</KEYWORD3>
+			<KEYWORD3>comment</KEYWORD3>
+			<KEYWORD3>condition</KEYWORD3>
 			<KEYWORD3>control-set</KEYWORD3>
+			<KEYWORD3>convert-date</KEYWORD3>
+			<KEYWORD3>crypt</KEYWORD3>
 			<KEYWORD3>currency</KEYWORD3>
 			<KEYWORD3>debug</KEYWORD3>
+			<KEYWORD3>deliver</KEYWORD3>
 			<KEYWORD3>discount</KEYWORD3>
 			<KEYWORD3>either</KEYWORD3>
 			<KEYWORD3>else</KEYWORD3>
 			<KEYWORD3>elsif</KEYWORD3>
 			<KEYWORD3>email</KEYWORD3>
+			<KEYWORD3>email-raw</KEYWORD3>
+			<KEYWORD3>filter</KEYWORD3>
+			<KEYWORD3>flex-select</KEYWORD3>
+			<KEYWORD3>fly-list</KEYWORD3>
+			<KEYWORD3>forum</KEYWORD3>
+			<KEYWORD3>grep-mm</KEYWORD3>
+			<KEYWORD3>harness</KEYWORD3>
+			<KEYWORD3>html-table</KEYWORD3>
 			<KEYWORD3>if</KEYWORD3>
 			<KEYWORD3>if-item-data</KEYWORD3>
 			<KEYWORD3>if-item-field</KEYWORD3>
+			<KEYWORD3>if-mm</KEYWORD3>
+			<KEYWORD3>import</KEYWORD3>
+			<KEYWORD3>input-filter</KEYWORD3>
 			<KEYWORD3>item-list</KEYWORD3>
-			<KEYWORD3>filter</KEYWORD3>
-			<KEYWORD3>fly-list</KEYWORD3>
+			<KEYWORD3>jsq</KEYWORD3>
+			<KEYWORD3>jsqn</KEYWORD3>
+			<KEYWORD3>jsquote</KEYWORD3>
+			<KEYWORD3>l</KEYWORD3>
+			<KEYWORD3>levy-list</KEYWORD3>
+			<KEYWORD3>loc</KEYWORD3>
+			<KEYWORD3>local</KEYWORD3>
 			<KEYWORD3>log</KEYWORD3>
 			<KEYWORD3>loop</KEYWORD3>
+			<KEYWORD3>mail</KEYWORD3>
+			<KEYWORD3>menu</KEYWORD3>
 			<KEYWORD3>modifier</KEYWORD3>
 			<KEYWORD3>more-list</KEYWORD3>
+			<KEYWORD3>msg</KEYWORD3>
 			<KEYWORD3>mvasp</KEYWORD3>
+			<KEYWORD3>or</KEYWORD3>
+			<KEYWORD3>output-to</KEYWORD3>
+			<KEYWORD3>parse-locale</KEYWORD3>
 			<KEYWORD3>perl</KEYWORD3>
 			<KEYWORD3>query</KEYWORD3>
-			<KEYWORD3>row</KEYWORD3>			
+			<KEYWORD3>quick-table</KEYWORD3>
+			<KEYWORD3>rand</KEYWORD3>
+			<KEYWORD3>region</KEYWORD3>
+			<KEYWORD3>rotate-table</KEYWORD3>
+			<KEYWORD3>row</KEYWORD3>
+			<KEYWORD3>row-edit</KEYWORD3>
 			<KEYWORD3>search-region</KEYWORD3>
 			<KEYWORD3>set</KEYWORD3>
 			<KEYWORD3>seti</KEYWORD3>
+			<KEYWORD3>strip</KEYWORD3>
+			<KEYWORD3>substitute-file</KEYWORD3>
+			<KEYWORD3>tabbed-display</KEYWORD3>
+			<KEYWORD3>table-editor</KEYWORD3>
+			<KEYWORD3>table-organize</KEYWORD3>
 			<KEYWORD3>tag</KEYWORD3>
 			<KEYWORD3>then</KEYWORD3>
 			<KEYWORD3>time</KEYWORD3>
+			<KEYWORD3>timed-build</KEYWORD3>
+			<KEYWORD3>timed-display</KEYWORD3>
+			<KEYWORD3>title-bar</KEYWORD3>
 			<KEYWORD3>tmp</KEYWORD3>
 			<KEYWORD3>tmpn</KEYWORD3>
 			<KEYWORD3>tree</KEYWORD3>
 			<KEYWORD3>try</KEYWORD3>
-
-			<!-- Unknown -->
-			<KEYWORD3>items</KEYWORD3>			
-			<KEYWORD3>ordered</KEYWORD3>
+			<KEYWORD3>uc-attr-list</KEYWORD3>
+			<KEYWORD3>unpack</KEYWORD3>
+			<KEYWORD3>write-relative-file</KEYWORD3>
 			
 			<!-- Pragmas -->
-			<KEYWORD4>compatible_5_2</KEYWORD4>
 			<KEYWORD4>dml</KEYWORD4>
 			<KEYWORD4>download</KEYWORD4>
 			<KEYWORD4>dynamic_variables</KEYWORD4>
 			<KEYWORD4>dynamic_variables_file_only</KEYWORD4>
-			<KEYWORD4>filter_sql_no_backslash</KEYWORD4>
 			<KEYWORD4>init_page</KEYWORD4>
 			<KEYWORD4>interpolate_itl_references</KEYWORD4>
+			<KEYWORD4>max_matches</KEYWORD4>
 			<KEYWORD4>no_default_reparse</KEYWORD4>
 			<KEYWORD4>no_html_comment_embed</KEYWORD4>
 			<KEYWORD4>no_image_rewrite</KEYWORD4>
 			<KEYWORD4>no_locale_parse</KEYWORD4>
+			<KEYWORD4>no_negative_tax</KEYWORD4>
 			<KEYWORD4>perl_warnings_in_page</KEYWORD4>
 			<KEYWORD4>post_page</KEYWORD4>
 			<KEYWORD4>pre_page</KEYWORD4>
 			<KEYWORD4>safe_date</KEYWORD4>
 			<KEYWORD4>strip_white</KEYWORD4>
-			<KEYWORD4>substitute_table_image</KEYWORD4>
 		</KEYWORDS>
 			
 		<SEQ TYPE="OPERATOR">!</SEQ>
@@ -440,10 +456,26 @@
 		<OPERATOR>gt</OPERATOR>
 		<OPERATOR>lt</OPERATOR>
 		<OPERATOR>!=</OPERATOR>
+		<OPERATOR>=~</OPERATOR>
+		<OPERATOR>!~</OPERATOR>
 
 		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
 	</RULES>
 	
+	<RULES SET="INTERCHANGE_COMMENT" DEFAULT="COMMENT1">
+		<SEQ TYPE="COMMENT1">]</SEQ>
+	</RULES>
+	
+	<RULES SET="PERL" DEFAULT="FUNCTION">
+		<SPAN TYPE="KEYWORD1" DELEGATE="INTERCHANGE" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
+			<BEGIN>[</BEGIN>
+			<END>]</END>
+		</SPAN>
+		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
+		
+		<SEQ TYPE="FUNCTION" DELEGATE="perl::MAIN">]</SEQ>
+	</RULES>
+	
 	<RULES SET="JAVASCRIPT" DEFAULT="MARKUP" IGNORE_CASE="TRUE">
 		<SEQ TYPE="MARKUP" DELEGATE="javascript::MAIN">&gt;</SEQ>
 		<!-- handle <SCRIPT SRC="..."> properly -->



More information about the interchange-cvs mailing list