Added Markdown preview
This commit is contained in:
290
node_modules/@lezer/css/src/css.grammar
generated
vendored
Normal file
290
node_modules/@lezer/css/src/css.grammar
generated
vendored
Normal file
@@ -0,0 +1,290 @@
|
||||
@precedence {
|
||||
attribute @left,
|
||||
structure @left,
|
||||
call,
|
||||
valueCompareOp,
|
||||
valueOp @left,
|
||||
layerName
|
||||
}
|
||||
|
||||
@skip { whitespace | Comment }
|
||||
|
||||
@top StyleSheet { item* }
|
||||
|
||||
@top Styles { blockContent }
|
||||
|
||||
item {
|
||||
RuleSet |
|
||||
ImportStatement |
|
||||
MediaStatement |
|
||||
CharsetStatement |
|
||||
NamespaceStatement |
|
||||
KeyframesStatement |
|
||||
SupportsStatement |
|
||||
ScopeStatement |
|
||||
FontFeatureStatement |
|
||||
AtRule
|
||||
}
|
||||
|
||||
RuleSet {
|
||||
selector ("," selector)* Block
|
||||
}
|
||||
|
||||
ImportStatement {
|
||||
atKw<"import">
|
||||
value
|
||||
Layer {
|
||||
queryCalleeKw<"layer"> (!layerName "(" LayerName ("." LayerName)* ")")? |
|
||||
queryKw<"layer">
|
||||
}?
|
||||
commaSep<query> ";"
|
||||
}
|
||||
|
||||
LayerName { identifier }
|
||||
|
||||
MediaStatement {
|
||||
atKw<"media"> commaSep<query> Block
|
||||
}
|
||||
|
||||
CharsetStatement {
|
||||
atKw<"charset"> value ";"
|
||||
}
|
||||
|
||||
NamespaceStatement {
|
||||
atKw<"namespace">
|
||||
NamespaceName { identifier }?
|
||||
(StringLiteral | CallLiteral) ";"
|
||||
}
|
||||
|
||||
KeyframesStatement {
|
||||
atKw<"keyframes">
|
||||
KeyframeName { identifier | StringLiteral }
|
||||
KeyframeList
|
||||
}
|
||||
|
||||
KeyframeSelector {
|
||||
KeyframeRangeName { identifier } NumberLiteral? |
|
||||
NumberLiteral
|
||||
}
|
||||
|
||||
KeyframeList {
|
||||
"{" (KeyframeSelector ("," KeyframeSelector)* Block)* "}"
|
||||
}
|
||||
|
||||
SupportsStatement {
|
||||
atKw<"supports"> query Block
|
||||
}
|
||||
|
||||
ScopeStatement {
|
||||
atKw<"scope">
|
||||
ParenthesizedSelector?
|
||||
(@extend[@name=to]<identifier, "to"> ParenthesizedSelector)?
|
||||
Block
|
||||
}
|
||||
|
||||
FontFeatureStatement {
|
||||
atKw<"font-feature-values">
|
||||
FontName { identifier+ }
|
||||
Block
|
||||
}
|
||||
|
||||
AtRule { AtKeyword (query (","? query)*)? (";" | Block) }
|
||||
|
||||
Block[@dynamicPrecedence=1] { "{" blockContent "}" }
|
||||
|
||||
blockContent { ~item item* (Declaration (";" ~item item* Declaration?)*)? }
|
||||
|
||||
selector {
|
||||
UniversalSelector |
|
||||
TagSelector { ~item TagName { identifier ~item } } |
|
||||
NamespacedTagSelector { ~item (NamespaceName { identifier } | UniversalSelector)? "|" TagName { identifier ~item } } |
|
||||
NestingSelector |
|
||||
ClassSelector { selector? !attribute "." ClassName { identifier } } |
|
||||
PseudoClassSelector {
|
||||
selector? !attribute (":" | "::") (
|
||||
PseudoClassName { identifier } |
|
||||
pseudoClassWithArg ArgList<value+> |
|
||||
PseudoClassName { callee } ArgList<selector>)
|
||||
} |
|
||||
IdSelector { selector? !attribute "#" IdName { identifier } } |
|
||||
AttributeSelector {
|
||||
selector? !attribute "["
|
||||
(AttributeName { identifier } |
|
||||
NamespacedAttribute { (NamespaceName { identifier } | UniversalSelector)? "|" AttributeName { identifier } })
|
||||
(MatchOp value MatchFlag?)? "]"
|
||||
} |
|
||||
ChildSelector { selector? !structure ChildOp selector } |
|
||||
DescendantSelector { selector !structure descendantOp selector } |
|
||||
SiblingSelector { selector? !structure SiblingOp selector }
|
||||
}
|
||||
|
||||
pseudoClassWithArg {
|
||||
@specialize[@name=PseudoClassName]<callee, "lang" | "nth-child" | "nth-last-child" | "nth-of-type" | "nth-last-of-type" | "nth-of-type" | "dir" | "host-context">
|
||||
}
|
||||
|
||||
NumberLiteral {
|
||||
numberLiteralInner Unit?
|
||||
}
|
||||
|
||||
ArgList<content> { "(" commaSep<content> ")" }
|
||||
|
||||
Declaration {
|
||||
(PropertyName { identifier ~item } | VariableName)
|
||||
":" (value (","? value)*)? Important?
|
||||
}
|
||||
|
||||
query {
|
||||
KeywordQuery { queryIdentifier } |
|
||||
FeatureQuery { "(" FeatureName ":" value+ ")" } |
|
||||
BinaryQuery { query !valueOp @specialize[@name=LogicOp]<queryIdentifier, "or" | "and"> query } |
|
||||
ComparisonQuery {
|
||||
"("
|
||||
(queryValue | FeatureName) !valueCompareOp CompareOp (queryValue | FeatureName)
|
||||
(!valueCompareOp CompareOp (queryValue | FeatureName))?
|
||||
")"
|
||||
} |
|
||||
UnaryQuery { @specialize[@name=UnaryQueryOp]<queryIdentifier, "not" | "only"> query } |
|
||||
ParenthesizedQuery { "(" query ")" } |
|
||||
SelectorQuery { queryCalleeKw<"selector"> ParenthesizedSelector } |
|
||||
CallQuery { QueryCallee ArgList<FeatureName ":" value+ | query> } |
|
||||
PseudoQuery { (":" | "::") queryIdentifier }
|
||||
}
|
||||
|
||||
ParenthesizedSelector { "(" selector ")" }
|
||||
|
||||
FeatureName { queryIdentifier }
|
||||
|
||||
value {
|
||||
VariableName |
|
||||
ValueName { identifier } |
|
||||
ParenthesizedValue { "(" token* ")" } |
|
||||
BracketedValue { "[" token* "]" } |
|
||||
BracedValue { "{" token* "}" } |
|
||||
ColorLiteral |
|
||||
NumberLiteral |
|
||||
StringLiteral |
|
||||
BinaryExpression { value !valueOp BinOp value } |
|
||||
CallExpression |
|
||||
IfExpression |
|
||||
CallLiteral
|
||||
}
|
||||
|
||||
token {
|
||||
value |
|
||||
AtKeyword |
|
||||
"#" | ";" | "." | ":"
|
||||
}
|
||||
|
||||
queryValue {
|
||||
queryVariableName |
|
||||
ColorLiteral |
|
||||
NumberLiteral |
|
||||
StringLiteral
|
||||
}
|
||||
|
||||
IfExpression {
|
||||
@specialize[@name=if]<callee, "if"> ArgList {
|
||||
"(" (IfBranch ";")* IfBranch ";"? ")"
|
||||
}
|
||||
}
|
||||
|
||||
IfBranch { query ":" value }
|
||||
|
||||
CallLiteral {
|
||||
@specialize[@name=CallTag]<callee, "url" | "url-prefix" | "domain" | "regexp">
|
||||
"(" (ParenthesizedContent | StringLiteral)? ")"
|
||||
}
|
||||
|
||||
CallExpression {
|
||||
(Callee { callee } | VariableName) !call ArgList<value+>
|
||||
}
|
||||
|
||||
@skip {} {
|
||||
Comment[isolate] { "/*" (commentContent | commentLineBreak)* commentEnd }
|
||||
}
|
||||
|
||||
@local tokens {
|
||||
commentEnd { "*/" | @eof }
|
||||
commentLineBreak { "\n" }
|
||||
@else commentContent
|
||||
}
|
||||
|
||||
commaSep<value> { "" | value ("," value?)* }
|
||||
|
||||
queryKw<name> { @specialize[@name={name}]<queryIdentifier, name> }
|
||||
queryCalleeKw<name> { @specialize[@name={name}]<QueryCallee, name> }
|
||||
|
||||
atKw<name> { @specialize[@name={name}]<AtKeyword, "@" name> }
|
||||
|
||||
Important { "!" "important" }
|
||||
|
||||
@external tokens descendant from "./tokens" {
|
||||
descendantOp
|
||||
}
|
||||
|
||||
@external tokens unitToken from "./tokens" {
|
||||
Unit
|
||||
}
|
||||
|
||||
@external tokens identifiers from "./tokens" {
|
||||
identifier,
|
||||
callee,
|
||||
VariableName
|
||||
}
|
||||
|
||||
@external tokens queryIdentifiers from "./tokens" {
|
||||
@conflict { identifier, VariableName, callee }
|
||||
queryIdentifier,
|
||||
queryVariableName[@name=VariableName],
|
||||
QueryCallee
|
||||
}
|
||||
|
||||
@tokens {
|
||||
UniversalSelector { "*" }
|
||||
|
||||
NestingSelector { "&" }
|
||||
|
||||
AtKeyword { "@" "-"? @asciiLetter (@asciiLetter | @digit | "-")* }
|
||||
|
||||
MatchOp { $[~^|*$]? "=" }
|
||||
|
||||
ChildOp { ">" ">"? }
|
||||
|
||||
CompareOp { $[<>] "="? | "=" }
|
||||
|
||||
SiblingOp { "~" | "+" }
|
||||
|
||||
BinOp { $[+\-*/] }
|
||||
|
||||
MatchFlag { $[SsIi] }
|
||||
|
||||
whitespace { @whitespace+ }
|
||||
|
||||
hexDigit { @digit | $[a-fA-F] }
|
||||
|
||||
ParenthesizedContent { !['")] ![)]+ }
|
||||
|
||||
@precedence { whitespace, ParenthesizedContent, "/*" }
|
||||
|
||||
ColorLiteral {
|
||||
"#" hexDigit hexDigit hexDigit (hexDigit (hexDigit hexDigit (hexDigit hexDigit)?)?)?
|
||||
}
|
||||
|
||||
numberLiteralInner { ("+" | "-")? (@digit+ ("." @digit*)? | "." @digit+) (("e" | "E") ("+" | "-")? @digit+)? }
|
||||
|
||||
@precedence { numberLiteralInner, BinOp, SiblingOp }
|
||||
|
||||
@precedence { numberLiteralInner, "." }
|
||||
|
||||
StringLiteral[isolate] { "\"" (!["\n\\] | "\\" _)* "\"" | "'" (!['\n\\] | "\\" _)* "'" }
|
||||
|
||||
"#" "."
|
||||
|
||||
":" "::" ";" ","
|
||||
|
||||
"(" ")" "[" "]" "{" "}"
|
||||
}
|
||||
|
||||
@external propSource cssHighlighting from "./highlight"
|
||||
|
||||
@detectDelim
|
||||
36
node_modules/@lezer/css/src/highlight.js
generated
vendored
Normal file
36
node_modules/@lezer/css/src/highlight.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import {styleTags, tags as t} from "@lezer/highlight"
|
||||
|
||||
export const cssHighlighting = styleTags({
|
||||
"AtKeyword import charset namespace keyframes media supports font-feature-values": t.definitionKeyword,
|
||||
"from to selector scope MatchFlag": t.keyword,
|
||||
NamespaceName: t.namespace,
|
||||
KeyframeName: t.labelName,
|
||||
KeyframeRangeName: t.operatorKeyword,
|
||||
TagName: t.tagName,
|
||||
ClassName: t.className,
|
||||
PseudoClassName: t.constant(t.className),
|
||||
IdName: t.labelName,
|
||||
"FeatureName PropertyName": t.propertyName,
|
||||
AttributeName: t.attributeName,
|
||||
NumberLiteral: t.number,
|
||||
KeywordQuery: t.keyword,
|
||||
UnaryQueryOp: t.operatorKeyword,
|
||||
"CallTag ValueName FontName": t.atom,
|
||||
VariableName: t.variableName,
|
||||
Callee: t.operatorKeyword,
|
||||
Unit: t.unit,
|
||||
"UniversalSelector NestingSelector": t.definitionOperator,
|
||||
"MatchOp CompareOp": t.compareOperator,
|
||||
"ChildOp SiblingOp, LogicOp": t.logicOperator,
|
||||
BinOp: t.arithmeticOperator,
|
||||
Important: t.modifier,
|
||||
Comment: t.blockComment,
|
||||
ColorLiteral: t.color,
|
||||
"ParenthesizedContent StringLiteral": t.string,
|
||||
":": t.punctuation,
|
||||
"PseudoOp #": t.derefOperator,
|
||||
"; , |": t.separator,
|
||||
"( )": t.paren,
|
||||
"[ ]": t.squareBracket,
|
||||
"{ }": t.brace
|
||||
})
|
||||
31
node_modules/@lezer/css/src/parser.js
generated
vendored
Normal file
31
node_modules/@lezer/css/src/parser.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
import {LRParser, LocalTokenGroup} from "@lezer/lr"
|
||||
import {descendant, unitToken, identifiers, queryIdentifiers} from "./tokens"
|
||||
import {cssHighlighting} from "./highlight"
|
||||
const spec_callee = {__proto__:null,lang:44, "nth-child":44, "nth-last-child":44, "nth-of-type":44, "nth-last-of-type":44, dir:44, "host-context":44, if:90, url:132, "url-prefix":132, domain:132, regexp:132}
|
||||
const spec_queryIdentifier = {__proto__:null,or:104, and:104, not:112, only:112, layer:186}
|
||||
const spec_QueryCallee = {__proto__:null,selector:118, layer:182}
|
||||
const spec_AtKeyword = {__proto__:null,"@import":178, "@media":190, "@charset":194, "@namespace":198, "@keyframes":204, "@supports":216, "@scope":220, "@font-feature-values":226}
|
||||
const spec_identifier = {__proto__:null,to:223}
|
||||
export const parser = LRParser.deserialize({
|
||||
version: 14,
|
||||
states: "IpQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FdO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#DtO'dQdO'#DvO'oQdO'#D}O'oQdO'#EQOOQP'#Fd'#FdO)OQhO'#EsOOQS'#Fc'#FcOOQS'#Ev'#EvQYQdOOO)VQdO'#EWO*cQhO'#E^O)VQdO'#E`O*jQdO'#EbO*uQdO'#EeO)zQhO'#EkO*}QdO'#EmO+YQdO'#EpO+_QaO'#CfO+fQ`O'#ETO+kQ`O'#FnO+vQdO'#FnQOQ`OOP,QO&jO'#CaPOOO)CAR)CAROOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,]QdO,59YO'_QdO,5:`O'dQdO,5:bO'oQdO,5:iO'oQdO,5:kO'oQdO,5:lO'oQdO'#E}O,hQ`O,58}O,pQdO'#ESOOQS,58},58}OOQP'#Cq'#CqOOQO'#Dr'#DrOOQP,59Y,59YO,wQ`O,59YO,|Q`O,59YOOQP'#Du'#DuOOQP,5:`,5:`O-RQpO'#DwO-^QdO'#DxO-cQ`O'#DxO-hQpO,5:bO.RQaO,5:iO.iQaO,5:lOOQW'#D^'#D^O/eQhO'#DgO/xQhO,5;_O)zQhO'#DeO0VQ`O'#DkO0[QhO'#DnOOQW'#Fj'#FjOOQS,5;_,5;_O0aQ`O'#DhOOQS-E8t-E8tOOQ['#Cv'#CvO0fQdO'#CwO0|QdO'#C}O1dQdO'#DQO1zQ!pO'#DSO4TQ!jO,5:rOOQO'#DX'#DXO,|Q`O'#DWO4eQ!nO'#FgO6hQ`O'#DYO6mQ`O'#DoOOQ['#Fg'#FgO6rQhO'#FqO7QQ`O,5:xO7VQ!bO,5:zOOQS'#Ed'#EdO7_Q`O,5:|O7dQdO,5:|OOQO'#Eg'#EgO7lQ`O,5;PO7qQhO,5;VO'oQdO'#DjOOQS,5;X,5;XO0aQ`O,5;XO7yQdO,5;XOOQS'#FU'#FUO8RQdO'#ErO7QQ`O,5;[O8ZQdO,5:oO8kQdO'#FPO8xQ`O,5<YO8xQ`O,5<YPOOO'#Eu'#EuP9TO&jO,58{POOO,58{,58{OOQP1G.m1G.mOOQP1G.q1G.qOOQP1G.t1G.tO,wQ`O1G.tO,|Q`O1G.tOOQP1G/z1G/zO9`QpO1G/|O9hQaO1G0TO:OQaO1G0VO:fQaO1G0WO:|QaO,5;iOOQO-E8{-E8{OOQS1G.i1G.iO;WQ`O,5:nO;]QdO'#DsO;dQdO'#CuOOQO'#Dz'#DzOOQO,5:d,5:dO-^QdO,5:dOOQP1G/|1G/|O)VQdO1G/|O;kQ!jO'#D^O;yQ!bO,59yO<RQhO,5:ROOQO'#Fk'#FkO;|Q!bO,59}O<ZQhO'#FVO)zQhO,59{O)zQhO'#FVO=OQhO1G0yOOQS1G0y1G0yO=YQhO,5:PO>QQhO'#DlOOQW,5:V,5:VOOQW,5:Y,5:YOOQW,5:S,5:SO>[Q!fO'#FhOOQS'#Fh'#FhOOQS'#Ex'#ExO?lQdO,59cOOQ[,59c,59cO@SQdO,59iOOQ[,59i,59iO@jQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)VQdO,59pOAQQhO'#EYOOQW'#EY'#EYOAlQ`O1G0^O4^QhO1G0^OOQ[,59r,59rO)zQhO'#D[OOQ[,59t,59tOAqQ#tO,5:ZOA|QhO'#FROBZQ`O,5<]OOQS1G0d1G0dOOQS1G0f1G0fOOQS1G0h1G0hOBfQ`O1G0hOBkQdO'#EhOOQS1G0k1G0kOOQS1G0q1G0qOBvQaO,5:UO7QQ`O1G0sOOQS1G0s1G0sO0aQ`O1G0sOOQS-E9S-E9SOOQS1G0v1G0vOB}Q!fO1G0ZOCeQ`O'#EVOOQO1G0Z1G0ZOOQO,5;k,5;kOCjQdO,5;kOOQO-E8}-E8}OCwQ`O1G1tPOOO-E8s-E8sPOOO1G.g1G.gOOQP7+$`7+$`OOQP7+%h7+%hO)VQdO7+%hOOQS1G0Y1G0YODSQaO'#FmOD^Q`O,5:_ODcQ!fO'#EwOEaQdO'#FfOEkQ`O,59aOOQO1G0O1G0OOEpQ!bO7+%hO)VQdO1G/eOE{QhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOF^QhO,5;qOOQW-E9T-E9TOOQS7+&e7+&eOGRQhO'#D^OGaQhO'#FlOGlQ`O'#FlOGqQ`O,5:WOOQS-E8v-E8vOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OGvQdO,5:tOOQS7+%x7+%xOG{Q`O7+%xOHQQhO'#D]OHYQ`O,59vO)zQhO,59vOOQ[1G/u1G/uOHbQ`O1G/uOHgQhO,5;mOOQO-E9P-E9POOQS7+&S7+&SOHuQbO'#DSOOQO'#Ej'#EjOITQ`O'#EiOOQO'#Ei'#EiOI`Q`O'#FSOIhQdO,5;SOOQS,5;S,5;SOOQ[1G/p1G/pOOQS7+&_7+&_O7QQ`O7+&_OIsQ!fO'#FOO)VQdO'#FOOJzQdO7+%uOOQO7+%u7+%uOOQO,5:q,5:qOOQO1G1V1G1VOK_Q!bO<<ISOKjQdO'#E|OKtQ`O,5<XOOQP1G/y1G/yOOQS-E8u-E8uOK|QdO'#E{OLWQ`O,5<QOOQ]1G.{1G.{OOQP<<IS<<ISOL`Q`O<<ISOLeQdO7+%POOQO'#D`'#D`OLlQ!bO7+%TOLtQhO'#EzOMRQ`O,5<WO)VQdO,5<WOOQW1G/r1G/rOOQO'#E['#E[OMZQ`O1G0`OOQS<<Id<<IdO)VQdO,59wOMzQhO1G/bOOQ[1G/b1G/bONRQ`O1G/bOOQW-E8w-E8wOOQ[7+%a7+%aOOQO,5;T,5;TOBnQdO'#FTOI`Q`O,5;nOOQS,5;n,5;nOOQS-E9Q-E9QOOQS1G0n1G0nOOQS<<Iy<<IyONZQ!fO,5;jOOQS-E8|-E8|OOQO<<Ia<<IaOOQPAN>nAN>nO! bQ`OAN>nO! gQaO,5;hOOQO-E8z-E8zO! qQdO,5;gOOQO-E8y-E8yOOQW<<Hk<<HkOOQW<<Ho<<HoO! {QhO<<HoO!!^QhO,5;fO!!iQ`O,5;fOOQO-E8x-E8xO!!nQdO1G1rOGvQdO'#FQO!!xQ`O7+%zOOQW7+%z7+%zO!#QQ!bO1G/cOOQ[7+$|7+$|O!#]QhO7+$|P!#dQ`O'#EyOOQO,5;o,5;oOOQO-E9R-E9ROOQS1G1Y1G1YOOQPG24YG24YO!#iQ`OAN>ZO)VQdO1G1QO!#nQ`O7+'^OOQO,5;l,5;lOOQO-E9O-E9OOOQW<<If<<IfOOQ[<<Hh<<HhPOQW,5;e,5;eOOQWG23uG23uO!#vQdO7+&l",
|
||||
stateData: "!$Z~O$QOS$RQQ~OWVO^_O`WOcYOdYOl`OmZOp[O!r]O!u^O!{dO#ReO#TfO#VgO#YhO#`iO#bjO#ekO#|RO$XTO~OQmOWVO^_O`WOcYOdYOl`OmZOp[O!r]O!u^O!{dO#ReO#TfO#VgO#YhO#`iO#bjO#ekO#|lO$XTO~O#z$bP~P!jO$RqO~O`YXcYXdYXmYXpYXsYX!aYX!rYX!uYX#{YX$X[X~OgYX~P$ZO#|sO~O$XuO~O$XuO`$WXc$WXd$WXm$WXp$WXs$WX!a$WX!r$WX!u$WX#{$WXg$WX~O#|vO~O`xOcyOdyOmzOp{O!r|O!u!OO#{}O~Os!RO!a!PO~P&^Of!XO#|!TO#}!UO~O#|!YO~OW!^O#|![O$X!]O~OWVO^_O`WOcYOdYOmZOp[O!r]O!u^O#|RO$XTO~OS!fOc!gOd!gOh!cOs!RO!Y!eO!]!jO$O!bO~On!iO~P(dOQ!tOh!mOp!nOs!oOu!wOw!wO}!uO!d!vO#|!lO#}!rO$]!pO~OS!fOc!gOd!gOh!cO!Y!eO!]!jO$O!bO~Os$eP~P)zOw!|O!d!vO#|!{O~Ow#OO#|#OO~Oh#ROs!RO#c#TO~O#|#VO~Oc!xX~P$ZOc#YO~On#ZO#z$bXr$bX~O#z$bXr$bX~P!jO$S#^O$T#^O$U#`O~Of#eO#|!TO#}!UO~Os!RO!a!PO~Or$bP~P!jOh#oO~Oh#pO~Oo!kX!o!kX$X!mX~O#|#qO~O$X#sO~Oo#tO!o#uO~O`xOcyOdyOmzOp{O~Os!qa!a!qa!r!qa!u!qa#{!qag!qa~P-pOs!ta!a!ta!r!ta!u!ta#{!tag!ta~P-pOS!fOc!gOd!gOh!cO!Y!eO!]!jO~OR#yOu#yOw#yO$O#vO$]!pO~P/POn$PO!U#|O!a#}O~P(dOh$RO~O$O$TO~Oh#RO~O`$WOc$WOg$ZOl$WOm$WOn$WO~P)VO`$WOc$WOl$WOm$WOn$WOo$]O~P)VO`$WOc$WOl$WOm$WOn$WOr$_O~P)VOP$`OSvXcvXdvXhvXnvXyvX!YvX!]vX!}vX#PvX$OvX!WvXQvX`vXgvXlvXmvXpvXsvXuvXwvX}vX!dvX#|vX#}vX$]vXovXrvX!avX#zvX$dvX!pvX~Oy$aO!}$bO#P$cOn$eP~P)zOh#pOS$ZXc$ZXd$ZXn$ZXy$ZX!Y$ZX!]$ZX!}$ZX#P$ZX$O$ZXQ$ZX`$ZXg$ZXl$ZXm$ZXp$ZXs$ZXu$ZXw$ZX}$ZX!d$ZX#|$ZX#}$ZX$]$ZXo$ZXr$ZX!a$ZX#z$ZX$d$ZX!p$ZX~Oh$gO~Oh$iO~O!U#|O!a$jOs$eXn$eX~Os!RO~On$mOy$aO~On$nO~Ow$oO!d!vO~Os$pO~Os!RO!U#|O~Os!RO#c$vO~O#|#VOs#fX~O$d$zOn!wa#z!war!wa~P)VOn#sX#z#sXr#sX~P!jOn#ZO#z$bar$ba~O$S#^O$T#^O$U%RO~Oo%TO!o%UO~Os!qi!a!qi!r!qi!u!qi#{!qig!qi~P-pOs!si!a!si!r!si!u!si#{!sig!si~P-pOs!ti!a!ti!r!ti!u!ti#{!tig!ti~P-pOs#qa!a#qa~P&^Or%VO~Og$aP~P'oOg$YP~P)VOc!SXg!QX!U!QX!W!SX~Oc%_O!W%`O~Og%aO!U#|O~O!U#|OS#yXc#yXd#yXh#yXn#yXs#yX!Y#yX!]#yX!a#yX$O#yX~On%eO!a#}O~P(dO!U#|OS!Xac!Xad!Xah!Xan!Xas!Xa!Y!Xa!]!Xa!a!Xa$O!Xag!Xa~O$O%fOg$`P~P/POy$aOQ$[X`$[Xc$[Xg$[Xh$[Xl$[Xm$[Xn$[Xp$[Xs$[Xu$[Xw$[X}$[X!d$[X#|$[X#}$[X$]$[Xo$[Xr$[X~O`$WOc$WOg%kOl$WOm$WOn$WO~P)VO`$WOc$WOl$WOm$WOn$WOo%lO~P)VO`$WOc$WOl$WOm$WOn$WOr%mO~P)VOh%oOS!|Xc!|Xd!|Xn!|X!Y!|X!]!|X$O!|X~On%pO~Og%uOw%vO!e%vO~Os#uX!a#uXn#uX~P)zO!a$jOs$ean$ea~On%yO~Or&QO#|%{O$]%zO~Og&RO~P&^Oy$aO!a&VO$d$zOn!wi#z!wir!wi~P)VO$c&YO~On#sa#z#sar#sa~P!jOn#ZO#z$bir$bi~O!a&]Og$aX~P&^Og&_O~Oy$aOQ#kXg#kXh#kXp#kXs#kXu#kXw#kX}#kX!a#kX!d#kX#|#kX#}#kX$]#kX~O!a&aOg$YX~P)VOg&cO~Oo&dOy$aO!p&eO~OR#yOu#yOw#yO$O&gO$]!pO~O!U#|OS#yac#yad#yah#yan#yas#ya!Y#ya!]#ya!a#ya$O#ya~Oc!SXg!QX!U!QX!a!QX~O!U#|O!a&iOg$`X~Oc&kO~Og&lO~O#|&mO~On&oO~Oc&pO!U#|O~Og&rOn&qO~Og&uO~O!U#|Os#ua!a#uan#ua~OP$`OsvX!avXgvX~O$]%zOs#]X!a#]X~Os!RO!a&wO~Or&{O#|%{O$]%zO~Oy$aOQ#rXh#rXn#rXp#rXs#rXu#rXw#rX}#rX!a#rX!d#rX#z#rX#|#rX#}#rX$]#rX$d#rXr#rX~O!a&VO$d$zOn!wq#z!wqr!wq~P)VOo'QOy$aO!p'RO~Og#pX!a#pX~P'oO!a&]Og$aa~Og#oX!a#oX~P)VO!a&aOg$Ya~Oo'QO~Og'WO~P)VOg'XO!W'YO~O$O%fOg#nX!a#nX~P/PO!a&iOg$`a~O`'_Og'aO~OS#mac#mad#mah#ma!Y#ma!]#ma$O#ma~Og'cO~PMcOg'cOn'dO~Oy$aOQ#rah#ran#rap#ras#rau#raw#ra}#ra!a#ra!d#ra#z#ra#|#ra#}#ra$]#ra$d#rar#ra~Oo'iO~Og#pa!a#pa~P&^Og#oa!a#oa~P)VOR#yOu#yOw#yO$O&gO$]%zO~O!U#|Og#na!a#na~Oc'kO~O!a&iOg$`i~P)VO`'_Og'oO~Oy$aOg!Pin!Pi~Og'pO~PMcOn'qO~Og'rO~O!a&iOg$`q~Og#nq!a#nq~P)VO$Q!e$R$]`$]y!u~",
|
||||
goto: "4h$fPPPPP$gP$jP$s%V$s%i%{P$sP&R$sPP&XPPP&_&i&iPPPPP&iPP&iP'VP&iP&i(Q&iP(n(q(w(w)Z(wP(wP(wP(w(wP)j(w)vP(w)yPP*m*s$s*y$s+P+P+V+ZPP$sP$s$sP+a,],j,q$jP,zP,}P$jP$jP$jP-T$jP-W-Z-^-e$jP$jPP$jP-j$jP-m-s.S.j.x/O/Y/`/f/l/r/|0S0Y0`0f0lPPPPPPPPPPP0r0{P1q1t2vP3O3x4R4U4XPP4_RrQ_aOPco!R#Z$}q_OP]^co|}!O!P!R#R#Z#o$}&]qSOP]^co|}!O!P!R#R#Z#o$}&]qUOP]^co|}!O!P!R#R#Z#o$}&]QtTR#auQwWR#bxQ!VYR#cyQ#c!XS$f!s!tR%S#e!V!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k's!U!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sU#y!c%`'YU%}$p&P&wR&v%|!V!sdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sR$h!uQ%s$gR&s%tq!h`ei!c!d!e!q#|#}$O$R$e$g$j%t&iQ#w!cQ%h$RQ&h%`Q'[&iR'j'YQ#UjQ$U!jQ$t#TR&T$vR$S!f!U!wdf!m!n!o#Y#p#u$Y$[$^$a$y%U%Z%_&V&W&a&f&k&p'U'^'k'sQ!|gR$o!}Q!WYR#dyQ#c!WR%S#dQ!ZZR#fzQ!_[R#g{T!^[{Q#r!]R%]#sQ!SXQ!i`Q#SjQ#m!QQ$P!dQ$l!yQ$r#QQ$u#UQ$x#XQ%e$OQ&S$tQ&y&OQ&|&TR'h&xSnP!RQ#]oQ$|#ZR&Z$}ZmPo!R#Z$}Q${#YQ&X$yR'P&WR$e!qQ&n%oR'm'_R!}gR#PhR$q#PS&O$p&PR'f&wV%|$p&P&wR#XkQ#_qR%Q#_QcOSoP!RU!kco$}R$}#ZQ%Z#pY&`%Z&f'U'^'sQ&f%_Q'U&aQ'^&kR's'kQ$Y!mQ$[!nQ$^!oV%j$Y$[$^Q%t$gR&t%tQ&j%gS']&j'lR'l'^Q&b%ZR'V&bQ&^%WR'T&^Q!QXR#l!QQ&W$yR'O&WQ#[nS%O#[%PR%P#]Q'`&nR'n'`Q$k!xR%x$kQ&P$pR&z&PQ&x&OR'g&xQ#WkR$w#WQ$O!dR%d$O_bOPco!R#Z$}^XOPco!R#Z$}Q!`]Q!a^Q#h|Q#i}Q#j!OQ#k!PQ$s#RQ%W#oR'S&]R%[#pQ!qdQ!zf[$V!m!n!o$Y$[$^Q$y#Yd%Y#p%Z%_&a&f&k'U'^'k'sQ%^#uQ%n$aS&U$y&WQ&[%UQ&}&VR'b&p]$X!m!n!o$Y$[$^Q!d`U!xe!q$eQ#QiQ#x!cS#{!d$OQ$Q!eQ%b#|Q%c#}Q%g$RS%r$g%tQ%w$jR'Z&iQ#z!cQ&h%`R'j'YR%i$RR%X#oQpPR#n!RQ!yeQ$d!qR%q$e",
|
||||
nodeNames: "⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NamespacedTagSelector NamespaceName TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , PseudoQuery CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName NamespacedAttribute NamespaceName AttributeName MatchOp MatchFlag ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to FontFeatureStatement font-feature-values FontName AtRule Styles",
|
||||
maxTerm: 159,
|
||||
nodeProps: [
|
||||
["isolate", -2,5,39,""],
|
||||
["openedBy", 23,"(",31,"[",34,"{"],
|
||||
["closedBy", 24,")",32,"]",35,"}"]
|
||||
],
|
||||
propSources: [cssHighlighting],
|
||||
skippedNodes: [0,5,117],
|
||||
repeatNodeCount: 17,
|
||||
tokenData: "K`~R!bOX%ZX^&R^p%Zpq&Rqr)ers)vst+jtu2Xuv%Zvw3Rwx3dxy5Ryz5dz{5i{|6S|}:u}!O;W!O!P;u!P!Q<^!Q![=V![!]>Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!e`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$Q~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$Q~!e`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$dYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!e`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!e`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!e`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!e`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!e`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!e`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!e`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!e`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!oS!e`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW!uQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!e`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!e`$]YOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!e`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!e`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!e`$]YOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!e`$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!aYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~<cTyWOy%jz{<r{;'S%j;'S;=`%{<%lO%j~<yS!e`$R~Oy%jz;'S%j;'S;=`%{<%lO%jj=[[$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj>VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!e`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!e`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!oSOy%jz;'S%j;'S;=`%{<%lO%jj@uV!rQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!rQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!e`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!e`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!pWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!pWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!e`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!e`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!e`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!e`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!e`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!e`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!e`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$cQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$XUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU!uQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",
|
||||
tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new LocalTokenGroup("m~RRYZ[z{a~~g~aO$T~~dP!P!Qg~lO$U~~", 28, 142)],
|
||||
topRules: {"StyleSheet":[0,6],"Styles":[1,116]},
|
||||
dynamicPrecedences: {"84":1},
|
||||
specialized: [{term: 137, get: (value) => spec_callee[value] || -1},{term: 138, get: (value) => spec_queryIdentifier[value] || -1},{term: 4, get: (value) => spec_QueryCallee[value] || -1},{term: 28, get: (value) => spec_AtKeyword[value] || -1},{term: 136, get: (value) => spec_identifier[value] || -1}],
|
||||
tokenPrec: 2256
|
||||
})
|
||||
63
node_modules/@lezer/css/src/parser.terms.js
generated
vendored
Normal file
63
node_modules/@lezer/css/src/parser.terms.js
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
||||
export const
|
||||
descendantOp = 135,
|
||||
Unit = 1,
|
||||
identifier = 136,
|
||||
callee = 137,
|
||||
VariableName = 2,
|
||||
queryIdentifier = 138,
|
||||
queryVariableName = 3,
|
||||
QueryCallee = 4,
|
||||
Comment = 5,
|
||||
StyleSheet = 6,
|
||||
RuleSet = 7,
|
||||
UniversalSelector = 8,
|
||||
NestingSelector = 14,
|
||||
PseudoClassName = 22,
|
||||
AtKeyword = 28,
|
||||
ColorLiteral = 37,
|
||||
NumberLiteral = 38,
|
||||
StringLiteral = 39,
|
||||
BinOp = 41,
|
||||
CallExpression = 42,
|
||||
IfExpression = 44,
|
||||
_if = 45,
|
||||
IfBranch = 47,
|
||||
FeatureName = 50,
|
||||
LogicOp = 52,
|
||||
CompareOp = 54,
|
||||
UnaryQueryOp = 56,
|
||||
selector = 59,
|
||||
ParenthesizedSelector = 60,
|
||||
CallLiteral = 65,
|
||||
CallTag = 66,
|
||||
ParenthesizedContent = 67,
|
||||
MatchOp = 77,
|
||||
MatchFlag = 78,
|
||||
ChildOp = 80,
|
||||
SiblingOp = 83,
|
||||
Block = 84,
|
||||
Declaration = 85,
|
||||
Important = 87,
|
||||
ImportStatement = 88,
|
||||
_import = 89,
|
||||
layer = 93,
|
||||
LayerName = 92,
|
||||
MediaStatement = 94,
|
||||
media = 95,
|
||||
CharsetStatement = 96,
|
||||
charset = 97,
|
||||
NamespaceStatement = 98,
|
||||
namespace = 99,
|
||||
KeyframesStatement = 101,
|
||||
keyframes = 102,
|
||||
KeyframeList = 104,
|
||||
KeyframeSelector = 105,
|
||||
SupportsStatement = 107,
|
||||
supports = 108,
|
||||
ScopeStatement = 109,
|
||||
scope = 110,
|
||||
to = 111,
|
||||
FontFeatureStatement = 112,
|
||||
AtRule = 115,
|
||||
Styles = 116
|
||||
75
node_modules/@lezer/css/src/tokens.js
generated
vendored
Normal file
75
node_modules/@lezer/css/src/tokens.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Hand-written tokenizers for CSS tokens that can't be
|
||||
expressed by Lezer's built-in tokenizer. */
|
||||
|
||||
import {ExternalTokenizer} from "@lezer/lr"
|
||||
import {
|
||||
identifier, callee, VariableName,
|
||||
queryIdentifier, queryVariableName, QueryCallee,
|
||||
descendantOp, Unit
|
||||
} from "./parser.terms.js"
|
||||
|
||||
const space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
|
||||
8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288]
|
||||
const colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,
|
||||
hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10, asterisk = 42
|
||||
|
||||
function isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }
|
||||
|
||||
function isDigit(ch) { return ch >= 48 && ch <= 57 }
|
||||
|
||||
function isHex(ch) { return isDigit(ch) || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70 }
|
||||
|
||||
const identifierTokens = (id, varName, callee) => (input, stack) => {
|
||||
for (let inside = false, dashes = 0, i = 0;; i++) {
|
||||
let {next} = input
|
||||
if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {
|
||||
if (!inside && (next != dash || i > 0)) inside = true
|
||||
if (dashes === i && next == dash) dashes++
|
||||
input.advance()
|
||||
} else if (next == backslash && input.peek(1) != newline) {
|
||||
input.advance()
|
||||
if (isHex(input.next)) {
|
||||
do { input.advance() } while (isHex(input.next))
|
||||
if (input.next == 32) input.advance()
|
||||
} else if (input.next > -1) {
|
||||
input.advance()
|
||||
}
|
||||
inside = true
|
||||
} else {
|
||||
if (inside) input.acceptToken(
|
||||
dashes == 2 && stack.canShift(VariableName) ? varName : next == parenL ? callee : id
|
||||
)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const identifiers = new ExternalTokenizer(
|
||||
identifierTokens(identifier, VariableName, callee),
|
||||
{contextual: true}
|
||||
)
|
||||
export const queryIdentifiers = new ExternalTokenizer(
|
||||
identifierTokens(queryIdentifier, queryVariableName, QueryCallee),
|
||||
{contextual: true}
|
||||
)
|
||||
|
||||
export const descendant = new ExternalTokenizer(input => {
|
||||
if (space.includes(input.peek(-1))) {
|
||||
let {next} = input
|
||||
if (isAlpha(next) || next == underscore || next == hash || next == period ||
|
||||
next == asterisk || next == bracketL || next == colon && isAlpha(input.peek(1)) ||
|
||||
next == dash || next == ampersand)
|
||||
input.acceptToken(descendantOp)
|
||||
}
|
||||
})
|
||||
|
||||
export const unitToken = new ExternalTokenizer(input => {
|
||||
if (!space.includes(input.peek(-1))) {
|
||||
let {next} = input
|
||||
if (next == percent) { input.advance(); input.acceptToken(Unit) }
|
||||
if (isAlpha(next)) {
|
||||
do { input.advance() } while (isAlpha(input.next) || isDigit(input.next))
|
||||
input.acceptToken(Unit)
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user