-<?xml version="1.0"?>\r
-<!DOCTYPE MODE SYSTEM "xmode.dtd">\r
-\r
-<!-- RetroForth is one of the nicest Forth implementations, so we\r
-support that one. You can extend this to your own Forth's vocabulary\r
-easily. -->\r
-\r
-<MODE>\r
- <PROPS>\r
- <PROPERTY NAME="indentNextLines" VALUE="^:[^;]*" />\r
- <PROPERTY NAME="unindentNextLines" VALUE="^.*;$" />\r
- <PROPERTY NAME="commentStart" VALUE="(" />\r
- <PROPERTY NAME="commentEnd" VALUE=")" />\r
- <PROPERTY NAME="lineComment" VALUE="|" />\r
- <PROPERTY NAME="noWordSep" VALUE="+-*=><;.?/'()%,_|$" />\r
- </PROPS>\r
- <RULES IGNORE_CASE="FALSE"\r
- NO_WORD_SEP="+-*=><;.?/'"()%,_$"\r
- HIGHLIGHT_DIGITS="TRUE"\r
- DIGIT_RE="|-?\d+([./]\d+)?">\r
-\r
- <EOL_SPAN TYPE="COMMENT1" AT_WORD_START="TRUE">| </EOL_SPAN>\r
-\r
- <MARK_FOLLOWING TYPE="DIGIT" AT_WORD_START="TRUE">$</MARK_FOLLOWING>\r
- <MARK_FOLLOWING TYPE="LITERAL3" AT_WORD_START="TRUE">'</MARK_FOLLOWING>\r
-\r
- <!-- parsing words -->\r
- <SEQ_REGEXP TYPE="MARKUP"\r
- HASH_CHAR=":"\r
- AT_WORD_START="TRUE">:\s+(\S+)</SEQ_REGEXP>\r
-\r
- <SPAN TYPE="COMMENT3" DELEGATE="STACK_EFFECT">\r
- <BEGIN>( </BEGIN>\r
- <END>)</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"\r
- AT_WORD_START="TRUE">\r
- <BEGIN>s"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE"\r
- AT_WORD_START="TRUE">\r
- <BEGIN>."</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL3" NO_LINE_BREAK="TRUE"\r
- AT_WORD_START="TRUE">\r
- <BEGIN>f"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL3" NO_LINE_BREAK="TRUE"\r
- AT_WORD_START="TRUE">\r
- <BEGIN>m"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL4" NO_LINE_BREAK="TRUE"\r
- AT_WORD_START="TRUE">\r
- <BEGIN>"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <KEYWORDS>\r
- <MARKUP>;</MARKUP>\r
- <MARKUP>;;</MARKUP>\r
- <MARKUP>0;</MARKUP>\r
-\r
- <KEYWORD1>swap</KEYWORD1>\r
- <KEYWORD1>drop</KEYWORD1>\r
- <KEYWORD1>dup</KEYWORD1>\r
- <KEYWORD1>nip</KEYWORD1>\r
- <KEYWORD1>over</KEYWORD1>\r
- <KEYWORD1>rot</KEYWORD1>\r
- <KEYWORD1>-rot</KEYWORD1>\r
- <KEYWORD1>2dup</KEYWORD1>\r
- <KEYWORD1>2drop</KEYWORD1>\r
- <KEYWORD1>2over</KEYWORD1>\r
- <KEYWORD1>2swap</KEYWORD1>\r
- <KEYWORD1>>r</KEYWORD1>\r
- <KEYWORD1>r></KEYWORD1>\r
-\r
- <KEYWORD2>and</KEYWORD2>\r
- <KEYWORD2>or</KEYWORD2>\r
- <KEYWORD2>xor</KEYWORD2>\r
- <KEYWORD2>>></KEYWORD2>\r
- <KEYWORD2><<</KEYWORD2>\r
- <KEYWORD2>not</KEYWORD2>\r
- <KEYWORD2>+</KEYWORD2>\r
- <KEYWORD2>*</KEYWORD2>\r
- <KEYWORD2>negate</KEYWORD2>\r
- <KEYWORD2>-</KEYWORD2>\r
- <KEYWORD2>/</KEYWORD2>\r
- <KEYWORD2>mod</KEYWORD2>\r
- <KEYWORD2>/mod</KEYWORD2>\r
- <KEYWORD2>*/</KEYWORD2>\r
- <KEYWORD2>1+</KEYWORD2>\r
- <KEYWORD2>1-</KEYWORD2>\r
- <KEYWORD2>base</KEYWORD2>\r
- <KEYWORD2>hex</KEYWORD2>\r
- <KEYWORD2>decimal</KEYWORD2>\r
- <KEYWORD2>binary</KEYWORD2>\r
- <KEYWORD2>octal</KEYWORD2>\r
-\r
- <KEYWORD3>@</KEYWORD3>\r
- <KEYWORD3>!</KEYWORD3>\r
- <KEYWORD3>c@</KEYWORD3>\r
- <KEYWORD3>c!</KEYWORD3>\r
- <KEYWORD3>+!</KEYWORD3>\r
- <KEYWORD3>cell+</KEYWORD3>\r
- <KEYWORD3>cells</KEYWORD3>\r
- <KEYWORD3>char+</KEYWORD3>\r
- <KEYWORD3>chars</KEYWORD3>\r
-\r
- <KEYWORD4>[</KEYWORD4>\r
- <KEYWORD4>]</KEYWORD4>\r
- <KEYWORD4>create</KEYWORD4>\r
- <KEYWORD4>does></KEYWORD4>\r
- <KEYWORD4>variable</KEYWORD4>\r
- <KEYWORD4>variable,</KEYWORD4>\r
- <KEYWORD4>literal</KEYWORD4>\r
- <KEYWORD4>last</KEYWORD4>\r
- <KEYWORD4>1,</KEYWORD4>\r
- <KEYWORD4>2,</KEYWORD4>\r
- <KEYWORD4>3,</KEYWORD4>\r
- <KEYWORD4>,</KEYWORD4>\r
- <KEYWORD4>here</KEYWORD4>\r
- <KEYWORD4>allot</KEYWORD4>\r
- <KEYWORD4>parse</KEYWORD4>\r
- <KEYWORD4>find</KEYWORD4>\r
- <KEYWORD4>compile</KEYWORD4>\r
-\r
- <OPERATOR>if</OPERATOR>\r
- <OPERATOR>=if</OPERATOR>\r
- <OPERATOR><if</OPERATOR>\r
- <OPERATOR>>if</OPERATOR>\r
- <OPERATOR><>if</OPERATOR>\r
- <OPERATOR>then</OPERATOR>\r
- <OPERATOR>repeat</OPERATOR>\r
- <OPERATOR>until</OPERATOR>\r
-\r
- <OPERATOR>forth</OPERATOR>\r
- <OPERATOR>macro</OPERATOR>\r
- </KEYWORDS>\r
- </RULES>\r
-\r
- <RULES SET="STACK_EFFECT" DEFAULT="COMMENT4">\r
- <SEQ TYPE="COMMENT3">--</SEQ>\r
- </RULES>\r
-</MODE>\r
+<?xml version="1.0"?>
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!-- RetroForth is one of the nicest Forth implementations, so we
+support that one. You can extend this to your own Forth's vocabulary
+easily. -->
+
+<MODE>
+ <PROPS>
+ <PROPERTY NAME="indentNextLines" VALUE="^:[^;]*" />
+ <PROPERTY NAME="unindentNextLines" VALUE="^.*;$" />
+ <PROPERTY NAME="commentStart" VALUE="(" />
+ <PROPERTY NAME="commentEnd" VALUE=")" />
+ <PROPERTY NAME="lineComment" VALUE="|" />
+ <PROPERTY NAME="noWordSep" VALUE="+-*=><;.?/'()%,_|$" />
+ </PROPS>
+ <RULES IGNORE_CASE="FALSE"
+ NO_WORD_SEP="+-*=><;.?/'"()%,_$"
+ HIGHLIGHT_DIGITS="TRUE"
+ DIGIT_RE="|-?\d+([./]\d+)?">
+
+ <EOL_SPAN TYPE="COMMENT1" AT_WORD_START="TRUE">| </EOL_SPAN>
+
+ <MARK_FOLLOWING TYPE="DIGIT" AT_WORD_START="TRUE">$</MARK_FOLLOWING>
+ <MARK_FOLLOWING TYPE="LITERAL3" AT_WORD_START="TRUE">'</MARK_FOLLOWING>
+
+ <!-- parsing words -->
+ <SEQ_REGEXP TYPE="MARKUP"
+ HASH_CHAR=":"
+ AT_WORD_START="TRUE">:\s+(\S+)</SEQ_REGEXP>
+
+ <SPAN TYPE="COMMENT3" DELEGATE="STACK_EFFECT">
+ <BEGIN>( </BEGIN>
+ <END>)</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"
+ AT_WORD_START="TRUE">
+ <BEGIN>s"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE"
+ AT_WORD_START="TRUE">
+ <BEGIN>."</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL3" NO_LINE_BREAK="TRUE"
+ AT_WORD_START="TRUE">
+ <BEGIN>f"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL3" NO_LINE_BREAK="TRUE"
+ AT_WORD_START="TRUE">
+ <BEGIN>m"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL4" NO_LINE_BREAK="TRUE"
+ AT_WORD_START="TRUE">
+ <BEGIN>"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <KEYWORDS>
+ <MARKUP>;</MARKUP>
+ <MARKUP>;;</MARKUP>
+ <MARKUP>0;</MARKUP>
+
+ <KEYWORD1>swap</KEYWORD1>
+ <KEYWORD1>drop</KEYWORD1>
+ <KEYWORD1>dup</KEYWORD1>
+ <KEYWORD1>nip</KEYWORD1>
+ <KEYWORD1>over</KEYWORD1>
+ <KEYWORD1>rot</KEYWORD1>
+ <KEYWORD1>-rot</KEYWORD1>
+ <KEYWORD1>2dup</KEYWORD1>
+ <KEYWORD1>2drop</KEYWORD1>
+ <KEYWORD1>2over</KEYWORD1>
+ <KEYWORD1>2swap</KEYWORD1>
+ <KEYWORD1>>r</KEYWORD1>
+ <KEYWORD1>r></KEYWORD1>
+
+ <KEYWORD2>and</KEYWORD2>
+ <KEYWORD2>or</KEYWORD2>
+ <KEYWORD2>xor</KEYWORD2>
+ <KEYWORD2>>></KEYWORD2>
+ <KEYWORD2><<</KEYWORD2>
+ <KEYWORD2>not</KEYWORD2>
+ <KEYWORD2>+</KEYWORD2>
+ <KEYWORD2>*</KEYWORD2>
+ <KEYWORD2>negate</KEYWORD2>
+ <KEYWORD2>-</KEYWORD2>
+ <KEYWORD2>/</KEYWORD2>
+ <KEYWORD2>mod</KEYWORD2>
+ <KEYWORD2>/mod</KEYWORD2>
+ <KEYWORD2>*/</KEYWORD2>
+ <KEYWORD2>1+</KEYWORD2>
+ <KEYWORD2>1-</KEYWORD2>
+ <KEYWORD2>base</KEYWORD2>
+ <KEYWORD2>hex</KEYWORD2>
+ <KEYWORD2>decimal</KEYWORD2>
+ <KEYWORD2>binary</KEYWORD2>
+ <KEYWORD2>octal</KEYWORD2>
+
+ <KEYWORD3>@</KEYWORD3>
+ <KEYWORD3>!</KEYWORD3>
+ <KEYWORD3>c@</KEYWORD3>
+ <KEYWORD3>c!</KEYWORD3>
+ <KEYWORD3>+!</KEYWORD3>
+ <KEYWORD3>cell+</KEYWORD3>
+ <KEYWORD3>cells</KEYWORD3>
+ <KEYWORD3>char+</KEYWORD3>
+ <KEYWORD3>chars</KEYWORD3>
+
+ <KEYWORD4>[</KEYWORD4>
+ <KEYWORD4>]</KEYWORD4>
+ <KEYWORD4>create</KEYWORD4>
+ <KEYWORD4>does></KEYWORD4>
+ <KEYWORD4>variable</KEYWORD4>
+ <KEYWORD4>variable,</KEYWORD4>
+ <KEYWORD4>literal</KEYWORD4>
+ <KEYWORD4>last</KEYWORD4>
+ <KEYWORD4>1,</KEYWORD4>
+ <KEYWORD4>2,</KEYWORD4>
+ <KEYWORD4>3,</KEYWORD4>
+ <KEYWORD4>,</KEYWORD4>
+ <KEYWORD4>here</KEYWORD4>
+ <KEYWORD4>allot</KEYWORD4>
+ <KEYWORD4>parse</KEYWORD4>
+ <KEYWORD4>find</KEYWORD4>
+ <KEYWORD4>compile</KEYWORD4>
+
+ <OPERATOR>if</OPERATOR>
+ <OPERATOR>=if</OPERATOR>
+ <OPERATOR><if</OPERATOR>
+ <OPERATOR>>if</OPERATOR>
+ <OPERATOR><>if</OPERATOR>
+ <OPERATOR>then</OPERATOR>
+ <OPERATOR>repeat</OPERATOR>
+ <OPERATOR>until</OPERATOR>
+
+ <OPERATOR>forth</OPERATOR>
+ <OPERATOR>macro</OPERATOR>
+ </KEYWORDS>
+ </RULES>
+
+ <RULES SET="STACK_EFFECT" DEFAULT="COMMENT4">
+ <SEQ TYPE="COMMENT3">--</SEQ>
+ </RULES>
+</MODE>