aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs')
-rw-r--r--vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs76
1 files changed, 76 insertions, 0 deletions
diff --git a/vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs b/vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs
new file mode 100644
index 0000000..43b5c18
--- /dev/null
+++ b/vanilla/node_modules/css-tree/cjs/syntax/scope/default.cjs
@@ -0,0 +1,76 @@
+'use strict';
+
+const types = require('../../tokenizer/types.cjs');
+
+const NUMBERSIGN = 0x0023; // U+0023 NUMBER SIGN (#)
+const ASTERISK = 0x002A; // U+002A ASTERISK (*)
+const PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)
+const HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)
+const SOLIDUS = 0x002F; // U+002F SOLIDUS (/)
+const U = 0x0075; // U+0075 LATIN SMALL LETTER U (u)
+
+function defaultRecognizer(context) {
+ switch (this.tokenType) {
+ case types.Hash:
+ return this.Hash();
+
+ case types.Comma:
+ return this.Operator();
+
+ case types.LeftParenthesis:
+ return this.Parentheses(this.readSequence, context.recognizer);
+
+ case types.LeftSquareBracket:
+ return this.Brackets(this.readSequence, context.recognizer);
+
+ case types.String:
+ return this.String();
+
+ case types.Dimension:
+ return this.Dimension();
+
+ case types.Percentage:
+ return this.Percentage();
+
+ case types.Number:
+ return this.Number();
+
+ case types.Function:
+ return this.cmpStr(this.tokenStart, this.tokenEnd, 'url(')
+ ? this.Url()
+ : this.Function(this.readSequence, context.recognizer);
+
+ case types.Url:
+ return this.Url();
+
+ case types.Ident:
+ // check for unicode range, it should start with u+ or U+
+ if (this.cmpChar(this.tokenStart, U) &&
+ this.cmpChar(this.tokenStart + 1, PLUSSIGN)) {
+ return this.UnicodeRange();
+ } else {
+ return this.Identifier();
+ }
+
+ case types.Delim: {
+ const code = this.charCodeAt(this.tokenStart);
+
+ if (code === SOLIDUS ||
+ code === ASTERISK ||
+ code === PLUSSIGN ||
+ code === HYPHENMINUS) {
+ return this.Operator(); // TODO: replace with Delim
+ }
+
+ // TODO: produce a node with Delim node type
+
+ if (code === NUMBERSIGN) {
+ this.error('Hex or identifier is expected', this.tokenStart + 1);
+ }
+
+ break;
+ }
+ }
+}
+
+module.exports = defaultRecognizer;