final public List<Unit> FieldDeclarations(FieldDetails fieldDetails) throws ParseException {
  SimpleNode type = null;
  List<Unit> variables = null;
  boolean isArray = false;
  int arraySize = 0;
    type = Type();
    jjtree.popNode();
    fieldDetails.setType(type);
    label_3:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LSB:
        ;
        break;
      default:
        jj_la1[7] = jj_gen;
        break label_3;
      }
      jj_consume_token(LSB);
      jj_consume_token(RSB);
    type.typeObj.isArray = true;
    type.typeObj.arraySize += 1;
    fieldDetails.isArray = true;
    fieldDetails.arraySize += 1;
    }
    variables = Variables(fieldDetails);
    jj_consume_token(SCOLON);
                                              {if (true) return variables;}
    throw new Error("Missing return statement in function");
  }