Beispiel #1
0
static SourcePtr evalToSource(Location const &location, ExprListPtr args, EnvPtr env)
{
    llvm::SmallString<128> sourceTextBuf;
    llvm::raw_svector_ostream sourceTextOut(sourceTextBuf);
    MultiStaticPtr values = evaluateMultiStatic(args, env);
    for (size_t i = 0; i < values->size(); ++i) {
        printStaticName(sourceTextOut, values->values[i]);
    }

    llvm::SmallString<128> sourceNameBuf;
    llvm::raw_svector_ostream sourceNameOut(sourceNameBuf);
    sourceNameOut << "<eval ";
    printFileLineCol(sourceNameOut, location);
    sourceNameOut << ">";

    sourceTextOut.flush();
    return new Source(sourceNameOut.str(),
        llvm::MemoryBuffer::getMemBufferCopy(sourceTextBuf));
}
Beispiel #2
0
void ensureArity(MultiStaticPtr args, unsigned int size) {
    if (args->size() != size)
        arityError(size, args->size());
}