/* type-specifier: * void * char * short * int * long * float * double * signed * unsigned * _Bool -- C99 * _Complex -- C99 * _Imaginary -- C99 * struct-or-union-specifier * enum-specifier * typedef-name. * * GNU extensions. * simple-type-specifier: * __complex__ * __vector__ */ void TypeSpecifier(DataType t) { if (t is UnknownType) { fmt.Write("<type-error>"); return; } else if (t is EquivalenceClass) { fmt.Write(t.Name); return; } else if (t is PrimitiveType) { //case tree_code.VOID_TYPE: //case tree_code.BOOLEAN_TYPE: //case tree_code.CHAR_TYPE: //case tree_code.INTEGER_TYPE: //case tree_code.REAL_TYPE: //if (TYPE_NAME(t) != null) // t = TYPE_NAME(t); //else // t = c_common_type_for_mode(TYPE_MODE(t), TREE_UNSIGNED(t)); WritePrimitiveTypeName((PrimitiveType)t); //if (declaration && !string.IsNullOrEmpty(declaredName)) // fmt.Write(' '); return; } else if (t is VoidType) { WriteVoidType((VoidType)t); return; } else if (t is UnionType) { fmt.WriteKeyword("union"); } else if (t is StructureType) { fmt.WriteKeyword("struct"); } else if (t is EnumType) { fmt.WriteKeyword("enum"); } fmt.Write(" "); if (string.IsNullOrEmpty(t.Name)) { fmt.Write("<anonymous>"); } else { fmt.Write(t.Name); } }
public void VisitOutArgument(OutArgument outArg) { writer.WriteKeyword("out"); writer.Write(" "); WriteExpression(outArg.Expression); }
public override void WriteKeyword(string keyword) { WritePrefix(); w.WriteKeyword(keyword); }
public void VisitPointer(Pointer ptr) { switch (ptr.Size) { case 2: fmt.WriteKeyword("dw"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X4}", rdr.ReadByte())); fmt.WriteLine(); return; case 4: fmt.WriteKeyword("dd"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X8}", rdr.ReadUInt32())); fmt.WriteLine(); return; case 8: fmt.WriteKeyword("dq"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X16}", rdr.ReadUInt64())); fmt.WriteLine(); return; } }