structstd.zig.Zoir.Node.Repr[src]

Fields

tag: Tag
data: u32
ast_node: std.zig.Ast.Node.Index

Source Code

Source code
pub const Repr = struct {
    tag: Tag,
    data: u32,
    ast_node: std.zig.Ast.Node.Index,

    pub const Tag = enum(u8) {
        /// `data` is ignored.
        true,
        /// `data` is ignored.
        false,
        /// `data` is ignored.
        null,
        /// `data` is ignored.
        pos_inf,
        /// `data` is ignored.
        neg_inf,
        /// `data` is ignored.
        nan,
        /// `data` is the `i32` value.
        int_literal_small,
        /// `data` is index into `extra` of:
        /// * `limb_count: u32`
        /// * `limbs_idx: u32`
        int_literal_pos,
        /// Identical to `int_literal_pos`, except the value is negative.
        int_literal_neg,
        /// `data` is the `f32` value.
        float_literal_small,
        /// `data` is index into `extra` of 4 elements which are a bitcast `f128`.
        float_literal,
        /// `data` is the `u32` value.
        char_literal,
        /// `data` is a `NullTerminatedString`.
        enum_literal,
        /// `data` is index into `extra` of:
        /// * `start: u32`
        /// * `len: u32`
        string_literal,
        /// Null-terminated string literal,
        /// `data` is a `NullTerminatedString`.
        string_literal_null,
        /// An empty struct/array literal, `.{}`.
        /// `data` is ignored.
        empty_literal,
        /// `data` is index into `extra` of:
        /// * `elem_count: u32`
        /// * `first_elem: Node.Index`
        /// The nodes `first_elem .. first_elem + elem_count` are the children.
        array_literal,
        /// `data` is index into `extra` of:
        /// * `elem_count: u32`
        /// * `first_elem: Node.Index`
        /// * `field_name: NullTerminatedString` for each `elem_count`
        /// The nodes `first_elem .. first_elem + elem_count` are the children.
        struct_literal,
    };
}