final public Unit FormalArg() throws ParseException {
  FieldDetails fieldDetails = new FieldDetails();
  Unit formalArg = null;
  SimpleNode type = null;
  boolean isArray = false;
  int arraySize = 0;
    type = Type();
    label_8:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LSB:
        ;
        break;
      default:
        jj_la1[17] = jj_gen;
        break label_8;
      }
      jj_consume_token(LSB);
      jj_consume_token(RSB);
    isArray = true;
    arraySize += arraySize;
    }
    fieldDetails.isArray = isArray;
    fieldDetails.arraySize = arraySize;
    type.typeObj.isArray = isArray;
    type.typeObj.arraySize = arraySize;
    fieldDetails.setType(type);
    formalArg = Variable(fieldDetails);
                                     {if (true) return formalArg;}
    throw new Error("Missing return statement in function");
  }