enumstd.zig.tokenizer.Token.Tag[src]

Fields

invalid
invalid_periodasterisks
identifier
string_literal
multiline_string_literal_line
char_literal
eof
builtin
bang
pipe
pipe_pipe
pipe_equal
equal
equal_equal
equal_angle_bracket_right
bang_equal
l_paren
r_paren
semicolon
percent
percent_equal
l_brace
r_brace
l_bracket
r_bracket
period
period_asterisk
ellipsis2
ellipsis3
caret
caret_equal
plus
plus_plus
plus_equal
plus_percent
plus_percent_equal
plus_pipe
plus_pipe_equal
minus
minus_equal
minus_percent
minus_percent_equal
minus_pipe
minus_pipe_equal
asterisk
asterisk_equal
asterisk_asterisk
asterisk_percent
asterisk_percent_equal
asterisk_pipe
asterisk_pipe_equal
arrow
colon
slash
slash_equal
comma
ampersand
ampersand_equal
question_mark
angle_bracket_left
angle_bracket_left_equal
angle_bracket_angle_bracket_left
angle_bracket_angle_bracket_left_equal
angle_bracket_angle_bracket_left_pipe
angle_bracket_angle_bracket_left_pipe_equal
angle_bracket_right
angle_bracket_right_equal
angle_bracket_angle_bracket_right
angle_bracket_angle_bracket_right_equal
tilde
number_literal
doc_comment
container_doc_comment
keyword_addrspace
keyword_align
keyword_allowzero
keyword_and
keyword_anyframe
keyword_anytype
keyword_asm
keyword_async
keyword_await
keyword_break
keyword_callconv
keyword_catch
keyword_comptime
keyword_const
keyword_continue
keyword_defer
keyword_else
keyword_enum
keyword_errdefer
keyword_error
keyword_export
keyword_extern
keyword_fn
keyword_for
keyword_if
keyword_inline
keyword_noalias
keyword_noinline
keyword_nosuspend
keyword_opaque
keyword_or
keyword_orelse
keyword_packed
keyword_pub
keyword_resume
keyword_return
keyword_linksection
keyword_struct
keyword_suspend
keyword_switch
keyword_test
keyword_threadlocal
keyword_try
keyword_union
keyword_unreachable
keyword_usingnamespace
keyword_var
keyword_volatile
keyword_while

Functions

Functionlexeme[src]

pub fn lexeme(tag: Tag) ?[]const u8

Parameters

tag: Tag

Source Code

Source code
pub fn lexeme(tag: Tag) ?[]const u8 {
    return switch (tag) {
        .invalid,
        .identifier,
        .string_literal,
        .multiline_string_literal_line,
        .char_literal,
        .eof,
        .builtin,
        .number_literal,
        .doc_comment,
        .container_doc_comment,
        => null,

        .invalid_periodasterisks => ".**",
        .bang => "!",
        .pipe => "|",
        .pipe_pipe => "||",
        .pipe_equal => "|=",
        .equal => "=",
        .equal_equal => "==",
        .equal_angle_bracket_right => "=>",
        .bang_equal => "!=",
        .l_paren => "(",
        .r_paren => ")",
        .semicolon => ";",
        .percent => "%",
        .percent_equal => "%=",
        .l_brace => "{",
        .r_brace => "}",
        .l_bracket => "[",
        .r_bracket => "]",
        .period => ".",
        .period_asterisk => ".*",
        .ellipsis2 => "..",
        .ellipsis3 => "...",
        .caret => "^",
        .caret_equal => "^=",
        .plus => "+",
        .plus_plus => "++",
        .plus_equal => "+=",
        .plus_percent => "+%",
        .plus_percent_equal => "+%=",
        .plus_pipe => "+|",
        .plus_pipe_equal => "+|=",
        .minus => "-",
        .minus_equal => "-=",
        .minus_percent => "-%",
        .minus_percent_equal => "-%=",
        .minus_pipe => "-|",
        .minus_pipe_equal => "-|=",
        .asterisk => "*",
        .asterisk_equal => "*=",
        .asterisk_asterisk => "**",
        .asterisk_percent => "*%",
        .asterisk_percent_equal => "*%=",
        .asterisk_pipe => "*|",
        .asterisk_pipe_equal => "*|=",
        .arrow => "->",
        .colon => ":",
        .slash => "/",
        .slash_equal => "/=",
        .comma => ",",
        .ampersand => "&",
        .ampersand_equal => "&=",
        .question_mark => "?",
        .angle_bracket_left => "<",
        .angle_bracket_left_equal => "<=",
        .angle_bracket_angle_bracket_left => "<<",
        .angle_bracket_angle_bracket_left_equal => "<<=",
        .angle_bracket_angle_bracket_left_pipe => "<<|",
        .angle_bracket_angle_bracket_left_pipe_equal => "<<|=",
        .angle_bracket_right => ">",
        .angle_bracket_right_equal => ">=",
        .angle_bracket_angle_bracket_right => ">>",
        .angle_bracket_angle_bracket_right_equal => ">>=",
        .tilde => "~",
        .keyword_addrspace => "addrspace",
        .keyword_align => "align",
        .keyword_allowzero => "allowzero",
        .keyword_and => "and",
        .keyword_anyframe => "anyframe",
        .keyword_anytype => "anytype",
        .keyword_asm => "asm",
        .keyword_async => "async",
        .keyword_await => "await",
        .keyword_break => "break",
        .keyword_callconv => "callconv",
        .keyword_catch => "catch",
        .keyword_comptime => "comptime",
        .keyword_const => "const",
        .keyword_continue => "continue",
        .keyword_defer => "defer",
        .keyword_else => "else",
        .keyword_enum => "enum",
        .keyword_errdefer => "errdefer",
        .keyword_error => "error",
        .keyword_export => "export",
        .keyword_extern => "extern",
        .keyword_fn => "fn",
        .keyword_for => "for",
        .keyword_if => "if",
        .keyword_inline => "inline",
        .keyword_noalias => "noalias",
        .keyword_noinline => "noinline",
        .keyword_nosuspend => "nosuspend",
        .keyword_opaque => "opaque",
        .keyword_or => "or",
        .keyword_orelse => "orelse",
        .keyword_packed => "packed",
        .keyword_pub => "pub",
        .keyword_resume => "resume",
        .keyword_return => "return",
        .keyword_linksection => "linksection",
        .keyword_struct => "struct",
        .keyword_suspend => "suspend",
        .keyword_switch => "switch",
        .keyword_test => "test",
        .keyword_threadlocal => "threadlocal",
        .keyword_try => "try",
        .keyword_union => "union",
        .keyword_unreachable => "unreachable",
        .keyword_usingnamespace => "usingnamespace",
        .keyword_var => "var",
        .keyword_volatile => "volatile",
        .keyword_while => "while",
    };
}

