作者:vne
项目:ar
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)
}
}
作者:gitter-badge
项目:ar
func (v *EnumDecl) String() string {
result := "\n"
for _, val := range v.Body {
result += "\t" + val.String() + "\n"
}
return "(" + util.Blue("EnumDecl") + ": " + result + ")"
}
作者:dansawkin
项目:ar
func (v *TupleType) String() string {
result := "(" + util.Blue("TupleType") + ": "
for _, mem := range v.Members {
result += "\t" + mem.TypeName() + "\n"
}
return result + ")"
}
作者:kiljacke
项目:ar
func (v InterfaceType) String() string {
result := "(" + util.Blue("InterfaceType") + ": "
for _, function := range v.Functions {
result += "\t" + function.String() + "\n"
}
result += "}"
return result + ")"
}
作者:dansawkin
项目:ar
func (v *StructLiteral) String() string {
res := "(" + util.Blue("StructLiteral") + ": "
for name, value := range v.Values {
res += name
res += ": "
res += value.String()
res += ", "
}
return res + ")"
}
作者:gitter-badge
项目:ar
func (v *TraitType) String() string {
result := "(" + util.Blue("TraitType") + ": "
for _, attr := range v.attrs {
result += attr.String() + " "
}
result += v.Name + "\n"
for _, decl := range v.Functions {
result += "\t" + decl.String() + "\n"
}
return result + util.Magenta(" <"+v.MangledName(MANGLE_ARK_UNSTABLE)+"> ") + ")"
}
作者:vne
项目:ar
func (v *NamedType) String() string {
res := "(" + util.Blue("NamedType") + ": " + v.Name
if len(v.Parameters) > 0 {
res += "<"
for idx, param := range v.Parameters {
res += param.TypeName()
if idx < len(v.Parameters)-1 {
res += ", "
}
}
res += ">"
}
return res + " = " + v.Type.TypeName() + ")"
}