docs: function peekSelectorToken(context: ParserContext): string | null {
    // make sure it's not part of a property value
    // basically if we run into "{" before "}" it's bad
    const walker = context.getTokenWalker();
    while (walker.hasPrev()) {
      const token = walker.prev();
      if (token.name === "punctuation" && token.value === "}") break;
      else if (token.name === "punctuation" && token.value === "{") return null;
    }
  
    // now check to make sure we run into a { before a ;
    let value = "";
    let appendToValue = true;
    for (let offset = 1; ; offset++) {
      const peek = context.reader.peekWithOffset(offset);
      if (peek === "") break;
  
      if (/[^\w-]/.test(peek)) {
        appendToValue = false;
        if (peek === "{") break;
        if (peek === ";") return null;
      } else if (appendToValue) {
        value += peek;
      }
    }
  
    return value;
  }