Functionsymbol[src]

pub fn symbol(tag: Tag) []const u8

Parameters

tag: Tag

Source Code

Source code
pub fn symbol(tag: Tag) []const u8 {
    return tag.lexeme() orelse switch (tag) {
        .invalid => "invalid token",
        .identifier => "an identifier",
        .string_literal, .multiline_string_literal_line => "a string literal",
        .char_literal => "a character literal",
        .eof => "EOF",
        .builtin => "a builtin function",
        .number_literal => "a number literal",
        .doc_comment, .container_doc_comment => "a document comment",
        else => unreachable,
    };
}

Source Code

Source code
pub const Tag = enum {
    invalid,
    invalid_periodasterisks,
    identifier,
    string_literal,
    multiline_string_literal_line,
    char_literal,
    eof,
    builtin,
    bang,
    pipe,
    pipe_pipe,
    pipe_equal,
    equal,
    equal_equal,
    equal_angle_bracket_right,
    bang_equal,
    l_paren,
    r_paren,
    semicolon,
    percent,
    percent_equal,
    l_brace,
    r_brace,
    l_bracket,
    r_bracket,
    period,
    period_asterisk,
    ellipsis2,
    ellipsis3,
    caret,
    caret_equal,
    plus,
    plus_plus,
    plus_equal,
    plus_percent,
    plus_percent_equal,
    plus_pipe,
    plus_pipe_equal,
    minus,
    minus_equal,
    minus_percent,
    minus_percent_equal,
    minus_pipe,
    minus_pipe_equal,
    asterisk,
    asterisk_equal,
    asterisk_asterisk,
    asterisk_percent,
    asterisk_percent_equal,
    asterisk_pipe,
    asterisk_pipe_equal,
    arrow,
    colon,
    slash,
    slash_equal,
    comma,
    ampersand,
    ampersand_equal,
    question_mark,
    angle_bracket_left,
    angle_bracket_left_equal,
    angle_bracket_angle_bracket_left,
    angle_bracket_angle_bracket_left_equal,
    angle_bracket_angle_bracket_left_pipe,
    angle_bracket_angle_bracket_left_pipe_equal,
    angle_bracket_right,
    angle_bracket_right_equal,
    angle_bracket_angle_bracket_right,
    angle_bracket_angle_bracket_right_equal,
    tilde,
    number_literal,
    doc_comment,
    container_doc_comment,
    keyword_addrspace,
    keyword_align,
    keyword_allowzero,
    keyword_and,
    keyword_anyframe,
    keyword_anytype,
    keyword_asm,
    keyword_async,
    keyword_await,
    keyword_break,
    keyword_callconv,
    keyword_catch,
    keyword_comptime,
    keyword_const,
    keyword_continue,
    keyword_defer,
    keyword_else,
    keyword_enum,
    keyword_errdefer,
    keyword_error,
    keyword_export,
    keyword_extern,
    keyword_fn,
    keyword_for,
    keyword_if,
    keyword_inline,
    keyword_noalias,
    keyword_noinline,
    keyword_nosuspend,
    keyword_opaque,
    keyword_or,
    keyword_orelse,
    keyword_packed,
    keyword_pub,
    keyword_resume,
    keyword_return,
    keyword_linksection,
    keyword_struct,
    keyword_suspend,
    keyword_switch,
    keyword_test,
    keyword_threadlocal,
    keyword_try,
    keyword_union,
    keyword_unreachable,
    keyword_usingnamespace,
    keyword_var,
    keyword_volatile,
    keyword_while,

    pub fn lexeme(tag: Tag) ?[]const u8 {
        return switch (tag) {
            .invalid,
            .identifier,
            .string_literal,
            .multiline_string_literal_line,
            .char_literal,
            .eof,
            .builtin,
            .number_literal,
            .doc_comment,
            .container_doc_comment,
            => null,

            .invalid_periodasterisks => ".**",
            .bang => "!",
            .pipe => "|",
            .pipe_pipe => "||",
            .pipe_equal => "|=",
            .equal => "=",
            .equal_equal => "==",
            .equal_angle_bracket_right => "=>",
            .bang_equal => "!=",
            .l_paren => "(",
            .r_paren => ")",
            .semicolon => ";",
            .percent => "%",
            .percent_equal => "%=",
            .l_brace => "{",
            .r_brace => "}",
            .l_bracket => "[",
            .r_bracket => "]",
            .period => ".",
            .period_asterisk => ".*",
            .ellipsis2 => "..",
            .ellipsis3 => "...",
            .caret => "^",
            .caret_equal => "^=",
            .plus => "+",
            .plus_plus => "++",
            .plus_equal => "+=",
            .plus_percent => "+%",
            .plus_percent_equal => "+%=",
            .plus_pipe => "+|",
            .plus_pipe_equal => "+|=",
            .minus => "-",
            .minus_equal => "-=",
            .minus_percent => "-%",
            .minus_percent_equal => "-%=",
            .minus_pipe => "-|",
            .minus_pipe_equal => "-|=",
            .asterisk => "*",
            .asterisk_equal => "*=",
            .asterisk_asterisk => "**",
            .asterisk_percent => "*%",
            .asterisk_percent_equal => "*%=",
            .asterisk_pipe => "*|",
            .asterisk_pipe_equal => "*|=",
            .arrow => "->",
            .colon => ":",
            .slash => "/",
            .slash_equal => "/=",
            .comma => ",",
            .ampersand => "&",
            .ampersand_equal => "&=",
            .question_mark => "?",
            .angle_bracket_left => "<",
            .angle_bracket_left_equal => "<=",
            .angle_bracket_angle_bracket_left => "<<",
            .angle_bracket_angle_bracket_left_equal => "<<=",
            .angle_bracket_angle_bracket_left_pipe => "<<|",
            .angle_bracket_angle_bracket_left_pipe_equal => "<<|=",
            .angle_bracket_right => ">",
            .angle_bracket_right_equal => ">=",
            .angle_bracket_angle_bracket_right => ">>",
            .angle_bracket_angle_bracket_right_equal => ">>=",
            .tilde => "~",
            .keyword_addrspace => "addrspace",
            .keyword_align => "align",
            .keyword_allowzero => "allowzero",
            .keyword_and => "and",
            .keyword_anyframe => "anyframe",
            .keyword_anytype => "anytype",
            .keyword_asm => "asm",
            .keyword_async => "async",
            .keyword_await => "await",
            .keyword_break => "break",
            .keyword_callconv => "callconv",
            .keyword_catch => "catch",
            .keyword_comptime => "comptime",
            .keyword_const => "const",
            .keyword_continue => "continue",
            .keyword_defer => "defer",
            .keyword_else => "else",
            .keyword_enum => "enum",
            .keyword_errdefer => "errdefer",
            .keyword_error => "error",
            .keyword_export => "export",
            .keyword_extern => "extern",
            .keyword_fn => "fn",
            .keyword_for => "for",
            .keyword_if => "if",
            .keyword_inline => "inline",
            .keyword_noalias => "noalias",
            .keyword_noinline => "noinline",
            .keyword_nosuspend => "nosuspend",
            .keyword_opaque => "opaque",
            .keyword_or => "or",
            .keyword_orelse => "orelse",
            .keyword_packed => "packed",
            .keyword_pub => "pub",
            .keyword_resume => "resume",
            .keyword_return => "return",
            .keyword_linksection => "linksection",
            .keyword_struct => "struct",
            .keyword_suspend => "suspend",
            .keyword_switch => "switch",
            .keyword_test => "test",
            .keyword_threadlocal => "threadlocal",
            .keyword_try => "try",
            .keyword_union => "union",
            .keyword_unreachable => "unreachable",
            .keyword_usingnamespace => "usingnamespace",
            .keyword_var => "var",
            .keyword_volatile => "volatile",
            .keyword_while => "while",
        };
    }

    pub fn symbol(tag: Tag) []const u8 {
        return tag.lexeme() orelse switch (tag) {
            .invalid => "invalid token",
            .identifier => "an identifier",
            .string_literal, .multiline_string_literal_line => "a string literal",
            .char_literal => "a character literal",
            .eof => "EOF",
            .builtin => "a builtin function",
            .number_literal => "a number literal",
            .doc_comment, .container_doc_comment => "a document comment",
            else => unreachable,
        };
    }
}