pub mod kerml;
pub mod kerml_expressions;
pub mod sysml;
pub use kerml::{KerMLParser, parse_kerml_file, parse_namespace_element};
pub use kerml_expressions::ExpressionParser;
pub use sysml::SysMLParser;
use super::syntax_kind::SyntaxKind;
pub trait BaseParser: ExpressionParser {
fn current_token_text(&self) -> Option<&str>;
fn parse_identification(&mut self);
fn skip_trivia_except_block_comments(&mut self);
fn parse_qualified_name_list(&mut self);
fn error(&mut self, message: impl Into<String>);
fn error_recover(&mut self, message: impl Into<String>, recovery: &[SyntaxKind]);
}
pub const STANDALONE_RELATIONSHIP_KEYWORDS: &[SyntaxKind] = &[
SyntaxKind::SPECIALIZATION_KW,
SyntaxKind::SUBCLASSIFIER_KW,
SyntaxKind::REDEFINITION_KW,
SyntaxKind::SUBSET_KW,
SyntaxKind::SUBTYPE_KW,
SyntaxKind::TYPING_KW,
SyntaxKind::CONJUGATION_KW,
SyntaxKind::DISJOINING_KW,
SyntaxKind::FEATURING_KW,
SyntaxKind::INVERTING_KW,
];
pub const RELATIONSHIP_OPERATORS: &[SyntaxKind] = &[
SyntaxKind::SPECIALIZES_KW,
SyntaxKind::COLON_GT,
SyntaxKind::SUBSETS_KW,
SyntaxKind::REDEFINES_KW,
SyntaxKind::COLON_GT_GT,
SyntaxKind::TYPED_KW,
SyntaxKind::COLON,
SyntaxKind::CONJUGATES_KW,
SyntaxKind::TILDE,
SyntaxKind::INVERSE_KW,
SyntaxKind::OF_KW,
];