コード例 #1
0
ファイル: Ident.java プロジェクト: clementval/omni-compiler
  @Override
  public String toString() {
    if (getStorageClass() == StorageClass.REG) {
      return "[0x"
          + Integer.toHexString(num)
          + " "
          + (type == null ? "*" : type.toString())
          + " () *]";
    }

    StringBuilder b = new StringBuilder(256);
    b.append("[");
    b.append(name == null ? "*" : name);
    b.append(" ");
    b.append(stg_class == null ? "*" : stg_class.toXcodeString());
    b.append(" ");
    b.append(type == null ? "*" : type.toString());
    b.append(" ");
    b.append(value == null ? "()" : value.toString());

    /* bit_field, bit_field_expr, enum_value are exclusively set */
    b.append(" ");
    if (bit_field != 0 || bit_field_expr != null) {
      if (bit_field != 0) b.append(bit_field);
      else b.append(bit_field_expr.toString());
    } else if (enum_value != null) {
      b.append(" ");
      b.append(enum_value.toString());
    } else {
      b.append("*");
    }

    b.append(declared ? " D" : "");

    if (gcc_attrs != null) {
      b.append(" ");
      b.append(gcc_attrs.toString());
    }

    b.append("]");

    return b.toString();
  }