Skip to documentation
SLOP

tiny.smg.tree.runtime.abi

Reference tiny.smg tree runtime abi

Defined in tree.runtime.

API (21)

Types and contracts

Public types and contracts.

Values and defaults

Public values and defaults.

No direct callersNo direct callstree.runtimeabi
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: tools/smg/src/tree/runtime/abi.zig

zig
const std = @import("std");pub const State = u16;pub const Symbol = u16;pub const Field = u16;pub const end_symbol: Symbol = 0;pub const error_symbol: Symbol = std.math.maxInt(Symbol);pub const serialization_capacity = 1024;pub const Point = extern struct {    row: u32,    column: u32,};pub const FieldMapEntry = extern struct {    field_id: Field,    child_index: u8,    inherited: bool,};pub const MapSlice = extern struct {    index: u16,    length: u16,};pub const SymbolMetadata = extern struct {    visible: bool,    named: bool,    supertype: bool,};pub const Lexer = extern struct {    lookahead: i32,    result_symbol: Symbol,    advance: *const fn (*Lexer, bool) callconv(.c) void,    mark_end: *const fn (*Lexer) callconv(.c) void,    get_column: *const fn (*Lexer) callconv(.c) u32,    is_at_included_range_start: *const fn (*const Lexer) callconv(.c) bool,    eof: *const fn (*const Lexer) callconv(.c) bool,    log: ?*const fn (*const Lexer, [*:0]const u8, ...) callconv(.c) void,};pub const ActionType = enum(u8) {    shift,    reduce,    accept,    recover,};pub const Shift = extern struct {    type: u8,    state: State,    extra: bool,    repetition: bool,};pub const Reduce = extern struct {    type: u8,    child_count: u8,    symbol: Symbol,    dynamic_precedence: i16,    production_id: u16,};pub const Action = extern union {    shift: Shift,    reduce: Reduce,    type: u8,};pub const ActionEntry = extern union {    action: Action,    entry: extern struct {        count: u8,        reusable: bool,    },};pub const LexMode14 = extern struct {    lex_state: u16,    external_lex_state: u16,};pub const LexMode15 = extern struct {    lex_state: u16,    external_lex_state: u16,    reserved_word_set_id: u16,};pub const ExternalScanner = extern struct {    states: ?[*]const bool,    symbol_map: ?[*]const Symbol,    create: ?*const fn () callconv(.c) ?*anyopaque,    destroy: ?*const fn (?*anyopaque) callconv(.c) void,    scan: ?*const fn (?*anyopaque, *Lexer, [*]const bool) callconv(.c) bool,    serialize: ?*const fn (?*anyopaque, [*]u8) callconv(.c) c_uint,    deserialize: ?*const fn (?*anyopaque, [*]const u8, c_uint) callconv(.c) void,};pub const Metadata = extern struct {    major_version: u8,    minor_version: u8,    patch_version: u8,};pub const Language = extern struct {    abi_version: u32,    symbol_count: u32,    alias_count: u32,    token_count: u32,    external_token_count: u32,    state_count: u32,    large_state_count: u32,    production_id_count: u32,    field_count: u32,    max_alias_sequence_length: u16,    parse_table: ?[*]const u16,    small_parse_table: ?[*]const u16,    small_parse_table_map: ?[*]const u32,    parse_actions: ?[*]const ActionEntry,    symbol_names: ?[*]const [*:0]const u8,    field_names: ?[*]const [*:0]allowzero const u8,    field_map_slices: ?[*]const MapSlice,    field_map_entries: ?[*]const FieldMapEntry,    symbol_metadata: ?[*]const SymbolMetadata,    public_symbol_map: ?[*]const Symbol,    alias_map: ?[*]const Symbol,    alias_sequences: ?[*]const Symbol,    lex_modes: ?*const anyopaque,    lex_fn: ?*const fn (*Lexer, State) callconv(.c) bool,    keyword_lex_fn: ?*const fn (*Lexer, State) callconv(.c) bool,    keyword_capture_token: Symbol,    external_scanner: ExternalScanner,    primary_state_ids: ?[*]const State,    name: ?[*:0]const u8,    reserved_words: ?[*]const Symbol,    max_reserved_word_set_size: u16,    supertype_count: u32,    supertype_symbols: ?[*]const Symbol,    supertype_map_slices: ?[*]const MapSlice,    supertype_map_entries: ?[*]const Symbol,    metadata: Metadata,};test "generated grammar ABI has exact common layouts" {    try std.testing.expectEqual(@as(usize, 4), @sizeOf(FieldMapEntry));    try std.testing.expectEqual(@as(usize, 4), @sizeOf(MapSlice));    try std.testing.expectEqual(@as(usize, 3), @sizeOf(SymbolMetadata));    try std.testing.expectEqual(@as(usize, 6), @sizeOf(Shift));    try std.testing.expectEqual(@as(usize, 8), @sizeOf(Reduce));    try std.testing.expectEqual(@as(usize, 4), @sizeOf(LexMode14));    try std.testing.expectEqual(@as(usize, 6), @sizeOf(LexMode15));}

Source: tools/smg/src/tree/runtime/root.zig:1

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

Audit

Definitions22
Public names22
Members87
Version26.7.0
Revisiondaab053ee433