ntHashbang"/>
      </rule>
      <rule pattern="#.*\n">
        <token type="Comment"/>
      </rule>
      <rule pattern="\\[\w\W]">
        <token type="LiteralStringEscape"/>
      </rule>
      <rule pattern="(\b\w+)(\s*)(=)">
        <bygroups>
          <token type="NameVariable"/>
          <token type="Text"/>
          <token type="Operator"/>
        </bygroups>
      </rule>
      <rule pattern="[\[\]()={}]">
        <token type="Operator"/>
      </rule>
      <rule pattern="(?&lt;=\[[^\]]+)\.\.|-(?=[^\[]+\])">
        <token type="Operator"/>
      </rule>
      <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
        <token type="LiteralString"/>
      </rule>
      <rule pattern="(?&lt;=set\s+(?:--?[^\d\W][\w-]*\s+)?)\w+">
        <token type="NameVariable"/>
      </rule>
      <rule pattern="(?&lt;=for\s+)\w[\w-]*(?=\s+in)">
        <token type="NameVariable"/>
      </rule>
      <rule pattern="(?&lt;=function\s+)\w(?:[^\n])*?(?= *[-\n])">
        <token type="NameFunction"/>
      </rule>
      <rule pattern="(?&lt;=(?:^|\b(?:and|or|sudo)\b|;|\|\||&amp;&amp;|\||\(|(?:\b\w+\s*=\S+\s)) *)\w[\w-]*">
        <token type="NameFunction"/>
      </rule>
    </state>
    <state name="data">
      <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
        <token type="LiteralStringDouble"/>
      </rule>
      <rule pattern="&#34;">
        <token type="LiteralStringDouble"/>
        <push state="string"/>
      </rule>
      <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
        <token type="LiteralStringSingle"/>
      </rule>
      <rule pattern="(?s)&#39;.*?&#39;">
        <token type="LiteralStringSingle"/>
      </rule>
      <rule pattern=";">
        <token type="Punctuation"/>
      </rule>
      <rule pattern="&amp;&amp;|\|\||&amp;|\||\^|&lt;|&gt;">
        <token type="Operator"/>
      </rule>
      <rule pattern="\s+">
        <token type="Text"/>
      </rule>
      <rule pattern="\b\d+\b">
        <token type="LiteralNumber"/>
      </rule>
      <rule pattern="(?&lt;=\s+)--?[^\d][\w-]*">
        <token type="NameAttribute"/>
      </rule>
      <rule pattern=".+?">
        <token type="Text"/>
      </rule>
    </state>
    <state name="string">
      <rule pattern="&#34;">
        <token type="LiteralStringDouble"/>
        <pop depth="1"/>
      </rule>
      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
        <token type="LiteralStringDouble"/>
      </rule>
      <rule>
        <include state="interp"/>
      </rule>
    </state>
  </rules>
</lexer>