"use strict";
const htmlparser = require("htmlparser2");
const buildSyntaxResolver = require("../syntax/build-syntax-resolver");
const buildTemplateSyntax = require("../template/syntax");
const JsxLikeTokenizer = require("./jsx-like-tokenizer");
const AstroTokenizer = require("./astro-tokenizer");
const { cssSafeSyntax } = require("../syntax/syntaxes");
function iterateCode(source, { onStyleTag, onStyleAttribute, svelte, astro }) {
const openTag = {};
let disable, ignore, style;
const parser = new htmlparser.Parser(
{
oncomment: (data) => {
ignore = false;
const match = /(?:^|\s+)postcss-(\w+)(?:\s+|$)/i.exec(data);
if (!match) {
return;
}
const directive = match[1].toLowerCase();
if (directive === "enable") {
disable = false;
} else if (directive === "disable") {
disable = true;
} else if (directive === "ignore") {
ignore = true;
}
},
onopentag(name, attribute) {
openTag[name] = true;
const currIgnore = ignore;
ignore = false;
if (currIgnore) {
// ignore
return;
}
// Test if current tag is a valid