aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/css-tree/lib/syntax/pseudo
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/css-tree/lib/syntax/pseudo')
-rw-r--r--vanilla/node_modules/css-tree/lib/syntax/pseudo/index.js56
-rw-r--r--vanilla/node_modules/css-tree/lib/syntax/pseudo/lang.js33
2 files changed, 89 insertions, 0 deletions
diff --git a/vanilla/node_modules/css-tree/lib/syntax/pseudo/index.js b/vanilla/node_modules/css-tree/lib/syntax/pseudo/index.js
new file mode 100644
index 0000000..7d75fe1
--- /dev/null
+++ b/vanilla/node_modules/css-tree/lib/syntax/pseudo/index.js
@@ -0,0 +1,56 @@
+import { parseLanguageRangeList } from './lang.js';
+
+const selectorList = {
+ parse() {
+ return this.createSingleNodeList(
+ this.SelectorList()
+ );
+ }
+};
+
+const selector = {
+ parse() {
+ return this.createSingleNodeList(
+ this.Selector()
+ );
+ }
+};
+
+const identList = {
+ parse() {
+ return this.createSingleNodeList(
+ this.Identifier()
+ );
+ }
+};
+
+const langList = {
+ parse: parseLanguageRangeList
+};
+
+const nth = {
+ parse() {
+ return this.createSingleNodeList(
+ this.Nth()
+ );
+ }
+};
+
+export default {
+ 'dir': identList,
+ 'has': selectorList,
+ 'lang': langList,
+ 'matches': selectorList,
+ 'is': selectorList,
+ '-moz-any': selectorList,
+ '-webkit-any': selectorList,
+ 'where': selectorList,
+ 'not': selectorList,
+ 'nth-child': nth,
+ 'nth-last-child': nth,
+ 'nth-last-of-type': nth,
+ 'nth-of-type': nth,
+ 'slotted': selector,
+ 'host': selector,
+ 'host-context': selector
+};
diff --git a/vanilla/node_modules/css-tree/lib/syntax/pseudo/lang.js b/vanilla/node_modules/css-tree/lib/syntax/pseudo/lang.js
new file mode 100644
index 0000000..3adfdb8
--- /dev/null
+++ b/vanilla/node_modules/css-tree/lib/syntax/pseudo/lang.js
@@ -0,0 +1,33 @@
+import { Comma, String as StringToken, Ident, RightParenthesis } from '../../tokenizer/index.js';
+
+export function parseLanguageRangeList() {
+ const children = this.createList();
+
+ this.skipSC();
+
+ loop: while (!this.eof) {
+ switch (this.tokenType) {
+ case Ident:
+ children.push(this.Identifier());
+ break;
+
+ case StringToken:
+ children.push(this.String());
+ break;
+
+ case Comma:
+ children.push(this.Operator());
+ break;
+
+ case RightParenthesis:
+ break loop;
+
+ default:
+ this.error('Identifier, string or comma is expected');
+ }
+
+ this.skipSC();
+ }
+
+ return children;
+}