lf state="root"/><token type="Punctuation"/></bygroups><push state="function"/></rule>
      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)"><bygroups><usingself state="root"/><token type="NameFunction"/><usingself state="root"/><usingself state="root"/><token type="Punctuation"/></bygroups></rule>
    </state>
    <state name="string">
      <rule pattern="&quot;"><token type="LiteralString"/><pop depth="1"/></rule>
      <rule pattern="\\([\\abfnrtv&quot;\&#x27;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})"><token type="LiteralStringEscape"/></rule>
      <rule pattern="[^\\&quot;\n]+"><token type="LiteralString"/></rule>
      <rule pattern="\\\n"><token type="LiteralString"/></rule>
      <rule pattern="\\"><token type="LiteralString"/></rule>
    </state>
    <state name="macro">
      <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)"><bygroups><token type="CommentPreproc"/><token type="Text"/><token type="CommentPreprocFile"/></bygroups></rule>
      <rule pattern="[^/\n]+"><token type="CommentPreproc"/></rule>
      <rule pattern="/\*(.|\n)*?\*/"><token type="CommentMultiline"/></rule>
      <rule pattern="//.*?\n"><token type="CommentSingle"/><pop depth="1"/></rule>
      <rule pattern="/"><token type="CommentPreproc"/></rule>
      <rule pattern="(?&lt;=\\)\n"><token type="CommentPreproc"/></rule>
      <rule pattern="\n"><token type="CommentPreproc"/><pop depth="1"/></rule>
    </state>
    <state name="if0">
      <rule pattern="^\s*#if.*?(?&lt;!\\)\n"><token type="CommentPreproc"/><push/></rule>
      <rule pattern="^\s*#endif.*?(?&lt;!\\)\n"><token type="CommentPreproc"/><pop depth="1"/></rule>
      <rule pattern=".*?\n"><token type="Comment"/></rule>
    </state>
  </rules>
</lexer>
