Example #1
0
void DesignatedInitExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "DesignatedInitExpr ";
    Expr::print(buffer, 0);
    if (getDesignatorKind() == ARRAY_DESIGNATOR) {
        buffer << " array";
    } else {
        buffer << " field";
    }
    buffer << '\n';
    buffer.indent(indent);
    buffer.setColor(COL_ATTR);
    if (getDesignatorKind() == ARRAY_DESIGNATOR) {
        buffer << "Designator = [" << index.getSExtValue() << "]\n";
        designator->print(buffer, indent + INDENT);
    } else {
        buffer << "field = ";
        buffer.setColor(COL_VALUE);
        buffer << '\'' << field << '\'' << '\n';
    }
    buffer.indent(indent);
    buffer.setColor(COL_ATTR);
    buffer << "InitValue=\n";
    initValue->print(buffer, indent + INDENT);
}
Example #2
0
void LabelDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.setColor(COL_DECL);
    buffer << "LabelDecl ";
    buffer.setColor(COL_VALUE);
    buffer << name << '\n';
    if (TheStmt) TheStmt->print(buffer, indent+INDENT);
}
Example #3
0
void StringLiteral::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "StringLiteral ";
    Expr::print(buffer, 0);
    buffer.setColor(COL_VALUE);
    buffer << " '" << value << "'\n";
}
Example #4
0
void BooleanLiteral::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "BooleanLiteral ";
    Expr::print(buffer, 0);
    buffer.setColor(COL_VALUE);
    buffer << ' ' << getValue() << '\n';
}
Example #5
0
void ArrayValueDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_DECL);
    buffer << "ArrayValueDecl ";
    buffer.setColor(COL_VALUE);
    buffer << name << '\n';
    value->print(buffer, INDENT);
}
Example #6
0
void CharacterLiteral::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "CharacterLiteral ";
    Expr::print(buffer, 0);
    buffer << ' ';
    buffer.setColor(COL_VALUE);
    printLiteral(buffer);
    buffer << '\n';
}
Example #7
0
void FloatingLiteral::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "FloatingLiteral ";
    Expr::print(buffer, 0);
    char temp[20];
    sprintf(temp, "%f", Value.convertToFloat());
    buffer.setColor(COL_VALUE);
    buffer << ' ' << temp << '\n';
}
Example #8
0
void PointerType::fullDebugImpl(StringBuilder& buffer, int indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_STMT);
    buffer << "[PointerType] " << (void*)this << '\n';
    buffer.indent(indent);
    buffer.setColor(COL_ATTR);
    buffer << "pointee=\n";
    PointeeType.fullDebug(buffer, indent+INDENT);
    Type::fullDebugImpl(buffer, indent);
}
Example #9
0
void EnumConstantDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_DECL);
    buffer << "EnumConstantDecl ";
    buffer.setColor(COL_VALUE);
    buffer << name;
    buffer.setColor(COL_ATTR);
    buffer << ' ' << Val.getSExtValue() << '\n';
    if (InitVal) InitVal->print(buffer, indent+INDENT);
}
Example #10
0
void QualType::debugPrint(StringBuilder& buffer) const {
    if (isNull()) {
        buffer.setColor(ANSI_RED);
        buffer << "??";
        buffer.setColor(ANSI_NORMAL);
    } else {
        printQualifiers(buffer);
        getTypePtr()->debugPrint(buffer);
    }
}
Example #11
0
void IntegerLiteral::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "IntegerLiteral ";
    Expr::print(buffer, 0);
    buffer.setColor(COL_VALUE);
    buffer << ' ';

    buffer.radix(getRadix(), Value.getSExtValue());
    buffer << '\n';
}
Example #12
0
void AliasTypeDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.setColor(COL_DECL);
    buffer << "AliasTypeDecl ";
    type.print(buffer);
    printPublic(buffer);
    buffer.setColor(COL_VALUE);
    buffer << ' ' << name;
    buffer.setColor(COL_ATTR); buffer << " refType: "; refType.print(buffer);
    buffer << '\n';
    printAttributes(buffer, indent + INDENT);
}
Example #13
0
void BuiltinExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "BuiltinExpr ";
    Expr::print(buffer, 0);
    buffer.setColor(COL_ATTR);
    if (isSizeof()) buffer << " sizeof";
    else buffer << " elemsof";
    buffer << '\n';
    expr->print(buffer, indent + INDENT);
}
Example #14
0
void IdentifierExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "IdentifierExpr ";
    Expr::print(buffer, 0);
    buffer.setColor(COL_VALUE);
    buffer << ' ' << getName();
    buffer.setColor(COL_ATTR);
    if (decl) buffer << " <RESOLVED>";
    else buffer << " <UNRESOLVED>";
    buffer << '\n';
}
Example #15
0
void QualType::print(StringBuilder& buffer) const {
    buffer.setColor(COL_TYPE);
    buffer << '\'';
    debugPrint(buffer);
    buffer << '\'';
    const Type* T = getTypePtrOrNull();
    if (T && T != T->canonicalType.getTypePtrOrNull()) {
        buffer.setColor(COL_CANON);
        buffer << "=>";
        getCanonicalType().debugPrint(buffer);
    }
}
Example #16
0
void ExplicitCastExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "ExplicitCastExpr ";
    Expr::print(buffer, 0);
    buffer << '\n';
    buffer.setColor(COL_ATTR);
    buffer.indent(indent + INDENT);
    buffer << "DEST: ";
    destType.print(buffer);
    buffer << '\n';
    inner->print(buffer, indent + INDENT);
}
Example #17
0
void CallExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "CallExpr ";
    Expr::print(buffer, 0);
    buffer.setColor(COL_VALUE);
    buffer << ' ';
    Fn->printLiteral(buffer);
    buffer << '\n';
    Fn->print(buffer, indent + INDENT);
    for (unsigned i=0; i<args.size(); i++) {
        args[i]->print(buffer, indent + INDENT);
    }
}
Example #18
0
void FunctionDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_DECL);
    buffer << "FunctionDecl ";
    type.print(buffer);
    printPublic(buffer);
    buffer.setColor(COL_VALUE);
    buffer << ' ' << name;
    buffer << '\n';
    for (unsigned i=0; i<numArgs(); i++) {
        args[i]->print(buffer, indent + INDENT);
    }
    printAttributes(buffer, indent + INDENT);
    if (body) body->print(buffer, INDENT);
}
Example #19
0
void EnumTypeDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_DECL);
    buffer << "EnumTypeDecl ";
    type.print(buffer);
    printPublic(buffer);
    buffer.setColor(COL_VALUE);
    buffer << ' ' << name;
    if (isIncremental()) buffer << " incremental";
    buffer << '\n';
    printAttributes(buffer, indent + INDENT);
    for (unsigned i=0; i<numConstants(); i++) {
        constants[i]->print(buffer, indent + INDENT);
    }
}
Example #20
0
void QualType::fullDebug(StringBuilder& buffer, int indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "[QualType] " << (void*)this;
    buffer.setColor(COL_ATTR);
    buffer << " qualifiers=";
    printQualifiers(buffer);
    buffer << '\n';
    if (isNull()) {
        buffer.indent(indent);
        buffer.setColor(ANSI_RED);
        buffer << "type=NULL\n";
    } else {
        getTypePtr()->fullDebug(buffer, indent);
    }
}
Example #21
0
void ImportDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.setColor(COL_DECL);
    buffer << "ImportDecl ";
    buffer.setColor(COL_VALUE);
    buffer << modName;
    if (aliasLoc.isValid()) buffer << " as " << name;
    if (isLocal()) buffer << " local";
    buffer.setColor(COL_ATTRIBUTES);
    buffer << "  used=" << isUsed() << '/' << isUsedPublic();
    if (getModule()) {
        buffer << " module=" << getModule()->getName();
    } else {
        buffer << " NO MODULE";
    }
    buffer << '\n';
}
Example #22
0
void FunctionTypeDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_DECL);
    buffer << "FunctionTypeDecl\n";
    printAttributes(buffer, indent + INDENT);
    func->print(buffer, indent + INDENT);
}
Example #23
0
void VarDecl::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_DECL);
    buffer << "VarDecl ";
    type.print(buffer);
    buffer.setColor(COL_ATTR);
    buffer << ' ' << VarDeclKind2Str(getVarKind());
    printPublic(buffer);
    buffer.setColor(COL_VALUE);
    buffer << ' ' << name << '\n';
    printAttributes(buffer, indent + INDENT);

    if (hasLocalQualifier()) buffer << " LOCAL";
    indent += INDENT;
    if (initValue) initValue->print(buffer, indent);
}
Example #24
0
void FunctionType::fullDebugImpl(StringBuilder& buffer, int indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_STMT);
    buffer << "[FunctionType] " << (void*)this << '\n';
    buffer << "TODO\n";
    Type::fullDebugImpl(buffer, indent);
}
Example #25
0
void BitOffsetExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "BitOffsetExpr ";
    Expr::print(buffer, 0);
    buffer << '\n';

    buffer.indent(indent + INDENT);
    buffer.setColor(COL_ATTR);
    buffer << "LHS=\n";
    lhs->print(buffer, indent + INDENT);
    buffer.indent(indent + INDENT);
    buffer.setColor(COL_ATTR);
    buffer << "RHS=\n";
    rhs->print(buffer, indent + INDENT);
}
Example #26
0
void EnumType::fullDebug(StringBuilder& buffer, int indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_STMT);
    buffer << "[EnumType] " << (void*)this << '\n';
    buffer << "TODO\n";
    Type::fullDebug(buffer, indent);
}
Example #27
0
void Type::debugPrint(StringBuilder& buffer) const {
    // only used to print canonical type (called by Sub-Class::debugPrint())
    buffer << "  canonical=";
    if (canonicalType.isNull()) {
        buffer.setColor(ANSI_RED);
        buffer << "???";
    } else {
        const Type* Canon = canonicalType.getTypePtr();
        buffer.setColor(COL_ATTR);
        if (Canon == this) {
            buffer << "this";
        } else {
            Canon->printName(buffer);
        }
    }
    buffer << '\n';
}
Example #28
0
void ParenExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "ParenExpr ";
    Expr::print(buffer, 0);
    buffer << '\n';
    Val->print(buffer, indent + INDENT);
}
Example #29
0
void UnresolvedType::debugPrint(StringBuilder& buffer) const {
    if (decl) {
        buffer << "(Unresolved)" << decl->getName();
    } else {
        buffer.setColor(ANSI_RED);
        printLiteral(buffer);
    }
}
Example #30
0
void MemberExpr::print(StringBuilder& buffer, unsigned indent) const {
    buffer.indent(indent);
    buffer.setColor(COL_EXPR);
    buffer << "MemberExpr";
    buffer.setColor(COL_ATTR);
    if (isModulePrefix()) buffer << " mod-prefix";
    buffer << ' ';
    Expr::print(buffer, 0);
    buffer << '\n';
    buffer.indent(indent + INDENT);
    buffer.setColor(COL_ATTR);
    buffer << "LHS=\n";
    Base->print(buffer, indent + INDENT);
    buffer.indent(indent + INDENT);
    buffer.setColor(COL_ATTR);
    buffer << "RHS=";
    buffer.setColor(COL_VALUE);
    buffer << member << '\n';
    buffer.indent(indent);
    buffer.setColor(COL_ATTR);
    buffer << "decl=";
    if (decl) {
        buffer << decl->getName();
    } else {
        buffer.setColor(ANSI_RED);
        buffer << "NULL";
    }
    buffer << '\n';
}