164 lines
4.2 KiB
XML
164 lines
4.2 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE MODE SYSTEM "xmode.dtd">
|
|
|
|
<MODE>
|
|
<PROPS>
|
|
<PROPERTY NAME="lineComment" VALUE="#" />
|
|
<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
|
|
<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
|
|
</PROPS>
|
|
<RULES ESCAPE="\" IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
|
|
<!-- Comments -->
|
|
<EOL_SPAN TYPE="COMMENT2">#!</EOL_SPAN>
|
|
<EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
|
|
|
|
<!-- Variables -->
|
|
<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
|
|
<BEGIN>${</BEGIN>
|
|
<END>}</END>
|
|
</SPAN>
|
|
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$?</MARK_FOLLOWING>
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$*</MARK_FOLLOWING>
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$@</MARK_FOLLOWING>
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$$</MARK_FOLLOWING>
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$<</MARK_FOLLOWING>
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
|
|
<MARK_PREVIOUS TYPE="KEYWORD2" MATCH_TYPE="OPERATOR">=</MARK_PREVIOUS>
|
|
|
|
<!-- weird stuff -->
|
|
<SPAN TYPE="KEYWORD3" DELEGATE="EXEC">
|
|
<BEGIN>$((</BEGIN>
|
|
<END>))</END>
|
|
</SPAN>
|
|
<SPAN TYPE="KEYWORD3" DELEGATE="EXEC">
|
|
<BEGIN>$(</BEGIN>
|
|
<END>)</END>
|
|
</SPAN>
|
|
<SPAN TYPE="KEYWORD3" DELEGATE="EXEC">
|
|
<BEGIN>$[</BEGIN>
|
|
<END>]</END>
|
|
</SPAN>
|
|
<SPAN TYPE="KEYWORD3" DELEGATE="EXEC">
|
|
<BEGIN>`</BEGIN>
|
|
<END>`</END>
|
|
</SPAN>
|
|
|
|
<!-- Literals -->
|
|
<SPAN TYPE="LITERAL1" DELEGATE="LITERAL">
|
|
<BEGIN>"</BEGIN>
|
|
<END>"</END>
|
|
</SPAN>
|
|
<SPAN TYPE="LITERAL1">
|
|
<BEGIN>'</BEGIN>
|
|
<END>'</END>
|
|
</SPAN>
|
|
|
|
<!-- Readins -->
|
|
<SPAN_REGEXP HASH_CHAR="<<" TYPE="LITERAL1" DELEGATE="LITERAL">
|
|
<BEGIN><![CDATA[<<[\p{Space}'"]*([\p{Alnum}_]+)[\p{Space}'"]*]]></BEGIN>
|
|
<END>$1</END>
|
|
</SPAN_REGEXP>
|
|
|
|
<!-- Operators -->
|
|
<SEQ TYPE="OPERATOR">|</SEQ>
|
|
<SEQ TYPE="OPERATOR">&</SEQ>
|
|
<SEQ TYPE="OPERATOR">!</SEQ>
|
|
<SEQ TYPE="OPERATOR">></SEQ>
|
|
<SEQ TYPE="OPERATOR"><</SEQ>
|
|
|
|
<!-- %jobnumber -->
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>
|
|
|
|
<!-- functions -->
|
|
<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
|
|
<SEQ TYPE="OPERATOR">)</SEQ>
|
|
|
|
<KEYWORDS>
|
|
<KEYWORD1>if</KEYWORD1>
|
|
<KEYWORD1>then</KEYWORD1>
|
|
<KEYWORD1>elif</KEYWORD1>
|
|
<KEYWORD1>else</KEYWORD1>
|
|
<KEYWORD1>fi</KEYWORD1>
|
|
<KEYWORD1>case</KEYWORD1>
|
|
<KEYWORD1>in</KEYWORD1>
|
|
<OPERATOR>;;</OPERATOR>
|
|
<KEYWORD1>esac</KEYWORD1>
|
|
<KEYWORD1>while</KEYWORD1>
|
|
<KEYWORD1>for</KEYWORD1>
|
|
<KEYWORD1>do</KEYWORD1>
|
|
<KEYWORD1>done</KEYWORD1>
|
|
<KEYWORD1>continue</KEYWORD1>
|
|
|
|
<KEYWORD1>local</KEYWORD1>
|
|
<KEYWORD1>return</KEYWORD1>
|
|
</KEYWORDS>
|
|
|
|
<!-- some of these should be marked OPERATOR -->
|
|
<!-- <SEQ TYPE="NULL">)</SEQ>
|
|
<SEQ TYPE="NULL">(</SEQ>
|
|
<SEQ TYPE="NULL">=</SEQ>
|
|
<SEQ TYPE="NULL">!</SEQ>
|
|
<SEQ TYPE="NULL">>=</SEQ>
|
|
<SEQ TYPE="NULL"><=</SEQ>
|
|
<SEQ TYPE="NULL">+</SEQ>
|
|
<SEQ TYPE="NULL">-</SEQ>
|
|
<SEQ TYPE="NULL">/</SEQ>
|
|
<SEQ TYPE="NULL">*</SEQ>
|
|
<SEQ TYPE="NULL">^</SEQ>
|
|
<SEQ TYPE="NULL">~</SEQ>
|
|
<SEQ TYPE="NULL">}</SEQ>
|
|
<SEQ TYPE="NULL">{</SEQ>
|
|
SEQ TYPE="NULL">.</SEQ
|
|
<SEQ TYPE="NULL">,</SEQ>
|
|
<SEQ TYPE="NULL">;</SEQ>
|
|
<SEQ TYPE="NULL">]</SEQ>
|
|
<SEQ TYPE="NULL">[</SEQ>
|
|
<SEQ TYPE="NULL">?</SEQ>
|
|
<SEQ TYPE="NULL">:</SEQ> -->
|
|
</RULES>
|
|
|
|
<RULES SET="LITERAL" DEFAULT="LITERAL1" ESCAPE="\">
|
|
<!-- Variables -->
|
|
<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
|
|
<BEGIN>${</BEGIN>
|
|
<END>}</END>
|
|
</SPAN>
|
|
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
|
|
</RULES>
|
|
|
|
<RULES SET="EXEC" DEFAULT="KEYWORD3" ESCAPE="\">
|
|
<!-- Variables -->
|
|
<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
|
|
<BEGIN>${</BEGIN>
|
|
<END>}</END>
|
|
</SPAN>
|
|
|
|
<SPAN TYPE="KEYWORD3">
|
|
<BEGIN>$((</BEGIN>
|
|
<END>))</END>
|
|
</SPAN>
|
|
|
|
<SPAN TYPE="KEYWORD3">
|
|
<BEGIN>$(</BEGIN>
|
|
<END>)</END>
|
|
</SPAN>
|
|
|
|
<SPAN TYPE="KEYWORD3">
|
|
<BEGIN>$[</BEGIN>
|
|
<END>]</END>
|
|
</SPAN>
|
|
|
|
<MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
|
|
|
|
<SEQ TYPE="OPERATOR">|</SEQ>
|
|
<SEQ TYPE="OPERATOR">&</SEQ>
|
|
<SEQ TYPE="OPERATOR">!</SEQ>
|
|
<SEQ TYPE="OPERATOR">></SEQ>
|
|
<SEQ TYPE="OPERATOR"><</SEQ>
|
|
</RULES>
|
|
</MODE>
|