renderAsmOutput
Function parameters
Parameters
Type definitions in this namespace
Types
Functions in this namespace
Functions
Error sets in this namespace
Error Sets
Source
Implementation
fn renderAsmOutput(
r: *Render,
asm_output: Ast.Node.Index,
space: Space,
) Error!void {
const tree = r.tree;
assert(tree.nodeTag(asm_output) == .asm_output);
const symbolic_name = tree.nodeMainToken(asm_output);
try renderToken(r, symbolic_name - 1, .none); // lbracket
try renderIdentifier(r, symbolic_name, .none, .eagerly_unquote); // ident
try renderToken(r, symbolic_name + 1, .space); // rbracket
try renderToken(r, symbolic_name + 2, .space); // "constraint"
try renderToken(r, symbolic_name + 3, .none); // lparen
if (tree.tokenTag(symbolic_name + 4) == .arrow) {
const type_expr, const rparen = tree.nodeData(asm_output).opt_node_and_token;
try renderToken(r, symbolic_name + 4, .space); // ->
try renderExpression(r, type_expr.unwrap().?, Space.none);
return renderToken(r, rparen, space);
} else {
try renderIdentifier(r, symbolic_name + 4, .none, .eagerly_unquote); // ident
return renderToken(r, symbolic_name + 5, space); // rparen
}
}