mirror of
https://github.com/RoBaertschi/tt.git
synced 2025-04-16 05:53:30 +00:00
ttir: added Call instruction
This commit is contained in:
parent
bcfa9fbde8
commit
b57ec5f5cf
23
ttir/ttir.go
23
ttir/ttir.go
@ -116,6 +116,29 @@ func (l Label) String() string {
|
|||||||
}
|
}
|
||||||
func (l Label) instruction() {}
|
func (l Label) instruction() {}
|
||||||
|
|
||||||
|
type Call struct {
|
||||||
|
Label string
|
||||||
|
Arguments []Operand
|
||||||
|
ReturnValue Operand
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Call) String() string {
|
||||||
|
b := strings.Builder{}
|
||||||
|
|
||||||
|
b.WriteString(c.ReturnValue.String() + " = call " + c.Label + " ")
|
||||||
|
|
||||||
|
for i, arg := range c.Arguments {
|
||||||
|
b.WriteString(arg.String())
|
||||||
|
|
||||||
|
if i < (len(c.Arguments) - 1) {
|
||||||
|
b.WriteString(", ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return b.String()
|
||||||
|
}
|
||||||
|
func (c *Call) instruction() {}
|
||||||
|
|
||||||
type Operand interface {
|
type Operand interface {
|
||||||
String() string
|
String() string
|
||||||
operand()
|
operand()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user