Implemented return values
This commit is contained in:
parent
67b3a3d820
commit
a0edc45e19
7 changed files with 113 additions and 61 deletions
|
@ -7,12 +7,18 @@ import (
|
|||
|
||||
// CompileReturn compiles a return instruction.
|
||||
func (f *Function) CompileReturn(tokens token.List) error {
|
||||
if len(tokens) > 1 {
|
||||
value := expression.Parse(tokens[1:])
|
||||
defer value.Close()
|
||||
// TODO: Set the return value
|
||||
defer f.assembler.Return()
|
||||
|
||||
if len(tokens) == 1 {
|
||||
return nil
|
||||
}
|
||||
|
||||
f.assembler.Return()
|
||||
return nil
|
||||
value := expression.Parse(tokens[1:])
|
||||
|
||||
if value == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
defer value.Close()
|
||||
return f.ExpressionToRegister(value, f.cpu.Return[0])
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue