/**
   * Parses comma sequence with trailing comma support
   *
   * @param b PerlBuilder
   * @param l parsing level
   * @return parsing result
   */
  public static boolean parseCommaSequence(PsiBuilder b, int l) {
    boolean r = false;
    while (true) {
      if (consumeToken(b, OPERATOR_COMMA) || consumeToken(b, OPERATOR_COMMA_ARROW)) // got comma
      {
        r = true;

        // consume sequential commas
        while (true) {
          if (!(consumeToken(b, OPERATOR_COMMA) || consumeToken(b, OPERATOR_COMMA_ARROW))) break;
        }
        ;
        if (!PerlParser.expr(b, l, 4)) // looks like an end
        break;
      } else break;
    }
    return r;
  }
 public static boolean parseExpressionLevel(PsiBuilder b, int l, int g) {
   return PerlParser.expr(b, l, g);
 }