Removed duplicate debug code
All checks were successful
/ test (push) Successful in 17s

This commit is contained in:
Eduard Urbach 2025-07-03 16:46:56 +02:00
parent bdb1b9595f
commit 4aa4d613a1
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
12 changed files with 58 additions and 85 deletions

View file

@ -13,12 +13,9 @@ func showSSA(root *core.Function) {
ansi.Yellow.Println(f.UniqueName + ":")
for _, block := range f.Blocks {
// ansi.Dim.Printf("| %-3s | %-30s | %-30s | %-4s |\n", "ID", "Raw", "Type", "Uses")
// ansi.Dim.Printf("| %s | %s | %s | %s |\n", strings.Repeat("-", 3), strings.Repeat("-", 30), strings.Repeat("-", 30), strings.Repeat("-", 4))
for i, instr := range block.Instructions {
ansi.Dim.Printf("%%%-1d = ", i)
fmt.Printf("%-30s ", instr.Debug())
fmt.Printf("%-30s ", instr.Debug(false))
ansi.Dim.Printf(" %-30s", instr.Type().Name())
fmt.Println()
}

View file

@ -43,12 +43,16 @@ func (v *BinaryOp) IsConst() bool {
return true
}
func (v *BinaryOp) Debug() string {
func (v *BinaryOp) Debug(expand bool) string {
if expand {
return fmt.Sprintf("%s %s %s", v.Left, expression.Operators[v.Op].Symbol, v.Right)
}
return fmt.Sprintf("%%%d %s %%%d", v.Left.ID(), expression.Operators[v.Op].Symbol, v.Right.ID())
}
func (v *BinaryOp) String() string {
return fmt.Sprintf("%s %s %s", v.Left, expression.Operators[v.Op].Symbol, v.Right)
return v.Debug(true)
}
func (v *BinaryOp) Type() types.Type {

View file

@ -32,7 +32,7 @@ func (v *Bytes) IsConst() bool {
return true
}
func (v *Bytes) Debug() string {
func (v *Bytes) Debug(expand bool) string {
return v.String()
}

View file

@ -28,16 +28,26 @@ func (v *Call) IsConst() bool {
return false
}
func (v *Call) Debug() string {
func (v *Call) Debug(expand bool) string {
tmp := strings.Builder{}
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(v.Arguments[0].ID()))
if expand {
tmp.WriteString(v.Arguments[0].String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(v.Arguments[0].ID()))
}
tmp.WriteString("(")
args := v.Arguments[1:]
for i, arg := range args {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
if expand {
tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(args)-1 {
tmp.WriteString(", ")
@ -49,21 +59,7 @@ func (v *Call) Debug() string {
}
func (v *Call) String() string {
tmp := strings.Builder{}
tmp.WriteString(v.Arguments[0].String())
tmp.WriteString("(")
args := v.Arguments[1:]
for i, arg := range args {
tmp.WriteString(arg.String())
if i != len(args)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString(")")
return tmp.String()
return v.Debug(true)
}
func (v *Call) Type() types.Type {

View file

@ -29,7 +29,7 @@ func (v *Function) IsConst() bool {
return true
}
func (v *Function) Debug() string {
func (v *Function) Debug(expand bool) string {
return v.String()
}

View file

@ -31,7 +31,7 @@ func (v *Int) IsConst() bool {
return true
}
func (v *Int) Debug() string {
func (v *Int) Debug(expand bool) string {
return v.String()
}

View file

@ -33,7 +33,7 @@ func (v *Parameter) IsConst() bool {
return true
}
func (v *Parameter) Debug() string {
func (v *Parameter) Debug(expand bool) string {
return v.String()
}

View file

@ -38,7 +38,7 @@ func (v *Return) IsConst() bool {
return false
}
func (v *Return) Debug() string {
func (v *Return) Debug(expand bool) string {
if len(v.Arguments) == 0 {
return "return"
}
@ -47,8 +47,12 @@ func (v *Return) Debug() string {
tmp.WriteString("return ")
for i, arg := range v.Arguments {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
if expand {
tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
@ -59,22 +63,7 @@ func (v *Return) Debug() string {
}
func (v *Return) String() string {
if len(v.Arguments) == 0 {
return "return"
}
tmp := strings.Builder{}
tmp.WriteString("return ")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
return tmp.String()
return v.Debug(true)
}
func (v *Return) Type() types.Type {

View file

@ -29,14 +29,18 @@ func (v *Struct) IsConst() bool {
return true
}
func (v *Struct) Debug() string {
func (v *Struct) Debug(expand bool) string {
tmp := strings.Builder{}
tmp.WriteString(v.Typ.Name())
tmp.WriteString("{")
for i, arg := range v.Arguments {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
if expand {
tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
@ -48,20 +52,7 @@ func (v *Struct) Debug() string {
}
func (v *Struct) String() string {
tmp := strings.Builder{}
tmp.WriteString(v.Typ.Name())
tmp.WriteString("{")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString("}")
return tmp.String()
return v.Debug(false)
}
func (v *Struct) Type() types.Type {

View file

@ -32,12 +32,16 @@ func (v *StructField) IsConst() bool {
return true
}
func (v *StructField) Debug() string {
func (v *StructField) Debug(expand bool) string {
if expand {
return fmt.Sprintf("%s.%s", v.Struct, v.Field)
}
return fmt.Sprintf("%%%d.%s", v.Struct.ID(), v.Field)
}
func (v *StructField) String() string {
return fmt.Sprintf("%s.%s", v.Struct, v.Field)
return v.Debug(true)
}
func (v *StructField) Type() types.Type {

View file

@ -28,13 +28,17 @@ func (v *Syscall) IsConst() bool {
return false
}
func (v *Syscall) Debug() string {
func (v *Syscall) Debug(expand bool) string {
tmp := strings.Builder{}
tmp.WriteString("syscall(")
for i, arg := range v.Arguments {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
if expand {
tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
@ -46,19 +50,7 @@ func (v *Syscall) Debug() string {
}
func (v *Syscall) String() string {
tmp := strings.Builder{}
tmp.WriteString("syscall(")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString(")")
return tmp.String()
return v.Debug(true)
}
func (v *Syscall) Type() types.Type {

View file

@ -7,7 +7,7 @@ import (
type Value interface {
// Essentials
Debug() string
Debug(bool) string
ID() int
IsConst() bool
SetID(int)