v2: minor fixes
parent
3204f036da
commit
87205367d1
|
@ -192,6 +192,7 @@ pub struct Stmt {
|
|||
pub struct VarDecl {
|
||||
pub:
|
||||
name string
|
||||
name2 string // TODO
|
||||
expr Expr
|
||||
is_mut bool
|
||||
mut:
|
||||
|
|
|
@ -208,7 +208,12 @@ fn (f mut Fmt) stmt(node ast.Stmt) {
|
|||
if it.is_mut {
|
||||
f.write('mut ')
|
||||
}
|
||||
f.write('$it.name := ')
|
||||
if it.name2 == '' {
|
||||
f.write('$it.name := ')
|
||||
}
|
||||
else {
|
||||
f.write('/*2*/$it.name, $it.name2 := ')
|
||||
}
|
||||
f.expr(it.expr)
|
||||
f.writeln('')
|
||||
}
|
||||
|
@ -311,6 +316,9 @@ fn (f mut Fmt) expr(node ast.Expr) {
|
|||
}
|
||||
f.write(')')
|
||||
}
|
||||
ast.CharLiteral {
|
||||
f.write('`$it.val`')
|
||||
}
|
||||
ast.EnumVal {
|
||||
f.write(it.enum_name + '.' + it.val)
|
||||
}
|
||||
|
@ -353,7 +361,12 @@ fn (f mut Fmt) expr(node ast.Expr) {
|
|||
f.single_line_if = false
|
||||
}
|
||||
ast.Ident {
|
||||
f.write('$it.name')
|
||||
if it.kind == .blank_ident {
|
||||
f.write('_')
|
||||
}
|
||||
else {
|
||||
f.write('$it.name')
|
||||
}
|
||||
}
|
||||
ast.InfixExpr {
|
||||
f.expr(it.left)
|
||||
|
|
|
@ -57,7 +57,7 @@ pub fn parse_stmt(text string, table &table.Table, scope &ast.Scope) ast.Stmt {
|
|||
pref: &pref.Preferences{}
|
||||
scope: scope
|
||||
// scope: &ast.Scope{start_pos: 0, parent: 0}
|
||||
|
||||
|
||||
}
|
||||
p.init_parse_fns()
|
||||
p.read_first_token()
|
||||
|
@ -333,7 +333,7 @@ pub fn (p mut Parser) stmt() ast.Stmt {
|
|||
return ast.ExprStmt{
|
||||
expr: expr
|
||||
// typ: typ
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -632,7 +632,7 @@ pub fn (p mut Parser) name_expr() ast.Expr {
|
|||
p.expr_mod = ''
|
||||
return ast.EnumVal{
|
||||
enum_name: enum_name // lp.prepend_mod(enum_name)
|
||||
|
||||
|
||||
val: val
|
||||
pos: p.tok.position()
|
||||
}
|
||||
|
@ -903,7 +903,7 @@ fn (p mut Parser) dot_expr(left ast.Expr, left_type table.Type) ast.Expr {
|
|||
expr: left
|
||||
name: field_name
|
||||
args: args
|
||||
muts:muts
|
||||
muts: muts
|
||||
pos: p.tok.position()
|
||||
}
|
||||
mut node := ast.Expr{}
|
||||
|
@ -1179,11 +1179,11 @@ fn (p mut Parser) if_expr() ast.Expr {
|
|||
stmts: stmts
|
||||
else_stmts: else_stmts
|
||||
// typ: typ
|
||||
|
||||
|
||||
pos: pos
|
||||
has_else: has_else
|
||||
// left: left
|
||||
|
||||
|
||||
}
|
||||
return node
|
||||
}
|
||||
|
@ -1575,9 +1575,10 @@ fn (p mut Parser) var_decl() ast.VarDecl {
|
|||
// p.fspace()
|
||||
}
|
||||
name := p.check_name()
|
||||
mut name2 := ''
|
||||
if p.tok.kind == .comma {
|
||||
p.check(.comma)
|
||||
p.check_name()
|
||||
name2 = p.check_name()
|
||||
}
|
||||
p.next() // :=
|
||||
// expr,typ := p.expr(0)
|
||||
|
@ -1603,11 +1604,12 @@ fn (p mut Parser) var_decl() ast.VarDecl {
|
|||
// println(p.table.names)
|
||||
node := ast.VarDecl{
|
||||
name: name
|
||||
name2: name2
|
||||
expr: expr // p.expr(token.lowest_prec)
|
||||
|
||||
|
||||
is_mut: is_mut
|
||||
// typ: typ
|
||||
|
||||
|
||||
pos: p.tok.position()
|
||||
}
|
||||
p.scope.register_var(node)
|
||||
|
@ -1726,7 +1728,7 @@ fn (p mut Parser) match_expr() ast.Expr {
|
|||
blocks: blocks
|
||||
match_exprs: match_exprs
|
||||
// typ: typ
|
||||
|
||||
|
||||
cond: cond
|
||||
}
|
||||
return node
|
||||
|
|
Loading…
Reference in New Issue