Skip to documentation
SLOP

tiny.chant.parse.state.cursor

Reference tiny.chant parse state cursor

Defined in parse.state.

API (5)

Actions

Public operations.

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

Source

Called byCallsNo direct callsprivate sourcelib.chant.src.parse.expressionparseAlignofparse.expressionparseAssignmentprivate sourcelib.chant.src.parse.expressionparseBinaryprivate sourcelib.chant.src.parse.expressionparsePostfixChainprivate sourcelib.chant.src.parse.expressionparsePrimary+21 moreparse.state.cursoradvance
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.chant.src.parse.state.cursortest: cursor moves through tokensparse.state.startdeclarationparse.state.starttypenameprivate sourcelib.chant.src.parse.statementisLabelprivate sourcelib.chant.src.parse.type.declaratorisDeclaratorParen+4 moreparse.state.cursorahead
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsparse.assertionconsumeprivate sourcelib.chant.src.parse.declarationparseLocalprivate sourcelib.chant.src.parse.expressionparseConditionalprivate sourcelib.chant.src.parse.expressionparsePrimaryparseparseExternal+15 moreparse.state.cursoradvanceparse.state.cursorpeekparse.state.cursorconsume
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsparse.assertionconsumeprivate sourcelib.chant.src.parse.declarationparseLocalprivate sourcelib.chant.src.parse.expressionparseAlignofprivate sourcelib.chant.src.parse.expressionparseConditionalprivate sourcelib.chant.src.parse.expressionparsePostfixChain+27 moreparse.state.cursoradvanceparse.state.cursorpeekparse.state.diagnosticfailparse.state.cursorexpect
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsprivate sourcelib.chant.src.parse.expressionparseAlignofparse.expressionparseAssignmentprivate sourcelib.chant.src.parse.expressionparseBinaryprivate sourcelib.chant.src.parse.expressionparsePostfixChainprivate sourcelib.chant.src.parse.expressionparsePrimary+27 moreparse.state.cursorpeek
Static calls · unresolved targets: 0 · external targets: 0.

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

zig
const std = @import("std");const chant = @import("../../root.zig");const types = @import("types.zig");const diagnostic = @import("diagnostic.zig");const Error = @import("../root.zig").Error;const Token = chant.token.Token;const Kind = chant.token.Kind;const Parser = types.Parser;pub fn peek(parser: *const Parser) Token {    return parser.tokens[parser.index];}pub fn ahead(parser: *const Parser, offset: usize) Token {    const at = @min(parser.index + offset, parser.tokens.len - 1);    return parser.tokens[at];}pub fn advance(parser: *Parser) Token {    const tok = parser.tokens[parser.index];    if (tok.kind != .eof) parser.index += 1;    return tok;}pub fn consume(parser: *Parser, expected: Kind) bool {    if (peek(parser).kind == expected) {        _ = advance(parser);        return true;    }    return false;}pub fn expect(parser: *Parser, expected: Kind) Error!Token {    if (peek(parser).kind != expected) {        return diagnostic.fail(parser, error.UnexpectedToken, "unexpected token");    }    return advance(parser);}test "cursor moves through tokens" {    var arena_state = std.heap.ArenaAllocator.init(std.testing.allocator);    defer arena_state.deinit();    const arena = arena_state.allocator();    const tokens = [_]Token{        .{ .kind = .kw_int, .text = "int", .file = "test.c", .line = 1, .column = 1 },        .{ .kind = .identifier, .text = "value", .file = "test.c", .line = 1, .column = 5 },        .{ .kind = .eof, .text = "", .file = "test.c", .line = 1, .column = 10 },    };    var parser = try @import("test.zig").initParser(arena, &tokens);    try std.testing.expectEqual(.identifier, ahead(&parser, 1).kind);    try std.testing.expect(consume(&parser, .kw_int));    _ = try expect(&parser, .identifier);}

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

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

Complete caller list for parse.state.cursor.advance

26 direct callers.

Complete caller list for parse.state.cursor.ahead

9 direct callers.

Complete caller list for parse.state.cursor.consume

20 direct callers.

Complete caller list for parse.state.cursor.expect

32 direct callers.

Complete caller list for parse.state.cursor.peek

32 direct callers.

Audit

Definitions6
Public names6
Members0
Version26.7.0
Revisiondaab053ee433