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 more