Files
honey/source/ast/renderer/renderer.hon
T

28 lines
640 B
Plaintext

import "@std/mem"
import "@std/arraylist"
import "@source/ast"
Renderer :: struct {
bytes arraylist.ArrayList(u8)
}
init proc(allocator mem.Allocator) Renderer {
return Renderer{ bytes = arraylist.init(allocator) }
}
deinit proc(renderer @mut Renderer) void {
arraylist.deinit(&renderer.bytes)
}
render proc(renderer @mut Renderer, tree @ast.Tree) void ! mem.AllocError {
_ = tree
arraylist.clear(&renderer.bytes)
try append_text(renderer, "package\n")
}
@hide:file
append_text proc(renderer @mut Renderer, text []u8) void ! mem.AllocError {
for (text) |byte| try arraylist.append(&renderer.bytes, byte)
}