From eb32577d385101b6397b66ada91de5b75eae5c3a Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Wed, 8 Aug 2018 22:21:57 -0700 Subject: [PATCH] Add a clear function. --- src/chalk/compiler.cr | 1 + src/chalk/inline.cr | 10 ++++++++++ 2 files changed, 11 insertions(+) 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