Function fromZoirNodeAlloc [src]
Like fromZoirAlloc, but the parse starts at node instead of root.
Prototype
pub fn fromZoirNodeAlloc( T: type, gpa: Allocator, ast: Ast, zoir: Zoir, node: Zoir.Node.Index, diag: ?*Diagnostics, options: Options, ) error{ OutOfMemory, ParseZon }!T Parameters
T: typegpa: Allocatorast: Astzoir: Zoirnode: Zoir.Node.Indexdiag: ?*Diagnosticsoptions: Options Possible Errors
Source
pub fn fromZoirNodeAlloc(
T: type,
gpa: Allocator,
ast: Ast,
zoir: Zoir,
node: Zoir.Node.Index,
diag: ?*Diagnostics,
options: Options,
) error{ OutOfMemory, ParseZon }!T {
comptime assert(canParseType(T));
if (diag) |s| {
s.assertEmpty();
s.ast = ast;
s.zoir = zoir;
}
if (zoir.hasCompileErrors()) {
return error.ParseZon;
}
var parser: Parser = .{
.gpa = gpa,
.ast = ast,
.zoir = zoir,
.options = options,
.diag = diag,
};
return parser.parseExpr(T, node);
}