编辑代码

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
  let text = [];
  let s;
  let isSingleOpen = false;
  let isDoubleOpen = false;
  while ((s = await readline())) {
    for (let i = 0; i < s.length; i++) {
      const c = s[i];
      // 跳过转义字符,防止split时出错
      if (i == 0 || s[i - 1] !== "\\") {
        if (c === "'") isSingleOpen = !isSingleOpen;
        if (c == '"') isDoubleOpen = !isDoubleOpen;
      }
      // 把字符串中的内容过滤掉,防止后面slice时出错
      if (isSingleOpen || isDoubleOpen) continue;
      if (c == "-" && i + 1 < s.length && s[i + 1] == "-") break;
      text.push(c);
    }
  }
  text.push(";");
  console.log(
    text
      .join("")
      .split(";")
      .filter((c) => c !== "").length
  );
})();