pub enum SyntaxKind {
Show 159 variants
WHITESPACE = 0,
NEWLINE,
LINE_COMMENT,
BLOCK_COMMENT,
KW_INCLUDE,
KW_EXTERNAL,
KW_VAR,
KW_CONST,
KW_LIST,
KW_TEMP,
KW_RETURN,
KW_REF,
KW_TRUE,
KW_FALSE,
KW_NOT,
KW_AND,
KW_OR,
KW_MOD,
KW_HAS,
KW_HASNT,
KW_ELSE,
KW_FUNCTION,
KW_STOPPING,
KW_CYCLE,
KW_SHUFFLE,
KW_ONCE,
KW_DONE,
KW_END,
KW_TODO,
EQ,
PLUS_EQ,
MINUS_EQ,
EQ_EQ,
BANG_EQ,
LT,
GT,
LT_EQ,
GT_EQ,
AMP,
AMP_AMP,
PLUS,
MINUS,
STAR,
SLASH,
PERCENT,
CARET,
BANG,
QUESTION,
BANG_QUESTION,
DOLLAR,
L_PAREN,
R_PAREN,
L_BRACE,
R_BRACE,
L_BRACKET,
R_BRACKET,
PIPE,
COMMA,
DOT,
COLON,
HASH,
TILDE,
BACKSLASH,
GLUE,
DIVERT,
THREAD,
TUNNEL_ONWARDS,
INTEGER,
FLOAT,
QUOTE,
STRING_TEXT,
STRING_ESCAPE,
IDENT,
ERROR_TOKEN,
EOF,
SOURCE_FILE,
INCLUDE_STMT,
FILE_PATH,
EXTERNAL_DECL,
KNOT_DEF,
KNOT_HEADER,
KNOT_BODY,
KNOT_PARAMS,
KNOT_PARAM_DECL,
STITCH_DEF,
STITCH_HEADER,
STITCH_BODY,
EMPTY_LINE,
AUTHOR_WARNING,
LOGIC_LINE,
CONTENT_LINE,
TAG_LINE,
STRAY_CLOSING_BRACE,
RETURN_STMT,
TEMP_DECL,
ASSIGNMENT,
MIXED_CONTENT,
TEXT,
ESCAPE,
GLUE_NODE,
CHOICE,
CHOICE_BULLETS,
LABEL,
CHOICE_CONDITION,
CHOICE_START_CONTENT,
CHOICE_BRACKET_CONTENT,
CHOICE_INNER_CONTENT,
GATHER,
GATHER_DASHES,
TAGS,
TAG,
INLINE_LOGIC,
MULTILINE_BLOCK,
SEQUENCE_WITH_ANNOTATION,
SEQUENCE_SYMBOL_ANNOTATION,
SEQUENCE_WORD_ANNOTATION,
INLINE_BRANCHES_SEQ,
MULTILINE_BRANCHES_SEQ,
MULTILINE_BRANCH_SEQ,
BRANCH_CONTENT,
CONDITIONAL_WITH_EXPR,
BRANCHLESS_COND_BODY,
ELSE_BRANCH,
INLINE_BRANCHES_COND,
MULTILINE_BRANCHES_COND,
MULTILINE_CONDITIONAL,
MULTILINE_BRANCH_COND,
MULTILINE_BRANCH_BODY,
IMPLICIT_SEQUENCE,
INNER_EXPRESSION,
PREFIX_EXPR,
POSTFIX_EXPR,
INFIX_EXPR,
PAREN_EXPR,
FUNCTION_CALL,
ARG_LIST,
DIVERT_TARGET_EXPR,
LIST_EXPR,
DIVERT_NODE,
SIMPLE_DIVERT,
DIVERT_TARGET_WITH_ARGS,
THREAD_START,
TUNNEL_ONWARDS_NODE,
TUNNEL_CALL_NODE,
IDENTIFIER,
PATH,
VAR_DECL,
CONST_DECL,
LIST_DECL,
LIST_DEF,
LIST_MEMBER,
LIST_MEMBER_ON,
LIST_MEMBER_OFF,
FUNCTION_PARAM_LIST,
INTEGER_LIT,
FLOAT_LIT,
STRING_LIT,
BOOLEAN_LIT,
ERROR,
// some variants omitted
}Expand description
All syntactic constructs in the Ink language.
Tokens (lexer output) and nodes (parser output) share a single flat enum
so that rowan can store them in one u16 discriminant. Use [is_token]
and [is_node] to classify at runtime.
Variants§
WHITESPACE = 0
Spaces and tabs (NOT newlines).
NEWLINE
\n or \r\n.
LINE_COMMENT
// ... through end-of-line.
BLOCK_COMMENT
/* ... */ (may span lines).
KW_INCLUDE
KW_EXTERNAL
KW_VAR
KW_CONST
KW_LIST
KW_TEMP
KW_RETURN
KW_REF
KW_TRUE
KW_FALSE
KW_NOT
KW_AND
KW_OR
KW_MOD
KW_HAS
KW_HASNT
KW_ELSE
KW_FUNCTION
KW_STOPPING
KW_CYCLE
KW_SHUFFLE
KW_ONCE
KW_DONE
KW_END
KW_TODO
EQ
=
PLUS_EQ
+=
MINUS_EQ
-=
EQ_EQ
==
BANG_EQ
!=
LT
<
GT
>
LT_EQ
<=
GT_EQ
>=
AMP
&
AMP_AMP
&&
PLUS
+
MINUS
-
STAR
*
SLASH
/
PERCENT
%
CARET
^
BANG
!
QUESTION
?
BANG_QUESTION
!?
DOLLAR
$
L_PAREN
(
R_PAREN
)
L_BRACE
{
R_BRACE
}
L_BRACKET
[
R_BRACKET
]
PIPE
|
COMMA
,
DOT
.
COLON
:
HASH
#
TILDE
~
BACKSLASH
\
GLUE
<>
DIVERT
->
THREAD
<-
TUNNEL_ONWARDS
->->
INTEGER
Integer literal (digits only; no leading sign).
FLOAT
Float literal (digits.digits).
QUOTE
" (opening or closing quote).
STRING_TEXT
Run of non-special characters inside a string literal.
STRING_ESCAPE
Escape sequence inside a string (\n, \t, \\, \").
IDENT
Identifier: (IDENT_START IDENT_CONTINUE*) | (DIGIT+ IDENT_START IDENT_CONTINUE*).
ERROR_TOKEN
Any byte the lexer could not classify.
EOF
End of file (synthetic).
SOURCE_FILE
INCLUDE_STMT
FILE_PATH
EXTERNAL_DECL
KNOT_DEF
KNOT_HEADER
KNOT_BODY
KNOT_PARAMS
KNOT_PARAM_DECL
STITCH_DEF
STITCH_HEADER
STITCH_BODY
EMPTY_LINE
AUTHOR_WARNING
LOGIC_LINE
CONTENT_LINE
TAG_LINE
STRAY_CLOSING_BRACE
RETURN_STMT
TEMP_DECL
ASSIGNMENT
MIXED_CONTENT
TEXT
ESCAPE
GLUE_NODE
CHOICE
CHOICE_BULLETS
LABEL
CHOICE_CONDITION
CHOICE_START_CONTENT
CHOICE_BRACKET_CONTENT
CHOICE_INNER_CONTENT
GATHER
GATHER_DASHES
TAGS
TAG
INLINE_LOGIC
MULTILINE_BLOCK
SEQUENCE_WITH_ANNOTATION
SEQUENCE_SYMBOL_ANNOTATION
SEQUENCE_WORD_ANNOTATION
INLINE_BRANCHES_SEQ
MULTILINE_BRANCHES_SEQ
MULTILINE_BRANCH_SEQ
BRANCH_CONTENT
CONDITIONAL_WITH_EXPR
BRANCHLESS_COND_BODY
ELSE_BRANCH
INLINE_BRANCHES_COND
MULTILINE_BRANCHES_COND
MULTILINE_CONDITIONAL
MULTILINE_BRANCH_COND
MULTILINE_BRANCH_BODY
IMPLICIT_SEQUENCE
INNER_EXPRESSION
PREFIX_EXPR
POSTFIX_EXPR
INFIX_EXPR
PAREN_EXPR
FUNCTION_CALL
ARG_LIST
DIVERT_TARGET_EXPR
LIST_EXPR
DIVERT_NODE
SIMPLE_DIVERT
DIVERT_TARGET_WITH_ARGS
THREAD_START
TUNNEL_ONWARDS_NODE
TUNNEL_CALL_NODE
IDENTIFIER
PATH
VAR_DECL
CONST_DECL
LIST_DECL
LIST_DEF
LIST_MEMBER
LIST_MEMBER_ON
LIST_MEMBER_OFF
FUNCTION_PARAM_LIST
INTEGER_LIT
FLOAT_LIT
STRING_LIT
BOOLEAN_LIT
ERROR
Implementations§
Source§impl SyntaxKind
impl SyntaxKind
Sourcepub fn is_token(self) -> bool
pub fn is_token(self) -> bool
Returns true for tokens produced by the lexer (leaf nodes in the CST).
Sourcepub fn is_trivia(self) -> bool
pub fn is_trivia(self) -> bool
Returns true for trivia — tokens the parser may skip over.
NEWLINE is not trivia; it terminates lines and delimits blocks.
Sourcepub fn is_keyword(self) -> bool
pub fn is_keyword(self) -> bool
Returns true for keyword tokens.
Trait Implementations§
Source§impl Clone for SyntaxKind
impl Clone for SyntaxKind
Source§fn clone(&self) -> SyntaxKind
fn clone(&self) -> SyntaxKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SyntaxKind
Source§impl Debug for SyntaxKind
impl Debug for SyntaxKind
impl Eq for SyntaxKind
Source§impl Hash for SyntaxKind
impl Hash for SyntaxKind
Source§impl Ord for SyntaxKind
impl Ord for SyntaxKind
Source§fn cmp(&self, other: &SyntaxKind) -> Ordering
fn cmp(&self, other: &SyntaxKind) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for SyntaxKind
impl PartialEq for SyntaxKind
Source§fn eq(&self, other: &SyntaxKind) -> bool
fn eq(&self, other: &SyntaxKind) -> bool
self and other values to be equal, and is used by ==.