1. <lexer>
    
  2.   <config>
    
  3.     <name>SCSS</name>
    
  4.     <alias>scss</alias>
    
  5.     <filename>*.scss</filename>
    
  6.     <mime_type>text/x-scss</mime_type>
    
  7.     <case_insensitive>true</case_insensitive>
    
  8.     <dot_all>true</dot_all>
    
  9.     <not_multiline>true</not_multiline>
    
  10.   </config>
    
  11.   <rules>
    
  12.     <state name="string-double">
    
  13.       <rule pattern="(\\.|#(?=[^\n{])|[^\n&#34;#])+">
    
  14.         <token type="LiteralStringDouble"/>
    
  15.       </rule>
    
  16.       <rule pattern="#\{">
    
  17.         <token type="LiteralStringInterpol"/>
    
  18.         <push state="interpolation"/>
    
  19.       </rule>
    
  20.       <rule pattern="&#34;">
    
  21.         <token type="LiteralStringDouble"/>
    
  22.         <pop depth="1"/>
    
  23.       </rule>
    
  24.     </state>
    
  25.     <state name="id">
    
  26.       <rule pattern="[\w-]+">
    
  27.         <token type="NameNamespace"/>
    
  28.       </rule>
    
  29.       <rule pattern="#\{">
    
  30.         <token type="LiteralStringInterpol"/>
    
  31.         <push state="interpolation"/>
    
  32.       </rule>
    
  33.       <rule>
    
  34.         <pop depth="1"/>
    
  35.       </rule>
    
  36.     </state>
    
  37.     <state name="value">
    
  38.       <rule pattern="[ \t]+">
    
  39.         <token type="Text"/>
    
  40.       </rule>
    
  41.       <rule pattern="!(important|default|global)">
    
  42.         <token type="Keyword"/>
    
  43.       </rule>
    
  44.       <rule pattern="[!$][\w-]+">
    
  45.         <token type="NameVariable"/>
    
  46.       </rule>
    
  47.       <rule pattern="url\(">
    
  48.         <token type="LiteralStringOther"/>
    
  49.         <push state="string-url"/>
    
  50.       </rule>
    
  51.       <rule pattern="[a-z_-][\w-]*(?=\()">
    
  52.         <token type="NameFunction"/>
    
  53.       </rule>
    
  54.       <rule pattern="\b(scroll-padding-inline-start|spatial-navigation-function|transition-timing-function|overscroll-behavior-inline|spatial-navigation-contain|border-bottom-right-radius|scroll-padding-block-start|scroll-margin-inline-start|border-bottom-left-radius|border-start-start-radius|border-inline-start-color|animation-iteration-count|border-inline-start-width|animation-timing-function|text-decoration-thickness|border-inline-start-style|scroll-margin-block-start|scroll-padding-inline-end|spatial-navigation-action|overscroll-behavior-block|scroll-margin-inline-end|border-block-start-style|border-block-start-width|scroll-padding-block-end|border-block-start-color|border-inline-end-width|border-top-right-radius|text-underline-position|scroll-margin-block-end|border-start-end-radius|border-end-start-radius|border-inline-end-style|border-inline-end-color|font-variant-east-asian|border-block-end-style|font-language-override|border-block-end-color|border-block-end-width|text-emphasis-position|border-top-left-radius|font-variant-ligatures|background-attachment|overscroll-behavior-x|text-decoration-style|scroll-padding-inline|background-blend-mode|text-decoration-color|text-underline-offset|overscroll-behavior-y|font-variant-position|shape-image-threshold|grid-template-columns|border-end-end-radius|font-feature-settings|scroll-padding-bottom|font-variant-numeric|initial-letter-align|text-combine-upright|box-decoration-break|overflow-clip-margin|scroll-padding-right|padding-inline-start|scroll-margin-bottom|text-decoration-skip|scroll-margin-inline|scroll-padding-block|animation-play-state|text-decoration-line|scroll-margin-block|border-image-outset|font-optical-sizing|animation-fill-mode|margin-inline-start|border-bottom-color|transition-property|border-inline-width|animation-direction|grid-template-areas|forced-color-adjust|border-inline-style|border-inline-start|text-emphasis-style|scroll-padding-left|border-bottom-width|scroll-margin-right|border-inline-color|overscroll-behavior|list-style-position|hanging-punctuation|background-position|border-bottom-style|border-image-source|transition-duration|initial-letter-wrap|padding-block-start|border-image-repeat|backface-visibility|font-variant-emoji|margin-block-start|border-block-start|border-block-style|padding-inline-end|border-right-width|perspective-origin|inset-inline-start|border-right-color|border-block-color|mask-border-repeat|mask-border-source|border-image-width|scroll-padding-top|animation-duration|border-image-slice|grid-template-rows|content-visibility|scroll-margin-left|border-block-width|border-right-style|image-orientation|scroll-snap-align|page-break-inside|column-rule-width|mask-border-width|column-rule-style|mask-border-slice|column-rule-color|grid-auto-columns|page-break-before|background-repeat|counter-increment|font-variant-caps|padding-block-end|border-inline-end|grid-column-start|border-left-width|border-left-style|border-left-color|scroll-margin-top|inset-block-start|margin-inline-end|background-origin|mask-border-mode|scroll-snap-stop|scroll-snap-type|scrollbar-gutter|font-size-adjust|transform-origin|page-orientation|image-resolution|margin-block-end|footnote-display|page-break-after|border-block-end|text-group-align|text-orientation|transition-delay|background-image|text-size-adjust|border-top-width|border-top-style|list-style-image|border-top-color|background-color|inset-inline-end|offset-distance|background-size|background-clip|list-style-type|footnote-policy|text-decoration|scrollbar-color|scrollbar-width|text-align-last|image-rendering|animation-delay|transform-style|object-position|offset-position|text-space-trim|justify-content|overflow-anchor|scroll-behavior|inset-block-end|border-collapse|grid-column-end|overflow-inline|border-spacing|scroll-padding|text-align-all|pointer-events|max-block-size|text-transform|letter-spacing|lighting-color|mask-composite|initial-letter|mix-blend-mode|overflow-block|animation-name|padding-bottom|flex-direction|padding-inline|font-synthesis|grid-auto-flow|vertical-align|outline-offset|text-rendering|grid-auto-rows|grid-row-start|margin-inline|padding-block|offset-rotate|text-overflow|border-inline|margin-bottom|offset-anchor|scroll-margin|outline-style|border-bottom|shape-outside|outline-width|shape-padding|text-emphasis|align-content|grid-template|border-radius|transform-box|overflow-wrap|justify-items|mask-position|place-content|inline-sizing|counter-reset|padding-right|outline-color|table-layout|column-width|writing-mode|font-variant|touch-action|padding-left|color-adjust|word-spacing|text-justify|shape-margin|caption-side|break-inside|shape-inside|margin-right|break-before|font-kerning|font-stretch|border-width|margin-break|text-spacing|border-style|aspect-ratio|margin-block|grid-row-end|border-block|line-padding|border-right|wrap-through|border-color|border-image|justify-self|inset-inline|unicode-bidi|column-count|column-span|border-left|white-space|wrap-inside|grid-column|will-change|text-shadow|offset-path|user-select|inline-size|break-after|place-items|caret-color|text-indent|padding-top|inset-block|wrap-before|font-weight|flex-shrink|line-height|perspective|column-fill|mask-repeat|align-items|margin-left|mask-origin|margin-trim|column-rule|font-family|empty-cells|counter-set|mask-border|overflow-y|string-set|align-self|text-align|place-self|list-style|wrap-after|block-size|word-break|line-clamp|line-break|flex-basis|max-height|min-height|object-fit|appearance|box-sizing|transition|mask-image|background|border-top|visibility|overflow-x|column-gap|font-style|box-shadow|margin-top|mask-size|line-snap|flex-wrap|nav-right|isolation|flex-grow|flex-flow|translate|line-grid|text-wrap|wrap-flow|min-width|max-width|direction|clip-path|transform|mask-clip|max-lines|mask-type|grid-area|animation|mask-mode|word-wrap|font-size|nav-down|position|overflow|grid-row|tab-size|nav-left|z-index|row-gap|content|opacity|padding|display|outline|columns|hyphens|orphans|margin|border|rotate|filter|resize|quotes|bottom|height|offset|nav-up|cursor|widows|width|inset|clear|color|right|float|scale|order|left|font|flex|mask|page|grid|clip|all|gap|src|top)(?=\s*:)">
    
  55.         <token type="NameAttribute"/>
    
  56.       </rule>
    
  57.       <rule pattern="(?&lt;!:\s*)[^ \t:=&#34;\[;(),.]+(?=[ \t]*:(?:#{|[^{])+?[;,])">
    
  58.         <token type="NameAttribute"/>
    
  59.       </rule>
    
  60.       <rule pattern="\b(no-discretionary-ligatures|no-historical-ligatures|discretionary-ligatures|simp-chinese-informal|trad-chinese-informal|korean-hanja-informal|historical-ligatures|korean-hangul-formal|decimal-leading-zero|korean-hanja-formal|ruby-text-container|ruby-base-container|no-common-ligatures|trad-chinese-formal|simp-chinese-formal|cjk-earthly-branch|geometricPrecision|optimizeLegibility|table-header-group|table-footer-group|diagonal-fractions|table-column-group|proportional-width|disclosure-closed|stacked-fractions|japanese-informal|alternate-reverse|cjk-heavenly-stem|proportional-nums|slider-horizontal|ideograph-numeric|common-ligatures|isolate-override|ethiopic-numeric|ideograph-alpha|table-row-group|all-petite-caps|cjk-ideographic|inter-character|ultra-condensed|scroll-position|extra-condensed|japanese-formal|disclosure-open|menulist-button|upper-armenian|lower-armenian|extra-expanded|semi-condensed|space-adjacent|all-small-caps|discard-before|katakana-iroha|full-size-kana|no-close-quote|ultra-expanded|hiragana-iroha|target-counter|column-reverse|spelling-error|grammar-error|optimizeSpeed|discard-after|no-contextual|trim-adjacent|table-caption|square-button|semi-expanded|border-bottom|ui-sans-serif|double-circle|vertical-text|outside-shape|horizontal-tb|no-open-quote|space-between|small-caption|oldstyle-nums|bidi-override|progress-bar|match-parent|line-through|space-around|inline-table|inline-block|high-quality|space-evenly|table-column|currentColor|arabic-indic|ui-monospace|rotate-right|inline-start|avoid-region|avoid-column|match-source|manipulation|tabular-nums|context-menu|slashed-zero|cubic-bezier|titling-caps|wrap-reverse|color-dodge|sideways-lr|no-compress|space-first|searchfield|lining-nums|fit-content|ease-in-out|punctuation|min-content|petite-caps|crisp-edges|push-button|translate3d|row-reverse|perspective|max-content|nesw-resize|not-allowed|preserve-3d|space-start|drop-shadow|padding-box|text-bottom|rotate-left|block-start|inline-grid|inline-flex|upper-latin|upper-alpha|lower-latin|auto‑flow|lower-alpha|message-box|lower-greek|upper-roman|lower-roman|vertical-rl|traditional|justify-all|close-quote|content-box|vertical-lr|cjk-decimal|transparent|sideways-rl|target-text|balance-all|ideographic|nwse-resize|saturation|flex-start|open-quote|from-image|avoid-flex|avoid-line|stroke-box|ui-rounded|margin-box|self-start|inline-end|devanagari|avoid-page|status-bar|all-scroll|col-resize|row-resize|translateZ|translateY|translateX|hue-rotate|small-caps|brightness|step-start|capitalize|trim-start|trim-inner|sans-serif|scale-down|contextual|break-word|horizontal|inter-word|color-burn|cross-fade|hard-light|soft-light|border-box|table-cell|luminosity|full-width|difference|simplified|alphabetic|mandatory|exclusion|from-font|table-row|flow-root|underline|image-set|proximity|ruby-base|ruby-text|list-item|monospace|intersect|ns-resize|textfield|ew-resize|uppercase|sw-resize|se-resize|nw-resize|lowercase|grayscale|ne-resize|pan-right|translate|backwards|available|luminance|condensed|alternate|mongolian|plaintext|malayalam|cambodian|transform|block-end|force-end|break-all|crosshair|allow-end|no-repeat|pixelated|system-ui|xxx-large|space-end|w-resize|georgian|flex-end|baseline|gujarati|fangsong|ui-serif|fill-box|keep-all|view-box|xx-small|gurmukhi|pre-line|pre-wrap|contents|xx-large|text-top|hiragana|self-end|katakana|collapse|separate|anywhere|saturate|expanded|subtract|progress|repeat-x|rotate3d|repeat-y|contrast|relative|forwards|infinite|absolute|matrix3d|vertical|overline|pan-down|pan-left|step-end|triangle|ease-out|textarea|sideways|checkbox|menulist|ellipsis|trim-end|grabbing|multiply|zoom-out|n-resize|s-resize|armenian|ordinal|zoom-in|visible|overlay|no-drop|listbox|unicode|lighten|ease-in|lighter|element|running|justify|display|fantasy|unicase|subgrid|reverse|upright|stretch|rotateX|current|exclude|rotateY|pointer|contain|opacity|default|no-clip|in-flow|hanging|isolate|discard|tibetan|persian|myanmar|rotateZ|content|inherit|outside|initial|kannada|smaller|decimal|symbols|x-large|balance|x-small|economy|caption|minimum|maximum|polygon|ellipse|cursive|bengali|masonry|static|region|column|run-in|inline|middle|circle|larger|button|square|pretty|always|hidden|rotate|inside|scroll|screen|matrix|create|unsafe|center|paused|nowrap|medium|darken|sesame|strict|outset|pan-up|bolder|telugu|scaleX|linear|scaleY|groove|double|scaleZ|dashed|minmax|legacy|hebrew|bottom|dotted|leader|normal|stable|weight|smooth|filled|italic|revert|manual|repeat|sticky|invert|table|round|space|alias|jis78|dense|sepia|emoji|auto;|clear|skewX|cover|right|skewY|style|light|unset|force|alpha|large|focus|solid|ridge|white|embed|tamil|blink|first|scale|radio|color|jis83|under|block|jis90|inset|start|pan-y|oriya|super|loose|mixed|thick|slice|pan-x|khmer|width|local|fixed|clone|avoid|serif|exact|recto|meter|small|verso|jis04|image|flow|flex|grid|ruby|wrap|ease|safe|grab|move|icon|bold|last|open|over|wavy|show|hide|both|url;|none|blur|text|line|menu|copy|dark|left|math|cell|clip|fill|skew|wait|help|flat|snap|keep|thai|thin|disc|path|page|attr|rect|auto|row|all|rtl|end|ltr|sub|hue|dot|url|top|lao|add|ray|pre|x|y|z)\b">
    
  61.         <token type="NameEntity"/>
    
  62.       </rule>
    
  63.       <rule pattern="(?i)\b(LightGoldenRodYellow|MediumSpringGreen|MediumAquaMarine|MediumSlateBlue|MediumVioletRed|MediumTurquoise|LightSlateGray|LightSlateGrey|MediumSeaGreen|BlanchedAlmond|LightSteelBlue|CornflowerBlue|DarkOliveGreen|DarkGoldenRod|PaleGoldenRod|PaleTurquoise|LavenderBlush|RebeccaPurple|DarkSlateGray|DarkSlateGrey|LightSeaGreen|PaleVioletRed|DarkTurquoise|DarkSlateBlue|AntiqueWhite|DarkSeaGreen|LightSkyBlue|MediumOrchid|LemonChiffon|MediumPurple|MidnightBlue|GreenYellow|DarkMagenta|LightSalmon|LightYellow|DeepSkyBlue|NavajoWhite|SaddleBrown|SpringGreen|ForestGreen|FloralWhite|YellowGreen|PapayaWhip|Aquamarine|DodgerBlue|Chartreuse|BlueViolet|DarkViolet|DarkOrange|LightGreen|GhostWhite|WhiteSmoke|DarkOrchid|MediumBlue|PowderBlue|LightCoral|DarkSalmon|SandyBrown|IndianRed|RoyalBlue|SteelBlue|AliceBlue|SlateGrey|MistyRose|Turquoise|LawnGreen|MintCream|LightBlue|SlateGray|LightCyan|GoldenRod|LightGray|LightGrey|Gainsboro|OliveDrab|Chocolate|DarkGreen|PeachPuff|RosyBrown|BurlyWood|FireBrick|SlateBlue|LightPink|LimeGreen|OrangeRed|CadetBlue|DarkKhaki|PaleGreen|HoneyDew|SeaShell|SeaGreen|DeepPink|Cornsilk|DarkBlue|DarkCyan|DarkGray|DarkGrey|Moccasin|Lavender|DarkRed|HotPink|SkyBlue|OldLace|Thistle|Fuchsia|Magenta|DimGrey|Crimson|DimGray|Tomato|Bisque|Silver|Orchid|Orange|Yellow|Sienna|Maroon|Salmon|Purple|Indigo|Violet|Green|Beige|Azure|Olive|Ivory|Coral|Wheat|White|Linen|Brown|Khaki|Black|Cyan|Blue|Aqua|Navy|Peru|Teal|Grey|Snow|Gray|Gold|Plum|Pink|Lime|Red|Tan)\b">
    
  64.         <token type="NameConstant"/>
    
  65.       </rule>
    
  66.       <rule pattern="(true|false)">
    
  67.         <token type="NamePseudo"/>
    
  68.       </rule>
    
  69.       <rule pattern="(and|or|not)">
    
  70.         <token type="OperatorWord"/>
    
  71.       </rule>
    
  72.       <rule pattern="/\*">
    
  73.         <token type="CommentMultiline"/>
    
  74.         <push state="inline-comment"/>
    
  75.       </rule>
    
  76.       <rule pattern="//[^\n]*">
    
  77.         <token type="CommentSingle"/>
    
  78.       </rule>
    
  79.       <rule pattern="\#[a-z0-9]{1,6}">
    
  80.         <token type="LiteralNumberHex"/>
    
  81.       </rule>
    
  82.       <rule pattern="(-)?(\d+)(\%|[a-z]+)?">
    
  83.         <bygroups>
    
  84.           <token type="Operator"/>
    
  85.           <token type="LiteralNumberInteger"/>
    
  86.           <token type="KeywordType"/>
    
  87.         </bygroups>
    
  88.       </rule>
    
  89.       <rule pattern="(-?)(\d*\.\d+)(\%|[a-z]+)?">
    
  90.         <bygroups>
    
  91.           <token type="Operator"/>
    
  92.           <token type="LiteralNumberFloat"/>
    
  93.           <token type="KeywordType"/>
    
  94.         </bygroups>
    
  95.       </rule>
    
  96.       <rule pattern="#\{">
    
  97.         <token type="LiteralStringInterpol"/>
    
  98.         <push state="interpolation"/>
    
  99.       </rule>
    
  100.       <rule pattern="[~^*!&amp;%&lt;&gt;|+=@:,./?-]+">
    
  101.         <token type="Operator"/>
    
  102.       </rule>
    
  103.       <rule pattern="[\[\]()]+">
    
  104.         <token type="Punctuation"/>
    
  105.       </rule>
    
  106.       <rule pattern="&#34;">
    
  107.         <token type="LiteralStringDouble"/>
    
  108.         <push state="string-double"/>
    
  109.       </rule>
    
  110.       <rule pattern="&#39;">
    
  111.         <token type="LiteralStringSingle"/>
    
  112.         <push state="string-single"/>
    
  113.       </rule>
    
  114.       <rule pattern="[a-z_-][\w-]*">
    
  115.         <token type="Name"/>
    
  116.       </rule>
    
  117.       <rule pattern="\n">
    
  118.         <token type="Text"/>
    
  119.       </rule>
    
  120.       <rule pattern="[;{}]">
    
  121.         <token type="Punctuation"/>
    
  122.         <pop depth="1"/>
    
  123.       </rule>
    
  124.     </state>
    
  125.     <state name="inline-comment">
    
  126.       <rule pattern="(\\#|#(?=[^{])|\*(?=[^/])|[^#*])+">
    
  127.         <token type="CommentMultiline"/>
    
  128.       </rule>
    
  129.       <rule pattern="#\{">
    
  130.         <token type="LiteralStringInterpol"/>
    
  131.         <push state="interpolation"/>
    
  132.       </rule>
    
  133.       <rule pattern="\*/">
    
  134.         <token type="Comment"/>
    
  135.         <pop depth="1"/>
    
  136.       </rule>
    
  137.     </state>
    
  138.     <state name="string-single">
    
  139.       <rule pattern="(\\.|#(?=[^\n{])|[^\n&#39;#])+">
    
  140.         <token type="LiteralStringSingle"/>
    
  141.       </rule>
    
  142.       <rule pattern="#\{">
    
  143.         <token type="LiteralStringInterpol"/>
    
  144.         <push state="interpolation"/>
    
  145.       </rule>
    
  146.       <rule pattern="&#39;">
    
  147.         <token type="LiteralStringSingle"/>
    
  148.         <pop depth="1"/>
    
  149.       </rule>
    
  150.     </state>
    
  151.     <state name="interpolation">
    
  152.       <rule pattern="\}">
    
  153.         <token type="LiteralStringInterpol"/>
    
  154.         <pop depth="1"/>
    
  155.       </rule>
    
  156.       <rule>
    
  157.         <include state="value"/>
    
  158.       </rule>
    
  159.     </state>
    
  160.     <state name="each">
    
  161.       <rule pattern="in">
    
  162.         <token type="OperatorWord"/>
    
  163.       </rule>
    
  164.       <rule>
    
  165.         <include state="value"/>
    
  166.       </rule>
    
  167.     </state>
    
  168.     <state name="attr">
    
  169.       <rule pattern="#\{">
    
  170.         <token type="LiteralStringInterpol"/>
    
  171.         <push state="interpolation"/>
    
  172.       </rule>
    
  173.       <rule pattern="[ \t]*:">
    
  174.         <token type="Operator"/>
    
  175.         <push state="value"/>
    
  176.       </rule>
    
  177.       <rule>
    
  178.         <pop depth="1"/>
    
  179.       </rule>
    
  180.     </state>
    
  181.     <state name="root">
    
  182.       <rule pattern="[{}()]">
    
  183.         <token type="Punctuation"/>
    
  184.       </rule>
    
  185.       <rule pattern="\s+">
    
  186.         <token type="Text"/>
    
  187.       </rule>
    
  188.       <rule pattern="//.*?\n">
    
  189.         <token type="CommentSingle"/>
    
  190.       </rule>
    
  191.       <rule pattern="/\*.*?\*/">
    
  192.         <token type="CommentMultiline"/>
    
  193.       </rule>
    
  194.       <rule pattern="@import">
    
  195.         <token type="Keyword"/>
    
  196.         <push state="value"/>
    
  197.       </rule>
    
  198.       <rule pattern="(@(?:use|forward))(\s+)([^\s;]+)(?:(\s+)(as)(\s+)(\w+|\*))?(?:(\s+)(with))?">
    
  199.         <bygroups>
    
  200.           <token type="Keyword"/>
    
  201.           <token type="Text"/>
    
  202.           <usingself state="selector"/>
    
  203.           <token type="Text"/>
    
  204.           <token type="Keyword"/>
    
  205.           <token type="Text"/>
    
  206.           <token type="NameNamespace"/>
    
  207.           <token type="Text"/>
    
  208.           <token type="Keyword"/>
    
  209.         </bygroups>
    
  210.         <push state="value"/>
    
  211.       </rule>
    
  212.       <rule pattern="@for">
    
  213.         <token type="Keyword"/>
    
  214.         <push state="for"/>
    
  215.       </rule>
    
  216.       <rule pattern="@each">
    
  217.         <token type="Keyword"/>
    
  218.         <push state="each"/>
    
  219.       </rule>
    
  220.       <rule pattern="@(debug|warn|else if|if|while|return)">
    
  221.         <token type="Keyword"/>
    
  222.         <push state="value"/>
    
  223.       </rule>
    
  224.       <rule pattern="(@(?:mixin|function))( [\w-]+)">
    
  225.         <bygroups>
    
  226.           <token type="Keyword"/>
    
  227.           <token type="NameFunction"/>
    
  228.         </bygroups>
    
  229.         <push state="value"/>
    
  230.       </rule>
    
  231.       <rule pattern="(@include)( [\w-]+)">
    
  232.         <bygroups>
    
  233.           <token type="Keyword"/>
    
  234.           <token type="NameDecorator"/>
    
  235.         </bygroups>
    
  236.         <push state="value"/>
    
  237.       </rule>
    
  238.       <rule pattern="@extend">
    
  239.         <token type="Keyword"/>
    
  240.         <push state="selector"/>
    
  241.       </rule>
    
  242.       <rule pattern="(@media)(\s+)">
    
  243.         <bygroups>
    
  244.           <token type="Keyword"/>
    
  245.           <token type="Text"/>
    
  246.         </bygroups>
    
  247.         <push state="value"/>
    
  248.       </rule>
    
  249.       <rule pattern="@[\w-]+">
    
  250.         <token type="Keyword"/>
    
  251.         <push state="selector"/>
    
  252.       </rule>
    
  253.       <rule pattern="(\$[\w-]*\w)([ \t]*:)">
    
  254.         <bygroups>
    
  255.           <token type="NameVariable"/>
    
  256.           <token type="Operator"/>
    
  257.         </bygroups>
    
  258.         <push state="value"/>
    
  259.       </rule>
    
  260.       <rule pattern="#\{">
    
  261.         <token type="LiteralStringInterpol"/>
    
  262.         <push state="interpolation"/>
    
  263.       </rule>
    
  264.       <rule pattern="\b(scroll-padding-inline-start|spatial-navigation-function|transition-timing-function|overscroll-behavior-inline|spatial-navigation-contain|border-bottom-right-radius|scroll-padding-block-start|scroll-margin-inline-start|border-inline-start-width|border-start-start-radius|border-inline-start-color|animation-iteration-count|spatial-navigation-action|animation-timing-function|text-decoration-thickness|border-inline-start-style|scroll-margin-block-start|scroll-padding-inline-end|border-bottom-left-radius|overscroll-behavior-block|scroll-margin-inline-end|border-block-start-style|border-block-start-width|scroll-padding-block-end|border-block-start-color|scroll-margin-block-end|border-top-right-radius|text-underline-position|border-inline-end-width|border-start-end-radius|border-end-start-radius|border-inline-end-style|border-inline-end-color|font-variant-east-asian|border-block-end-style|font-language-override|border-block-end-color|border-block-end-width|text-emphasis-position|border-top-left-radius|font-variant-ligatures|shape-image-threshold|overscroll-behavior-x|text-decoration-style|scroll-padding-inline|background-blend-mode|text-decoration-color|text-underline-offset|overscroll-behavior-y|border-end-end-radius|scroll-padding-bottom|grid-template-columns|font-variant-position|font-feature-settings|background-attachment|font-variant-numeric|initial-letter-align|text-combine-upright|text-decoration-line|overflow-clip-margin|scroll-padding-right|padding-inline-start|scroll-margin-bottom|text-decoration-skip|scroll-margin-inline|scroll-padding-block|animation-play-state|box-decoration-break|backface-visibility|border-image-outset|font-optical-sizing|animation-fill-mode|margin-inline-start|border-bottom-color|transition-property|border-inline-width|animation-direction|grid-template-areas|forced-color-adjust|border-inline-style|border-inline-start|text-emphasis-style|scroll-padding-left|border-bottom-width|scroll-margin-right|border-inline-color|overscroll-behavior|list-style-position|hanging-punctuation|background-position|border-bottom-style|border-image-source|transition-duration|initial-letter-wrap|padding-block-start|border-image-repeat|scroll-margin-block|font-variant-emoji|margin-block-start|border-block-start|border-block-style|padding-inline-end|border-block-width|perspective-origin|border-right-style|border-right-color|border-block-color|mask-border-repeat|mask-border-source|border-image-width|scroll-padding-top|animation-duration|border-image-slice|grid-template-rows|content-visibility|scroll-margin-left|border-right-width|inset-inline-start|background-origin|scroll-snap-align|page-break-inside|column-rule-width|mask-border-width|column-rule-style|mask-border-slice|column-rule-color|grid-auto-columns|page-break-before|background-repeat|counter-increment|font-variant-caps|padding-block-end|border-inline-end|grid-column-start|border-left-width|border-left-style|border-left-color|scroll-margin-top|inset-block-start|margin-inline-end|image-orientation|mask-border-mode|scroll-snap-stop|scroll-snap-type|scrollbar-gutter|font-size-adjust|transform-origin|page-orientation|image-resolution|margin-block-end|footnote-display|page-break-after|border-block-end|text-group-align|text-orientation|transition-delay|background-image|text-size-adjust|border-top-width|border-top-style|list-style-image|border-top-color|background-color|inset-inline-end|offset-distance|background-size|background-clip|list-style-type|footnote-policy|text-decoration|scrollbar-color|scrollbar-width|text-align-last|image-rendering|animation-delay|transform-style|object-position|offset-position|text-space-trim|justify-content|overflow-anchor|overflow-inline|inset-block-end|border-collapse|grid-column-end|scroll-behavior|border-spacing|scroll-padding|text-align-all|pointer-events|max-block-size|text-transform|letter-spacing|lighting-color|mask-composite|initial-letter|mix-blend-mode|overflow-block|animation-name|grid-row-start|flex-direction|padding-inline|grid-auto-rows|grid-auto-flow|vertical-align|outline-offset|text-rendering|font-synthesis|padding-bottom|margin-inline|padding-block|offset-rotate|text-overflow|border-inline|margin-bottom|offset-anchor|scroll-margin|outline-style|border-bottom|shape-outside|outline-width|shape-padding|text-emphasis|align-content|grid-template|border-radius|transform-box|overflow-wrap|justify-items|mask-position|place-content|inline-sizing|counter-reset|padding-right|outline-color|writing-mode|column-width|column-count|table-layout|touch-action|padding-left|color-adjust|word-spacing|text-justify|shape-margin|caption-side|break-inside|shape-inside|margin-right|break-before|font-kerning|font-stretch|border-width|margin-break|text-spacing|border-style|aspect-ratio|margin-block|grid-row-end|border-block|line-padding|border-right|wrap-through|border-color|border-image|justify-self|inset-inline|unicode-bidi|font-variant|empty-cells|border-left|white-space|wrap-inside|grid-column|will-change|text-shadow|offset-path|user-select|inline-size|break-after|place-items|caret-color|text-indent|padding-top|inset-block|wrap-before|font-weight|flex-shrink|line-height|perspective|column-fill|mask-repeat|align-items|margin-left|mask-origin|margin-trim|column-rule|font-family|column-span|counter-set|mask-border|mask-image|string-set|align-self|margin-top|place-self|list-style|wrap-after|block-size|word-break|line-clamp|line-break|flex-basis|max-height|min-height|object-fit|appearance|box-sizing|transition|box-shadow|background|border-top|visibility|overflow-x|column-gap|font-style|overflow-y|text-align|mask-size|line-snap|flex-wrap|nav-right|isolation|flex-grow|flex-flow|translate|line-grid|text-wrap|wrap-flow|min-width|max-width|direction|clip-path|word-wrap|mask-clip|max-lines|mask-type|grid-area|animation|mask-mode|transform|font-size|nav-down|position|overflow|grid-row|tab-size|nav-left|display|row-gap|content|opacity|padding|orphans|outline|columns|hyphens|z-index|margin|border|rotate|filter|resize|quotes|bottom|height|offset|nav-up|cursor|widows|color|inset|order|scale|right|float|width|clear|font|flex|left|mask|clip|page|grid|gap|src|top|all)(?=\s*:)">
    
  265.         <token type="NameAttribute"/>
    
  266.         <push state="attr"/>
    
  267.       </rule>
    
  268.       <rule pattern="(?&lt;!:\s*)[^ \t:=&#34;\[;(),.]+(?=[ \t]*:(?:#{|[^{])+?[;,])">
    
  269.         <token type="NameAttribute"/>
    
  270.         <push state="attr"/>
    
  271.       </rule>
    
  272.       <rule>
    
  273.         <push state="selector"/>
    
  274.       </rule>
    
  275.     </state>
    
  276.     <state name="for">
    
  277.       <rule pattern="(from|to|through)">
    
  278.         <token type="OperatorWord"/>
    
  279.       </rule>
    
  280.       <rule>
    
  281.         <include state="value"/>
    
  282.       </rule>
    
  283.     </state>
    
  284.     <state name="class">
    
  285.       <rule pattern="[\w-]+">
    
  286.         <token type="NameClass"/>
    
  287.       </rule>
    
  288.       <rule pattern="#\{">
    
  289.         <token type="LiteralStringInterpol"/>
    
  290.         <push state="interpolation"/>
    
  291.       </rule>
    
  292.       <rule>
    
  293.         <pop depth="1"/>
    
  294.       </rule>
    
  295.     </state>
    
  296.     <state name="selector">
    
  297.       <rule pattern="[ \t]+">
    
  298.         <token type="Text"/>
    
  299.       </rule>
    
  300.       <rule pattern="\:">
    
  301.         <token type="NameDecorator"/>
    
  302.         <push state="pseudo-class"/>
    
  303.       </rule>
    
  304.       <rule pattern="\.">
    
  305.         <token type="NameClass"/>
    
  306.         <push state="class"/>
    
  307.       </rule>
    
  308.       <rule pattern="#\{">
    
  309.         <token type="LiteralStringInterpol"/>
    
  310.         <push state="interpolation"/>
    
  311.       </rule>
    
  312.       <rule pattern="\#">
    
  313.         <token type="NameNamespace"/>
    
  314.         <push state="id"/>
    
  315.       </rule>
    
  316.       <rule pattern="&amp;">
    
  317.         <token type="Keyword"/>
    
  318.       </rule>
    
  319.       <rule pattern="[~^*!&amp;\[\]()&lt;&gt;|+=@:,./?-]">
    
  320.         <token type="Operator"/>
    
  321.       </rule>
    
  322.       <rule pattern="(%)([\w-]+)">
    
  323.         <bygroups>
    
  324.           <token type="Operator"/>
    
  325.           <token type="NameClass"/>
    
  326.         </bygroups>
    
  327.       </rule>
    
  328.       <rule pattern="&#34;">
    
  329.         <token type="LiteralStringDouble"/>
    
  330.         <push state="string-double"/>
    
  331.       </rule>
    
  332.       <rule pattern="&#39;">
    
  333.         <token type="LiteralStringSingle"/>
    
  334.         <push state="string-single"/>
    
  335.       </rule>
    
  336.       <rule pattern="\n">
    
  337.         <token type="Text"/>
    
  338.       </rule>
    
  339.       <rule pattern="[;{}]">
    
  340.         <token type="Punctuation"/>
    
  341.         <pop depth="1"/>
    
  342.       </rule>
    
  343.       <rule pattern="[\w-]+">
    
  344.         <token type="NameTag"/>
    
  345.       </rule>
    
  346.     </state>
    
  347.     <state name="string-url">
    
  348.       <rule pattern="(\\#|#(?=[^\n{])|[^\n#)])+">
    
  349.         <token type="LiteralStringOther"/>
    
  350.       </rule>
    
  351.       <rule pattern="#\{">
    
  352.         <token type="LiteralStringInterpol"/>
    
  353.         <push state="interpolation"/>
    
  354.       </rule>
    
  355.       <rule pattern="\)">
    
  356.         <token type="LiteralStringOther"/>
    
  357.         <pop depth="1"/>
    
  358.       </rule>
    
  359.     </state>
    
  360.     <state name="pseudo-class">
    
  361.       <rule pattern="[\w-]+">
    
  362.         <token type="NameDecorator"/>
    
  363.       </rule>
    
  364.       <rule pattern="#\{">
    
  365.         <token type="LiteralStringInterpol"/>
    
  366.         <push state="interpolation"/>
    
  367.       </rule>
    
  368.       <rule>
    
  369.         <pop depth="1"/>
    
  370.       </rule>
    
  371.     </state>
    
  372.   </rules>
    
  373. </lexer>