Esempio n. 1
0
llvm::ArrayRef<TopLevelItemPtr> desugarEvalTopLevel(EvalTopLevelPtr eval, EnvPtr env)
{
    if (eval->evaled)
        return eval->value;
    else {
        SourcePtr source = evalToSource(eval->location, eval->args, env);
        parseTopLevelItems(source, 0, unsigned(source->size()), eval->value, eval->module);
        eval->evaled = true;
        return eval->value;
    }
}
Esempio n. 2
0
ExprListPtr desugarEvalExpr(EvalExprPtr eval, EnvPtr env, CompilerState* cst)
{
    if (eval->evaled)
        return eval->value;
    else {
        SourcePtr source = evalToSource(eval->location, new ExprList(eval->args), env, cst);
        eval->value = parseExprList(source, 0, unsigned(source->size()), cst);
        eval->evaled = true;
        return eval->value;
    }
}
Esempio n. 3
0
llvm::ArrayRef<StatementPtr> desugarEvalStatement(EvalStatementPtr eval, EnvPtr env)
{
    if (eval->evaled)
        return eval->value;
    else {
        SourcePtr source = evalToSource(eval->location, eval->args, env);
        parseStatements(source, 0, unsigned(source->size()), eval->value);
        eval->evaled = true;
        return eval->value;
    }
}