pub const KERML_KEYWORDS: &[&str] = &[
"classifier",
"datatype",
"class",
"struct",
"assoc",
"type",
"feature",
"metaclass",
"behavior",
"function",
"predicate",
"interaction",
"package",
"namespace",
"library",
"import",
"alias",
"member",
"abstract",
"const",
"derived",
"composite",
"portion",
"ordered",
"nonunique",
"public",
"private",
"protected",
"standard",
"specializes",
"specialization",
"subclassifier",
"subtype",
"subsets",
"subset",
"redefines",
"redefinition",
"conjugates",
"conjugation",
"conjugate",
"typing",
"typed",
"chains",
"inverting",
"inverse",
"differs",
"differences",
"disjoint",
"disjoining",
"intersects",
"unions",
"binding",
"connector",
"featured",
"featuring",
"dependency",
"succession",
"in",
"out",
"inout",
"hastype",
"istype",
"if",
"then",
"else",
"for",
"and",
"or",
"xor",
"not",
"implies",
"doc",
"comment",
"metadata",
"about",
"language",
"locale",
"true",
"false",
"null",
"all",
"expr",
"bool",
"return",
"filter",
"first",
"step",
"from",
"by",
"of",
"to",
"as",
"end",
"inv",
"rep",
"flow",
"crosses",
"default",
"meta",
"multiplicity",
"new",
"var",
"variation",
];
pub const SYSML_KEYWORDS: &[&str] = &[
"part def",
"port def",
"action def",
"state def",
"constraint def",
"requirement def",
"attribute def",
"connection def",
"interface def",
"allocation def",
"item def",
"occurrence def",
"analysis def",
"case def",
"verification def",
"use case def",
"view def",
"viewpoint def",
"rendering def",
"metadata def",
"enum def",
"part",
"port",
"action",
"state",
"constraint",
"requirement",
"attribute",
"connection",
"interface",
"allocation",
"item",
"occurrence",
"analysis",
"case",
"verification",
"use case",
"view",
"ref",
"individual",
"variation",
"snapshot",
"timeslice",
"package",
"library",
"import",
"alias",
"abstract",
"constant",
"derived",
"ordered",
"nonunique",
"public",
"private",
"protected",
"specializes",
"subsets",
"redefines",
"references",
"conjugate",
"defined by",
"in",
"out",
"inout",
"flow",
"succession",
"message",
"if",
"then",
"else",
"for",
"while",
"loop",
"decide",
"merge",
"fork",
"join",
"accept",
"send",
"return",
"bind",
"require",
"assume",
"satisfy",
"verify",
"subject",
"actor",
"stakeholder",
"objective",
"concern",
"doc",
"comment",
"metadata",
"about",
"true",
"false",
"null",
"all",
"when",
"at",
"during",
"first",
"after",
"until",
];
pub const RELATIONSHIP_OPERATORS: &[&str] = &[
":", ":>", ":>>", "::>", ];
pub fn get_keywords_for_file(path: &std::path::Path) -> &'static [&'static str] {
match path.extension().and_then(|e| e.to_str()) {
Some("kerml") => KERML_KEYWORDS,
Some("sysml") => SYSML_KEYWORDS,
_ => SYSML_KEYWORDS, }
}