diff --git a/src/chalk/compiler.cr b/src/chalk/compiler.cr index 47d2bed..0234dc4 100644 --- a/src/chalk/compiler.cr +++ b/src/chalk/compiler.cr @@ -68,6 +68,7 @@ module Chalk table.set_function "set_sound", FunctionEntry.new Builtin::InlineSetSoundFunction.new table.set_function "draw_number", FunctionEntry.new Builtin::InlineDrawNumberFunction.new table.set_function "draw_sprite", FunctionEntry.new Builtin::InlineDrawSpriteFunction.new + table.set_function "clear", FunctionEntry.new Builtin::InlineClearFunction.new return table end diff --git a/src/chalk/inline.cr b/src/chalk/inline.cr index 00ca617..6fc9d26 100644 --- a/src/chalk/inline.cr +++ b/src/chalk/inline.cr @@ -97,5 +97,15 @@ module Chalk return Compiler::FunctionType.new([Compiler::Type::U8] * 3, Compiler::Type::U0) end end + + class InlineClearFunction < InlineFunction + def generate!(emitter, params, table, target, free) + emitter.instructions << Ir::ClearInstruction.new + end + + def type + return Compiler::FunctionType.new(([] of Compiler::Type), Compiler::Type::U0) + end + end end end