ast: move all str() methods to ast/str.v
parent
d619944cf5
commit
3204f036da
|
@ -516,47 +516,6 @@ pub struct None {
|
||||||
pub:
|
pub:
|
||||||
foo int // todo
|
foo int // todo
|
||||||
}
|
}
|
||||||
// string representaiton of expr
|
|
||||||
pub fn (x Expr) str() string {
|
|
||||||
match x {
|
|
||||||
InfixExpr {
|
|
||||||
return '(${it.left.str()} $it.op.str() ${it.right.str()})'
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
PrefixExpr {
|
|
||||||
return it.left.str() + it.op.str()
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
IntegerLiteral {
|
|
||||||
return it.val.str()
|
|
||||||
}
|
|
||||||
IntegerLiteral {
|
|
||||||
return '"$it.val"'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn (node Stmt) str() string {
|
|
||||||
match node {
|
|
||||||
VarDecl {
|
|
||||||
return it.name + ' = ' + it.expr.str()
|
|
||||||
}
|
|
||||||
ExprStmt {
|
|
||||||
return it.expr.str()
|
|
||||||
}
|
|
||||||
FnDecl {
|
|
||||||
return 'fn ${it.name}() { $it.stmts.len stmts }'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return '[unhandled stmt str]'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
enum BinaryOp {
|
enum BinaryOp {
|
||||||
sum
|
sum
|
||||||
|
|
|
@ -40,3 +40,44 @@ pub fn (node &FnDecl) str(t &table.Table) string {
|
||||||
}
|
}
|
||||||
return f.str()
|
return f.str()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// string representaiton of expr
|
||||||
|
pub fn (x Expr) str() string {
|
||||||
|
match x {
|
||||||
|
InfixExpr {
|
||||||
|
return '(${it.left.str()} $it.op.str() ${it.right.str()})'
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
PrefixExpr {
|
||||||
|
return it.left.str() + it.op.str()
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
IntegerLiteral {
|
||||||
|
return it.val.str()
|
||||||
|
}
|
||||||
|
IntegerLiteral {
|
||||||
|
return '"$it.val"'
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (node Stmt) str() string {
|
||||||
|
match node {
|
||||||
|
VarDecl {
|
||||||
|
return it.name + ' = ' + it.expr.str()
|
||||||
|
}
|
||||||
|
ExprStmt {
|
||||||
|
return it.expr.str()
|
||||||
|
}
|
||||||
|
FnDecl {
|
||||||
|
return 'fn ${it.name}() { $it.stmts.len stmts }'
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return '[unhandled stmt str]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue