aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/css-tree/lib/parser/sequence.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/css-tree/lib/parser/sequence.js')
-rw-r--r--vanilla/node_modules/css-tree/lib/parser/sequence.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/vanilla/node_modules/css-tree/lib/parser/sequence.js b/vanilla/node_modules/css-tree/lib/parser/sequence.js
new file mode 100644
index 0000000..47d1ccd
--- /dev/null
+++ b/vanilla/node_modules/css-tree/lib/parser/sequence.js
@@ -0,0 +1,43 @@
+import { WhiteSpace, Comment } from '../tokenizer/index.js';
+
+export function readSequence(recognizer) {
+ const children = this.createList();
+ let space = false;
+ const context = {
+ recognizer
+ };
+
+ while (!this.eof) {
+ switch (this.tokenType) {
+ case Comment:
+ this.next();
+ continue;
+
+ case WhiteSpace:
+ space = true;
+ this.next();
+ continue;
+ }
+
+ let child = recognizer.getNode.call(this, context);
+
+ if (child === undefined) {
+ break;
+ }
+
+ if (space) {
+ if (recognizer.onWhiteSpace) {
+ recognizer.onWhiteSpace.call(this, child, children, context);
+ }
+ space = false;
+ }
+
+ children.push(child);
+ }
+
+ if (space && recognizer.onWhiteSpace) {
+ recognizer.onWhiteSpace.call(this, null, children, context);
+ }
+
+ return children;
+};