diff --git a/examples/hello.v b/examples/hello.v index 8afff20..9219a29 100644 --- a/examples/hello.v +++ b/examples/hello.v @@ -1,13 +1,12 @@ -const ( - Cock = 1 - Ball = 2 + 3 - Deals = 3 - Businesses = 4 -) +//const ( +// Cock = 1 +// Ball = 2 +// Deals = 3 +// Businesses = 4 +//) fn main(a int) int { 1 + 2 + 3 + 4 1 + 1 * 1 3 / (51 + 2) - println(2 * 1956) } diff --git a/src/parser.zig b/src/parser.zig index 75a8e30..f0f8a70 100644 --- a/src/parser.zig +++ b/src/parser.zig @@ -91,12 +91,10 @@ pub const Parser = struct { } fn consumeSingle(self: *Parser, ttype: TokenType) !Token { - std.debug.warn("consume {}..?", ttype); - if (self.check(ttype)) { var cur = self.peek(); _ = try self.nextToken(); - std.debug.warn(" now has {}\n", self.peek()); + std.debug.warn("consumed {}, now has {}\n", ttype, self.peek()); return cur; } @@ -381,7 +379,6 @@ pub const Parser = struct { _ = try self.consumeSingle(.LeftBrace); while (self.peek().ttype != .RightBrace) { - std.debug.warn("get smt with cur {}\n", self.peek().ttype); var node = try self.parseStmt(); ast.printNode(node, 0); try stmts.append(node.Stmt); @@ -405,11 +402,7 @@ pub const Parser = struct { fn parsePrintln(self: *@This()) !*Stmt { _ = try self.consumeSingle(.Println); - - _ = try self.consumeSingle(.LeftParen); var expr = try self.parseExpr(); - _ = try self.consumeSingle(.RightParen); - return try Stmt.mkPrintln(self.allocator, expr.Expr); } @@ -516,10 +509,7 @@ pub const Parser = struct { _ = try self.nextToken(); var expr = (try self.parseExpr()).Expr; _ = try self.consume(.RightParen, "Expected ')' after expression"); - - // for groupings, we don't want to skip tokens as we already - // consumed RightParen. - return try self.mkGrouping(expr); + break :blk try self.mkGrouping(expr); }, else => blk: {