#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(u16)]
#[allow(non_camel_case_types)]
pub enum SyntaxKind {
WHITESPACE = 0,
LINE_COMMENT,
BLOCK_COMMENT,
IDENT, INTEGER, DECIMAL, STRING,
L_BRACE, R_BRACE, L_BRACKET, R_BRACKET, L_PAREN, R_PAREN, SEMICOLON, COLON, COLON_COLON, COLON_GT, COLON_GT_GT, COLON_COLON_GT, DOT, DOT_DOT, COMMA, EQ, EQ_EQ, EQ_EQ_EQ, BANG_EQ, BANG_EQ_EQ, LT, GT, LT_EQ, GT_EQ, ARROW, FAT_ARROW, AT, AT_AT, HASH, STAR, STAR_STAR, PLUS, MINUS, SLASH, PERCENT, CARET, TILDE, QUESTION, QUESTION_QUESTION, BANG, PIPE, AMP, AMP_AMP, PIPE_PIPE, COLON_EQ, DOLLAR,
PACKAGE_KW,
LIBRARY_KW,
STANDARD_KW,
IMPORT_KW,
ALIAS_KW,
ALL_KW,
FILTER_KW,
PRIVATE_KW,
PROTECTED_KW,
PUBLIC_KW,
DEF_KW,
ABSTRACT_KW,
COMPOSITE_KW,
PORTION_KW,
VARIATION_KW,
VARIANT_KW,
PART_KW,
ATTRIBUTE_KW,
ENUMERATION_KW,
ENUM_KW,
ITEM_KW,
OCCURRENCE_KW,
INDIVIDUAL_KW,
PORT_KW,
CONNECTION_KW,
INTERFACE_KW,
BINDING_KW,
FLOW_KW,
ALLOCATION_KW,
ALLOCATE_KW,
ACTION_KW,
STATE_KW,
TRANSITION_KW,
ENTRY_KW,
EXIT_KW,
DO_KW,
ACCEPT_KW,
SEND_KW,
PERFORM_KW,
EXHIBIT_KW,
MESSAGE_KW,
SNAPSHOT_KW,
TIMESLICE_KW,
FRAME_KW,
EVENT_KW,
IF_KW,
ELSE_KW,
THEN_KW,
LOOP_KW,
WHILE_KW,
UNTIL_KW,
FOR_KW,
FORK_KW,
JOIN_KW,
MERGE_KW,
DECIDE_KW,
FIRST_KW,
DONE_KW,
START_KW,
TERMINATE_KW,
PARALLEL_KW,
ASSIGN_KW,
CONNECT_KW,
BIND_KW,
NEW_KW,
AFTER_KW,
AT_KW,
WHEN_KW,
VIA_KW,
THIS_KW,
CALC_KW,
CONSTRAINT_KW,
ASSERT_KW,
ASSUME_KW,
REQUIRE_KW,
REQUIREMENT_KW,
SUBJECT_KW,
OBJECTIVE_KW,
STAKEHOLDER_KW,
ACTOR_KW,
CONCERN_KW,
SATISFY_KW,
VERIFY_KW,
CASE_KW,
ANALYSIS_KW,
VERIFICATION_KW,
USE_KW,
INCLUDE_KW,
VIEW_KW,
VIEWPOINT_KW,
RENDERING_KW,
RENDER_KW,
EXPOSE_KW,
METACLASS_KW,
METADATA_KW,
ABOUT_KW,
DOC_KW,
COMMENT_KW,
LANGUAGE_KW,
LOCALE_KW,
REP_KW,
SPECIALIZES_KW,
SUBSETS_KW,
REDEFINES_KW,
REFERENCES_KW,
TYPED_KW,
DEFINED_KW,
BY_KW,
INTERSECTS_KW,
UNIONS_KW,
DISJOINT_KW,
DISJOINING_KW,
CONJUGATES_KW,
CONJUGATE_KW,
DIFFERS_KW,
CROSSES_KW,
INVERSE_KW,
CHAINS_KW,
DIFFERENCES_KW,
FEATURED_KW,
FEATURING_KW,
INVERTING_KW,
OF_KW,
SPECIALIZATION_KW,
SUBCLASSIFIER_KW,
REDEFINITION_KW,
SUBSET_KW,
SUBTYPE_KW,
TYPING_KW,
CONJUGATION_KW,
MULTIPLICITY_KW,
NAMESPACE_KW,
REF_KW,
READONLY_KW,
DERIVED_KW,
END_KW,
ORDERED_KW,
NONUNIQUE_KW,
DEFAULT_KW,
VAR_KW,
CONST_KW,
MEMBER_KW,
RETURN_KW,
IN_KW,
OUT_KW,
INOUT_KW,
DEPENDENCY_KW,
FROM_KW,
TO_KW,
SUCCESSION_KW,
FIRST_KW_2,
TRUE_KW,
FALSE_KW,
NULL_KW,
AND_KW,
OR_KW,
NOT_KW,
XOR_KW,
IMPLIES_KW,
HASTYPE_KW,
ISTYPE_KW,
AS_KW,
META_KW,
TYPE_KW,
CLASSIFIER_KW,
CLASS_KW,
STRUCT_KW,
DATATYPE_KW,
ASSOC_KW,
BEHAVIOR_KW,
FUNCTION_KW,
PREDICATE_KW,
INTERACTION_KW,
FEATURE_KW,
STEP_KW,
EXPR_KW,
CONNECTOR_KW,
INV_KW,
SOURCE_FILE,
PACKAGE,
LIBRARY_PACKAGE,
NAMESPACE_BODY,
PACKAGE_MEMBER,
ELEMENT_FILTER_MEMBER,
RELATIONSHIP_MEMBER,
COMMENT_ELEMENT,
DOCUMENTATION,
TEXTUAL_REP,
METADATA_USAGE,
PREFIX_METADATA,
IMPORT,
MEMBERSHIP_IMPORT,
NAMESPACE_IMPORT,
FILTER_PACKAGE,
ALIAS_MEMBER,
DEPENDENCY,
NAME,
SHORT_NAME,
QUALIFIED_NAME,
FEATURE_CHAIN,
DEFINITION,
DEFINITION_BODY,
DEFINITION_PREFIX,
PART_DEFINITION,
ATTRIBUTE_DEFINITION,
ENUMERATION_DEFINITION,
ITEM_DEFINITION,
OCCURRENCE_DEFINITION,
PORT_DEFINITION,
CONNECTION_DEFINITION,
INTERFACE_DEFINITION,
ALLOCATION_DEFINITION,
FLOW_DEFINITION,
ACTION_DEFINITION,
STATE_DEFINITION,
CALC_DEFINITION,
CONSTRAINT_DEFINITION,
REQUIREMENT_DEFINITION,
CASE_DEFINITION,
ANALYSIS_CASE_DEFINITION,
VERIFICATION_CASE_DEFINITION,
USE_CASE_DEFINITION,
VIEW_DEFINITION,
VIEWPOINT_DEFINITION,
RENDERING_DEFINITION,
METADATA_DEFINITION,
USAGE,
USAGE_BODY,
USAGE_PREFIX,
PART_USAGE,
ATTRIBUTE_USAGE,
ENUM_USAGE,
ITEM_USAGE,
OCCURRENCE_USAGE,
PORT_USAGE,
CONNECTION_USAGE,
INTERFACE_USAGE,
ALLOCATION_USAGE,
FLOW_USAGE,
ACTION_USAGE,
STATE_USAGE,
CALC_USAGE,
CONSTRAINT_USAGE,
REQUIREMENT_USAGE,
CASE_USAGE,
ANALYSIS_CASE_USAGE,
VERIFICATION_CASE_USAGE,
USE_CASE_USAGE,
VIEW_USAGE,
VIEWPOINT_USAGE,
RENDERING_USAGE,
SPECIALIZATION,
SUBSETTING,
REDEFINITION,
TYPING,
FEATURING,
CONJUGATION,
MULTIPLICITY,
MULTIPLICITY_RANGE,
EXPRESSION,
LITERAL_EXPR,
FEATURE_REF_EXPR,
INVOCATION_EXPR,
SEQUENCE_EXPR,
CONDITIONAL_EXPR,
BINARY_EXPR,
UNARY_EXPR,
BRACKET_EXPR,
ARGUMENT_LIST,
BODY_ITEM,
MEMBER,
ACCEPT_ACTION_USAGE,
ACTOR_USAGE,
BINDING_CONNECTOR,
CONNECTION_END,
CONNECTOR,
CONNECTOR_END,
CONNECTOR_END_REFERENCE,
CONNECTOR_PART,
CONNECT_USAGE,
CONSTRAINT_BODY,
CONTROL_NODE,
FOR_LOOP_ACTION_USAGE,
IF_ACTION_USAGE,
OBJECTIVE_USAGE,
PERFORM_ACTION_USAGE,
RELATIONSHIP,
REQUIREMENT_CONSTRAINT,
REQUIREMENT_VERIFICATION,
SEND_ACTION_USAGE,
STAKEHOLDER_USAGE,
STATE_SUBACTION,
SUBJECT_USAGE,
SUCCESSION,
SUCCESSION_ITEM,
TEXTUAL_REPRESENTATION,
TRANSITION_USAGE,
WHILE_LOOP_ACTION_USAGE,
CONSTANT_KW,
FROM_TO_CLAUSE,
FROM_TO_SOURCE,
FROM_TO_TARGET,
ERROR,
TOMBSTONE,
#[doc(hidden)]
__LAST,
}
impl SyntaxKind {
pub fn is_trivia(self) -> bool {
matches!(
self,
Self::WHITESPACE | Self::LINE_COMMENT | Self::BLOCK_COMMENT
)
}
pub fn is_keyword(self) -> bool {
(self as u16) >= (Self::PACKAGE_KW as u16) && (self as u16) <= (Self::INV_KW as u16)
}
pub fn is_punct(self) -> bool {
(self as u16) >= (Self::L_BRACE as u16) && (self as u16) <= (Self::PIPE_PIPE as u16)
}
pub fn is_literal(self) -> bool {
matches!(
self,
Self::IDENT | Self::INTEGER | Self::DECIMAL | Self::STRING
)
}
}
impl From<SyntaxKind> for rowan::SyntaxKind {
fn from(kind: SyntaxKind) -> Self {
Self(kind as u16)
}
}
impl From<rowan::SyntaxKind> for SyntaxKind {
fn from(raw: rowan::SyntaxKind) -> Self {
assert!(raw.0 < SyntaxKind::__LAST as u16);
unsafe { std::mem::transmute::<u16, SyntaxKind>(raw.0) }
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum SysMLLanguage {}
impl rowan::Language for SysMLLanguage {
type Kind = SyntaxKind;
fn kind_from_raw(raw: rowan::SyntaxKind) -> Self::Kind {
raw.into()
}
fn kind_to_raw(kind: Self::Kind) -> rowan::SyntaxKind {
kind.into()
}
}
pub type SyntaxNode = rowan::SyntaxNode<SysMLLanguage>;
pub type SyntaxToken = rowan::SyntaxToken<SysMLLanguage>;
pub type SyntaxElement = rowan::SyntaxElement<SysMLLanguage>;
#[allow(dead_code)]
pub type SyntaxNodeChildren = rowan::SyntaxNodeChildren<SysMLLanguage>;