コード例 #1
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *VariableDecl) String() string {
	if v.Assignment == nil {
		return "(" + util.Blue("VariableDecl") + ": " + v.Variable.String() + ")"
	} else {
		return "(" + util.Blue("VariableDecl") + ": " + v.Variable.String() +
			" = " + v.Assignment.String() + ")"
	}
}
コード例 #2
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *Block) String() string {
	if len(v.Nodes) == 0 {
		return "(" + util.Blue("Block") + ": )"
	}

	result := "(" + util.Blue("Block") + ":\n"
	for _, n := range v.Nodes {
		result += "\t" + n.String() + "\n"
	}
	return result + ")"
}
コード例 #3
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *ImplDecl) String() string {
	var result string
	for _, decl := range v.Functions {
		result += "\t" + decl.String() + "\n"
	}
	return "(" + util.Blue("ImplDecl") + ": " + result + ")"
}
コード例 #4
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *EnumDecl) String() string {
	result := "\n"
	for _, val := range v.Body {
		result += "\t" + val.String() + "\n"
	}
	return "(" + util.Blue("EnumDecl") + ": " + result + ")"
}
コード例 #5
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *ArrayLiteral) String() string {
	res := "(" + util.Blue("ArrayLiteral") + ":"
	for _, mem := range v.Members {
		res += " " + mem.String()
	}
	return res + ")"
}
コード例 #6
0
ファイル: type.go プロジェクト: dashaus/ark
func (v ArrayType) String() string {
	result := "(" + util.Blue("ArrayType") + ": "
	for _, attr := range v.attrs {
		result += attr.String() + " "
	}
	return result + v.TypeName() + ")" //+ util.Magenta(" <"+v.MangledName(MANGLE_ARK_UNSTABLE)+"> ") + ")"
}
コード例 #7
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *AccessExpr) String() string {
	result := "(" + util.Blue("AccessExpr") + ": "
	/*for _, struc := range v.StructVariables {
		result += struc.Name + "."
	}
	result += v.Variable.Name*/
	return result + ")"
}
コード例 #8
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *ReturnStat) String() string {
	ret := "(" + util.Blue("ReturnStat") + ": "
	if v.Value == nil {
		ret += "void"
	} else {
		ret += v.Value.String()
	}
	return ret + ")"
}
コード例 #9
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *MatchStat) String() string {
	result := "(" + util.Blue("MatchStat") + ": " + v.Target.String() + ":\n"

	for pattern, stmt := range v.Branches {
		result += "\t" + pattern.String() + " -> " + stmt.String() + "\n"
	}

	return result + ")"
}
コード例 #10
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *SizeofExpr) String() string {
	ret := "(" + util.Blue("SizeofExpr") + ": "
	if v.Expr != nil {
		ret += v.Expr.String()
	} else {
		ret += v.Type.TypeName()
	}
	return ret + ")"
}
コード例 #11
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *BoolLiteral) String() string {
	res := "(" + util.Blue("BoolLiteral") + ": "
	if v.Value {
		res += util.Yellow("true")
	} else {
		res += util.Yellow("false")
	}
	return res + ")"
}
コード例 #12
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *CallExpr) String() string {
	result := "(" + util.Blue("CallExpr") + ": " + v.Function.Name
	for _, arg := range v.Arguments {
		result += " " + arg.String()
	}
	if v.GetType() != nil {
		result += " " + util.Green(v.GetType().TypeName())
	}
	return result + ")"
}
コード例 #13
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
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()) + ")"
}
コード例 #14
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *AssignStat) String() string {
	result := "(" + util.Blue("AssignStat") + ": "
	if v.Deref != nil {
		result += v.Deref.String()

	} else if v.Access != nil {
		result += v.Access.String()
	}
	return result + " = " + v.Assignment.String() + ")"
}
コード例 #15
0
ファイル: type.go プロジェクト: dashaus/ark
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)+"> ") + ")"
}
コード例 #16
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *IfStat) String() string {
	result := "(" + util.Blue("IfStat") + ": "
	for i, expr := range v.Exprs {
		result += expr.String() + " "
		result += v.Bodies[i].String()
	}
	if v.Else != nil {
		result += v.Else.String()
	}
	return result + ")"
}
コード例 #17
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *ModuleDecl) String() string {
	result := "(" + util.Blue(v.Module.Name) + " (in " + util.Green(v.Module.Path) + "): \n"
	// todo interfaces for this shit
	for _, function := range v.Module.Functions {
		result += "\t" + function.String() + "\n"
	}
	for _, variable := range v.Module.Variables {
		result += "\t" + variable.String() + "\n"
	}
	result += ")"
	return result
}
コード例 #18
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *LoopStat) String() string {
	result := "(" + util.Blue("LoopStat") + ": "

	switch v.LoopType {
	case LOOP_TYPE_INFINITE:
	case LOOP_TYPE_CONDITIONAL:
		result += v.Condition.String() + " "
	default:
		panic("invalid loop type")
	}

	result += v.Body.String()

	return result + ")"
}
コード例 #19
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
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)+">") + ")"
}
コード例 #20
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *CastExpr) String() string {
	return "(" + util.Blue("CastExpr") + ": " + v.Expr.String() + " " + util.Green(v.GetType().TypeName()) + ")"
}
コード例 #21
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *UnaryExpr) String() string {
	return "(" + util.Blue("UnaryExpr") + ": " +
		v.Op.String() + " " + v.Expr.String() + ")"
}
コード例 #22
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *BinaryExpr) String() string {
	return "(" + util.Blue("BinaryExpr") + ": " + v.Lhand.String() + " " +
		v.Op.String() + " " +
		v.Rhand.String() + ")"
}
コード例 #23
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *StringLiteral) String() string {
	return "(" + util.Blue("StringLiteral") + ": " + colorizeEscapedString((EscapeString(v.Value))) + " " + util.Green(v.GetType().TypeName()) + ")"
}
コード例 #24
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *DerefExpr) String() string {
	return "(" + util.Blue("DerefExpr") + ": " + v.Expr.String() + ")"
}
コード例 #25
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *AddressOfExpr) String() string {
	return "(" + util.Blue("AddressOfExpr") + ": " + v.Access.String() + " " + util.Green(v.GetType().TypeName()) + ")"
}
コード例 #26
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *RuneLiteral) String() string {
	return fmt.Sprintf("(" + util.Blue("RuneLiteral") + ": " + colorizeEscapedString(EscapeString(string(v.Value))) + " " + util.Green(v.GetType().TypeName()) + ")")
}
コード例 #27
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *BracketExpr) String() string {
	return "(" + util.Blue("BracketExpr") + ": " + v.Expr.String() + ")"
}
コード例 #28
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *IntegerLiteral) String() string {
	return fmt.Sprintf("("+util.Blue("IntegerLiteral")+": "+util.Yellow("%d")+" "+util.Green(v.GetType().TypeName())+")", v.Value)
}
コード例 #29
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *DefaultMatchBranch) String() string {
	return "(" + util.Blue("DefaultMatchBranch") + ")"
}
コード例 #30
0
ファイル: ast.go プロジェクト: PillaVamsiKrishna/ark
func (v *FloatingLiteral) String() string {
	return fmt.Sprintf("("+util.Blue("FloatingLiteral")+": "+util.Yellow("%f")+" "+util.Green(v.GetType().TypeName())+")", v.Value)
}