Skip to documentation
SLOP

tiny.chant.parse.state.diagnostic

Reference tiny.chant parse state diagnostic

Defined in parse.state.

API (1)

Actions

Public operations.

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

Source

Called byCallsNo direct callsparse.assertionconsumeparse.autoresolveprivate sourcelib.chant.src.parse.constexprvalidateObjectprivate sourcelib.chant.src.parse.declarationparseLocalprivate sourcelib.chant.src.parse.expressionintegerConstantExpression+41 moreparse.state.diagnosticfail
Static calls · unresolved targets: 0 · external targets: 0.

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

zig
const std = @import("std");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 fail(parser: *Parser, err: Error, message: []const u8) Error {    const tok = parser.tokens[parser.index];    parser.diagnostic = .{        .message = message,        .file = tok.file,        .line = tok.line,        .column = tok.column,    };    return err;}test "diagnostic records token location" {    var arena_state = std.heap.ArenaAllocator.init(std.testing.allocator);    defer arena_state.deinit();    const arena = arena_state.allocator();    const tokens = [_]Token{        .{ .kind = .integer, .text = "42", .file = "bad.c", .line = 3, .column = 9 },        .{ .kind = .eof, .text = "", .file = "bad.c", .line = 3, .column = 11 },    };    var parser = try @import("test.zig").initParser(arena, &tokens);    try std.testing.expectEqual(@as(Error, error.ExpectedIdentifier), fail(&parser, error.ExpectedIdentifier, "expected identifier"));    try std.testing.expectEqualStrings("expected identifier", parser.diagnostic.message);    try std.testing.expectEqualStrings("bad.c", parser.diagnostic.file);    try std.testing.expectEqual(@as(u32, 3), parser.diagnostic.line);    try std.testing.expectEqual(@as(u32, 9), parser.diagnostic.column);}

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

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

Complete caller list for parse.state.diagnostic.fail

46 direct callers.

Audit

Definitions2
Public names2
Members0
Version26.7.0
Revisiondaab053ee433