Enum pomelo_parse::SyntaxKind
source · #[repr(u16)]
pub enum SyntaxKind {
Show 141 variants
EOF,
UNKNOWN,
ERROR,
INFIX_OR_APP_EXP,
INFIX_OR_APP_PAT,
WHITESPACE,
COMMENT,
ABSTYPE_KW,
AND_KW,
ANDALSO_KW,
AS_KW,
CASE_KW,
DATATYPE_KW,
DO_KW,
ELSE_KW,
END_KW,
EXCEPTION_KW,
FN_KW,
FUN_KW,
HANDLE_KW,
IF_KW,
IN_KW,
INFIX_KW,
INFIXR_KW,
LET_KW,
LOCAL_KW,
NONFIX_KW,
OF_KW,
OP_KW,
OPEN_KW,
ORELSE_KW,
RAISE_KW,
REC_KW,
THEN_KW,
TYPE_KW,
VAL_KW,
WITH_KW,
WITHTYPE_KW,
WHILE_KW,
L_PAREN,
R_PAREN,
L_BRACKET,
R_BRACKET,
L_BRACE,
R_BRACE,
COMMA,
COLON,
SEMICOLON,
ELLIPSIS,
UNDERSCORE,
PIPE,
EQ,
THICK_ARROW,
THIN_ARROW,
HASH,
DOT,
STAR,
SCON_EXP,
VID_EXP,
RECORD_EXP,
RECORD_SEL_EXP,
LET_EXP,
PAREN_EXP,
EXP_ROW,
TY_EXP,
HANDLE_EXP,
RAISE_EXP,
FN_EXP,
MATCH,
MRULE,
VAL_DEC,
TY_DEC,
DATATYPE_DEC,
DATATYPE_REP,
ABSTYPE_DEC,
EXCEPT_DEC,
LOCAL_DEC,
OPEN_DEC,
SEQ_DEC,
INFIX_DEC,
INFIXR_DEC,
NONFIX_DEC,
FIXITY,
VAL_BIND,
TY_BIND,
DATA_BIND,
CON_BIND,
EX_BIND,
EX_BIND_NOEQ,
EX_BIND_EQ,
WILDCARD_PAT,
SCON_PAT,
VID_PAT,
RECORD_PAT,
PAT_ROW,
PAT_ROW_PAT,
TY_PAT,
LAYERED_PAT,
TY,
TYVAR_TY,
RECORD_TY,
CON_TY,
FUN_TY,
TY_ROW,
DERIV_EXP,
UNIT_EXP,
TUPLE_EXP,
ACCESSOR_EXP,
CASE_MATCH_EXP,
IF_EXP,
ORELSE_EXP,
ANDALSO_EXP,
SEQ_EXP,
WHILE_EXP,
LIST_EXP,
DERIV_PAT,
UNIT_PAT,
TUPLE_PAT,
LIST_PAT,
LAB_AS_VAR_PAT,
LAB_AS_VAR_TY,
LAB_AS_VAR_AS_PAT,
TUPLE_TY_EXP,
FVAL_BIND,
FVAL_BIND_ROW,
FUN_DEC,
INT,
REAL,
WORD,
CHAR,
STRING,
IDENT,
VID,
LONG_VID,
TYVAR,
TY_CON,
LONG_TY_CON,
LAB,
STRID,
LONG_STRID,
FILE,
}
Expand description
Kinds of syntax nodes in the Core SML language.
Variants§
EOF
UNKNOWN
ERROR
INFIX_OR_APP_EXP
INFIX_OR_APP_PAT
WHITESPACE
COMMENT
ABSTYPE_KW
AND_KW
ANDALSO_KW
AS_KW
CASE_KW
DATATYPE_KW
DO_KW
ELSE_KW
END_KW
EXCEPTION_KW
FN_KW
FUN_KW
HANDLE_KW
IF_KW
IN_KW
INFIX_KW
INFIXR_KW
LET_KW
LOCAL_KW
NONFIX_KW
OF_KW
OP_KW
OPEN_KW
ORELSE_KW
RAISE_KW
REC_KW
THEN_KW
TYPE_KW
VAL_KW
WITH_KW
WITHTYPE_KW
WHILE_KW
L_PAREN
R_PAREN
L_BRACKET
R_BRACKET
L_BRACE
R_BRACE
COMMA
COLON
SEMICOLON
ELLIPSIS
UNDERSCORE
PIPE
EQ
THICK_ARROW
THIN_ARROW
HASH
DOT
STAR
SCON_EXP
VID_EXP
RECORD_EXP
RECORD_SEL_EXP
LET_EXP
PAREN_EXP
EXP_ROW
TY_EXP
HANDLE_EXP
RAISE_EXP
FN_EXP
MATCH
MRULE
VAL_DEC
TY_DEC
DATATYPE_DEC
DATATYPE_REP
ABSTYPE_DEC
EXCEPT_DEC
LOCAL_DEC
OPEN_DEC
SEQ_DEC
INFIX_DEC
INFIXR_DEC
NONFIX_DEC
FIXITY
VAL_BIND
TY_BIND
DATA_BIND
CON_BIND
EX_BIND
EX_BIND_NOEQ
EX_BIND_EQ
WILDCARD_PAT
SCON_PAT
VID_PAT
RECORD_PAT
PAT_ROW
PAT_ROW_PAT
TY_PAT
LAYERED_PAT
TY
TYVAR_TY
RECORD_TY
CON_TY
FUN_TY
TY_ROW
DERIV_EXP
UNIT_EXP
TUPLE_EXP
ACCESSOR_EXP
CASE_MATCH_EXP
IF_EXP
ORELSE_EXP
ANDALSO_EXP
SEQ_EXP
WHILE_EXP
LIST_EXP
DERIV_PAT
UNIT_PAT
TUPLE_PAT
LIST_PAT
LAB_AS_VAR_PAT
LAB_AS_VAR_TY
LAB_AS_VAR_AS_PAT
TUPLE_TY_EXP
FVAL_BIND
FVAL_BIND_ROW
FUN_DEC
INT
REAL
WORD
CHAR
STRING
IDENT
VID
LONG_VID
TYVAR
TY_CON
LONG_TY_CON
LAB
STRID
LONG_STRID
FILE
Implementations§
source§impl SyntaxKind
impl SyntaxKind
sourcepub fn is_special_constant(&self) -> bool
pub fn is_special_constant(&self) -> bool
Returns true if self
is a special constant (literal).
sourcepub fn is_ty_atom(&self) -> bool
pub fn is_ty_atom(&self) -> bool
Returns true if self
is the start of a atomic type
(either a type variable or the start of a record or tuple type).
sourcepub fn is_atomic_exp_start(&self) -> bool
pub fn is_atomic_exp_start(&self) -> bool
Returns true if self
is the start of an atomic expression.
sourcepub fn is_atomic_pat_start(&self) -> bool
pub fn is_atomic_pat_start(&self) -> bool
Returns true if self
is the start of an atomic pattern.
sourcepub fn from_keyword(s: &str) -> Option<Self>
pub fn from_keyword(s: &str) -> Option<Self>
Returns Some(kind)
if s
is a keyword, else None
.
sourcepub fn from_symbol(s: &str) -> Option<Self>
pub fn from_symbol(s: &str) -> Option<Self>
Returns Some(kind)
if s
is a symbol, else None
.
sourcepub fn from_lexed(lexkind: LexKind, text: &str) -> (Self, Option<&'static str>)
pub fn from_lexed(lexkind: LexKind, text: &str) -> (Self, Option<&'static str>)
Converts a lex token to a parse token.
Note that the return type is a (val, err)
tuple instead of a Result
.
This is because we want to collect errors here but defer their handling until after
everything has been parsed.
Trait Implementations§
source§impl Clone for SyntaxKind
impl Clone for SyntaxKind
source§fn clone(&self) -> SyntaxKind
fn clone(&self) -> SyntaxKind
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for SyntaxKind
impl Debug for SyntaxKind
source§impl From<SyntaxKind> for SyntaxKind
impl From<SyntaxKind> for SyntaxKind
source§fn from(kind: SyntaxKind) -> Self
fn from(kind: SyntaxKind) -> Self
Converts to this type from the input type.
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 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<SyntaxKind> for SyntaxKind
impl PartialEq<SyntaxKind> for SyntaxKind
source§fn eq(&self, other: &SyntaxKind) -> bool
fn eq(&self, other: &SyntaxKind) -> bool
source§impl PartialOrd<SyntaxKind> for SyntaxKind
impl PartialOrd<SyntaxKind> for SyntaxKind
source§fn partial_cmp(&self, other: &SyntaxKind) -> Option<Ordering>
fn partial_cmp(&self, other: &SyntaxKind) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more