diff options
| author | Baitinq <[email protected]> | 2025-01-19 13:55:58 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-01-19 14:09:32 +0100 |
| commit | 01d27c6e43771353ad9ce1d63f546a122735f0ce (patch) | |
| tree | a2ed9a4817f770d141af7b59e210439534d28ee0 /src/parser.zig | |
| parent | Example: Get fibonacci example working (diff) | |
| download | pry-lang-01d27c6e43771353ad9ce1d63f546a122735f0ce.tar.gz pry-lang-01d27c6e43771353ad9ce1d63f546a122735f0ce.tar.bz2 pry-lang-01d27c6e43771353ad9ce1d63f546a122735f0ce.zip | |
Feature: Add support for boolean values
Diffstat (limited to 'src/parser.zig')
| -rw-r--r-- | src/parser.zig | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/parser.zig b/src/parser.zig index 36f7437..ac66e5d 100644 --- a/src/parser.zig +++ b/src/parser.zig @@ -56,6 +56,9 @@ pub const Node = union(NodeType) { NUMBER: struct { value: i64, }, + BOOLEAN: struct { + value: bool, + }, IDENTIFIER: struct { name: []const u8, }, @@ -237,7 +240,7 @@ pub const Parser = struct { return lhs; } - // PrimaryExpression ::= NUMBER | IDENTIFIER | FunctionCallStatement + // PrimaryExpression ::= NUMBER | BOOLEAN | IDENTIFIER | FunctionCallStatement fn parse_primary_expression(self: *Parser) ParserError!*Node { errdefer if (!self.try_context) std.debug.print("Error parsing primary expression\n", .{}); @@ -253,6 +256,11 @@ pub const Parser = struct { }, }, }), + .BOOLEAN => |boolean_token| try self.create_node(.{ + .PRIMARY_EXPRESSION = .{ .BOOLEAN = .{ + .value = boolean_token, + } }, + }), .IDENTIFIER => |identifier_token| try self.create_node(.{ .PRIMARY_EXPRESSION = .{ .IDENTIFIER = .{ |