fix parser_test.v
parent
5a6428f1ff
commit
c81fbee4ab
|
@ -230,23 +230,9 @@ pub fn (p mut Parser) expr(rbp int) (ast.Expr,types.Type) {
|
||||||
if prev_tok.is_right_assoc() {
|
if prev_tok.is_right_assoc() {
|
||||||
mut expr := ast.Expr{}
|
mut expr := ast.Expr{}
|
||||||
expr,t2 = p.expr(prev_tok.precedence() - 1)
|
expr,t2 = p.expr(prev_tok.precedence() - 1)
|
||||||
/*
|
|
||||||
if prev_tok.is_assign() {
|
|
||||||
return ast.AssignStmt {
|
|
||||||
left: node
|
|
||||||
op: prev_tok.kind
|
|
||||||
right: expr
|
|
||||||
}, types.void_type
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
node = ast.BinaryExpr{
|
node = ast.BinaryExpr{
|
||||||
left: node
|
left: node
|
||||||
// left_type: t1
|
|
||||||
|
|
||||||
op: prev_tok.kind
|
op: prev_tok.kind
|
||||||
// right: p.expr(prev_tok.precedence() - 1)
|
|
||||||
|
|
||||||
right: expr
|
right: expr
|
||||||
}
|
}
|
||||||
if !types.check(&typ, &t2) {
|
if !types.check(&typ, &t2) {
|
||||||
|
@ -266,34 +252,6 @@ pub fn (p mut Parser) expr(rbp int) (ast.Expr,types.Type) {
|
||||||
return node,typ
|
return node,typ
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
fn (p mut Parser) stmt() ast.Stmt {
|
|
||||||
if p.tok == .name {
|
|
||||||
name := p.lit
|
|
||||||
p.next()
|
|
||||||
if p.tok == .decl_assign {
|
|
||||||
p.next()
|
|
||||||
return ast.VarDecl{
|
|
||||||
name: name
|
|
||||||
expr: p.expr(token.lowest_prec)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
match node {
|
|
||||||
Ident {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
return ast.VarDecl{}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
fn (p mut Parser) parse_string_literal() (ast.Expr,types.Type) {
|
fn (p mut Parser) parse_string_literal() (ast.Expr,types.Type) {
|
||||||
mut node := ast.Expr{}
|
mut node := ast.Expr{}
|
||||||
node = ast.StringLiteral{
|
node = ast.StringLiteral{
|
||||||
|
|
|
@ -39,8 +39,8 @@ fn test_parse_expr() {
|
||||||
'a := 12',
|
'a := 12',
|
||||||
'ab := 10 + 3 * 9',
|
'ab := 10 + 3 * 9',
|
||||||
's := "hi"',
|
's := "hi"',
|
||||||
'1 += 2',
|
// '1 += 2',
|
||||||
// 'a += 10',
|
'a += 10',
|
||||||
'1.2 + 3.4',
|
'1.2 + 3.4',
|
||||||
'4 + 4',
|
'4 + 4',
|
||||||
'1 + 2 * 5',
|
'1 + 2 * 5',
|
||||||
|
@ -65,8 +65,8 @@ fn test_parse_expr() {
|
||||||
'int a = 12;',
|
'int a = 12;',
|
||||||
'int ab = 10 + 3 * 9;',
|
'int ab = 10 + 3 * 9;',
|
||||||
'string s = tos3("hi");',
|
'string s = tos3("hi");',
|
||||||
'1 += 2;',
|
// '1 += 2;',
|
||||||
// 'a += 10;',
|
'a += 10;',
|
||||||
'1.2 + 3.4;',
|
'1.2 + 3.4;',
|
||||||
'4 + 4;',
|
'4 + 4;',
|
||||||
'1 + 2 * 5;',
|
'1 + 2 * 5;',
|
||||||
|
|
Loading…
Reference in New Issue