README

marianoguerra/wax/syntax/tokens does not have a README file

#
LocString

A string literal's decoded BYTES together with its span.

Bytes rather than a String because a Wax string literal is a byte string: \xff is one raw byte, and a data segment may hold arbitrary binary that is not valid UTF-8. Named here rather than written inline in the grammar because the generated token enum has to spell the type.

#
Triple

A token with its start and end position — the unit the lexer produces and the parser consumes.

MoonYacc's array input mode expects exactly this shape, so the lexer's output feeds the generated parser with no adaptation.

#
Triples

An Array is a collection of values that supports random access and can grow in size.

#
Token

pub(all) enum Token {
IDENT(String)
INT(String)
FLOAT(String)
STRING(
Annotated
[Bytes,
Location
])
CHAR(Char)
EOF
INF
NAN
SEMI
SHARP
QUESTIONMARK
LPAREN
RPAREN
LBRACE
RBRACE
LBRACKET
RBRACKET
COMMA
COLON
COLONCOLON
ARROW
FATARROW
EQUAL
COLONEQUAL
AT
QUOTE
DOT
DOTDOT
BANG
PLUS
PLUSPLUS
PLUSEQUAL
MINUS
MINUSEQUAL
STAR
STAREQUAL
SLASH
SLASHEQUAL
SLASHS
SLASHSEQUAL
SLASHU
SLASHUEQUAL
PERCENTS
PERCENTSEQUAL
PERCENTU
PERCENTUEQUAL
AMPERSAND
AMPERSANDEQUAL
PIPE
PIPEEQUAL
CARET
CARETEQUAL
SHL
SHLEQUAL
SHRS
SHRSEQUAL
SHRU
SHRUEQUAL
EQUALEQUAL
BANGEQUAL
GT
GTS
GTU
LT
LTS
LTU
GE
GES
GEU
LE
LES
LEU
UNDERSCORE
FN
TAG
MUT
TYPE
REC
OPEN
NOP
UNREACHABLE
NULL
DO
WHILE
LOOP
IF
ELSE
CONST
LET
AS
IS
BECOME
BR
BR_IF
BR_TABLE
RETURN
THROW
THROW_REF
BR_ON_CAST
BR_ON_CAST_FAIL
BR_ON_NULL
BR_ON_NON_NULL
TRY
TRY_LEGACY
CATCH
CONT
SUSPEND
ON
DISPATCH
MATCH
MEMORY
DATA
TABLE
ELEM
PAGESIZE
SHARED
DESCRIPTOR
DESCRIBES
IMPORT
} derive(
Debug
)

#
Token::kind

fn Token::kind(self : Token) -> TokenKind

#
Token::to_expect_string

fn Token::to_expect_string(self : Token) -> String

#
TokenKind

pub(all) enum TokenKind {
TK_IDENT
TK_INT
TK_FLOAT
TK_STRING
TK_CHAR
TK_EOF
TK_INF
TK_NAN
TK_SEMI
TK_SHARP
TK_QUESTIONMARK
TK_LPAREN
TK_RPAREN
TK_LBRACE
TK_RBRACE
TK_LBRACKET
TK_RBRACKET
TK_COMMA
TK_COLON
TK_COLONCOLON
TK_ARROW
TK_FATARROW
TK_EQUAL
TK_COLONEQUAL
TK_AT
TK_QUOTE
TK_DOT
TK_DOTDOT
TK_BANG
TK_PLUS
TK_PLUSPLUS
TK_PLUSEQUAL
TK_MINUS
TK_MINUSEQUAL
TK_STAR
TK_STAREQUAL
TK_SLASH
TK_SLASHEQUAL
TK_SLASHS
TK_SLASHSEQUAL
TK_SLASHU
TK_SLASHUEQUAL
TK_PERCENTS
TK_PERCENTSEQUAL
TK_PERCENTU
TK_PERCENTUEQUAL
TK_AMPERSAND
TK_AMPERSANDEQUAL
TK_PIPE
TK_PIPEEQUAL
TK_CARET
TK_CARETEQUAL
TK_SHL
TK_SHLEQUAL
TK_SHRS
TK_SHRSEQUAL
TK_SHRU
TK_SHRUEQUAL
TK_EQUALEQUAL
TK_BANGEQUAL
TK_GT
TK_GTS
TK_GTU
TK_LT
TK_LTS
TK_LTU
TK_GE
TK_GES
TK_GEU
TK_LE
TK_LES
TK_LEU
TK_UNDERSCORE
TK_FN
TK_TAG
TK_MUT
TK_TYPE
TK_REC
TK_OPEN
TK_NOP
TK_UNREACHABLE
TK_NULL
TK_DO
TK_WHILE
TK_LOOP
TK_IF
TK_ELSE
TK_CONST
TK_LET
TK_AS
TK_IS
TK_BECOME
TK_BR
TK_BR_IF
TK_BR_TABLE
TK_RETURN
TK_THROW
TK_THROW_REF
TK_BR_ON_CAST
TK_BR_ON_CAST_FAIL
TK_BR_ON_NULL
TK_BR_ON_NON_NULL
TK_TRY
TK_TRY_LEGACY
TK_CATCH
TK_CONT
TK_SUSPEND
TK_ON
TK_DISPATCH
TK_MATCH
TK_MEMORY
TK_DATA
TK_TABLE
TK_ELEM
TK_PAGESIZE
TK_SHARED
TK_DESCRIPTOR
TK_DESCRIBES
TK_IMPORT
} derive(Compare, Eq, Hash)

impl Show for TokenKind

#
TokenKind::expect_class

fn TokenKind::expect_class(self : TokenKind) -> String?

The class label this kind collapses into, if any.

A kind in no class keeps its own spelling from to_expect_string.

#
TokenKind::to_expect_string

fn TokenKind::to_expect_string(self : TokenKind) -> String