Compare commits

..

No commits in common. "5c362d8e13cdd9b59220e2781dd8029422ce25f6" and "3f931c4a659e636f8bc04531cc0a3f4e50a6920d" have entirely different histories.

4 changed files with 112 additions and 112 deletions

View File

@ -86,17 +86,16 @@ module Chalk
when TreeBlock
table = Table.new(table)
tree.children.each do |child|
free += generate! child, table, free, free + 1
free += generate! child, table, free, free
end
when TreeVar
entry = table[tree.name]?
if entry == nil
entry = VarEntry.new free
free += 1
table[tree.name] = entry
end
raise "Unknown variable" unless entry.is_a?(VarEntry)
generate! tree.expr, table, entry.register, free
generate! tree.expr, table, entry.register, free + 1
return 1
when TreeAssign
entry = table[tree.name]?
@ -119,7 +118,7 @@ module Chalk
when TreeWhile
before_cond = @instructions.size
generate! tree.condition, table, free, free + 1
sne free, 0
sne target, 0
cond_jump = jr 0
old_size = @instructions.size

View File

@ -32,6 +32,7 @@ module Chalk
def generate!(emitter, params, table, target, free)
emitter.generate! params[0], table, free, free + 1
emitter.instructions << GetFontInstruction.new free
end
end