]+"><token type="NameVariableClass"/></rule>
      <rule pattern="[0-7]b"><token type="LiteralNumberByte"/></rule>
      <rule pattern="[+-]?\d*\.?\d+([eE]?[+-]?\d+)?[df]?\b"><token type="LiteralNumberFloat"/></rule>
      <rule pattern="[+-]?\d+\b"><token type="LiteralNumberInteger"/></rule>
      <rule pattern="&quot;"><token type="LiteralStringDouble"/><push state="literals.string-double"/></rule>
      <rule pattern="&#x27;"><token type="LiteralStringSingle"/><push state="literals.string-single"/></rule>
    </state>
    <state name="literals.string-double">
      <rule pattern="\\."><token type="LiteralStringEscape"/></rule>
      <rule pattern="[^\\&quot;\n]+"><token type="LiteralStringDouble"/></rule>
      <rule pattern="&quot;"><token type="LiteralStringDouble"/><pop depth="1"/></rule>
    </state>
    <state name="literals.string-single">
      <rule pattern="\\."><token type="LiteralStringEscape"/></rule>
      <rule pattern="[^\\&#x27;\n]+"><token type="LiteralStringSingle"/></rule>
      <rule pattern="&#x27;"><token type="LiteralStringSingle"/><pop depth="1"/></rule>
    </state>
    <state name="selectors">
      <rule pattern="@[a-z]"><token type="NameVariable"/></rule>
    </state>
    <state name="property">
      <rule pattern="\{"><token type="Punctuation"/><push state="property.curly" state="property.key"/></rule>
      <rule pattern="\["><token type="Punctuation"/><push state="property.square" state="property.key"/></rule>
    </state>
    <state name="property.curly">
      <rule><include state="whitespace"/></rule>
      <rule><include state="property"/></rule>
      <rule pattern="\}"><token type="Punctuation"/><pop depth="1"/></rule>
    </state>
    <state name="property.square">
      <rule><include state="whitespace"/></rule>
      <rule><include state="property"/></rule>
      <rule pattern="\]"><token type="Punctuation"/><pop depth="1"/></rule>
      <rule pattern=","><token type="Punctuation"/></rule>
    </state>
    <state name="property.key">
      <rule><include state="whitespace"/></rule>
      <rule pattern="#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+(?=\s*\=)"><token type="NameAttribute"/><push state="property.delimiter"/></rule>
      <rule pattern="#?[a-z_][a-z0-9_\.\-/]+"><token type="NameAttribute"/><push state="property.delimiter"/></rule>
      <rule pattern="[A-Za-z_\-\+]+"><token type="NameAttribute"/><push state="property.delimiter"/></rule>
      <rule pattern="&quot;"><token type="NameAttribute"/><push state="property.delimiter"/></rule>
      <rule pattern="&#x27;"><token type="NameAttribute"/><push state="property.delimiter"/></rule>
      <rule pattern="-?\d+"><token type="LiteralNumberInteger"/><push state="property.delimiter"/></rule>
      <rule><pop depth="1"/></rule>
    </state>
    <state name="property.key.string-double">
      <rule pattern="\\."><token type="LiteralStringEscape"/></rule>
      <rule pattern="[^\\&quot;\n]+"><token type="NameAttribute"/></rule>
      <rule pattern="&quot;"><token type="NameAttribute"/><pop depth="1"/></rule>
    </state>
    <state name="property.key.string-single">
      <rule pattern="\\."><token type="LiteralStringEscape"/></rule>
      <rule pattern="[^\\&#x27;\n]+"><token type="NameAttribute"/></rule>
      <rule pattern="&#x27;"><token type="NameAttribute"/><pop depth="1"/></rule>
    </state>
    <state name="property.delimiter">
      <rule><include state="whitespace"/></rule>
      <rule pattern="[:=]!?"><token type="Punctuation"/><push state="property.value"/></rule>
      <rule pattern=","><token type="Punctuation"/></rule>
      <rule><pop depth="1"/></rule>
    </state>
    <state name="property.value">
      <rule><include state="whitespace"/></rule>
      <rule pattern="#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+"><token type="NameTag"/></rule>
      <rule pattern="#?[a-z_][a-z0-9_\.\-/]+"><token type="NameTag"/></rule>
      <rule><include state="literals"/></rule>
      <rule><include state="property"/></rule>
      <rule><pop depth="1"/></rule>
    </state>
  </rules>
</lexer>

