tiny.chant.parse.state.diagnostic
Defined in parse.state.
API (1)
Actions
Public operations.
Source
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.
tiny.chant.parse.assertion.consume[function] atlib/chant/src/parse/assert.zig:10tiny.chant.parse.auto.resolve[function] atlib/chant/src/parse/auto.zig:11lib.chant.src.parse.constexpr.validateObject[function] — private source atlib/chant/src/parse/constexpr.zig:11in nearest public ownerlib.chant.src.parse.constexprlib.chant.src.parse.declaration.parseLocal[function] — private source atlib/chant/src/parse/declaration.zig:18in nearest public ownerlib.chant.src.parse.declarationlib.chant.src.parse.expression.integerConstantExpression[function] — private source atlib/chant/src/parse/expression.zig:179in nearest public ownertiny.chant.parse.expressionlib.chant.src.parse.expression.parseAlignof[function] — private source atlib/chant/src/parse/expression.zig:328in nearest public ownertiny.chant.parse.expressionlib.chant.src.parse.expression.parsePrimary[function] — private source atlib/chant/src/parse/expression.zig:369in nearest public ownertiny.chant.parse.expressionlib.chant.src.parse.expression.parseSizeof[function] — private source atlib/chant/src/parse/expression.zig:310in nearest public ownertiny.chant.parse.expressionlib.chant.src.parse.expression.parseUnary[function] — private source atlib/chant/src/parse/expression.zig:101in nearest public ownertiny.chant.parse.expressiontiny.chant.parse.parseExternal[function] atlib/chant/src/parse/external.zig:20lib.chant.src.parse.initializer.designatorOffset[function] — private source atlib/chant/src/parse/initializer.zig:156in nearest public ownertiny.chant.parse.initializerlib.chant.src.parse.initializer.designatorType[function] — private source atlib/chant/src/parse/initializer.zig:74in nearest public ownertiny.chant.parse.initializerlib.chant.src.parse.initializer.inferArrayLength[function] — private source atlib/chant/src/parse/initializer.zig:101in nearest public ownertiny.chant.parse.initializertiny.chant.parse.initializer.parse[function] atlib/chant/src/parse/initializer.zig:12lib.chant.src.parse.initializer.parseDesignator[function] — private source atlib/chant/src/parse/initializer.zig:53in nearest public ownertiny.chant.parse.initializerlib.chant.src.parse.initializer.staticElementCount[function] — private source atlib/chant/src/parse/initializer.zig:173in nearest public ownertiny.chant.parse.initializertiny.chant.parse.state.cursor.expect[function] atlib/chant/src/parse/state/cursor.zig:34lib.chant.src.parse.state.diagnostic.test_diagnostic_records_token_location[function] — test source atlib/chant/src/parse/state/diagnostic.zig:20in nearest public ownertiny.chant.parse.state.diagnosticlib.chant.src.parse.statement.parseCompound[function] — private source atlib/chant/src/parse/statement.zig:56in nearest public ownerlib.chant.src.parse.statementtiny.chant.parse.thread.validateFunction[function] atlib/chant/src/parse/thread.zig:20tiny.chant.parse.thread.validateObject[function] atlib/chant/src/parse/thread.zig:32tiny.chant.parse.thread.validateParameter[function] atlib/chant/src/parse/thread.zig:26tiny.chant.parse.thread.validateTypedef[function] atlib/chant/src/parse/thread.zig:14lib.chant.src.parse.type.declarator.parseSuffixes[function] — private source atlib/chant/src/parse/type/declarator.zig:72in nearest public ownerlib.chant.src.parse.type.declaratorlib.chant.src.parse.type.declarator.skipBalancedParens[function] — private source atlib/chant/src/parse/type/declarator.zig:58in nearest public ownerlib.chant.src.parse.type.declaratorlib.chant.src.parse.type.spec.compatibleEnumType[function] — private source atlib/chant/src/parse/type/spec.zig:514in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.explicitEnumeratorType[function] — private source atlib/chant/src/parse/type/spec.zig:483in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.implicitEnumeratorType[function] — private source atlib/chant/src/parse/type/spec.zig:491in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parse[function] — private source atlib/chant/src/parse/type/spec.zig:48in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseAlignas[function] — private source atlib/chant/src/parse/type/spec.zig:264in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseAlignasExpression[function] — private source atlib/chant/src/parse/type/spec.zig:285in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseAlignasTypeName[function] — private source atlib/chant/src/parse/type/spec.zig:279in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseAttribute[function] — private source atlib/chant/src/parse/type/spec.zig:655in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseAttributeIdentifier[function] — private source atlib/chant/src/parse/type/spec.zig:683in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseAttributeSpecifier[function] — private source atlib/chant/src/parse/type/spec.zig:635in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseBitIntWidth[function] — private source atlib/chant/src/parse/type/spec.zig:251in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseEnum[function] — private source atlib/chant/src/parse/type/spec.zig:305in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseEnumerators[function] — private source atlib/chant/src/parse/type/spec.zig:434in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseStringAttributeArgument[function] — private source atlib/chant/src/parse/type/spec.zig:692in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseTypeName[function] — private source atlib/chant/src/parse/type/spec.zig:593in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.parseTypeofExpression[function] — private source atlib/chant/src/parse/type/spec.zig:605in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.resolveEnumDefinition[function] — private source atlib/chant/src/parse/type/spec.zig:353in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.resolveFixedEnumDeclaration[function] — private source atlib/chant/src/parse/type/spec.zig:401in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.skipBalancedGroup[function] — private source atlib/chant/src/parse/type/spec.zig:701in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.validateEnumUnderlying[function] — private source atlib/chant/src/parse/type/spec.zig:428in nearest public ownerlib.chant.src.parse.type.speclib.chant.src.parse.type.spec.validateEnumeratorValue[function] — private source atlib/chant/src/parse/type/spec.zig:534in nearest public ownerlib.chant.src.parse.type.spec
Audit
| Definitions | 2 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |