func (v *NumericLiteral) String() string { if v.IsFloat { return fmt.Sprintf("("+util.Blue("NumericLiteral")+": "+util.Yellow("%d")+" "+util.Green(v.GetType().TypeName())+")", v.FloatValue) } else { return fmt.Sprintf("("+util.Blue("NumericLiteral")+": "+util.Yellow("%d")+" "+util.Green(v.GetType().TypeName())+")", v.IntValue) } }
func (v *Attr) String() string { result := "[" + v.Key if v.Value == "" { result += "]" } else { result += "=" + v.Value + "]" } return util.Green(result) }
func (v *CallExpr) String() string { result := "(" + util.Blue("CallExpr") + ": " + v.Function.String() for _, arg := range v.Arguments { result += " " + arg.String() } if v.GetType() != nil { result += " " + util.Green(v.GetType().TypeName()) } return result + ")" }
func (v *Variable) String() string { result := "(" + util.Blue("Variable") + ": " if v.Mutable { result += util.Green("[mutable] ") } for _, attr := range v.Attrs { result += attr.String() + " " } return result + v.Name + util.Magenta(" <"+v.MangledName(MANGLE_ARK_UNSTABLE)+"> ") + util.Green(v.Type.TypeName()) + ")" }
func (v *Function) String() string { result := "(" + util.Blue("Function") + ": " if v.Mutable { result += util.Green("[mutable] ") } for _, attr := range v.Attrs { result += attr.String() + " " } result += v.Name for _, par := range v.Parameters { result += " " + par.String() } if v.ReturnType != nil { result += ": " + util.Green(v.ReturnType.TypeName()) + " " } if v.Body != nil { result += v.Body.String() } return result + util.Magenta(" <"+v.MangledName(MANGLE_ARK_UNSTABLE)+">") + ")" }
func (v *CastExpr) String() string { return "(" + util.Blue("CastExpr") + ": " + v.Expr.String() + " " + util.Green(v.GetType().TypeName()) + ")" }
func (v *StringLiteral) String() string { return "(" + util.Blue("StringLiteral") + ": " + colorizeEscapedString((EscapeString(v.Value))) + " " + util.Green(v.GetType().TypeName()) + ")" }
func (v *RuneLiteral) String() string { return fmt.Sprintf("(" + util.Blue("RuneLiteral") + ": " + colorizeEscapedString(EscapeString(string(v.Value))) + " " + util.Green(v.GetType().TypeName()) + ")") }
func (v *AddressOfExpr) String() string { return "(" + util.Blue("AddressOfExpr") + ": " + v.Access.String() + " " + util.Green(v.GetType().TypeName()) + ")" }