public StringBuilder VisitQualifiedType(QualifiedType_v1 qt) { var isPtrLike = (qt.DataType is PointerType_v1 || qt.DataType is ReferenceType_v1); if (isPtrLike) { qt.DataType.Accept(this); switch (qt.Qualifier) { case Qualifier.Const: sb.Append(" const"); break; case Qualifier.Volatile: sb.Append(" volatile"); break; case Qualifier.Restricted: sb.Append(" restrict"); break; } } else { switch (qt.Qualifier) { case Qualifier.Const: sb.Append("const "); break; case Qualifier.Volatile: sb.Append("volatile "); break; case Qualifier.Restricted: sb.Append("restrict "); break; } qt.DataType.Accept(this); } return(sb); }
public StringBuilder VisitQualifiedType(QualifiedType_v1 qt) { qt.DataType.Accept(this); switch (qt.Qualifier) { case Qualifier.Const: sb.Append(" const"); break; case Qualifier.Volatile: sb.Append(" volatile"); break; case Qualifier.Restricted: sb.Append(" restrict"); break; } return(sb); }
public SerializedType ParsePointer(List <Argument_v1> compoundArgs, Qualifier q) { int size = 4; //$TODO: should follow platform pointer size, really. SerializedType type; if (PeekAndDiscard('E')) // 64-bit pointer { size = 8; } switch (str[i++]) { case 'A': type = ParseDataTypeCode(new List <Argument_v1>()); break; //$BUG: assumes 32-bitness case 'B': type = Qualify(ParseDataTypeCode(new List <Argument_v1>()), Qualifier.Const); break; // const ptr case 'C': type = Qualify(ParseDataTypeCode(new List <Argument_v1>()), Qualifier.Volatile); break; // volatile ptr case 'D': type = Qualify(ParseDataTypeCode(new List <Argument_v1>()), Qualifier.Const | Qualifier.Volatile); break; // const volatile ptr case '6': type = ParseFunctionTypeCode(); break; // fn ptr case '8': return(ParseMemberFunctionPointerCode(size, compoundArgs)); default: Error("Unsupported pointer code 'P{0}'.", str[i - 1]); return(null); } SerializedType pType = new PointerType_v1 { DataType = type, PointerSize = size, }; if (q != Qualifier.None) { pType = new QualifiedType_v1 { DataType = pType, Qualifier = q, }; } compoundArgs.Add(new Argument_v1 { Type = pType }); return(pType); }
public DataType VisitQualifiedType(QualifiedType_v1 qt) { var dt = qt.DataType.Accept(this); return(new QualifiedType(dt, qt.Qualifier)); }
public bool VisitQualifiedType(QualifiedType_v1 qX) { y = ((QualifiedType_v1)y).DataType; return(qX.DataType.Accept(this)); }
public int VisitQualifiedType(QualifiedType_v1 qt) { return(qt.DataType.Accept(this)); }
public DataType VisitQualifiedType(QualifiedType_v1 qt) { return(new QualifiedType(qt.DataType.Accept(this), qt.Qualifier)); }