Skip to documentation
SLOP

tiny.chant.parse.state.typedef

Reference tiny.chant parse state typedef

Defined in parse.state.

API (3)

Actions

Public operations.

No direct callersNo direct callsparse.statetypedef
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallsNo direct callsparse.state.startdeclarationparse.state.starttypenametest sourcelib.chant.src.parse.state.typedeftest: typedef owns registered namesprivate sourcelib.chant.src.parse.type.declaratorisDeclaratorParenparse.state.typedefisName
Static calls · unresolved targets: 0 · external targets: 1.
Called byCallsNo direct callstest sourcelib.chant.src.parse.state.typedeftest: typedef owns registered namesprivate sourcelib.chant.src.parse.type.specparseparse.state.typedeflookup
Static calls · unresolved targets: 1 · external targets: 0.
Called byCallsNo direct callsprivate sourcelib.chant.src.parse.declarationparseLocalparseparseExternaltest sourcelib.chant.src.parse.state.starttest: start detects declarations and ...test sourcelib.chant.src.parse.state.typedeftest: typedef owns registered namesparse.state.typedefregister
Static calls · unresolved targets: 1 · external targets: 0.

Source: lib/chant/src/parse/state/root.zig:10

zig
pub const typedef = @import("typedef.zig");

Source: lib/chant/src/parse/state/typedef.zig

zig
const std = @import("std");const ast = @import("../../ast/root.zig");const chant = @import("../../root.zig");const types = @import("types.zig");const Error = @import("../root.zig").Error;const Token = chant.token.Token;const Parser = types.Parser;pub fn isName(parser: *const Parser, name: []const u8) bool {    return parser.typedefs.contains(name);}pub fn lookup(parser: *const Parser, name: []const u8) ?*const ast.Type {    return parser.typedefs.get(name);}pub fn register(parser: *Parser, name: []const u8, resolved: *const ast.Type) Error!void {    try parser.typedefs.put(parser.arena, name, resolved);}test "typedef owns registered names" {    var arena_state = std.heap.ArenaAllocator.init(std.testing.allocator);    defer arena_state.deinit();    const arena = arena_state.allocator();    const tokens = [_]Token{        .{ .kind = .eof, .text = "", .file = "test.c", .line = 1, .column = 1 },    };    var parser = try @import("test.zig").initParser(arena, &tokens);    try register(&parser, "size_t", &ast.types.ulong_type);    try std.testing.expect(isName(&parser, "size_t"));    try std.testing.expect(lookup(&parser, "size_t").? == &ast.types.ulong_type);}

Audit

Definitions4
Public names4
Members0
Version26.7.0
Revisiondaab053ee433