class

CodeGenerator

Inherits Reference < Object

Constructors

new(io : IO)
Source

Instance methods

abort!(message : String)
Source
current_function
Source
current_function=(current_function : Function)
Source
emit(type_def : TypeDefinition)
Source
emit(function : Function)
Source
emit(param : Parameter)
Source
emit(type : Type)
Source
emit(block : Hir::Block)
Source
emit(expr : Hir)
Source
emit(cell : Cell)
Source
emit_anonymous_enum_def(type_def : EnumDef)
Source
emit_anonymous_struct_def(type_def : StructDef)
Source
emit_assign(name : String, value : Hir)
Source
emit_assign(name : String, value : Cell(Hir))
Source
emit_call(call : Hir::Call)
Source
emit_concrete_type_def(type_def : TypeDefinition)
Source
emit_constructor(cons : Hir::Constructor)
Source
emit_declare(name : String, value : Cell(Hir) | Nil)
Source
emit_enum_constructor(cons : Hir::EnumConstructor)
Source
emit_generic_type_def(type_def : TypeDefinition)
Source
emit_if(if_node : Hir::If, blk_id = indent)
Source
emit_struct_or_enum(type : Struct | Enum)
Source
emit_type_param(id : Int)
Source
end_block
Source
function_name(name : String, overload_index : Int)
Source
generate_program(type_env : TypeEnv, functions : Hash(String, Array(Function)))
Source
generate_program(specializer : Specializer)
Source
ident(name : String)
Source
indent
Source
indent=(indent : UInt32)
Source
io=(io : IO)
Source
join(iter : Iterator, join_proc, &)
Source
newline
Source
start_block
Source
type_name(name : String)
Source