code: public String readName() {
      String optionName;
      char c = peekChar();
      if (c == '(') {
        pos++;
        optionName = readWord();
        if (readChar() != ')') throw unexpected("expected ')'");
      } else if (c == '[') {
        pos++;
        optionName = readWord();
        if (readChar() != ']') throw unexpected("expected ']'");
      } else {
        optionName = readWord();
      }
      return optionName;
    }
docs: Reads a (paren-wrapped), [square-wrapped] or naked symbol name.