code: public static CcgCategory parseFrom(String categoryString) {
      String[] parts = LexiconEntry.getCsvParser().parseLine(
          categoryString);
      Preconditions.checkArgument(parts.length >= 1, "Invalid CCG category string: %s",
          categoryString);
      return parseFrom(parts);
    }
docs: Parses a CCG category from a string. The expected format is a
  comma separated list:
  
  <ol>
  <li>Syntactic type, formatted as for a
  {@link HeadedSyntacticCategory}.
  <li>Logical form, formatted as for {@link ExpressionParser}. May
  be the empty string, in which case no logical form is used.
  <li>A list of variable assignments or unfilled dependencies:
  <ul>
  <li>Variable assignments are of the format
  "(variable number) (value)".
  <li>Unfilled dependencies are of the format
  "(predicate name) (argument number) (variable number)".
  </ul>
  <p>
  For example, the category for "in" is: <code>
  ((N{1}\N{1}){0}/N{2}){0},,0 in,in 1 1,in 2 2
  </code>
  
  @param categoryString
  @return