tiny.smg.tree.runtime.abi
Defined in tree.runtime.
API (21)
Types and contracts
Public types and contracts.
ActionActionEntryActionTypeExternalScannerFieldFieldMapEntryLanguageLexMode14LexMode15LexerMapSliceMetadataPointReduceShiftStateSymbolSymbolMetadata
Values and defaults
Public values and defaults.
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
| Definitions | 22 |
|---|---|
| Public names | 22 |
| Members | 87 |
| Version | 26.7.0 |
| Revision | daab053ee433 |